This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [hurd,commited] hurd: Avoid more libc.so local PLTs
On Tue, Apr 3, 2018 at 1:20 AM, Samuel Thibault
<samuel.thibault@ens-lyon.org> wrote:
> Andreas Schwab, on mar. 03 avril 2018 10:10:21 +0200, wrote:
>> On Apr 03 2018, Samuel Thibault <samuel.thibault@ens-lyon.org> wrote:
>>
>> > * hurd/catch-signal.c (__hurd_catch_signal): Call __libc_siglongjmp
>> > instead if siglongjmp.
>> > (hurd_safe_memmove): Call __libc_longjmp instead of longjmp.
>> > * hurd/hurdfault.c (faulted): Call __libc_longjmp instead of longjmp.
>> > * include/setjmp.h (__libc_siglongjmp, __libc_longjmp): New hidden
>> > prototypes.
>> > * libio/iolibio.h (_IO_puts): New hidden prototype.
>> > * libio/ioputs.c (_IO_puts): New hidden def.
>> > * setjmp/longjmp.c (__libc_longjmp, __libc_siglongjmp): New hidden
>> > defs.
>> > * sysdeps/mach/hurd/sigwait.c (__sigwait): Call __libc_longjmp instead
>> > of longjmp.
>>
>> https://build.opensuse.org/package/live_build_log/home:Andreas_Schwab:glibc/glibc/s/s390x
>>
>> In file included from <command-line>:0:0:
>> ../sysdeps/s390/longjmp.c:35:34: error: '__libc_longjmp' aliased to undefined symbol '__libc_siglongjmp'
>> strong_alias (__libc_siglongjmp, __libc_longjmp)
>> ^
>> ./../include/libc-symbols.h:135:26: note: in definition of macro '_strong_alias'
>> extern __typeof (name) aliasname __attribute__ ((alias (#name)));
>> ^~~~~~~~~
>> ../sysdeps/s390/longjmp.c:35:1: note: in expansion of macro 'strong_alias'
>> strong_alias (__libc_siglongjmp, __libc_longjmp)
>
> Ah, there is #define __libc_siglongjmp magic here indeed. Does the
> attached patch fix it?
__libc_longjmp and __libc_siglongjmp are private external functions provided for
libpthread. They should never be called inside libc. Please revert
it and find another
way to fix hurd.
--
H.J.