On Tue, Apr 3, 2018 at 12:26 PM, H.J. Lu wrote: > On Tue, Apr 3, 2018 at 1:20 AM, Samuel Thibault > wrote: >> Andreas Schwab, on mar. 03 avril 2018 10:10:21 +0200, wrote: >>> On Apr 03 2018, Samuel Thibault 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 :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. Here is my patch: https://sourceware.org/git/?p=glibc.git;a=commit;h=6253bacdc00de132dec452ff7c6ce3ba7fa23d81 which removed libc_hidden_def (__libc_longjmp) I am going to check in this path. -- H.J.