reopen 594820 thanks Le vendredi 27 mai 2011 à 16:28 +0200, Michael Wild a écrit : > On 05/27/2011 02:03 AM, Debian Bug Tracking System wrote: > > > > Sorry, still doesn't work for me: > > echo "#include <fenv.h>" | clang -xc++ -E - | fgrep fenv.h > # 1 "/usr/include/c++/4.5/fenv.h" 1 3 > # 31 "/usr/include/c++/4.5/fenv.h" 3 > # 31 "/usr/include/c++/4.5/fenv.h" 3 > # 34 "/usr/include/c++/4.5/fenv.h" 2 3 > # 1 "/usr/include/c++/4.4/fenv.h" 1 3 > # 36 "/usr/include/c++/4.5/fenv.h" 2 3 > > Instead of /usr/include/c++/4.5/fenv.h including /usr/include/fenv.h, > clang finds /usr/include/c++/4.4/fenv.h instead.
On my system, it does use version 4.5: $ cat plop.c #include <fenv.h> int main(){ return 0; } [17:46:38][sylvestre@korcula] /tmp$ clang -o plop plop.cpp [17:46:41][sylvestre@korcula] /tmp$ cp plop.cpp plop.c [17:46:47][sylvestre@korcula] /tmp$ clang -o plop plop.c Which gcc version do you have on your system ? (I am using my workstation to test, it might be a bit dirty). > The problem is, that clang still searches all possible > /usr/include/c++/4.X directories in descending version-order, where it > should stop after the first one found. No, looks like it continues. It is adding paths into the vector: std::vector<std::pair<IncludeDirGroup, DirectoryLookup> > IncludePath; (you can try with the -v option of clang). > This was solved for me by forcing > the include-directories in the configure-options (refer to my > debdiff.patch for the details). When the options are set, it disables the automatic detection (which makes more than half of your patch useless) in ./lib/Frontend/InitHeaderSearch.cpp void InitHeaderSearch:: AddDefaultCPlusPlusIncludePaths(const llvm::Triple &triple) { llvm::Triple::OSType os = triple.getOS(); llvm::StringRef CxxIncludeRoot(CXX_INCLUDE_ROOT); if (CxxIncludeRoot != "") { llvm::StringRef CxxIncludeArch(CXX_INCLUDE_ARCH); if (CxxIncludeArch == "") AddGnuCPlusPlusIncludePaths(CxxIncludeRoot, triple.str().c_str(), CXX_INCLUDE_32BIT_DIR, CXX_INCLUDE_64BIT_DIR, triple); else AddGnuCPlusPlusIncludePaths(CxxIncludeRoot, CXX_INCLUDE_ARCH, CXX_INCLUDE_32BIT_DIR, CXX_INCLUDE_64BIT_DIR, triple); return; } Thanks, Sylvestre -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org