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

Bug#582698: libc6-dev: INTMAX_MAX definition yields build failure in 32-bit C90 mode though intmax_t is supported



Package: libc6-dev
Version: 2.10.2-8
Severity: minor

The INTMAX_MAX definition in /usr/include/stdint.h yields build
failure in 32-bit C90 mode (x86_64 machines with the -m32 gcc
switch and x86 machines).

$ cat intmax-test.c
#include <stdint.h>
int main (void)
{
  intmax_t x;
  x = INTMAX_MAX;
  return 0;
}
$ gcc -m32 -ansi -pedantic-errors intmax-test.c
intmax-test.c:5:1: error: use of C99 long long integer constant

Support for intmax_t is not expected to work in C90 mode, but in
such a case, the failure should probably occur on the <stdint.h>
inclusion or "intmax_t x;" line. Otherwise I wonder whether the
failure on INTMAX_MAX is intended and/or fixable.

The consequence of this inconsistency is the following: for a
software that uses intmax_t optionally (such as MPFR), as intmax_t
works fine, autoconf detects that intmax_t is supported, but then
the build of the software fails if it uses INTMAX_MAX.

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.31-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=POSIX, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages libc6-dev depends on:
ii  libc-dev-bin                  2.10.2-8   Embedded GNU C Library: Developmen
ii  libc6                         2.10.2-8   Embedded GNU C Library: Shared lib
ii  linux-libc-dev                2.6.32-12  Linux support headers for userspac

Versions of packages libc6-dev recommends:
ii  gcc [c-compiler]              4:4.4.3-1  The GNU C compiler
ii  gcc-4.1 [c-compiler]          4.1.2-29   The GNU C compiler
ii  gcc-4.3 [c-compiler]          4.3.4-10   The GNU C compiler
ii  gcc-4.4 [c-compiler]          4.4.4-1    The GNU C compiler

Versions of packages libc6-dev suggests:
ii  glibc-doc                     2.10.2-8   Embedded GNU C Library: Documentat
ii  manpages-dev                  3.24-1     Manual pages about using GNU/Linux

-- no debconf information



Reply to: