]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
x86/module: Revert "Deal with GOT based stack cookie load on Clang < 17"
authorNathan Chancellor <nathan@kernel.org>
Sun, 17 May 2026 23:05:15 +0000 (13:05 -1000)
committerNathan Chancellor <nathan@kernel.org>
Wed, 27 May 2026 22:20:06 +0000 (15:20 -0700)
Now that the minimum supported version of LLVM for building the kernel
has been raised to 17.0.1, the workaround added by

  78c4374ef8b8 ("x86/module: Deal with GOT based stack cookie load on Clang < 17")

will never be included, as the final clause in the preprocessor
conditional is always false. Revert the change to clean up the dead
code.

Acked-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://patch.msgid.link/20260517-bump-minimum-supported-llvm-version-to-17-v2-12-b3b8cda46bdd@kernel.org
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
arch/x86/include/asm/elf.h
arch/x86/kernel/module.c

index c7f98977663ca40e5c45b3b18bae07f700e2fad0..0de9df759c99afd39936efcd22a260f6ef188dba 100644 (file)
@@ -54,9 +54,8 @@ typedef struct user_i387_struct elf_fpregset_t;
 #define R_X86_64_GLOB_DAT      6       /* Create GOT entry */
 #define R_X86_64_JUMP_SLOT     7       /* Create PLT entry */
 #define R_X86_64_RELATIVE      8       /* Adjust by program base */
-#define R_X86_64_GOTPCREL      9       /* 32 bit signed pc relative offset to GOT */
-#define R_X86_64_GOTPCRELX     41
-#define R_X86_64_REX_GOTPCRELX 42
+#define R_X86_64_GOTPCREL      9       /* 32 bit signed pc relative
+                                          offset to GOT */
 #define R_X86_64_32            10      /* Direct 32 bit zero extended */
 #define R_X86_64_32S           11      /* Direct 32 bit sign extended */
 #define R_X86_64_16            12      /* Direct 16 bit zero extended */
index 11c45ce42694cb7213094ab48da8518698ac5b31..b5b4de4f08e6cd00816fc13a564b44905ed69a34 100644 (file)
@@ -19,7 +19,6 @@
 #include <linux/jump_label.h>
 #include <linux/random.h>
 #include <linux/memory.h>
-#include <linux/stackprotector.h>
 
 #include <asm/text-patching.h>
 #include <asm/page.h>
@@ -132,20 +131,6 @@ static int __write_relocate_add(Elf64_Shdr *sechdrs,
                                goto overflow;
                        size = 4;
                        break;
-#if defined(CONFIG_STACKPROTECTOR) && \
-    defined(CONFIG_CC_IS_CLANG) && CONFIG_CLANG_VERSION < 170000
-               case R_X86_64_REX_GOTPCRELX: {
-                       static unsigned long __percpu *const addr = &__stack_chk_guard;
-
-                       if (sym->st_value != (u64)addr) {
-                               pr_err("%s: Unsupported GOTPCREL relocation\n", me->name);
-                               return -ENOEXEC;
-                       }
-
-                       val = (u64)&addr + rel[i].r_addend;
-                       fallthrough;
-               }
-#endif
                case R_X86_64_PC32:
                case R_X86_64_PLT32:
                        val -= (u64)loc;