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: