bug-gnu-libiconv
[Top][All Lists]
Advanced

[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





reply via email to

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