summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVivek Goyal <vgoyal@redhat.com>2012-06-08 09:43:15 -0400
committerSimon Horman <horms@verge.net.au>2012-06-11 10:44:51 +0900
commitd40badaa2553c44d0585df335ad7e1c465f8ced1 (patch)
tree7e38d13bb4ccbfa545e382f32ca60b1af97fa497
parente22ba509d252587a60aca035228faf49c2d47958 (diff)
downloadkexec-tools-d40badaa2553c44d0585df335ad7e1c465f8ced1.tar.gz
ppc/ppc64: Compile purgatory code with gcc option -msoft-float
Recently we faced an issue on power7 machine where kernel hanged in purgatory. Some investigation revealed that gcc is generating hardware FPU instructions. I have been told we can't use it at this point of time and as kernel is compiled with -msoft-float for ppc/ppc64, so should be purgatory (as it runs inside kernel context). Thanks to Jakub Jelinek and Lingzhu Xiang for debugging and coming up with a fix for this issue. Signed-off-by: Vivek Goyal <vgoyal@redhat.com> Tested-by: Lingzhu Xiang <lxiang@redhat.com> Tested-by: Suzuki K. Poulose <suzuki@in.ibm.com> Signed-off-by: Simon Horman <horms@verge.net.au>
-rw-r--r--purgatory/arch/ppc/Makefile2
-rw-r--r--purgatory/arch/ppc64/Makefile2
2 files changed, 3 insertions, 1 deletions
diff --git a/purgatory/arch/ppc/Makefile b/purgatory/arch/ppc/Makefile
index 72289a09..c85c58aa 100644
--- a/purgatory/arch/ppc/Makefile
+++ b/purgatory/arch/ppc/Makefile
@@ -7,6 +7,8 @@ ppc_PURGATORY_SRCS += purgatory/arch/ppc/misc.S
ppc_PURGATORY_SRCS += purgatory/arch/ppc/purgatory-ppc.c
ppc_PURGATORY_SRCS += purgatory/arch/ppc/console-ppc.c
+ppc_PURGATORY_EXTRA_CFLAGS += -msoft-float
+
dist += purgatory/arch/ppc/Makefile $(ppc_PURGATORY_SRCS) \
purgatory/arch/ppc/purgatory-ppc.h purgatory/arch/ppc/ppc_asm.h
diff --git a/purgatory/arch/ppc64/Makefile b/purgatory/arch/ppc64/Makefile
index 095f41eb..67f41aea 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 -mcall-aixdesc
+ppc64_PURGATORY_EXTRA_CFLAGS += -m64 -mcall-aixdesc -msoft-float
ppc64_PURGATORY_EXTRA_ASFLAGS += -m64 -mcall-aixdesc
ppc64_PURGATORY_EXTRA_LDFLAGS += -melf64ppc