Issue 76411
Summary ld.lld: error: unable to find library -lc
Labels lld
Assignees
Reporter leleliu008
    I cross build for NetBSD programs on GNU/Linux with clang.

## my build machine's uname -a

```
Linux leleliu008 6.5.0-14-generic #14-Ubuntu SMP PREEMPT_DYNAMIC Tue Nov 14 14:59:49 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
```

## clang --version

```yaml
Homebrew clang version 17.0.3
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/linuxbrew/.linuxbrew/bin
```

## install netbsd sysroot

```bash
install -d amd64-unknown-netbsd-sysroot

curl -L -o amd64-unknown-netbsd-base.txz https://ftp.netbsd.org/pub/NetBSD/NetBSD-9.3/amd64/binary/sets/base.tar.xz
tar xf amd64-unknown-netbsd-base.txz -C amd64-unknown-netbsd-sysroot

curl -L -o amd64-unknown-netbsd-comp.txz https://ftp.netbsd.org/pub/NetBSD/NetBSD-9.3/amd64/binary/sets/comp.tar.xz
tar xf amd64-unknown-netbsd-comp.txz -C amd64-unknown-netbsd-sysroot
```

## create a simple C source file to test

```bash
cat > test.c <<EOF
#include <stdio.h>

int main() {
    puts("Hello NetBSD!");
    return 0;
}
EOF
```

## cross build command

```bash
clang --target=amd64-unknown-netbsd --sysroot=./amd64-unknown-netbsd-sysroot -fuse-ld=lld -v test.c
```

report logs:

```
Homebrew clang version 17.0.3
Target: amd64-unknown-netbsd
Thread model: posix
InstalledDir: /home/linuxbrew/.linuxbrew/bin
 "/home/linuxbrew/.linuxbrew/Cellar/llvm/17.0.3/bin/clang-17" -cc1 -triple amd64-unknown-netbsd -emit-obj -mrelax-all -dumpdir a- -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name test.c -mrelocation-model static -mframe-pointer=all -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -v -fcoverage-compilation-dir=/home/leleliu008/Downloads -resource-dir /home/linuxbrew/.linuxbrew/Cellar/llvm/17.0.3/lib/clang/17 -isysroot ./amd64-unknown-netbsd-sysroot -internal-isystem /home/linuxbrew/.linuxbrew/Cellar/llvm/17.0.3/lib/clang/17/include -internal-externc-isystem ./amd64-unknown-netbsd-sysroot/usr/include -fdebug-compilation-dir=/home/leleliu008/Downloads -ferror-limit 19 -fgnuc-version=4.2.1 -fcolor-diagnostics -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/test-831aa6.o -x c test.c
clang -cc1 version 17.0.3 based upon LLVM 17.0.3 default target x86_64-unknown-linux-gnu
#include "..." search starts here:
#include <...> search starts here:
 /home/linuxbrew/.linuxbrew/Cellar/llvm/17.0.3/lib/clang/17/include
 ./amd64-unknown-netbsd-sysroot/usr/include
End of search list.
 "/home/linuxbrew/.linuxbrew/bin/ld.lld" --sysroot=./amd64-unknown-netbsd-sysroot --eh-frame-hdr -dynamic-linker /libexec/ld.elf_so -o a.out ./amd64-unknown-netbsd-sysroot/usr/lib/crt0.o ./amd64-unknown-netbsd-sysroot/usr/lib/crti.o ./amd64-unknown-netbsd-sysroot/usr/lib/crtbegin.o /tmp/test-831aa6.o -lc ./amd64-unknown-netbsd-sysroot/usr/lib/crtend.o ./amd64-unknown-netbsd-sysroot/usr/lib/crtn.o
ld.lld: error: unable to find library -lc
clang: error: linker command failed with exit code 1 (use -v to see invocation)
```

**Note:** It could be successfully compiled if I remove `-fuse-ld=lld` flag.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to