[all-commits] [llvm/llvm-project] 71c4b8: [crt][test] Add -no-pie to avoid wacky linking wit...

Fangrui Song via All-commits all-commits at lists.llvm.org
Fri Feb 25 20:42:05 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 71c4b8dfe1dd7c20242d303cd33cc022b7af9331
      https://github.com/llvm/llvm-project/commit/71c4b8dfe1dd7c20242d303cd33cc022b7af9331
  Author: Fangrui Song <i at maskray.me>
  Date:   2022-02-26 (Sat, 26 Feb 2022)

  Changed paths:
    M compiler-rt/test/crt/ctor_dtor.c

  Log Message:
  -----------
  [crt][test] Add -no-pie to avoid wacky linking with crt1.o if (musl || CLANG_DEFAULT_PIE_ON_LINUX)

This works with glibc crt1.o (its crt1.o is essentially Scrt1.o plus (if static
PIE is supported for the arch) _dl_relocate_static_pie) but looks wacky.

musl crt1.o is not built with an explicit -fno-pic/-fpie/-fpic. If it was built
with a non-default-pie GCC/Clang, the linker might complain about absolute
relocations referencing _init/_fini for the -pie link:

```
ld: error: relocation R_X86_64_32 cannot be used against symbol '_fini'; recompile with -fPIC
>>> defined in obj/crt/crt1.o
>>> referenced by crt1.c
>>>               obj/crt/crt1.o:(_start_c)
```




More information about the All-commits mailing list