On Tue, Mar 12, 2019 at 5:06 PM Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> wrote: > > On Tue, Mar 12, 2019 at 6:13 PM Sedat Dilek <sedat.dilek@xxxxxxxxx> wrote: > > > > Hi Masahiro Yamada, > > > > do you have an idea how to fix this properly - as for example LLD > > hasn't this option? > > Speaking of the shell-line. > > I mean use the method "call ld-option". > > > > The below should be if $linker supports z noreloc-overflow then set > > -pie together with --no-dynamic-linker. > > AFAICS this is for x86-64-only? > > > > Is it possible to simplify and have have one single line...? > > > Sorry, I do not understand. > > Could you clarify what you want to achieve? > > > Thanks. > > > > > > > > KBUILD_LDFLAGS += $(call ld-option, -pie) $(call ld-option, --no-dynamic-linker) > > > > [ arch/x86/boot/compressed/Makefile ] > > > > KBUILD_LDFLAGS := -m elf_$(UTS_MACHINE) > > # Compressed kernel should be built as PIE since it may be loaded at any > > # address by the bootloader. > > ifeq ($(CONFIG_X86_32),y) > > KBUILD_LDFLAGS += $(call ld-option, -pie) $(call ld-option, --no-dynamic-linker) See below. > > else > > # To build 64-bit compressed kernel as PIE, we disable relocation > > # overflow check to avoid relocation overflow error with a new linker > > # command-line option, -z noreloc-overflow. > > KBUILD_LDFLAGS += $(shell $(LD) --help 2>&1 | grep -q "\-z noreloc-overflow" \ > > && echo "-z noreloc-overflow -pie --no-dynamic-linker") First of all, I would like to have the "-z noreloc-overflow" checked via "call ld-option". Where I have problems is how to check the following, "-pie --no-dynamic-linker" shall be set if "-z noreloc-overflow" is available. According to the comments, this is for the CONFIG_X86_64 case. ifeq ($(CONFIG_X86_64),y) KBUILD_LDFLAGS += $(call ld-option, -z noreloc-overflow) if z-noreloc-oevrflow-ld-option-is-available KBUILD_LDFLAGS += $(call ld-option, -pie) $(call ld-option, --no-dynamic-linker) endif # z-noreloc-oevrflow-ld-option-is-available endif # CONFIG_X86_64 As we have the 2nd check for the CONFIG_X86_32 case already, I asked myself if it is possible to use it at one single place. KBUILD_LDFLAGS += $(call ld-option, -pie) $(call ld-option, --no-dynamic-linker) Is this now clearer? Regards, - Sedat - > > endif > > LDFLAGS_vmlinux := -T > > > > If you need more infos let me know. > > > > Thanks. > > > > Regards, > > - Sedat - > > > > Link: https://github.com/ClangBuiltLinux/linux/issues/411 > > > > -- > Best Regards > Masahiro Yamada