Skip to content
  • Aurelien Jarno's avatar
    RISC-V: build vdso-dummy.o with -no-pie · 85602bea
    Aurelien Jarno authored
    
    
    Debian toolcahin defaults to PIE, and I guess that will also be the case
    of most distributions. This causes the following build failure:
    
      AS      arch/riscv/kernel/vdso/getcpu.o
      AS      arch/riscv/kernel/vdso/flush_icache.o
      VDSOLD  arch/riscv/kernel/vdso/vdso.so.dbg
      OBJCOPY arch/riscv/kernel/vdso/vdso.so
      AS      arch/riscv/kernel/vdso/vdso.o
      VDSOLD  arch/riscv/kernel/vdso/vdso-dummy.o
      LD      arch/riscv/kernel/vdso/vdso-syms.o
    riscv64-linux-gnu-ld: attempted static link of dynamic object `arch/riscv/kernel/vdso/vdso-dummy.o'
    make[2]: *** [arch/riscv/kernel/vdso/Makefile:43: arch/riscv/kernel/vdso/vdso-syms.o] Error 1
    make[1]: *** [scripts/Makefile.build:575: arch/riscv/kernel/vdso] Error 2
    make: *** [Makefile:1018: arch/riscv/kernel] Error 2
    
    While the root Makefile correctly passes "-fno-PIE" to build individual
    object files, the RISC-V kernel also builds vdso-dummy.o as an
    executable, which is therefore linked as PIE. Fix that by updating this
    specific link rule to also include "-no-pie".
    
    Signed-off-by: default avatarAurelien Jarno <aurelien@aurel32.net>
    Signed-off-by: default avatarPalmer Dabbelt <palmer@sifive.com>
    85602bea