Hello everybody, I'm currently planning to use clang to compile my ARM projects. One bug I found in clang 3.5 - it tried to link the elf using the host's instead of the target's linker - is fixed in trunk source. Unfortunately I found an issue with the include files which - in my oppinion - is wrong. When cross compiling for the arm target clang adds the hosts include folders to the include search paths by default:
/tmp/test_clang $ clang -v --target=arm-none-eabi -c main.c -o main.o clang version 3.8.0 (http://llvm.org/git/clang.git 21b3f468fc871980e422404f35fcac7de83cfa9c) (llvm/trunk 248266) Target: arm-none--eabi Thread model: posix InstalledDir: /usr/local/bin "/usr/local/stow/llvm_r248266-clang_r248254/bin/clang-3.8" -cc1 -triple armv4t-none--eabi -emit-obj -mrelax-all -disable-free -disable-llvm-verifier - main-file-name main.c -mrelocation-model static -mthread-model posix -mdisable- fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -target-cpu arm7tdmi -target-feature +soft-float-abi -target-feature +strict-align -target-abi aapcs -mfloat-abi soft -v -dwarf-column-info -coverage-file /tmp/test_clang/main.o - resource-dir /usr/local/stow/llvm_r248266-clang_r248254/bin/../lib/clang/3.8.0 -fdebug-compilation-dir /tmp/test_clang -ferror-limit 19 -fmessage-length 126 -fallow-half-arguments-and-returns -fno-signed-char -fobjc-runtime=gcc - fdiagnostics-show-option -fcolor-diagnostics -o main.o -x c main.c clang -cc1 version 3.8.0 based upon LLVM 3.8.0svn default target x86_64- unknown-linux-gnu #include "..." search starts here: #include <...> search starts here: /usr/local/include /usr/local/stow/llvm_r248266-clang_r248254/bin/../lib/clang/3.8.0/include /usr/include End of search list. main.c:5:11: warning: self-comparison always evaluates to true [- Wtautological-compare] while(i == i) ^ 1 warning generated. /tmp/test_clang $ This is not what I would expect, since this is wrong for cross compilation in almost any case. This can be somehow bypassed using -nostdinc option but then I have to manually add the .../lib/clang/3.8.0/include. What would be the best way to solve this? Another thing I noticed occurs when using the -sysroot option. clang then tries to use $sysroot/usr/include. In my oppinion it should use $sysroot/include instead. Kind regards, Andreas
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ cfe-users mailing list cfe-users@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users