Message ID | cover.1619105191.git.fweimer@redhat.com |
---|---|
Headers | show |
Series | nptl: Move remaining mutex symbols into libpthread | expand |
On Thu, Apr 22, 2021 at 10:27 AM Florian Weimer via Libc-alpha <libc-alpha@sourceware.org> wrote: > > This series moves all the mutex and mutex attributes symbols into > libpthread. It is fairly standard stuff. Two more legacy _np functions Are your patches moving symbols into libpthread or libc? > are deprecated. > > Tested on i686-linux-gnu and x86_64-linux-gnu. Built with > build-many-glibcs.py. > > Florian Weimer (17): > nptl: Move pthread_mutex_getprioceiling into libc > nptl: Move pthread_mutex_setprioceiling into libc > nptl: Move pthread_mutex_timedlock, pthread_mutex_clocklock to libc > nptl: Move pthread_mutex_trylock, __pthread_mutex_trylock into libc > nptl: Move pthread_mutexattr_destroy into libc > nptl: Move pthread_mutexattr_getprioceiling into libc > nptl: Move pthread_mutexattr_getprotocol into libc > nptl: Move pthread_mutexattr_getpshared into libc > nptl: Move pthread_mutexattr_getrobust into libc > nptl: Move pthread_mutexattr_gettype into libc > nptl: Move pthread_mutexattr_init, __pthread_mutexattr_init into libc > nptl: Move pthread_mutexattr_setprioceiling into libc > nptl: Move pthread_mutexattr_setprotocol into libc > nptl: Move pthread_mutexattr_setpshared into libc > pthread: Use pthread_mutexattr_setrobust in tests > nptl: Move pthread_mutexattr_setrobust into libc > nptl: Move pthread_mutexattr_settype, __pthread_mutexattr_settype into > libc > > NEWS | 8 +++ > nptl/Makefile | 32 ++++----- > nptl/Versions | 68 ++++++++++++------- > nptl/libpthread-compat.c | 5 ++ > nptl/pthreadP.h | 17 +++-- > nptl/pthread_mutex_getprioceiling.c | 11 ++- > nptl/pthread_mutex_setprioceiling.c | 13 +++- > nptl/pthread_mutex_timedlock.c | 52 ++++++++++---- > nptl/pthread_mutex_trylock.c | 18 +++-- > nptl/pthread_mutexattr_destroy.c | 13 +++- > nptl/pthread_mutexattr_getprioceiling.c | 13 +++- > nptl/pthread_mutexattr_getprotocol.c | 11 ++- > nptl/pthread_mutexattr_getpshared.c | 11 ++- > nptl/pthread_mutexattr_getrobust.c | 18 ++++- > nptl/pthread_mutexattr_gettype.c | 17 ++++- > nptl/pthread_mutexattr_init.c | 17 +++-- > nptl/pthread_mutexattr_setprioceiling.c | 11 ++- > nptl/pthread_mutexattr_setprotocol.c | 11 ++- > nptl/pthread_mutexattr_setpshared.c | 11 ++- > nptl/pthread_mutexattr_setrobust.c | 17 ++++- > nptl/pthread_mutexattr_settype.c | 23 +++++-- > sysdeps/nptl/pthread.h | 25 +++++-- > sysdeps/pthread/tst-robust1.c | 2 +- > sysdeps/pthread/tst-robust10.c | 2 +- > sysdeps/pthread/tst-robust7.c | 2 +- > sysdeps/pthread/tst-robust8.c | 2 +- > sysdeps/pthread/tst-robust9.c | 4 +- > sysdeps/unix/sysv/linux/aarch64/libc.abilist | 45 ++++++++++++ > .../sysv/linux/aarch64/libpthread.abilist | 25 ------- > sysdeps/unix/sysv/linux/alpha/libc.abilist | 45 ++++++++++++ > .../unix/sysv/linux/alpha/libpthread.abilist | 26 +------ > sysdeps/unix/sysv/linux/arc/libc.abilist | 45 ++++++++++++ > .../unix/sysv/linux/arc/libpthread.abilist | 25 ------- > sysdeps/unix/sysv/linux/arm/be/libc.abilist | 45 ++++++++++++ > .../unix/sysv/linux/arm/be/libpthread.abilist | 26 +------ > sysdeps/unix/sysv/linux/arm/le/libc.abilist | 45 ++++++++++++ > .../unix/sysv/linux/arm/le/libpthread.abilist | 26 +------ > sysdeps/unix/sysv/linux/csky/libc.abilist | 45 ++++++++++++ > .../unix/sysv/linux/csky/libpthread.abilist | 25 ------- > sysdeps/unix/sysv/linux/hppa/libc.abilist | 45 ++++++++++++ > .../unix/sysv/linux/hppa/libpthread.abilist | 26 +------ > sysdeps/unix/sysv/linux/i386/libc.abilist | 45 ++++++++++++ > .../unix/sysv/linux/i386/libpthread.abilist | 26 +------ > sysdeps/unix/sysv/linux/ia64/libc.abilist | 45 ++++++++++++ > .../unix/sysv/linux/ia64/libpthread.abilist | 26 +------ > .../sysv/linux/m68k/coldfire/libc.abilist | 45 ++++++++++++ > .../linux/m68k/coldfire/libpthread.abilist | 26 +------ > .../unix/sysv/linux/m68k/m680x0/libc.abilist | 45 ++++++++++++ > .../sysv/linux/m68k/m680x0/libpthread.abilist | 26 +------ > .../sysv/linux/microblaze/be/libc.abilist | 45 ++++++++++++ > .../linux/microblaze/be/libpthread.abilist | 25 ------- > .../sysv/linux/microblaze/le/libc.abilist | 45 ++++++++++++ > .../linux/microblaze/le/libpthread.abilist | 25 ------- > .../sysv/linux/mips/mips32/fpu/libc.abilist | 45 ++++++++++++ > .../sysv/linux/mips/mips32/libpthread.abilist | 26 +------ > .../sysv/linux/mips/mips32/nofpu/libc.abilist | 45 ++++++++++++ > .../sysv/linux/mips/mips64/libpthread.abilist | 26 +------ > .../sysv/linux/mips/mips64/n32/libc.abilist | 45 ++++++++++++ > .../sysv/linux/mips/mips64/n64/libc.abilist | 45 ++++++++++++ > sysdeps/unix/sysv/linux/nios2/libc.abilist | 45 ++++++++++++ > .../unix/sysv/linux/nios2/libpthread.abilist | 25 ------- > .../linux/powerpc/powerpc32/fpu/libc.abilist | 45 ++++++++++++ > .../powerpc/powerpc32/libpthread.abilist | 26 +------ > .../powerpc/powerpc32/nofpu/libc.abilist | 45 ++++++++++++ > .../linux/powerpc/powerpc64/be/libc.abilist | 45 ++++++++++++ > .../powerpc/powerpc64/be/libpthread.abilist | 26 +------ > .../linux/powerpc/powerpc64/le/libc.abilist | 45 ++++++++++++ > .../powerpc/powerpc64/le/libpthread.abilist | 25 ------- > .../unix/sysv/linux/riscv/rv32/libc.abilist | 45 ++++++++++++ > .../sysv/linux/riscv/rv32/libpthread.abilist | 25 ------- > .../unix/sysv/linux/riscv/rv64/libc.abilist | 45 ++++++++++++ > .../sysv/linux/riscv/rv64/libpthread.abilist | 25 ------- > .../unix/sysv/linux/s390/s390-32/libc.abilist | 45 ++++++++++++ > .../linux/s390/s390-32/libpthread.abilist | 26 +------ > .../unix/sysv/linux/s390/s390-64/libc.abilist | 45 ++++++++++++ > .../linux/s390/s390-64/libpthread.abilist | 26 +------ > sysdeps/unix/sysv/linux/sh/be/libc.abilist | 45 ++++++++++++ > .../unix/sysv/linux/sh/be/libpthread.abilist | 26 +------ > sysdeps/unix/sysv/linux/sh/le/libc.abilist | 45 ++++++++++++ > .../unix/sysv/linux/sh/le/libpthread.abilist | 26 +------ > .../sysv/linux/sparc/sparc32/libc.abilist | 45 ++++++++++++ > .../linux/sparc/sparc32/libpthread.abilist | 26 +------ > .../sysv/linux/sparc/sparc64/libc.abilist | 45 ++++++++++++ > .../linux/sparc/sparc64/libpthread.abilist | 26 +------ > .../unix/sysv/linux/x86_64/64/libc.abilist | 45 ++++++++++++ > .../sysv/linux/x86_64/64/libpthread.abilist | 26 +------ > .../unix/sysv/linux/x86_64/x32/libc.abilist | 45 ++++++++++++ > .../sysv/linux/x86_64/x32/libpthread.abilist | 25 ------- > 88 files changed, 1773 insertions(+), 845 deletions(-) > > -- > 2.30.2 >
* H. J. Lu: > On Thu, Apr 22, 2021 at 10:27 AM Florian Weimer via Libc-alpha > <libc-alpha@sourceware.org> wrote: >> >> This series moves all the mutex and mutex attributes symbols into >> libpthread. It is fairly standard stuff. Two more legacy _np functions > > Are your patches moving symbols into libpthread or libc? To libc. Yes, the series subject is wrong, sorry. The commit subjects are coorrect. Florian
On Thu, Apr 22, 2021 at 2:28 PM Florian Weimer <fweimer@redhat.com> wrote: > > * H. J. Lu: > > > On Thu, Apr 22, 2021 at 10:27 AM Florian Weimer via Libc-alpha > > <libc-alpha@sourceware.org> wrote: > >> > >> This series moves all the mutex and mutex attributes symbols into > >> libpthread. It is fairly standard stuff. Two more legacy _np functions > > > > Are your patches moving symbols into libpthread or libc? > > To libc. Yes, the series subject is wrong, sorry. The commit subjects > are coorrect. > The patch series look good to me. Thanks.
One of the commits 10624a97e8..24f261f27f has broken bison on powerpc (all flavors). bison --yacc --name-prefix=__gettext --output /home/abuild/rpmbuild/BUILD/glibc-2.33.9000.438.g7f3e7c262c/cc-base/intl/plural.c plural.y plural.y:46.1-7: warning: POSIX Yacc does not support %define [-Wyacc] 46 | %define api.pure full | ^~~~~~~ plural.y:47.1-7: warning: POSIX Yacc does not support %expect [-Wyacc] 47 | %expect 7 | ^~~~~~~ make[2]: *** [Makefile:46: /home/abuild/rpmbuild/BUILD/glibc-2.33.9000.438.g7f3e7c262c/cc-base/intl/plural.c] Segmentation fault make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/glibc-2.33.9000.438.g7f3e7c262c/intl' make[1]: *** [Makefile:479: intl/subdir_lib] Error 2 make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/glibc-2.33.9000.438.g7f3e7c262c' make: *** [Makefile:9: all] Error 2 24f261f27f nptl: Remove __h_errno_location from libpthread 2b6a4307e9 nptl: Remove __res_state from libpthread 4baf02b332 nptl: Move pthread_spin_trylock into libc da8e3710d8 nptl: Move pthread_spin_lock into libc ce4b3b7bef nptl: Move pthread_spin_init, Move pthread_spin_unlock into libc c7b1cd4ad1 nptl: Move pthread_spin_destroy into libc d9b600c985 nptl: Move pthread_condattr_setpshared into libc 6a75fefc2c nptl: Move pthread_condattr_setclock into libc 2a775a9ea5 nptl: Move pthread_condattr_getpshared into libc ed00dcbbd6 nptl: Move pthread_condattr_getclock into libc b76c066d09 nptl: Move pthread_mutexattr_settype, __pthread_mutexattr_settype in> 1ec4cd5ab4 nptl: Move pthread_mutexattr_setrobust into libc 0bdd797945 pthread: Use pthread_mutexattr_setrobust in tests 8a229ee93c nptl: Move pthread_mutexattr_setpshared into libc 241ac38c33 nptl: Move pthread_mutexattr_setprotocol into libc c66772281f nptl: Move pthread_mutexattr_setprioceiling into libc 506385d30e nptl: Move pthread_mutexattr_init, __pthread_mutexattr_init into libc 2a23e899e2 nptl: Move pthread_mutexattr_gettype into libc 9b7ab14e11 nptl: Move pthread_mutexattr_getrobust into libc 2e825f7d5a nptl: Move pthread_mutexattr_getpshared into libc 9f2f158b35 nptl: Move pthread_mutexattr_getprotocol into libc d236322b6f nptl: Move pthread_mutexattr_getprioceiling into libc fd42022a10 nptl: Move pthread_mutexattr_destroy into libc a2b0f2e186 nptl: Move pthread_mutex_trylock, __pthread_mutex_trylock into libc 4372dc7eaa nptl: Move pthread_mutex_timedlock, pthread_mutex_clocklock to libc a2975191d0 nptl: Move pthread_mutex_setprioceiling into libc 4b85c6f55f nptl: Move pthread_mutex_getprioceiling into libc Andreas.
* Andreas Schwab: > One of the commits 10624a97e8..24f261f27f has broken bison on powerpc > (all flavors). 32-bit powerpc big-endian? I think I can get a machine for that, so I'll investigate. Sorry for the inconvenience. Thanks, Florian
On Apr 26 2021, Florian Weimer wrote: > * Andreas Schwab: > >> One of the commits 10624a97e8..24f261f27f has broken bison on powerpc >> (all flavors). ^^^^^^^^^^^ > > 32-bit powerpc big-endian? See above. Andreas.
* Andreas Schwab: > On Apr 26 2021, Florian Weimer wrote: > >> * Andreas Schwab: >> >>> One of the commits 10624a97e8..24f261f27f has broken bison on powerpc >>> (all flavors). > ^^^^^^^^^^^ >> >> 32-bit powerpc big-endian? > > See above. Please posted the affected target triplets. The 64-bit variants are easier for me to deal with than the 32-bit variant. Thanks, Florian
https://build.opensuse.org/project/monitor/home:Andreas_Schwab:glibc?defaults=0&succeeded=1&failed=1&arch_ppc=1&arch_ppc64=1&arch_ppc64le=1&repo_p=1&lastbuild=1 Andreas.
* Andreas Schwab:
> https://build.opensuse.org/project/monitor/home:Andreas_Schwab:glibc?defaults=0&succeeded=1&failed=1&arch_ppc=1&arch_ppc64=1&arch_ppc64le=1&repo_p=1&lastbuild=1
I can't reproduce the issue using powerpc-linux-gnu. Bison still works
for me at commit 25cb72820ac40e73acf130edf97c895cf9b0b43a (using an
explicit ld.so invocation, but that probably does not matter).
The glibc test suite is also clean. This is with gcc 8.2.1 and binutils
2.30.
Any suggestions how to debug this further?
Thanks,
Florian
Does your bison use threads? Andreas.
* Andreas Schwab:
> Does your bison use threads?
No, it's not even linked against libpthread. I didn't know it's an
option.
Thanks,
Florian
On Mon, Apr 26, 2021 at 07:57:11PM +0200, Florian Weimer via Libc-alpha wrote: > * Andreas Schwab: > > > Does your bison use threads? > > No, it's not even linked against libpthread. I didn't know it's an > option. bison itself doesn't use threads, but its gnulib part does nowadays. Unless configured with --disable-threads, it generates a few weak references to some libpthread symbols and uses them at runtime.
* Dmitry V. Levin: > On Mon, Apr 26, 2021 at 07:57:11PM +0200, Florian Weimer via Libc-alpha wrote: >> * Andreas Schwab: >> >> > Does your bison use threads? >> >> No, it's not even linked against libpthread. I didn't know it's an >> option. > > bison itself doesn't use threads, but its gnulib part does nowadays. > Unless configured with --disable-threads, it generates a few weak > references to some libpthread symbols and uses them at runtime. Interesting. Unfortunately I cannot easily get a buildroot with a glibc snapshot right now. I'll see if I can reproduce it on powerpc64le, after creating a suitable environment and rebuilding bison in it. Andreas, do you use some statically linked bootstrap bison? There are some iffy weak declarations in <libc-lockP.h> that could cause problems for static builds. Thanks, Florian
On Apr 26 2021, Florian Weimer wrote:
> Andreas, do you use some statically linked bootstrap bison?
No.
https://build.opensuse.org/package/binaries/openSUSE:Factory:PowerPC/bison/standard
Andreas.