[PATCH v2] purgatory: force PIC/PIE/SSP off
Simon Horman
horms at verge.net.au
Wed Apr 29 22:05:37 PDT 2015
On Thu, Apr 16, 2015 at 03:39:26AM -0400, Mike Frysinger wrote:
> From: Mike Frysinger <vapier at chromium.org>
>
> If the toolchain has these things turned on automatically, then the
> purgatory code might be miscompiled leading to runtime errors like:
> Unhandled rela relocation: R_X86_64_GOTPC64
>
> It might look like the problem is with the kernel when in reality,
> kexec is complaining about the purgatory module. Force off harden
> features that don't make sense in kernel space.
>
> Signed-off-by: Mike Frysinger <vapier at chromium.org>
thanks, applied.
> ---
> Note: I suspect this patch fixes a semi-recent report:
> http://lists.infradead.org/pipermail/kexec/2015-February/013305.html
>
> v2:
> - clean up ssp flags in arch subdirs
>
> purgatory/Makefile | 3 ++-
> purgatory/arch/ppc64/Makefile | 2 +-
> purgatory/arch/s390/Makefile | 1 -
> 3 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/purgatory/Makefile b/purgatory/Makefile
> index 2d6b2c0..2b5c061 100644
> --- a/purgatory/Makefile
> +++ b/purgatory/Makefile
> @@ -49,7 +49,8 @@ $(PURGATORY): CC=$(TARGET_CC)
> $(PURGATORY): CFLAGS+=$(PURGATORY_EXTRA_CFLAGS) \
> $($(ARCH)_PURGATORY_EXTRA_CFLAGS) \
> -Os -fno-builtin -ffreestanding \
> - -fno-zero-initialized-in-bss
> + -fno-zero-initialized-in-bss \
> + -fno-PIC -fno-PIE -fno-stack-protector
>
> $(PURGATORY): CPPFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS) \
> -I$(srcdir)/purgatory/include \
> diff --git a/purgatory/arch/ppc64/Makefile b/purgatory/arch/ppc64/Makefile
> index 6c58fa2..8ca2719 100644
> --- a/purgatory/arch/ppc64/Makefile
> +++ b/purgatory/arch/ppc64/Makefile
> @@ -9,7 +9,7 @@ ppc64_PURGATORY_SRCS += purgatory/arch/ppc64/console-ppc64.c
> ppc64_PURGATORY_SRCS += purgatory/arch/ppc64/crashdump_backup.c
> ppc64_PURGATORY_SRCS += purgatory/arch/ppc64/misc.S
>
> -ppc64_PURGATORY_EXTRA_CFLAGS += -m64 -msoft-float -fno-stack-protector \
> +ppc64_PURGATORY_EXTRA_CFLAGS += -m64 -msoft-float \
> -fno-exceptions
> ppc64_PURGATORY_EXTRA_ASFLAGS += -m64
> ifeq ($(SUBARCH),BE)
> diff --git a/purgatory/arch/s390/Makefile b/purgatory/arch/s390/Makefile
> index 09749bd..c94cc3c 100644
> --- a/purgatory/arch/s390/Makefile
> +++ b/purgatory/arch/s390/Makefile
> @@ -2,7 +2,6 @@
> # Purgatory s390
> #
>
> -s390_PURGATORY_EXTRA_CFLAGS += -fno-stack-protector
> s390_PURGATORY_SRCS += purgatory/arch/s390/console-s390.c
> s390_PURGATORY_SRCS += purgatory/arch/s390/setup-s390.S
> s390_PURGATORY_SRCS += purgatory/arch/s390/purgatory-s390.c
> --
> 2.3.5
>
>
> _______________________________________________
> kexec mailing list
> kexec at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec
>
More information about the kexec
mailing list