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: