This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] powerpc: Remove unintended __longjmp export
- From: "Tulio Magno Quites Machado Filho" <tuliom at linux dot vnet dot ibm dot com>
- To: Florian Weimer <fweimer at redhat dot com>, GNU C Library <libc-alpha at sourceware dot org>
- Cc: Steve Munroe <munroesj at linux dot vnet dot ibm dot com>
- Date: Mon, 28 Nov 2016 11:04:40 -0200
- Subject: Re: [PATCH] powerpc: Remove unintended __longjmp export
- Authentication-results: sourceware.org; auth=none
- References: <771d4c34-534f-228a-3041-2610145c8baa@redhat.com>
Florian Weimer <fweimer@redhat.com> writes:
> 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 too.
--
Tulio Magno