[PATCH] powerpc: Remove unintended __longjmp export

Florian Weimer fweimer@redhat.com
Sun Nov 27 13:59:00 GMT 2016


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



More information about the Libc-alpha mailing list