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

Bug#272401: g++-3.3: Nonstandard location for stdlibc++ header files



Erik Schnetter writes:
> Package: g++-3.3
> Version: 1:3.3.4-6sarge1.2
> Severity: normal
> 
> The Debian version of g++ installs the libstdc++ header files into the
> directroy "/usr/include/c++/3.3".  The "standard" location is the
> slightly different "/usr/include/c++/3.3.4".  Is there a reason for
> this?  This breaks e.g. Intel's C++ compiler icpc 8.1, which by
> default wants to use the g++ header and library files in order to
> create binary compatible code.
> 
> It is arguably Intel's task to make their compiler compatible with
> g++; however, since in this case Debian seems to be different from
> what a "standard" g++ install would do, I want to argue that Debian
> should also use the "standard" include file location.  Unless, of
> course, there is agood reason for begin different.

The reason is to avoid changing the include path across subminor gcc
versions. If the subminor version number is included in the include
path, a package needs to depend on the subminor gcc version number and
breaks, when the subminor version changes.

IMO icc should not assume anything, but look how gcc is configured:

$ g++ -v
Reading specs from /usr/lib/gcc-lib/i486-linux/3.3.4/specs
Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --enable-__cxa_atexit --enable-clocale=gnu --enable-debug --enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i486-linux
Thread model: posix
gcc version 3.3.4 (Debian 1:3.3.4-12)

$ g++ -v 2>&1 | sed -n 's/.*--with-gxx-include-dir=\([^ ]*\).*/\1/p'
/usr/include/c++/3.3



Reply to: