Mike Hearn wrote:
On Mon, 17 May 2004 04:05:51 +0200, Guido Draheim wrote:
gcc supports the universal attribute syntax, and it does now know about more symbol flavours as to their visibility. Probably you want to have "hidden". Attached are two simple test*.c files and a makefile. The final sharedlib symbol table contains only test3 after stripping. - using a linker script instead of in-source __attribute__ is left as an excercise to the reader.
Ah, thanks. I did actually try __attribute__((visibility("hidden"))) but it still left symbols in the .symtab - of course if you strip the binary as well, this disappears too.
Yepp, it's kinda peculiar to need both -Wl,-x and strip -x, dunno why either.
Btw, since my mail was quoted on WWN I just had a chance to reread the stuff and I noted immediatly there're lots'a little errors in it. Funny. Although nothing misleading, let me atleast adjust for these two before someone else puts in: - yes, ELF stands really for Executable and Linker Format. Originally designed to cover the needs of all the flavours of object files, library and executables, it has become such a success among unix systems because of its enormous flexibility. - the visibility __attribute__ *is* present since 3.1/3.2 cycle but the commandline -fvisibility options are not. They are gcc 3.4 additions afaics - s/a gcc'zilla 15000 (my examples were tested with gcc 3.2.2 before sending them to the list)
cheers, -- guido http://google.de/search?q=guidod