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: Alain Guibert
Subject: Re: build problems on old Linux libc5
Date: Fri, 18 Apr 2008 15:32:28 +0200 (CEST)
User-agent: Mutt/1.4.2.3i

Hi Bruno, and much thanks for your interest,

 On Wednesday, April 2, 2008 at 0:07:10 +0200, Bruno Haible wrote:

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

These efforts are much appreciated, thanks Bruno!


> 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).

But the preprocessor can define and assign long longs, and the compiler
is able to do everything with them. Not defining HAVE_LONG_LONG_INT may
waste this capacity, no?


> Regarding the four other failures, I cannot guess what the problem is
> with the little info that you gave.

I fear gdb breakpoints to be over me. But maybe some debug printfs can
already give some hints:

>>| FAIL: test-c-strcase.sh

Rather strange: LC_ALL=fr_FR setlocale(LC_ALL, "") returns NULL, and
following setlocale(LC_ALL, NULL) return "C". Outside of gettext, a
simple test program shows that setlocale() works normally and returns
"fr_FR" in both cases. If test-c-strn?casecmp.c are built with an -lc
inserted *before* /tmp/gettext-0.17/gettext-tools/intl/.libs/libintl.so,
then setlocale() behaves normally, and test-c-strcase.sh PASSes.


>>| checking for snprintf... yes
>>| test-snprintf.c:61: assertion failed
>>| FAIL: test-snprintf

Inserting a printf just before line 61:

| size=0 buf+size=12345
| size=1 buf+size=2345
| test-snprintf.c:62: assertion failed

It seems that libc snprintf() behaves as expected when size is 2 or
more. But when size is 0 or 1, retval = -1 and buf is fully overwritten.
Size 0 succeeds the ASSERT only because 0 bytes are compared.


>>| checking for vsnprintf... yes
>>| test-vsnprintf.c:74: assertion failed
>>| FAIL: test-vsnprintf

Same problem. The for loop modified to check sizes 0 and from 2 to 8
PASSes. But size 1 FAILs.


>>| checking for wcwidth... no
>>| test-wcwidth.c:45: assertion failed
>>| FAIL: test-wcwidth

wcwidth(32)=-1, and the same for all ASCII characters. I tried to modify
rpl_wcwidth(), but the test was not impacted: I suppose the test uses
the previously installed rpl_wcwidth(), not the one being built?


Alain.




reply via email to

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