[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [bug-gnu-libiconv] Building libiconv on Solaris 8
From: |
Bruno Haible |
Subject: |
Re: [bug-gnu-libiconv] Building libiconv on Solaris 8 |
Date: |
Mon, 12 May 2008 14:58:10 +0200 |
User-agent: |
KMail/1.5.4 |
Hi,
Atro Tossavainen wrote:
> I'm trying to get libiconv to work on Solaris.
>
> I already have gettext installed. It's quite old, though... 0.11.2 :)
>
> Since Solaris does not have a stdint.h, the configure process creates
> its own, but there's a problem with it:
>
> cc -DHAVE_CONFIG_H -DEXEEXT=\"\" -I. -I.. -I../lib -I../intl
> -DDEPENDS_ON_LIBICONV=1 -DDEPENDS_ON_LIBINTL=1
> -I/usr/local/gettext/latest/include -g -c -o width.o `test -f
> 'uniwidth/width.c' || echo './'`uniwidth/width.c
> "./stdint.h", line 257: zero or negative subscript
> cc: acomp failed for uniwidth/width.c
> gmake[2]: *** [width.o] Error 2
>
> line 257 in srclib/stdint.h is:
>
> typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t))
> -1];
The <stdlib.h> substitute (borrowed from gnulib) tries to work around various
compiler bugs. In this case the compiler bugs affect signed 64-bit integers
but not unsigned 64-bit integers. So intmax_t does not match uintmax_t, and
all bets are off...
You can work around by
- downgrading to libiconv-1.11.1, or
- build with <sys/int_types.h>, as you did, or
- just don't build the 'iconv' program, and do "make -k install" to only
install the library.
> When I run a "make check", it goes fine until
>
> ./check-subst
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
The test has a comment: "This printf command crashes on Solaris 10."
This means that the failure is due to a bug in the Solaris printf command.
GNU has a working printf in the coreutils package.
I don't know how to avoid the use of 'printf' in that specific test.
Bruno