Bug#698472: FTBFS clang-3.2 (compiler-rt) on i386

Andrey Gursky andrey.gursky at e-mail.ua
Sat Jan 19 02:39:25 UTC 2013


Source: clang
Version: 3.2-1~exp5
Severity: normal

Here is the relevant output building package on wheezy i386:

  COMPILE:   clang_linux/asan-x86_64/x86_64:
/opt/clang/clang-3.2-mydeb/clang-3.2/llvm-3.2/projects/compiler-rt/lib/asan/asan_linux.cc
/opt/clang/clang-3.2-mydeb/clang-3.2/build-clang/Release/bin/clang
-Wall -Werror -O3 -fomit-frame-pointer -m64 -fPIE -fno-builtin -c
-fno-exceptions -fPIC -funwind-tables
-I/opt/clang/clang-3.2-mydeb/clang-3.2/llvm-3.2/projects/compiler-rt/lib
-I/opt/clang/clang-3.2-mydeb/clang-3.2/llvm-3.2/projects/compiler-rt/include
-o /opt/clang/clang-3.2-mydeb/clang-3.2/build-clang/tools/clang/runtime/compiler-rt/clang_linux/asan-x86_64/x86_64/SubDir.lib__asan/asan_linux.o
/opt/clang/clang-3.2-mydeb/clang-3.2/llvm-3.2/projects/compiler-rt/lib/asan/asan_linux.cc
/opt/clang/clang-3.2-mydeb/clang-3.2/llvm-3.2/projects/compiler-rt/lib/asan/asan_linux.cc:63:37:
error: use of undeclared identifier 'REG_RIP'; did you mean
      'REG_EIP'?
  *pc = ucontext->uc_mcontext.gregs[REG_RIP];
                                    ^~~~~~~
                                    REG_EIP
/usr/include/i386-linux-gnu/sys/ucontext.h:71:3: note: 'REG_EIP' declared here
  REG_EIP,
  ^
/opt/clang/clang-3.2-mydeb/clang-3.2/llvm-3.2/projects/compiler-rt/lib/asan/asan_linux.cc:64:37:
error: use of undeclared identifier 'REG_RBP'; did you mean
      'REG_EBP'?
  *bp = ucontext->uc_mcontext.gregs[REG_RBP];
                                    ^~~~~~~
                                    REG_EBP
/usr/include/i386-linux-gnu/sys/ucontext.h:55:3: note: 'REG_EBP' declared here
  REG_EBP,
  ^
/opt/clang/clang-3.2-mydeb/clang-3.2/llvm-3.2/projects/compiler-rt/lib/asan/asan_linux.cc:65:37:
error: use of undeclared identifier 'REG_RSP'; did you mean
      'REG_ESP'?
  *sp = ucontext->uc_mcontext.gregs[REG_RSP];
                                    ^~~~~~~
                                    REG_ESP
/usr/include/i386-linux-gnu/sys/ucontext.h:57:3: note: 'REG_ESP' declared here
  REG_ESP,
  ^
