David Edelsohn <dje....@gmail.com> writes:

> On Sun, Nov 19, 2023 at 5:15 PM Bruno Haible <br...@clisp.org> wrote:
>
>> David Edelsohn wrote:
>> > --disable-threads currently does not completely disable threads.  Bruno
>> is
>> > suggesting --enable-threads=isoc that relies on mtx mutex functions in
>> libc.
>>
>> Unfortunately, as said in the other mail today, relying only on mtx_*
>> functions
>> did not drop the dependency towards libpthreads.
>>
>> So, I've made a new release gettext-0.22.4, that includes only these
>> changes:
>>
>>   - AM_GNU_GETTEXT now recognizes a statically built libintl on macOS and
>> AIX.
>>
>>   - Passing --disable-threads now builds a libintl that, on AIX, does not
>>     need -lpthread.
>>
>>   - Other build fixes on AIX.
>>
>> > Yes, GCC should configure the in tree gettext with --disable-threads, but
>> > that configure option is not completely effective and does not produce a
>> > build without threads references.
>>
>> Now it is effective. But you (Arsen) should state in the documentation
>> (gcc/doc/install.texi) that for --disable-threads to have this effect,
>> one needs gettext version 0.22.4 or newer.
>>
>
> So the question is do we want to change GCC on AIX to always link against
> pthreads so that GCC can build with default, external builds of gettext
> libintl.  I don't see a path for i18n support to work for GCC on AIX
> without that unfortunate change.

Well, if detectable by the build system for, I imagine we could avoid
pthread if gettext is built without them.  With the 'private' gettext
build, we should never need threads anyway.

P.S: Building on AIX is nearly successful.  gettext-0.22.4 builds, twice
or even thrice, but ends up producing a bootstrap comparison fail:

  make[3]: Leaving directory '/home/arsen/build'
  Comparing stages 2 and 3
  Bootstrap comparison failure!
  gettext/libasprintf/autosprintf.o differs
  make[2]: *** [Makefile:23435: compare] Error 1

Upon inspecting these files, I see the following diff:

~ 1 $ git diff <(objdump --all-headers autosprintf.o2) <(objdump --all-headers 
autosprintf.o3)
diff --git a/dev/fd/63 b/dev/fd/62
--- a/dev/fd/63
+++ b/dev/fd/62
...
@@ -92,7 +92,7 @@ AUX indx   30 prmhsh 0 snhsh 0 typ 2 algn 0 clss 0 stb 0 
snstb 0
 AUX val    23 prmhsh 0 snhsh 0 typ 1 algn 4 clss 1 stb 0 snstb 0
 [ 58](sec  1)(fl 0x00)(ty    0)(scl 107) (nx 1) 0x00000460 _autosprintf.ro_
 AUX val   312 prmhsh 0 snhsh 0 typ 1 algn 4 clss 1 stb 0 snstb 0
-[ 60](sec  1)(fl 0x00)(ty    0)(scl   2) (nx 1) 0x00000460 
_GLOBAL__F_.._.._.._gcc_gettext_gettext_runtime_libasprintf_autosprintf.cc_DFF67DD7_0xa20d51b1d7a1772f
+[ 60](sec  1)(fl 0x00)(ty    0)(scl   2) (nx 1) 0x00000460 
_GLOBAL__F_.._.._.._gcc_gettext_gettext_runtime_libasprintf_autosprintf.cc_DFF67DD7_0x9c04058e89d7a7a4
 AUX indx   58 prmhsh 0 snhsh 0 typ 2 algn 0 clss 1 stb 0 snstb 0
 [ 62](sec  2)(fl 0x00)(ty    0)(scl 107) (nx 1) 0x000005a0 _autosprintf.rw_
 AUX val     0 prmhsh 0 snhsh 0 typ 1 algn 4 clss 5 stb 0 snstb 0

I am unsure what this symbol is.  It does not appear in the stripped
binary.
-- 
Arsen Arsenović

Attachment: signature.asc
Description: PGP signature

Reply via email to