Re: Symbol Visibility Problem in C Source File

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

 



On 11/26/2010 06:10 PM, Jeffrey Walton wrote:

> I've given up trying to change visibility [1] in favor of adding a
> thunk or wrapper for test purposes. The wrapper has extern visibility,
> while the [real] function of interest is declared static in the
> compilation unit. For the wrapper, dbg_my_function (public) simply
> calls my_function (private).
> 
> The test platform is Ubuntu 10.04 (x64) fully patched with GCC 4.4.3.
> Note that there is no header file - only a C source file. And the
> project uses automake and friends.
> 
> The static archive is exporting the symbol, while the shared object is
> not exporting the symbol. Below, a capitol "T" is a exported symbol in
> the text section; and a lower "t" is a local symbol in the text
> section.
> 
>     $ nm --defined ./lib/.libs/libmylibrary.a | grep my_function
>     00000000000003f8 T dbg_my_function
>     0000000000000000 t my_function
>     $ nm --defined ./lib/.libs/libmylibrary.so | grep my_function
>     000000000003356b t dbg_my_function
>     0000000000033120 t my_function

It would help tremendously if you produced a simple test case that
illustrates the problem.  I don't know what you're doing wrong.

Andrew.


[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