3 errors generated.
make[7]: *** [/opt/clang/clang-3.2-mydeb/clang-3.2/build-clang/tools/clang/runtime/compiler-rt/clang_linux/asan-x86_64/x86_64/SubDir.lib__asan/asan_linux.o]
Error 1
make[7]: Leaving directory `/opt/clang/clang-3.2-mydeb/clang-3.2/compiler-rt'
make[6]: *** [BuildRuntimeLibraries] Error 2
make[6]: Leaving directory
`/opt/clang/clang-3.2-mydeb/clang-3.2/build-clang/tools/clang/runtime/compiler-rt'
make[5]: *** [compiler-rt/.makeall] Error 2
make[5]: Leaving directory
`/opt/clang/clang-3.2-mydeb/clang-3.2/build-clang/tools/clang/runtime'
make[4]: *** [all] Error 1
make[4]: Leaving directory
`/opt/clang/clang-3.2-mydeb/clang-3.2/build-clang/tools/clang'
make[3]: *** [clang/.makeall] Error 2
make[3]: Leaving directory
`/opt/clang/clang-3.2-mydeb/clang-3.2/build-clang/tools'
make[2]: *** [all] Error 1
make[2]: Leaving directory `/opt/clang/clang-3.2-mydeb/clang-3.2/build-clang'
make[1]: *** [override_dh_auto_build] Error 2
make[1]: Leaving directory `/opt/clang/clang-3.2-mydeb/clang-3.2'
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2

real	90m18.681s
user	81m0.916s
sys	2m54.420s

-----

Considering tiny test on i386 with -m64:

i386$ /opt/clang/clang-3.2-mydeb/clang-3.2/build-clang/Release/bin/clang
-Wall -g -m64 -v -o test.64.2 test.c
Debian clang version 3.2-1~exp5 (tags/RELEASE_32/final) (based on LLVM 3.2)
Target: x86_64-pc-linux-gnu
Thread model: posix
 "/opt/clang/clang-3.2-mydeb/clang-3.2/build-clang/Release/bin/clang"
-cc1 -triple x86_64-pc-linux-gnu -emit-obj -mrelax-all -disable-free
-disable-llvm-verifier -main-file-name test.c -mrelocation-model
static -mdisable-fp-elim -fmath-errno -masm-verbose
-mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu
x86-64 -target-linker-version 2.22 -momit-leaf-frame-pointer -v -g
-resource-dir /opt/clang/clang-3.2-mydeb/clang-3.2/build-clang/Release/bin/../lib/clang/3.2
-fmodule-cache-path /var/tmp/clang-module-cache -internal-isystem
/usr/local/include -internal-isystem
/opt/clang/clang-3.2-mydeb/clang-3.2/build-clang/Release/bin/../lib/clang/3.2/include
-internal-isystem /usr/include/clang/3.2/include/
-internal-externc-isystem /usr/include/i386-linux-gnu
-internal-externc-isystem /usr/include/i486-linux-gnu
-internal-externc-isystem /usr/include -Wall -fdebug-compilation-dir
/media/440D-0EFF/test -ferror-limit 19 -fmessage-length 165
-mstackrealign -fobjc-runtime=gcc -fdiagnostics-show-option
-fcolor-diagnostics -o /tmp/test-jLwASb.o -x c test.c
clang -cc1 version 3.2 based upon LLVM 3.2svn default target i386-pc-linux-gnu
ignoring nonexistent directory "/usr/include/clang/3.2/include/"
ignoring nonexistent directory "/usr/include/i486-linux-gnu"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /opt/clang/clang-3.2-mydeb/clang-3.2/build-clang/Release/bin/../lib/clang/3.2/include
 /usr/include/i386-linux-gnu
 /usr/include
End of search list.
test.c:9:2: warning: __USE_GNU defined [-W#warnings]
#warning __USE_GNU defined
 ^
test.c:17:2: warning: __WORDSIZE = 32 [-W#warnings]
#warning __WORDSIZE = 32
 ^
test.c:27:9: warning: implicitly declaring library function 'printf'
with type 'int (const char *, ...)'
        printf("REG_EIP=%d\n", REG_EIP);
        ^
test.c:27:9: note: please include the header <stdio.h> or explicitly
provide a declaration for 'printf'
3 warnings generated.
 "/usr/bin/ld" --hash-style=both --build-id --eh-frame-hdr -m
elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o test.64.2
/usr/lib/gcc/i486-linux-gnu/4.7/../../../../lib64/crt1.o
/usr/lib/gcc/i486-linux-gnu/4.7/../../../../lib64/crti.o
/usr/lib/gcc/i486-linux-gnu/4.7/64/crtbegin.o
-L/usr/lib/gcc/i486-linux-gnu/4.7/64
-L/usr/lib/gcc/i486-linux-gnu/4.7/../../../x86_64-linux-gnu
-L/usr/lib/gcc/i486-linux-gnu/4.7/../../../../lib64
-L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu
-L/usr/lib/../lib64 -L/usr/lib/i486-linux-gnu/../../lib64
-L/usr/lib/gcc/i486-linux-gnu/4.7
-L/usr/lib/gcc/i486-linux-gnu/4.7/../../.. -L/lib -L/usr/lib
/tmp/test-jLwASb.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc
--as-needed -lgcc_s --no-as-needed
/usr/lib/gcc/i486-linux-gnu/4.7/64/crtend.o
/usr/lib/gcc/i486-linux-gnu/4.7/../../../../lib64/crtn.o
$

It seems linking issues reported a while ago are really gone, but
wrong includes are still here. And the clang in wheezy could also be
affected.


Also considering tiny test with -m32 on amd64:

amd64$ clang -Wall -g -m32 -v -o test test.c
Debian clang version 3.2-9 (tags/RELEASE_32/final) (based on LLVM 3.2)
Target: i386-pc-linux-gnu
Thread model: posix
 "/usr/bin/clang" -cc1 -triple i386-pc-linux-gnu -emit-obj -mrelax-all
-disable-free -disable-llvm-verifier -main-file-name test.c
-mrelocation-model static -mdisable-fp-elim -fmath-errno -masm-verbose
-mconstructor-aliases -fuse-init-array -target-cpu pentium4
-target-linker-version 2.22 -momit-leaf-frame-pointer -v -g
-resource-dir /usr/bin/../lib/clang/3.2 -fmodule-cache-path
/var/tmp/clang-module-cache -internal-isystem /usr/local/include
-internal-isystem /usr/bin/../lib/clang/3.2/include -internal-isystem
/usr/include/clang/3.2/include/ -internal-externc-isystem
-internal-externc-isystem /usr/include/x86_64-linux-gnu
-internal-externc-isystem /usr/include/x86_64-linux-gnu
-internal-externc-isystem /usr/include -Wall -fdebug-compilation-dir
/home/andrey/test/amd64 -ferror-limit 19 -fmessage-length 155
-mstackrealign -fobjc-runtime=gcc -fdiagnostics-show-option
-fcolor-diagnostics -o /tmp/test-tbWvQ4.o -x c test.c
clang -cc1 version 3.2 based upon LLVM 3.2svn default target x86_64-pc-linux-gnu
ignoring nonexistent directory "/usr/bin/../lib/clang/3.2/include"
ignoring nonexistent directory ""
ignoring duplicate directory "/usr/include/x86_64-linux-gnu"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /usr/include/clang/3.2/include
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.

Missing i386-linux-gnu but got x86_64-linux-gnu.


Thanks,

Andrey
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.c
Type: text/x-csrc
Size: 538 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-llvm-team/attachments/20130119/c880dc2b/attachment.c>


More information about the Pkg-llvm-team mailing list