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