static link with NPTL on ARM fails
Johannes Stezenbach
js at sig21.net
Fri Jan 27 14:55:39 UTC 2012
On Fri, Jan 27, 2012 at 02:17:25PM +0100, Carmelo AMOROSO wrote:
> Well,
> what I'd expect to have for sigaction is:
>
> libc.{so,a}
> ---> __libc_sigaction (global)
> ---> sigaction (weak alias of __libc_sigaction)
> ---> __GI_sigaction (hidden alias for internal use, if any)
>
> and
>
> libpthread.{so,a}
> ---> sigaction (global)
> ---> __libc_sigaction (undefined)
>
> where the sigaction implementation in the libpthread should wrap around
> the __libc_sigaction adding the extra check for the SIGCANCEL and SIGSETXID.
>
> I would not expect to see, as we currently have, __libc_sigaction
> reimplemented in the pthread library.
>
> So rather then working around the static build issue, I'd prefer to tidy
> things up, definitely.
Sounds good, but one question: When libc internally calls sigaction
and libpthread is also linked, which one should be called?
I would think it should call the pthread version. If libc wants
to call the libc version it would use __libc_sigaction explicitly.
However, with libc_hidden_proto(sigaction) in signal.h, libc
would end up calling __GI_sigaction which is the libc version, isn't it?
Instead there could be a __GI___libc_sigaction.
- libc_hidden_proto(sigaction)
+ libc_hidden_proto(__libc_sigaction)
Thanks
Johannes
More information about the uClibc
mailing list