On Thu, Nov 16, 2023 at 1:52 PM Bruno Haible <br...@clisp.org> wrote:

> David Edelsohn wrote:
> > I manually commented out HAVE_PTHREAD_API from config.h and produced a
> > libintl.a without references to pthreads.
>
> Good finding!
>
> Commenting out HAVE_PTHREAD_API from config.h is also what makes the
> option --enable-threads=isoc work as expected on AIX 7.3.
>

I reconfigured and built gettext with --enable-threads=isoc .  libintl.a
still contains references to pthread_mutex and friends:

$ nm -BCpg libintl.a  | grep pthread

         - U __n_pthreads

         - U .pthread_mutex_lock

         - U .pthread_mutex_unlock

         - U .pthread_mutex_lock

         - U .pthread_mutex_unlock
         - U __n_pthreads

from files mbrtowc, setlocale_null, and vasnwprintf.

I tested on an AIX 7.2.5 system and confirmed that libc does provide the
mtx_ symbols:

$ nm -BCpg libc.a | grep mtx_

         0 T .mtx_timedlock

       160 T .mtx_unlock

       256 T .mtx_trylock

       416 T .mtx_lock

       512 T .mtx_init

       736 T .mtx_destroy

        80 D mtx_timedlock

        92 D mtx_unlock

       104 D mtx_trylock

       116 D mtx_lock

       128 D mtx_init

       140 D mtx_destroy


Were you suggesting that --enable-threads=isoc would work now or that it
would require further changes for a future release?


At the moment, configuring gettext with --disable-threads and manually
modifying config.h is the only method that produces

libintl.a without references to pthreads allowing GCC to build on AIX with
NLS enabled.


Thanks, David

Reply via email to