From: "Arsen Arsenović" <arsen@aarsen.me>
To: Bruno Haible <bruno@clisp.org>
Cc: Richard Biener <richard.guenther@gmail.com>,
David Edelsohn <dje.gcc@gmail.com>,
GCC Patches <gcc-patches@gcc.gnu.org>,
bug-gettext@gnu.org
Subject: Re: building GNU gettext on AIX
Date: Thu, 16 Nov 2023 19:50:11 +0100 [thread overview]
Message-ID: <86msvdedlt.fsf@aarsen.me> (raw)
In-Reply-To: <6664645.lMtyQzBqa6@nimes>
[-- Attachment #1: Type: text/plain, Size: 2732 bytes --]
Bruno Haible <bruno@clisp.org> writes:
> David Edelsohn wrote:
>> > It is great that gettext and libintl can be built thread-safe, but GCC
>> > (cc1, gcov, etc.) are not pthreads applications and are not built with
>> > pthreads. Because libintl defaults to pthreads enabled, NLS cannot
>> > function in GCC on AIX by default.
>> ...
>> The latest issue is that a few files in gettext ignore --disable-pthreads
>> and creates a dependency on pthread_mutex.
>
> GNU gettext does not have an option '--disable-pthreads'. Instead, it has
> options
>
> --enable-threads={isoc|posix|isoc+posix|windows}
> specify multithreading API
>
> --disable-threads build without multithread safety
>
>> The issue appears to be that intl/gnulib-lib/{mbrtowc.c,setlocale_null.c}
>> include pthread.h based on HAVE_PTHREAD_API, which is defined as 1 in
>> intl/config.h build directory
>
> Yup, I confirm that the dependency comes from these two object files.
>
> Will the next GCC release support AIX 7.1.x ? Recall that AIX 7.1 went
> end-of-life on 2023-04-30 [1]
>
> * If no, then the simple solution would be to pass the configure option
> --enable-threads=isoc
> This should not introduce a link dependency, because the mtx_lock,
> mtx_unlock, and mtx_init functions are in libc in AIX ≥ 7.2. Currently it
> does not work (it still uses pthread_mutex_lock and pthread_mutex_unlock
> despite --enable-threads=isoc). But I could make this work and release
> a gettext 0.22.4 with the fix.
>
> * If yes, then the question is how distributors will in general package
> libintl on AIX. If it's installed in public locations (such as in
> /opt/freeware/{lib,lib64}/libintl.a on gcc119.fsffrance.org), then we
> have a problem: It may cause undefined behaviour in multithreaded
> packages that use GNU libintl.
> If you can guarantee that it will be installed in GCC-private directories
> (and outside the path where GCC looks for libraries to link with!) then
> it would be OK to install such a non-thread-safe libintl.
> But if you cannot guarantee that, we are in trouble.
The in-tree configuration already passes --disable-shared, so I imagine
passing --disable-threads would be OK too, for the case that it is
utilized. (relevant for the latter case: GCC-private build of libintl)
> How do other library vendors handle this issue on AIX? Do they ship two
> libraries, one MT-safe and one not? Under different names? Or in different
> library search paths?
>
> Bruno
>
> [1] https://www.ibm.com/support/pages/aix-support-lifecycle-information
--
Arsen Arsenović
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 381 bytes --]
next prev parent reply other threads:[~2023-11-16 18:51 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-14 20:37 [PATCH v3 0/2] Replace intl/ with out-of-tree GNU gettext David Edelsohn
2023-11-14 23:06 ` Arsen Arsenović
2023-11-15 1:49 ` David Edelsohn
2023-11-15 12:29 ` building GNU gettext on AIX Bruno Haible
2023-11-15 19:26 ` David Edelsohn
2023-11-15 21:22 ` Bruno Haible
2023-11-15 21:31 ` David Edelsohn
2023-11-15 22:39 ` Bruno Haible
2023-11-16 16:00 ` David Edelsohn
2023-11-16 16:35 ` David Edelsohn
2023-11-16 18:01 ` David Edelsohn
2023-11-16 18:17 ` David Edelsohn
2023-11-16 18:52 ` Bruno Haible
2023-11-16 22:18 ` David Edelsohn
2023-11-16 22:46 ` Bruno Haible
2023-11-16 23:10 ` Arsen Arsenović
2023-11-17 8:33 ` Richard Biener
2023-11-17 8:49 ` Arsen Arsenović
2023-11-17 12:24 ` Bruno Haible
2023-11-17 13:06 ` Arsen Arsenović
2023-11-16 23:38 ` David Edelsohn
2023-11-17 0:07 ` Bruno Haible
2023-11-17 0:15 ` David Edelsohn
[not found] ` <84B39BF1-33D5-488E-8CF5-D08B09417568@gmail.com>
2023-11-16 17:44 ` David Edelsohn
2023-11-16 18:47 ` Bruno Haible
2023-11-16 18:50 ` Arsen Arsenović [this message]
2023-11-16 18:59 ` Bruno Haible
2023-11-16 19:14 ` Arsen Arsenović
2023-11-19 19:49 ` Bruno Haible
2023-11-15 14:14 ` [PATCH v3 0/2] Replace intl/ with out-of-tree GNU gettext Arsen Arsenović
2023-11-15 15:51 ` Xi Ruoyao
2023-11-16 18:48 ` Arsen Arsenović
2023-11-15 17:19 ` David Edelsohn
2023-11-16 18:33 ` Arsen Arsenović
2023-11-16 21:11 ` Arsen Arsenović
2023-11-16 21:40 ` David Edelsohn
2023-11-16 22:19 ` Arsen Arsenović
2023-11-16 22:30 ` David Edelsohn
2023-11-16 22:32 ` Arsen Arsenović
2023-11-16 23:59 ` David Edelsohn
2023-11-17 8:34 ` Arsen Arsenović
2023-11-17 8:50 ` Richard Biener
2023-11-17 8:56 ` Arsen Arsenović
2023-11-17 14:41 ` David Edelsohn
2023-11-17 15:16 ` Arsen Arsenović
2023-11-17 16:07 ` David Edelsohn
2023-11-18 18:10 ` Arsen Arsenović
2023-11-19 21:55 ` Bruno Haible
2023-11-19 23:00 ` Bruno Haible
2023-11-19 23:06 ` Andrew Pinski
2023-11-20 1:17 ` David Edelsohn
2023-11-20 21:18 ` Arsen Arsenović
2023-11-20 21:38 ` David Edelsohn
2023-11-21 0:44 ` Arsen Arsenović
2023-11-20 23:00 ` Bruno Haible
2023-11-21 0:45 ` Arsen Arsenović
2023-11-21 13:13 ` Arsen Arsenović
2023-11-21 16:28 ` David Edelsohn
2023-11-21 20:58 ` Eric Gallager
2023-11-15 19:58 ` David Edelsohn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=86msvdedlt.fsf@aarsen.me \
--to=arsen@aarsen.me \
--cc=bruno@clisp.org \
--cc=bug-gettext@gnu.org \
--cc=dje.gcc@gmail.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=richard.guenther@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).