<div dir="ltr">Not sure if there's a difference between GCC8 and previous versions. And not sure what this difference is. In my case GCC8 install path is not a standard system location, so I have to use it anyway.<div><br></div><div>If you what to find out why the behaviour is different in your case, it should not be difficult. The code in driver responsible for that it's very complex.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Dec 6, 2017 at 2:30 AM, Csaba Raduly <span dir="ltr"><<a href="mailto:rcsaba@gmail.com" target="_blank">rcsaba@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Why would this be necessary for GCC8, when it wasn't necessary for<br>
previous versions ?<br>
<div class="HOEnZb"><div class="h5"><br>
On Mon, Dec 4, 2017 at 11:14 PM, Dmitry Babokin <<a href="mailto:babokin@gmail.com">babokin@gmail.com</a>> wrote:<br>
> I build with --gcc-toolchain set to directory with gcc8 installation and it<br>
> works well for me.<br>
><br>
> On Tue, Nov 28, 2017 at 1:27 AM, Csaba Raduly via cfe-dev<br>
> <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br>
>><br>
>> Hi all,<br>
>><br>
>> After building and installing GCC trunk (GCC 8), clang doesn't find<br>
>> the Standard C++ Library any more:<br>
>><br>
>> /tmp$ cat > strm.cpp<br>
>> #include <iostream><br>
>> ^D<br>
>><br>
>> /tmp$ /usr/local/bin/clang++ -v strm.cpp<br>
>> clang version 6.0.0 (trunk 319018)<br>
>> Target: x86_64-unknown-linux-gnu<br>
>> Thread model: posix<br>
>> InstalledDir: /usr/local/bin<br>
>> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/<wbr>4.8<br>
>> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/<wbr>4.8.5<br>
>> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/<wbr>7<br>
>> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/<wbr>7.2.0<br>
>> Found candidate GCC installation:<br>
>> /usr/local/bin/../lib/gcc/x86_<wbr>64-pc-linux-gnu/8.0.0<br>
>> Selected GCC installation:<br>
>> /usr/local/bin/../lib/gcc/x86_<wbr>64-pc-linux-gnu/8.0.0<br>
>> Candidate multilib: .;@m64<br>
>> Candidate multilib: 32;@m32<br>
>> Selected multilib: .;@m64<br>
>>  "/usr/local/bin/clang-6.0" -cc1 -triple x86_64-unknown-linux-gnu<br>
>> -emit-obj -mrelax-all -disable-free -main-file-name strm.cpp<br>
>> -mrelocation-model static -mthread-model posix -mdisable-fp-elim<br>
>> -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables<br>
>> -fuse-init-array -target-cpu x86-64 -dwarf-column-info<br>
>> -debugger-tuning=gdb -v -resource-dir /usr/local/lib/clang/6.0.0<br>
>> -internal-isystem /usr/local/include -internal-isystem<br>
>> /usr/local/lib/clang/6.0.0/<wbr>include -internal-externc-isystem<br>
>> /usr/include/x86_64-linux-gnu -internal-externc-isystem /include<br>
>> -internal-externc-isystem /usr/include -fdeprecated-macro<br>
>> -fdebug-compilation-dir /tmp -ferror-limit 19 -fmessage-length 271<br>
>> -fobjc-runtime=gcc -fcxx-exceptions -fexceptions<br>
>> -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/strm-ba92aa.o -x<br>
>> c++ strm.cpp<br>
>> clang -cc1 version 6.0.0 based upon LLVM 6.0.0svn default target<br>
>> x86_64-unknown-linux-gnu<br>
>> ignoring nonexistent directory "/include"<br>
>> #include "..." search starts here:<br>
>> #include <...> search starts here:<br>
>>  /usr/local/include<br>
>>  /usr/local/lib/clang/6.0.0/<wbr>include<br>
>>  /usr/include/x86_64-linux-gnu<br>
>>  /usr/include<br>
>> End of search list.<br>
>> strm.cpp:1:10: fatal error: 'iostream' file not found<br>
>> #include <iostream><br>
>>          ^~~~~~~~~~<br>
>><br>
>> For some reason, GCC8's include directories are not used, despite<br>
>> "Selected GCC installation:<br>
>> /usr/local/bin/../lib/gcc/x86_<wbr>64-pc-linux-gnu/8.0.0". Not even<br>
>> ``ignoring nonexistent directory`` is printed (unless the ``ignoring<br>
>> nonexistent directory "/include" `` was clang's attempt to use the<br>
>> GCC8 installation).<br>
>><br>
>> $ find /usr/local/lib/gcc/x86_64-pc-<wbr>linux-gnu/8.0.0/ -name iostream<br>
>> /usr/local/lib/gcc/x86_64-pc-<wbr>linux-gnu/8.0.0/include/c++/<wbr>iostream<br>
>><br>
>><br>
>> If I hide /usr/local/lib/gcc/x86_64-pc-<wbr>linux-gnu/8.0.0 (to simulate<br>
>> the state before I built and installed GCC 8), then it works:<br>
>><br>
>> /tmp$ /usr/local/bin/clang++ -v strm.cpp<br>
>> clang version 6.0.0 (trunk 319018)<br>
>> Target: x86_64-unknown-linux-gnu<br>
>> Thread model: posix<br>
>> InstalledDir: /usr/local/bin<br>
>> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/<wbr>4.8<br>
>> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/<wbr>4.8.5<br>
>> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/<wbr>7<br>
>> Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/<wbr>7.2.0<br>
>> Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/<wbr>7.2.0<br>
>> Candidate multilib: .;@m64<br>
>> Candidate multilib: 32;@m32<br>
>> Candidate multilib: x32;@mx32<br>
>> Selected multilib: .;@m64<br>
>>  "/usr/local/bin/clang-6.0" -cc1 -triple x86_64-unknown-linux-gnu<br>
>> -emit-obj -mrelax-all -disable-free -main-file-name strm.cpp<br>
>> -mrelocation-model static -mthread-model posix -mdisable-fp-elim<br>
>> -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables<br>
>> -fuse-init-array -target-cpu x86-64 -dwarf-column-info<br>
>> -debugger-tuning=gdb -v -resource-dir /usr/local/lib/clang/6.0.0<br>
>> -internal-isystem<br>
>> /usr/lib/gcc/x86_64-linux-gnu/<wbr>7.2.0/../../../../include/c++/<wbr>7.2.0<br>
>> -internal-isystem<br>
>><br>
>> /usr/lib/gcc/x86_64-linux-gnu/<wbr>7.2.0/../../../../include/x86_<wbr>64-linux-gnu/c++/7.2.0<br>
>> -internal-isystem<br>
>><br>
>> /usr/lib/gcc/x86_64-linux-gnu/<wbr>7.2.0/../../../../include/x86_<wbr>64-linux-gnu/c++/7.2.0<br>
>> -internal-isystem<br>
>> /usr/lib/gcc/x86_64-linux-gnu/<wbr>7.2.0/../../../../include/c++/<wbr>7.2.0/backward<br>
>> -internal-isystem /usr/local/include -internal-isystem<br>
>> /usr/local/lib/clang/6.0.0/<wbr>include -internal-externc-isystem<br>
>> /usr/include/x86_64-linux-gnu -internal-externc-isystem /include<br>
>> -internal-externc-isystem /usr/include -fdeprecated-macro<br>
>> -fdebug-compilation-dir /tmp -ferror-limit 19 -fmessage-length 271<br>
>> -fobjc-runtime=gcc -fcxx-exceptions -fexceptions<br>
>> -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/strm-c79a25.o -x<br>
>> c++ strm.cpp<br>
>> clang -cc1 version 6.0.0 based upon LLVM 6.0.0svn default target<br>
>> x86_64-unknown-linux-gnu<br>
>> ignoring nonexistent directory "/include"<br>
>> ignoring duplicate directory<br>
>><br>
>> "/usr/lib/gcc/x86_64-linux-<wbr>gnu/7.2.0/../../../../include/<wbr>x86_64-linux-gnu/c++/7.2.0"<br>
>> #include "..." search starts here:<br>
>> #include <...> search starts here:<br>
>>  /usr/lib/gcc/x86_64-linux-gnu/<wbr>7.2.0/../../../../include/c++/<wbr>7.2.0<br>
>><br>
>> /usr/lib/gcc/x86_64-linux-gnu/<wbr>7.2.0/../../../../include/x86_<wbr>64-linux-gnu/c++/7.2.0<br>
>><br>
>> /usr/lib/gcc/x86_64-linux-gnu/<wbr>7.2.0/../../../../include/c++/<wbr>7.2.0/backward<br>
>>  /usr/local/include<br>
>>  /usr/local/lib/clang/6.0.0/<wbr>include<br>
>>  /usr/include/x86_64-linux-gnu<br>
>>  /usr/include<br>
>> End of search list.<br>
>> (success)<br>
>><br>
>><br>
>> I tried passing --gcc-toolchain set to the directory selected in the<br>
>> absence of GCC 8, but it didn't work. The only effect seems to be to<br>
>> stop searching for GCC installations :<br>
>><br>
>> /tmp$ /usr/local/bin/clang++<br>
>> --gcc-toolchain=/usr/lib/gcc/<wbr>x86_64-linux-gnu/7.2.0 -v strm.cpp<br>
>> clang version 6.0.0 (trunk 319018)<br>
>> Target: x86_64-unknown-linux-gnu<br>
>> Thread model: posix<br>
>> InstalledDir: /usr/local/bin<br>
>>  "/usr/local/bin/clang-6.0" -cc1 -triple x86_64-unknown-linux-gnu<br>
>> -emit-obj -mrelax-all -disable-free -main-file-name strm.cpp<br>
>> -mrelocation-model static -mthread-model posix -mdisable-fp-elim<br>
>> -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables<br>
>> -fuse-init-array -target-cpu x86-64 -dwarf-column-info<br>
>> -debugger-tuning=gdb -v -resource-dir /usr/local/lib/clang/6.0.0<br>
>> -internal-isystem /usr/local/include -internal-isystem<br>
>> /usr/local/lib/clang/6.0.0/<wbr>include -internal-externc-isystem<br>
>> /usr/include/x86_64-linux-gnu -internal-externc-isystem /include<br>
>> -internal-externc-isystem /usr/include -fdeprecated-macro<br>
>> -fdebug-compilation-dir /tmp -ferror-limit 19 -fmessage-length 271<br>
>> -fobjc-runtime=gcc -fcxx-exceptions -fexceptions<br>
>> -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/strm-241a36.o -x<br>
>> c++ strm.cpp<br>
>> clang -cc1 version 6.0.0 based upon LLVM 6.0.0svn default target<br>
>> x86_64-unknown-linux-gnu<br>
>> ignoring nonexistent directory "/include"<br>
>> #include "..." search starts here:<br>
>> #include <...> search starts here:<br>
>>  /usr/local/include<br>
>>  /usr/local/lib/clang/6.0.0/<wbr>include<br>
>>  /usr/include/x86_64-linux-gnu<br>
>>  /usr/include<br>
>> End of search list.<br>
>> strm.cpp:1:10: fatal error: 'iostream' file not found<br>
>> #include <iostream><br>
>>          ^~~~~~~~~~<br>
>><br>
>><br>
>> This is an Ubuntu 17.10 machine whose system compiler is GCC 7.2:<br>
>><br>
>> /tmp$ g++ -v<br>
>> Using built-in specs.<br>
>> COLLECT_GCC=g++<br>
>> COLLECT_LTO_WRAPPER=/usr/lib/<wbr>gcc/x86_64-linux-gnu/7/lto-<wbr>wrapper<br>
>> OFFLOAD_TARGET_NAMES=nvptx-<wbr>none<br>
>> OFFLOAD_TARGET_DEFAULT=1<br>
>> Target: x86_64-linux-gnu<br>
>> Configured with: ../src/configure -v --with-pkgversion='Ubuntu<br>
>> 7.2.0-8ubuntu3' --with-bugurl=file:///usr/<wbr>share/doc/gcc-7/README.Bugs<br>
>> --enable-languages=c,ada,c++,<wbr>go,brig,d,fortran,objc,obj-c++<br>
>> --prefix=/usr --with-gcc-major-version-only --program-suffix=-7<br>
>> --program-prefix=x86_64-linux-<wbr>gnu- --enable-shared<br>
>> --enable-linker-build-id --libexecdir=/usr/lib<br>
>> --without-included-gettext --enable-threads=posix --libdir=/usr/lib<br>
>> --enable-nls --with-sysroot=/ --enable-clocale=gnu<br>
>> --enable-libstdcxx-debug --enable-libstdcxx-time=yes<br>
>> --with-default-libstdcxx-abi=<wbr>new --enable-gnu-unique-object<br>
>> --disable-vtable-verify --enable-libmpx --enable-plugin<br>
>> --enable-default-pie --with-system-zlib --with-target-system-zlib<br>
>> --enable-objc-gc=auto --enable-multiarch --disable-werror<br>
>> --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,<wbr>mx32<br>
>> --enable-multilib --with-tune=generic<br>
>> --enable-offload-targets=<wbr>nvptx-none --without-cuda-driver<br>
>> --enable-checking=release --build=x86_64-linux-gnu<br>
>> --host=x86_64-linux-gnu --target=x86_64-linux-gnu<br>
>> Thread model: posix<br>
>> gcc version 7.2.0 (Ubuntu 7.2.0-8ubuntu3)<br>
>><br>
>><br>
>> This is how GCC 8 was configured:<br>
>><br>
>> /tmp$ g++-8 -v<br>
>> Using built-in specs.<br>
>> COLLECT_GCC=g++-8<br>
>><br>
>> COLLECT_LTO_WRAPPER=/usr/<wbr>local/libexec/gcc/x86_64-pc-<wbr>linux-gnu/8.0.0/lto-wrapper<br>
>> Target: x86_64-pc-linux-gnu<br>
>> Configured with: ../trunk/configure --program-suffix=-8<br>
>> --enable-version-specific-<wbr>runtime-libs --enable-languages=c,c++,lto :<br>
>> (reconfigured) ../trunk/configure --program-suffix=-8<br>
>> --enable-version-specific-<wbr>runtime-libs --enable-languages=c,c++,lto<br>
>> Thread model: posix<br>
>> gcc version 8.0.0 20171124 (experimental) (GCC)<br>
>><br>
>> Any ideas?<br>
>><br>
>> Csaba<br>
>> --<br>
>> GCS a+ e++ d- C++ ULS$ L+$ !E- W++ P+++$ w++$ tv+ b++ DI D++ 5++<br>
>> The Tao of math: The numbers you can count are not the real numbers.<br>
>> Life is complex, with real and imaginary parts.<br>
>> "Ok, it boots. Which means it must be bug-free and perfect. " -- Linus<br>
>> Torvalds<br>
>> "People disagree with me. I just ignore them." -- Linus Torvalds<br>
>> ______________________________<wbr>_________________<br>
>> cfe-dev mailing list<br>
>> <a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
><br>
><br>
<br>
<br>
<br>
--<br>
GCS a+ e++ d- C++ ULS$ L+$ !E- W++ P+++$ w++$ tv+ b++ DI D++ 5++<br>
The Tao of math: The numbers you can count are not the real numbers.<br>
Life is complex, with real and imaginary parts.<br>
"Ok, it boots. Which means it must be bug-free and perfect. " -- Linus Torvalds<br>
"People disagree with me. I just ignore them." -- Linus Torvalds<br>
</div></div></blockquote></div><br></div>