<div dir="ltr">On Wed, Oct 30, 2013 at 8:29 PM, Sylvestre Ledru <span dir="ltr"><<a href="mailto:sylvestre@debian.org" target="_blank">sylvestre@debian.org</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"><div><div class="h5">
<div>On 29/10/2013 22:02, Richard Smith
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">On Tue, Oct 29, 2013 at 1:44 AM, Sylvestre Ledru <span dir="ltr"><<a href="mailto:sylvestre@debian.org" target="_blank">sylvestre@debian.org</a>></span>
wrote:<br>
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hello,<br>
<br>
Recently, compiler-rt build started to fail when the
package are also<br>
installed on the system.<br>
<br>
COMPILE: clang_linux/full-x86_64/x86_64:<br>
/tmp/buildd/llvm-toolchain-snapshot-3.4~svn193538/projects/compiler-rt/lib/addvsi3.c<br>
/tmp/buildd/llvm-toolchain-snapshot-3.4~svn193538/build-llvm/Release+Asserts/bin/clang<br>
-fPIC -Wall -Werror -O3 -fomit-frame-pointer -m64<br>
--sysroot=/tmp/buildd/llvm-toolchain-snapshot-3.4~svn193538/projects/compiler-rt/SDKs/linux<br>
-c -o<br>
/tmp/buildd/llvm-toolchain-snapshot-3.4~svn193538/build-llvm/tools/clang/runtime/compiler-rt/clang_linux/full-x86_64/x86_64/SubDir.lib/addvsi3.o<br>
/tmp/buildd/llvm-toolchain-snapshot-3.4~svn193538/projects/compiler-rt/lib/addvsi3.c<br>
/usr/include/clang/3.4/include/module.map:1:8: error:<br>
/usr/include/clang/3.4/include/module.map:1:8: error:
redefinition of<br>
module '_Builtin_intrinsics'<br>
redefinition of module '_Builtin_intrinsics'<br>
module _Builtin_intrinsics [system] {module
_Builtin_intrinsics [system] {<br>
^<br>
/tmp/buildd/llvm-toolchain-snapshot-3.4~svn193538/build-llvm/Release+Asserts/bin/../lib/clang/3.4/include/module.map:1:8:<br>
note: previously defined here<br>
module _Builtin_intrinsics [system] {<br>
^<br>
<br>
Any ideas on how to fix that ?</blockquote>
<div><br>
</div>
<div>Any particular invocation of Clang should only find the
built-in headers corresponding to that binary; it should
look in $(dirname $argv0)/../lib/clang/3.4/include for
those. Can you run the build command with -v and try to
figure out why the include path contains both
/usr/include/clang/3.4/include and
.../bin/../lib/clang/3.4/include? (Which of these
corresponds to the clang binary being used, and why is the
other one on the include path?)</div>
</div>
</div>
</div>
</blockquote></div></div>
The Debian clang package is patched to search also in
/usr/include/clang/3.4/include<br></div></blockquote><div><br></div><div>That will do the wrong thing for any clang that is not installed -- it'll find the system clang's builtin headers and its own.</div><div>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
Anyway, module.map should not included twice. <br></div></blockquote><div><br></div><div>Hmm, we could use the relative positions in the include path to resolve redefinitions of modules (that is, use the same rules we use to resolve ambiguous #include names). We'd still need to load the modules from both places in case one of them #include_next's a header from the other one, but we could resolve what the module name means if it appears in an @import or similar.</div>
<div><br></div><div>In this case, that's *still* not going to do the right thing, even though it may make the symptoms go away for now -- for instance, <stdint.h> has an #include_next, and you really don't want that to go pulling in the builtin headers from the wrong build of Clang. You should fix your clang patch to search in a smarter way: maybe you could look for "$argv0/../include/clang/3.4/include" instead of looking for an absolute path?</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
Thanks,<br>
Sylvestre<br>
Full log:<br>
Selected GCC installation: <br>
"/pro/pkg-llvm/llvm-toolchain/branches/llvm-toolchain-snapshot-3.4~svn193603/build-llvm/Release/bin/clang"
-cc1 -triple x86_64-pc-linux-gnu -emit-obj -disable-free
-disable-llvm-verifier -main-file-name absvdi2.c -mrelocation-model
pic -pic-level 2 -fmath-errno -masm-verbose -mconstructor-aliases
-munwind-tables -target-cpu x86-64 -target-linker-version
2.23.90.20130927 -momit-leaf-frame-pointer -v -coverage-file
/pro/pkg-llvm/llvm-toolchain/branches/llvm-toolchain-snapshot-3.4~svn193603/build-llvm/tools/clang/runtime/compiler-rt/clang_linux/full-x86_64/x86_64/SubDir.lib/absvdi2.o
-resource-dir
/pro/pkg-llvm/llvm-toolchain/branches/llvm-toolchain-snapshot-3.4~svn193603/build-llvm/Release/bin/../lib/clang/3.4
-isysroot
/pro/pkg-llvm/llvm-toolchain/branches/llvm-toolchain-snapshot-3.4~svn193603/projects/compiler-rt/SDKs/linux
-internal-isystem
/pro/pkg-llvm/llvm-toolchain/branches/llvm-toolchain-snapshot-3.4~svn193603/projects/compiler-rt/SDKs/linux/usr/local/include
-internal-isystem
/pro/pkg-llvm/llvm-toolchain/branches/llvm-toolchain-snapshot-3.4~svn193603/build-llvm/Release/bin/../lib/clang/3.4/include
-internal-isystem /usr/include/clang/3.4/include/
-internal-externc-isystem
/pro/pkg-llvm/llvm-toolchain/branches/llvm-toolchain-snapshot-3.4~svn193603/projects/compiler-rt/SDKs/linux/usr/include/x86_64-linux-gnu
-internal-externc-isystem
/pro/pkg-llvm/llvm-toolchain/branches/llvm-toolchain-snapshot-3.4~svn193603/projects/compiler-rt/SDKs/linux/usr/include/x86_64-linux-gnu
-internal-externc-isystem
/pro/pkg-llvm/llvm-toolchain/branches/llvm-toolchain-snapshot-3.4~svn193603/projects/compiler-rt/SDKs/linux/usr/include
-O3 -Wall -Werror -fdebug-compilation-dir
/pro/pkg-llvm/llvm-toolchain/branches/llvm-toolchain-snapshot-3.4~svn193603/build-llvm/tools/clang/runtime/compiler-rt
-ferror-limit 19 -fmessage-length 0 -mstackrealign
-fobjc-runtime=gcc -fdiagnostics-show-option -vectorize-loops
-vectorize-slp -o
/pro/pkg-llvm/llvm-toolchain/branches/llvm-toolchain-snapshot-3.4~svn193603/build-llvm/tools/clang/runtime/compiler-rt/clang_linux/full-x86_64/x86_64/SubDir.lib/absvdi2.o
-x c
/pro/pkg-llvm/llvm-toolchain/branches/llvm-toolchain-snapshot-3.4~svn193603/projects/compiler-rt/lib/absvdi2.c<br>
clang -cc1 version 3.4 based upon LLVM 3.4 default target
x86_64-pc-linux-gnu<br>
ignoring nonexistent directory
"/pro/pkg-llvm/llvm-toolchain/branches/llvm-toolchain-snapshot-3.4~svn193603/projects/compiler-rt/SDKs/linux/usr/local/include"<br>
ignoring nonexistent directory
"/pro/pkg-llvm/llvm-toolchain/branches/llvm-toolchain-snapshot-3.4~svn193603/projects/compiler-rt/SDKs/linux/usr/include/x86_64-linux-gnu"<br>
ignoring nonexistent directory
"/pro/pkg-llvm/llvm-toolchain/branches/llvm-toolchain-snapshot-3.4~svn193603/projects/compiler-rt/SDKs/linux/usr/include/x86_64-linux-gnu"<br>
#include "..." search starts here:<br>
#include <...> search starts here:<br>
/pro/pkg-llvm/llvm-toolchain/branches/llvm-toolchain-snapshot-3.4~svn193603/build-llvm/Release/bin/../lib/clang/3.4/include<br>
/usr/include/clang/3.4/include<br>
/pro/pkg-llvm/llvm-toolchain/branches/llvm-toolchain-snapshot-3.4~svn193603/projects/compiler-rt/SDKs/linux/usr/include<br>
End of search list.<div class="im"><br>
/usr/include/clang/3.4/include/module.map:1:8: error: redefinition
of module '_Builtin_intrinsics'<br></div>
module _Builtin_intrinsics [system] {<br>
^<br>
/pro/pkg-llvm/llvm-toolchain/branches/llvm-toolchain-snapshot-3.4~svn193603/build-llvm/Release/bin/../lib/clang/3.4/include/module.map:1:8:
note: previously defined here<br>
module _Builtin_intrinsics [system] {<br>
^<br>
1 error generated.<br>
<br>
</div>
</blockquote></div><br></div></div>