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

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

Re: [bug-gnu-libiconv] libiconv 1.12 broken on solaris


From: Bruno Haible
Subject: Re: [bug-gnu-libiconv] libiconv 1.12 broken on solaris
Date: Sun, 7 Dec 2008 16:14:47 +0100
User-agent: KMail/1.9.9

Hi,

Philip Brown wrote:
> I havent compiled libiconv since 1.9.2. Unfortunately, it seems that
> someone has broken it for solaris since then.
> 
> When it worked, there was no overly baroque fake "stdint.h" file.
>
> The one you have now in 1.12, crashes, with an error on the line
> 
> typedef int _verify_intmax_size[2*(sizeof(intmax_t) ==sizeof(uintmax_t))-1];
> 
> around line 257

Yes. libiconv now tries to assume a little more of ISO C.

> Solaris itself has perfectly valid headers.

Not so. Solaris lacks a compliant <stdint.h>. On top of that, the cc compiler
has bugs with 'long long' that make the autoconf tests concluded that
'long long' is unusable while 'unsigned long long' appears to be usable.

libiconv 1.13 will deal with this better.

> If I replace the entire srclib/stdint.h file with the following lines,
> everything compiles fine:
> 
> ============================================================
> 
> #include <sys/types.h>
> #include <limits.h>
> 
> /* Verify that intmax_t and uintmax_t have the same size.  Too much code
>    breaks if this is not the case.  If this check fails, the reason is likely
>    to be found in the autoconf macros.  */
> typedef int _verify_intmax_size[2*(sizeof(intmax_t) == sizeof(uintmax_t))-1];
> 
> ============================================================

You can work around by
  - downgrading to libiconv-1.11.1, or
  - build with a replacement file, as you did, or
  - just don't build the 'iconv' program, and do "make -k install" to only
    install the library.

Thanks for the report.

Bruno




reply via email to

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