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

Re: Question about toolchain and objdump's output on ia64/mips/mipsel



Raphael Hertzog wrote:
> Hello,
> 
> while working on http://wiki.debian.org/Projects/ImprovedDpkgShlibdeps
> I'm discovering some arch-specific differences in the "objdump -T"
> output of libraries.
> 
> * On ia64, static functions appear in objdump's output and they are marked
>   as "local".
>   See my previous message to debian-ia64:
>   http://lists.debian.org/debian-ia64/2007/08/msg00000.html

I presume this applies only to static functions whose address wasn't
taken inside the module. Otherwise this would be a bug for e.g. callbacks
exported via a function pointer.

> * On ia64, mips and mipsel, functions with gcc's visibility attribute
>   hidden also appear in objdump's output and they are marked as "local".
>   Example with libglib2.0:
> 000386a8 l    DF .text  00000020  Base        .hidden IA__g_list_free

Hidden symbols are treated as "forced local", at least on mips/mipsel,
they aren't supposed to be usable from other components.

> I have two questions:
> 
> * are those behaviour expected on those arches or are they bugs in the
>   respective toolchains?

For mips/mipsel this is the expected behaviour.

> * can I consider (in general and not only for those architectures) all
>   those symbols marked as "local" as unusable by applications linked to
>   those libraries?

Yes, as long as "unusable" means "not referencable from other components".


Thiemo



Reply to: