Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- The Problem:
- Linker failures while compiling for AARCH64 on x86_64 running Debian 10 using Clang.
- I get slightly different errors depending on the value for --stdlib and which linker is used.
- ld.lld: error: /usr/aarch64-linux-gnu/lib/libc.so:5: cannot find /usr/aarch64-linux-gnu/lib/libc.so.6 inside /usr/aarch64-linux-gnu
- ISDiSurfaceGone: isdi_CrossTests: export OUTDIR="ARM64_Linux_Clang_Dynamic"; \
- > /usr/bin/clang++-13 \
- > -v \
- > --target=aarch64-linux-gnu \
- > -march=armv8-a \
- > -fuse-ld=lld \
- > -O0 \
- > -fsanitize=undefined \
- > --rtlib=compiler-rt \
- > --stdlib=libstdc++ \
- > --std=c++17 \
- > -I/usr/aarch64-linux-gnu/ \
- > -I/usr/aarch64-linux-gnu/include \
- > -I/usr/aarch64-linux-gnu/include/c++ \
- > -I/usr/aarch64-linux-gnu/include/c++/8 \
- > -I/usr/aarch64-linux-gnu/include/c++/8/aarch64-linux-gnu \
- > -I/usr/lib/gcc-cross/aarch64-linux-gnu/8 \
- > -Wall \
- > -L/usr/lib/gcc-cross/aarch64-linux-gnu/8 \
- > -L/usr/aarch64-linux-gnu \
- > -L/usr/aarch64-linux-gnu/lib \
- > --sysroot /usr/aarch64-linux-gnu \
- > --gcc-toolchain=/usr/aarch64-linux-gnu \
- > -rpath /usr/lib/llvm-13/lib \
- > -x c++ Source/hello.cc -o Bin/"$OUTDIR"/hello \
- > |& tee -a Bin/"$OUTDIR"/hello_$(date +%Y%m%d_%H%M%S).txt
- Debian clang version 13.0.0-++20210924062625+d7b669b3a303-1~exp1~20210924163430.113
- Target: aarch64-unknown-linux-gnu
- Thread model: posix
- InstalledDir: /usr/bin
- "/usr/lib/llvm-13/bin/clang"
- -cc1
- -triple aarch64-unknown-linux-gnu
- -emit-obj
- -mrelax-all
- --mrelax-relocations
- -disable-free
- -disable-llvm-verifier
- -discard-value-names
- -main-file-name hello.cc
- -mrelocation-model static
- -mframe-pointer=non-leaf
- -fmath-errno
- -fno-rounding-math
- -mconstructor-aliases
- -munwind-tables
- -target-cpu generic
- -target-feature +neon
- -target-abi aapcs
- -fallow-half-arguments-and-returns
- -debugger-tuning=gdb
- -v
- -fcoverage-compilation-dir=/CodeTest/isdi_CrossTests
- -resource-dir /usr/lib/llvm-13/lib/clang/13.0.0
- -I /usr/aarch64-linux-gnu/
- -I /usr/aarch64-linux-gnu/include
- -I /usr/aarch64-linux-gnu/include/c++
- -I /usr/aarch64-linux-gnu/include/c++/8
- -I /usr/aarch64-linux-gnu/include/c++/8/aarch64-linux-gnu
- -I /usr/lib/gcc-cross/aarch64-linux-gnu/8
- -isysroot /usr/aarch64-linux-gnu
- -internal-isystem /usr/lib/llvm-13/lib/clang/13.0.0/include
- -internal-isystem /usr/aarch64-linux-gnu/usr/local/include
- -internal-externc-isystem /usr/aarch64-linux-gnu/include
- -internal-externc-isystem /usr/aarch64-linux-gnu/usr/include
- -O0
- -Wall
- --std=c++17
- -fdeprecated-macro
- -fdebug-compilation-dir=/CodeTest/isdi_CrossTests
- -ferror-limit 19
- -fsanitize=alignment,array-bounds,bool,builtin,enum,float-cast-overflow,integer-divide-by-zero,nonnull-attribute,null,pointer-overflow,return,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,unreachable,vla-bound,vptr
- -fsanitize-recover=alignment,array-bounds,bool,builtin,enum,float-cast-overflow,integer-divide-by-zero,nonnull-attribute,null,pointer-overflow,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,vla-bound,vptr
- -fno-signed-char
- -fgnuc-version=4.2.1
- -fcxx-exceptions
- -fexceptions
- -target-feature +outline-atomics
- -faddrsig
- -D__GCC_HAVE_DWARF2_CFI_ASM=1
- -o /tmp/hello-ff7de7.o
- -x c++ Source/hello.cc
- clang -cc1 version 13.0.0 based upon LLVM 13.0.0 default target x86_64-pc-linux-gnu
- ignoring nonexistent directory "/usr/aarch64-linux-gnu/usr/local/include"
- ignoring nonexistent directory "/usr/aarch64-linux-gnu/usr/include"
- ignoring duplicate directory "/usr/aarch64-linux-gnu/include"
- as it is a non-system directory that duplicates a system directory
- #include "..." search starts here:
- #include <...> search starts here:
- /usr/aarch64-linux-gnu
- /usr/aarch64-linux-gnu/include/c++
- /usr/aarch64-linux-gnu/include/c++/8
- /usr/aarch64-linux-gnu/include/c++/8/aarch64-linux-gnu
- /usr/lib/gcc-cross/aarch64-linux-gnu/8
- /usr/lib/llvm-13/lib/clang/13.0.0/include
- /usr/aarch64-linux-gnu/include
- End of search list.
- "/usr/lib/llvm-13/bin/ld.lld"
- --sysroot=/usr/aarch64-linux-gnu
- -EL
- --hash-style=both
- --build-id
- --eh-frame-hdr
- -m aarch64linux
- -dynamic-linker /lib/ld-linux-aarch64.so.1
- -o Bin/ARM64_Linux_Clang_Dynamic/hello
- /usr/aarch64-linux-gnu/lib/crt1.o
- /usr/aarch64-linux-gnu/lib/crti.o
- /usr/aarch64-linux-gnu/lib/crtbegin.o
- -L/usr/lib/gcc-cross/aarch64-linux-gnu/8
- -L/usr/aarch64-linux-gnu
- -L/usr/aarch64-linux-gnu/lib
- -L/usr/aarch64-linux-gnu/lib
- --whole-archive /usr/lib/llvm-13/lib/clang/13.0.0/lib/linux/libclang_rt.ubsan_standalone-aarch64.a
- --no-whole-archive
- --dynamic-list=/usr/lib/llvm-13/lib/clang/13.0.0/lib/linux/libclang_rt.ubsan_standalone-aarch64.a.syms
- --whole-archive /usr/lib/llvm-13/lib/clang/13.0.0/lib/linux/libclang_rt.ubsan_standalone_cxx-aarch64.a
- --no-whole-archive
- --dynamic-list=/usr/lib/llvm-13/lib/clang/13.0.0/lib/linux/libclang_rt.ubsan_standalone_cxx-aarch64.a.syms
- -rpath /usr/lib/llvm-13/lib /tmp/hello-ff7de7.o
- -lstdc++
- -lm
- --no-as-needed
- -lpthread
- -lrt
- -lm
- -ldl /usr/lib/llvm-13/lib/clang/13.0.0/lib/linux/libclang_rt.builtins-aarch64.a
- -lc /usr/lib/llvm-13/lib/clang/13.0.0/lib/linux/libclang_rt.builtins-aarch64.a
- /usr/aarch64-linux-gnu/lib/crtend.o /usr/aarch64-linux-gnu/lib/crtn.o
- ld.lld: error: /usr/aarch64-linux-gnu/lib/libc.so:5: cannot find /usr/aarch64-linux-gnu/lib/libc.so.6 inside /usr/aarch64-linux-gnu
- >>> GROUP ( /usr/aarch64-linux-gnu/lib/libc.so.6 /usr/aarch64-linux-gnu/lib/libc_nonshared.a AS_NEEDED ( /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.1 ) )
- >>> ^
- clang: error: linker command failed with exit code 1 (use -v to see invocation)
- cannot find /usr/aarch64-linux-gnu/lib/libc.so.6
- ISDiSurfaceGone: ~: ls /usr/aarch64-linux-gnu/lib/libc.so.6
- lrwxrwxrwx 1 root root 12 Oct 2 08:31 /usr/aarch64-linux-gnu/lib/libc.so.6 -> libc-2.28.so
- ISDiSurfaceGone: ~: ls /usr/aarch64-linux-gnu/lib/libc-2.28.so
- -rwxr-xr-x 1 root root 1439544 Oct 2 08:31 /usr/aarch64-linux-gnu/lib/libc-2.28.so
- ISDiSurfaceGone: ~: file /usr/aarch64-linux-gnu/lib/libc-2.28.so
- /usr/aarch64-linux-gnu/lib/libc-2.28.so: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=2756a33e365fd6e64443cf0e3c679b466cb04dfc, for GNU/Linux 3.7.0, stripped
- ISDiSurfaceGone: ~:
- In case this helps:
- ISDiSurfaceGone: ~: head -25 /usr/aarch64-linux-gnu/lib/libc.so
- /* GNU ld script
- Use the shared library, but some functions are only in
- the static library, so try that secondarily. */
- OUTPUT_FORMAT(elf64-littleaarch64)
- GROUP ( /usr/aarch64-linux-gnu/lib/libc.so.6 /usr/aarch64-linux-gnu/lib/libc_nonshared.a AS_NEEDED ( /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.1 ) )
- ISDiSurfaceGone: ~: ls /usr/aarch64-linux-gnu/lib/libc.so.6
- lrwxrwxrwx 1 root root 12 Oct 2 08:31 /usr/aarch64-linux-gnu/lib/libc.so.6 -> libc-2.28.so
- ISDiSurfaceGone: ~: ls /usr/aarch64-linux-gnu/lib/libc_nonshared.a
- -rw-r--r-- 1 root root 22940 Oct 2 08:31 /usr/aarch64-linux-gnu/lib/libc_nonshared.a
- ISDiSurfaceGone: ~: ls /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.1
- lrwxrwxrwx 1 root root 10 Oct 2 08:31 /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.1 -> ld-2.28.so
- Thanks
Add Comment
Please, Sign In to add comment