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

Bug#184762: libc6-dev exposes "long long" to non-GNU compilers



Package: libc6-dev
Version: 2.3.1-14

The debian patch "cvs.dpatch" adds an upstream line to

  sysdeps/generic/bits/types.h

The line looks like this:

#define __UQUAD_TYPE            unsigned long long int

other changes in the patch proceed to use __UQUAD_TYPE in places not
protected by "#ifdef __GNUC__" preprocessor statements.  I looked in glibc
2.3.2 and found the same lines, but I'm reporting the bug here first in
case the patch didn't get all the necessary changes to avoid this problem.

I use the "Comeau C++" compiler (www.comeaucomputing.com), which is a
non-GNU C++ compiler with strict ISO C++ conformance.  It does not support
the "long long" type unless a special compiler flag is added.  The
following lines show the problem I originally encountered:

$ cat > t1.cxx <<EOF
#include <iostream>
EOF
$ como t1.cxx
"/usr/include/bits/types.h", line 131: error: the type "long long" is
          nonstandard
  typedef __DEV_T_TYPE __dev_t; /* Type of device numbers.  */

This problem just started when I updated to version 2.3.1-14 of the
libc6-dev package.  The previous version did not expose "long long" unless
__GNUC__ was defined.

Thanks for your time,
-Brad




Reply to: