Re: Difference between -shared, -symbolic, and -G?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Todd <todd.freed@xxxxxxxxx> writes:

>> Whether the behaviour is intuitive really depends upon what you are
>> trying to do.  For example, there are debugging malloc libraries which
>> work by setting LD_PRELOAD to point to the malloc library.  That kind
>> of thing would fail if libc.so were linked with -symbolic.  Sometimes
>> you want calls to always be local, sometimes you want to permit other
>> symbols to be interposed.  Explicit symbol visibility lets you choose.
>> You can specify symbol visibility either in the source code or in a
>> linker script.
>>   
> I have a function defined in a shared library which is exported. I
> also call the function from within the shared library. I am having the
> issue where, when linked from a certain executable, the calls
> originating within the shared library are calling some other function,
> defined elsewhere. It sounds like -symbolic is what I want.
>
> However, when I try to link with -symbolic, I get this
>
> gcc: unrecognized option '-symbolic'
>
> I realize from the documentation, that -symbolic is not supported on
> all platforms. Could you briefly explain, or point out some
> documentation explaining how to achieve the same effect as -symbolic
> using a linker script?

This stuff is all platform specific, so you need to tell us what
platform you are using.  You also need to tell us which version of gcc
you are using.

-symbolic ought to work on any ELF platform.  You can also use -shared
-Wl,-Bsymbolic to get pretty much the same effect.

Ian

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux