bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: build problems on old Linux libc5


From: Bruno Haible
Subject: Re: build problems on old Linux libc5
Date: Wed, 2 Apr 2008 00:07:10 +0200
User-agent: KMail/1.5.4

[CCing bug-gnulib. Please trim bug-gnu-gettext from the CC when replying.]

Alain Guibert wrote to bug-gnu-gettext:
> On my old Linux box (Intel Pentium 200 MMX, Debian bo, kernel 2.0.40,
> gcc 2.7.2.1, libc 5.4.33, GNU ld cygnus-2.7.1, libiconv 1.12, pth 2.0.7,
> i586-pc-linux-gnulibc1) during gettext 0.17 build, make check fails
> four tests:
> 
> | $ ./configure --disable-threads
> | [...]
> | checking for snprintf... yes
> | checking for vsnprintf... yes
> | checking for wcwidth... no
> | [...]
> | $ make check
> | [...]
> | FAIL: test-c-strcase.sh
> | test-snprintf.c:61: assertion failed
> | FAIL: test-snprintf
> | test-vsnprintf.c:74: assertion failed
> | FAIL: test-vsnprintf
> | test-wcwidth.c:45: assertion failed
> | FAIL: test-wcwidth
> 
> 
> BTW ./configure of 0.17 fails to detect long longs, which do work (and
> were correctly detected by gettext 0.16.1):
> 
> | checking for unsigned long long int... no
> | checking for long long int... no
> 
> That seemingly is due to the preprocessor not able to compare long longs
> constants, as shown by config.log:
> 
> | configure:26110: checking for long long int
> | configure:26160: gcc -o conftest -g -O2   conftest.c  >&5
> | conftest.c:57: two `l's in integer constant
> | conftest.c:60: two `l's in integer constant
> | configure:26166: $? = 1
> 
> Where lines 57 and 60 are:
> 
> |       #if ! (-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
> |       #if ! (18446744073709551615ULL <= -1ull)
> 
> Without these preprocessor 6 lines block, the test for long long
> compiles and succeeds.

Thanks for reporting this (although we intend to minimize our efforts for
such extremely old platforms).

The behaviour change in "checking for long long int" is intended. The users
of the gnulib macros now expect to be able to use long longs in preprocessor
directives (even if there are some known bugs with values outside the
32-bit 'int' range).

Regarding the four other failures, I cannot guess what the problem is with the
little info that you gave. To get more info, please recompile the package
with CFLAGS="-g" (no -O2), and investigate the failures with gdb:
  $ gdb test-snprintf
  $ gdb test-vsnprintf
  $ gdb test-wcwidth
  $ sh -x test-c-strcase.sh
as usual (looking at the stack trace, setting breakpoints, single-stepping,
etc.)

Bruno





reply via email to

[Prev in Thread] Current Thread [Next in Thread]