| From 1c2f5ccb23610341215b3d38d246bbb6e3958d5a Mon Sep 17 00:00:00 2001 |
| From: Vasily Gorbik <gor@linux.ibm.com> |
| Date: Wed, 8 Jan 2020 14:46:00 +0100 |
| Subject: [PATCH] s390: adjust -mpacked-stack support check for clang 10 |
| |
| commit 253b3c4b2920e07ce9e2b18800b9b65245e2fafa upstream. |
| |
| clang 10 introduces -mpacked-stack compiler option implementation. At the |
| same time currently it does not support a combination of -mpacked-stack |
| and -mbackchain. This leads to the following build error: |
| |
| clang: error: unsupported option '-mpacked-stack with -mbackchain' for |
| target 's390x-ibm-linux' |
| |
| If/when clang adds support for a combination of -mpacked-stack and |
| -mbackchain it would also require -msoft-float (like gcc does). According |
| to Ulrich Weigand "stack slot assigned to the kernel backchain overlaps |
| the stack slot assigned to the FPR varargs (both are required to be |
| placed immediately after the saved r15 slot if present)." |
| |
| Extend -mpacked-stack compiler option support check to include all 3 |
| options -mpacked-stack -mbackchain -msoft-float which must present to |
| support -mpacked-stack with -mbackchain. |
| |
| Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com> |
| Signed-off-by: Vasily Gorbik <gor@linux.ibm.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/arch/s390/Makefile b/arch/s390/Makefile |
| index e48013cf50a2..b525c795587e 100644 |
| --- a/arch/s390/Makefile |
| +++ b/arch/s390/Makefile |
| @@ -69,7 +69,7 @@ cflags-y += -Wa,-I$(srctree)/arch/$(ARCH)/include |
| # |
| cflags-$(CONFIG_FRAME_POINTER) += -fno-optimize-sibling-calls |
| |
| -ifeq ($(call cc-option-yn,-mpacked-stack),y) |
| +ifeq ($(call cc-option-yn,-mpacked-stack -mbackchain -msoft-float),y) |
| cflags-$(CONFIG_PACK_STACK) += -mpacked-stack -D__PACK_STACK |
| aflags-$(CONFIG_PACK_STACK) += -D__PACK_STACK |
| endif |
| -- |
| 2.7.4 |
| |