Paul Menzel <pmen...@molgen.mpg.de> writes: > Am 29.07.21 um 10:23 schrieb Paul Menzel: > >> I just wanted to make you aware that building Linux for ppc64le with >> clang/lld.ld fails with [1]: >> >> ld.lld: error: can't create dynamic relocation R_PPC64_ADDR64 >> against symbol: empty_zero_page in readonly segment; recompile object >> files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in >> the output >> >>> defined in arch/powerpc/kernel/head_64.o >> >>> referenced by >> arch/powerpc/kernel/head_64.o:(___ksymtab+empty_zero_page+0x0) >> >> The patch below from one of the comments [2] fixes it. >> >> --- i/arch/powerpc/Makefile >> +++ w/arch/powerpc/Makefile >> @@ -122,7 +122,7 @@ cflags-$(CONFIG_STACKPROTECTOR) += >> -mstack-protector-guard-reg=r2 >> endif >> >> LDFLAGS_vmlinux-y := -Bstatic >> -LDFLAGS_vmlinux-$(CONFIG_RELOCATABLE) := -pie >> +LDFLAGS_vmlinux-$(CONFIG_RELOCATABLE) := -pie -z notext >> LDFLAGS_vmlinux := $(LDFLAGS_vmlinux-y) >> LDFLAGS_vmlinux += $(call ld-option,--orphan-handling=warn) > > Any comments, if this is the right fix? Current Linux master branch > still fails to build with `LLVM=1` on Ubuntu 21.04 without this change.
Sorry but I have no idea if it's the right fix. What I need is the author (or someone else) to send a patch with a change log explaining the change, what it does, why it's right for llvm, and why it's right for binutils. cheers