[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Build issues with gettext 0.20.2 and 0.21 on Solaris 10 i386 with 64
Re: Build issues with gettext 0.20.2 and 0.21 on Solaris 10 i386 with 64 bit
Tue, 1 Dec 2020 19:29:34 +0100
Am 22.11.2020 um 12:22 schrieb Dagobert Michelsen <firstname.lastname@example.org>:
> Am 17.11.2020 um 22:55 schrieb Bruno Haible <email@example.com>:
>>> I am currently trying to compile the most recent gettext on Solaris 10 and
>>> found an issue.
>>> The error shows on Solaris 10 i386 64 bit only, sparc and i386 32 bit are
>>> not affected:
>>> gmake: Entering directory
>>> /opt/csw/bin/gcc-5.5 -DHAVE_CONFIG_H -I. -I.. -I. -I. -I.. -I../lib
>>> -I./../lib -DSRCDIR=\"./\" -I/opt/csw/include -O2 -pipe
>>> -fno-omit-frame-pointer -m64 -march=opteron -MT hello.o -MD -MP -MF
>>> .deps/hello.Tpo -c -o hello.o hello.c
>>> mv -f .deps/hello.Tpo .deps/hello.Po
>>> /bin/bash ../libtool --tag=CC --mode=link /opt/csw/bin/gcc-5.5 -O2
>>> -pipe -fno-omit-frame-pointer -m64 -march=opteron -m64 -march=opteron
>>> -L/opt/csw/lib/64 -o hello hello.o ../lib/libtextstyle.la
>>> libtool: link: /opt/csw/bin/gcc-5.5 -O2 -pipe -fno-omit-frame-pointer -m64
>>> -march=opteron -m64 -march=opteron -o .libs/hello hello.o
>>> -L/opt/csw/lib/64 ../lib/.libs/libtextstyle.so -lm -ltermcap
>>> Undefined first referenced
>>> symbol in file
>>> iconv_ostream_create ../lib/.libs/libtextstyle.so
>> This symbol is only defined in HAVE_ICONV is set to 1 in config.h.
>> Can you search config.log for "checking for iconv" ?
> That was a good hint! Indeed iconv is not detected properly on amd64 in the
> snapshot 2020-11-16, but it was on 0.20.1. For all other ISAs like sparc,
> and i386 the detection works fine for both compared versions.
I finally found the issue: gettext after 0.20.1 uses a more recent version of
with linker ABI check located in host-cpu-c-abi.m4. This ABI check was not
up until gettext 0.20.1 hence compilation for amd64 worked.
Now regarding the error in detail: the check tries to determine which ABI a
can run as derived from the $host_cpu value. The error lies in the assumption
$host_cpu == i386 always implies C ABI i386, which is wrong at least for
where $host_cpu is always i386 for all CPU types including 64 bit.
Maybe "isainfo -k“ should be used instead in conjunction with a Solaris
This patch works for me but as HOST_CPU_C_ABI can have i386 and x86_64-x32 as
there is probably an intention to differentiate here:
diff --git a/m4/host-cpu-c-abi.m4 b/m4/host-cpu-c-abi.m4
index 6db2aa2..3e40db7 100644
@@ -55,12 +55,7 @@ AC_DEFUN([gl_HOST_CPU_C_ABI],
[case "$host_cpu" in
- i86 )
- x86_64 )
+ i86 | x86_64 )
# On x86_64 systems, the C compiler may be generating code in one of
# these ABIs:
# - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
Btw, the updated gettext is a requirement for gnulib CI.
"You don't become great by trying to be great, you become great by wanting to
and then doing it so hard that you become great in the process." - xkcd #896
- Re: Build issues with gettext 0.20.2 and 0.21 on Solaris 10 i386 with 64 bit,
Dagobert Michelsen <=