* Jakub Jelinek: > On Mon, Jul 12, 2021 at 10:26:47AM +0200, Florian Weimer via Gcc-patches > wrote: >> <limits.h> is included indirectly in the #pragma GCC visibility hidden >> block. With glibc 2.34, <limits.h> needs a declaration of the sysconf >> function, and including it under hidden visibility turns other calls >> to sysconf into hidden references, leading to a linker failure. >> >> libgomp/ChangeLog: >> >> * libgomp.h: Include <limits.h>. > > If this is because of the config/linux/sem.h #include <limits.h>, > I'd prefer not to include that header instead, we rely on being compiled > by GCC anyway (and clang/icc support __INT_MAX__ anyway). > > Or e.g. config/posix/sem.h uses > #ifdef HAVE_ATTRIBUTE_VISIBILITY > # pragma GCC visibility push(default) > #endif > > #include <semaphore.h> > > #ifdef HAVE_ATTRIBUTE_VISIBILITY > # pragma GCC visibility pop > #endif > > 2021-07-12 Jakub Jelinek <ja...@redhat.com> > Florian Weimer <fwei...@redhat.com> > > * config/linux/sem.h: Don't include limits.h. > (SEM_WAIT): Define to -__INT_MAX__ - 1 instead of INT_MIN. > > --- libgomp/config/linux/sem.h.jj 2021-01-18 07:18:42.360339646 +0100 > +++ libgomp/config/linux/sem.h 2021-07-12 15:18:10.121178404 +0200 > @@ -33,10 +33,8 @@ > #ifndef GOMP_SEM_H > #define GOMP_SEM_H 1 > > -#include <limits.h> /* For INT_MIN */ > - > typedef int gomp_sem_t; > -#define SEM_WAIT INT_MIN > +#define SEM_WAIT (-__INT_MAX__ - 1) > #define SEM_INC 1 > > extern void gomp_sem_wait_slow (gomp_sem_t *, int);
I tested this on csky-linux-gnuabiv2 with the glibc version that failed before, and it works. So I guess your version is fine, too. Thanks, Florian