| From 991a20173a1fbafd9fc0df0c7e17bb62d44a4deb Mon Sep 17 00:00:00 2001 |
| From: Sumanth Korikkar <sumanthk@linux.ibm.com> |
| Date: Tue, 25 Mar 2025 19:02:45 +0100 |
| Subject: s390: Fix linker error when -no-pie option is unavailable |
| |
| From: Sumanth Korikkar <sumanthk@linux.ibm.com> |
| |
| commit 991a20173a1fbafd9fc0df0c7e17bb62d44a4deb upstream. |
| |
| The kernel build may fail if the linker does not support -no-pie option, |
| as it always included in LDFLAGS_vmlinux. |
| |
| Error log: |
| s390-linux-ld: unable to disambiguate: -no-pie (did you mean --no-pie ?) |
| |
| Although the GNU linker defaults to -no-pie, the ability to explicitly |
| specify this option was introduced in binutils 2.36. |
| |
| Hence, fix it by adding -no-pie to LDFLAGS_vmlinux only when it is |
| available. |
| |
| Cc: stable@vger.kernel.org |
| Fixes: 00cda11d3b2e ("s390: Compile kernel with -fPIC and link with -no-pie") |
| Reported-by: kernel test robot <lkp@intel.com> |
| Closes: https://lore.kernel.org/oe-kbuild-all/202503220342.T3fElO9L-lkp@intel.com/ |
| Suggested-by: Jens Remus <jremus@linux.ibm.com> |
| Reviewed-by: Jens Remus <jremus@linux.ibm.com> |
| Signed-off-by: Sumanth Korikkar <sumanthk@linux.ibm.com> |
| Signed-off-by: Vasily Gorbik <gor@linux.ibm.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/s390/Makefile | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/arch/s390/Makefile |
| +++ b/arch/s390/Makefile |
| @@ -15,7 +15,7 @@ KBUILD_CFLAGS_MODULE += -fPIC |
| KBUILD_AFLAGS += -m64 |
| KBUILD_CFLAGS += -m64 |
| KBUILD_CFLAGS += -fPIC |
| -LDFLAGS_vmlinux := -no-pie --emit-relocs --discard-none |
| +LDFLAGS_vmlinux := $(call ld-option,-no-pie) --emit-relocs --discard-none |
| extra_tools := relocs |
| aflags_dwarf := -Wa,-gdwarf-2 |
| KBUILD_AFLAGS_DECOMPRESSOR := $(CLANG_FLAGS) -m64 -D__ASSEMBLY__ |