mbox series

[00/17] nptl: Move remaining mutex symbols into libpthread

Message ID cover.1619105191.git.fweimer@redhat.com
Headers show
Series nptl: Move remaining mutex symbols into libpthread | expand

Message

Florian Weimer April 22, 2021, 3:39 p.m. UTC
This series moves all the mutex and mutex attributes symbols into
libpthread.  It is fairly standard stuff.  Two more legacy _np functions
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(-)

Comments

H.J. Lu April 22, 2021, 9:11 p.m. UTC | #1
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
>
Florian Weimer April 22, 2021, 9:29 p.m. UTC | #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
H.J. Lu April 22, 2021, 9:50 p.m. UTC | #3
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.
Andreas Schwab April 26, 2021, 3:48 p.m. UTC | #4
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.
Florian Weimer April 26, 2021, 4:02 p.m. UTC | #5
* 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
Andreas Schwab April 26, 2021, 4:19 p.m. UTC | #6
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.
Florian Weimer April 26, 2021, 4:24 p.m. UTC | #7
* 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
Andreas Schwab April 26, 2021, 4:43 p.m. UTC | #8
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.
Florian Weimer April 26, 2021, 4:50 p.m. UTC | #9
* 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
Andreas Schwab April 26, 2021, 5:51 p.m. UTC | #10
Does your bison use threads?

Andreas.
Florian Weimer April 26, 2021, 5:57 p.m. UTC | #11
* 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
Dmitry V. Levin April 26, 2021, 6:01 p.m. UTC | #12
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.
Florian Weimer April 26, 2021, 6:13 p.m. UTC | #13
* 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
Andreas Schwab April 26, 2021, 6:19 p.m. UTC | #14
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.