This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] powerpc: Remove unintended __longjmp export


On 11/27/2016 07:45 AM, Mike Frysinger wrote:
On 22 Nov 2016 17:43, Florian Weimer wrote:
Due to an accident, we export __longjmp under a public symbol version
for the powerpc32/fpu configuration.

__longjmp is declared as hidden for internal use.  This means that any
reference to this symbol (of which there aren't any right now in
libc.so) will cause the symbol to turn unexported.  The reason is that
the linker does not distinguish between hidden definitions and
references.  GCC emits a .hidden directive in the __longjmp-referencing
translation unit, and this kills the .symver-based export.

I propose the removal of the __longjmp export as the simplest fix.
__longjmp is in the implementation namespace and is not used in a public
header.  As a result, nothing out there should reference it.

If this is not acceptable, I'll come up with different approach to
address this.  But I prefer to address this issue in this way.

Tested on a powerpc32/fpu configuration with no regressions.

makes sense to me.  not sure how any package would end up with a reference
to this symbol in their binaries.

Thanks. I'll plan to commit this next week, and also the companion patch to add a missing hidden symbol.

Steven and Tulio, in case you want to comment, these patches are here:

https://sourceware.org/ml/libc-alpha/2016-11/msg00794.html
https://sourceware.org/ml/libc-alpha/2016-11/msg00798.html

Thanks,
Florian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]