Re: Fix and simplify -z noreloc-overflow" linker check in arch/x86/boot/compressed/Makefile

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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)
> 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



-- 
Best Regards
Masahiro Yamada



[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux