David Edelsohn writes: > _GLOBAL__F_xxx is the EH frame data. > > It's using the filename with full path for the unique name, which is why it > includes .._.._.. . Apparently it is adding a random number as well for > uniqueness. I guess that this is the downside of building in tree, and > apparently it is rebuilding gettext itself with the different stages of the > compiler, so the appended random number changes. Jakub pointed me to -frandom-seed=, which stabilized this, it'd seem. Running a clean build to test (hacking an existing one worked). Will report back. > Thanks, David > > > On Mon, Nov 20, 2023 at 4:23 PM Arsen Arsenović wrote: > >> >> David Edelsohn writes: >> >> > On Sun, Nov 19, 2023 at 5:15 PM Bruno Haible 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ć >> -- Arsen Arsenović