linux-l: Symbolexport in Shared Libraries
Oliver Hillmann
ohil at tequila.in-berlin.de
So Jan 23 20:41:05 CET 2000
Hallo,
weiß von Euch wer, wie ich die Symbole, die eine selbstgebastelte Shared
Library exportiert, einschränke?
Also, angenommen, ich habe folgendes File (foo.c):
*snip!* ----8<-----8<-----8<------8<-----
#include <stdio.h>
void foo()
{
if (always_true())
printf("Foo!\n");
else
printf("No foo...\n");
}
int always_true() {
return 1;
}
*snap!* ----8<-----8<-----8<------8<-----
compiliere das mit
gcc -shared -o libfoo.so foo.c -Wl,-soname,lifoo.so
, dann habe ich eine Shared Lib namens libfoo.so, die ich - entsprechende
Linkoptionen und LD_LIBRARY_PATH vorausgesetzt - zum Linken mit
anderen Programmen benutzen kann.
Allerdings: So wie ich das mache, werden sowohl foo als auch always_true
als Symbole exportiert. Wie kann ich verhindern, daß always_true (is ja
ohnehin ne blöde Funktion :) exportiert wird, also für dagegen dynamisch
gelinkte Programme unsichtbar wird?
Die von mir gefundene Doku zu ELF und Shared Libs half mir in diesem Punkt
nicht weiter.... Die Linkeroption -E ("Export all dynamic symbols")
verstehe ich nicht, da ja ohnehin alle exportiert werden...
Herzlichen Dank schon mal vorher... Wer mir helfen kann, darf obiges
Programm auch behalten :)
Gruß
Oli
Mehr Informationen über die Mailingliste linux-l