Error while compiling krb 1.5

Marcus Watts mdw at umich.edu
Wed Jul 5 19:22:43 EDT 2006


Various people had written about static build
requirements and shared libraries vs. objects.

I think a possible approach here would be to build
2 sets of objects in the actual build tree:
	"static" objects.
	"pic" objects.
the result of the first can be libkrb5.a, just like krb5 <1.5.
The result of the second could be something like libkrb5_pic.a
In theory, the logic for this should be similar but simplier
than the previous shared library logic.

Then, this can be done -- a libkrb5.so(.X){+others) can be
built (and presumably used) by regular in-tree or external clients.
This should be doable using a simple rule for most
systems (which should include something like gnu ld's '--whole-archive'
option).  If there is a worst case, "-u symbol" for each public
interface ought to suffice.

External shared objects or libraries can be linked either against
-lkrb5_pic or -lkrb5.  In the former case case they get a local
"statically linked" copy of the library but which is position independent.
In the latter case they can be dynamically linked against
the same shared library regular clients would use.

			-Marcus Watts



More information about the krbdev mailing list