On Thu, Nov 16, 2023 at 1:52 PM Bruno Haible <[email protected]> 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