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...? 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) 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") endif LDFLAGS_vmlinux := -T If you need more infos let me know. Thanks. Regards, - Sedat - Link: https://github.com/ClangBuiltLinux/linux/issues/411