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