From c05bf06f03cb27a2fd02a4e89330f7d6309ec357 Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Tue, 5 Sep 2023 14:32:17 -0400 Subject: [PATCH] jjb: lttng-modules: refine patch version ranges Change-Id: Ic173f4102d7dfb1dd83cf67ff26eb47ee89e7d5a Signed-off-by: Michael Jeanson --- scripts/lttng-modules/param-build.sh | 55 ++++++---------------------- 1 file changed, 11 insertions(+), 44 deletions(-) diff --git a/scripts/lttng-modules/param-build.sh b/scripts/lttng-modules/param-build.sh index 77ab74e..5d12ca5 100644 --- a/scripts/lttng-modules/param-build.sh +++ b/scripts/lttng-modules/param-build.sh @@ -448,52 +448,19 @@ build_linux_kernel() { patch_linux_kernel dfbd199a7cfe3e3cd8531e1353cdbd7175bfbc5e fi - if { vergte "${kversion}" "3.18"; } && { verlt "${kversion}" "4.16"; } ; then - # Compatibility with binutils >= ~ 2.31 + # Compatibility with binutils >= ~ 2.31 + if { vergte "${kversion}" "3.19"; } && { verlt "${kversion}" "4.16"; } ; then patch_linux_kernel b21ebf2fb4cde1618915a97cc773e287ff49173e fi - - # The above patch only partially applies linux 3.17, and has been, so a - # rebased version is used instead. - if { vergte "${kversion}" "3.17"; } && { verlt "${kversion}" "3.18"; } ; then - cat <<'EOF' | patch -p1 -diff --git a/arch/x86/kernel/machine_kexec_64.c b/arch/x86/kernel/machine_kexec_64.c -index 48598105..0652c5b6 100644 ---- a/arch/x86/kernel/machine_kexec_64.c -+++ b/arch/x86/kernel/machine_kexec_64.c -@@ -516,6 +516,7 @@ int arch_kexec_apply_relocations_add(const Elf64_Ehdr *ehdr, - goto overflow; - break; - case R_X86_64_PC32: -+ case R_X86_64_PLT32: - value -= (u64)address; - *(u32 *)location = value; - break; -diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c -index e69f9882..7c6bc9fe 100644 ---- a/arch/x86/kernel/module.c -+++ b/arch/x86/kernel/module.c -@@ -180,6 +180,7 @@ int apply_relocate_add(Elf64_Shdr *sechdrs, - goto overflow; - break; - case R_X86_64_PC32: -+ case R_X86_64_PLT32: - val -= (u64)loc; - *(u32 *)loc = val; - #if 0 -diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c -index bbb1d225..8deeacbc 100644 ---- a/arch/x86/tools/relocs.c -+++ b/arch/x86/tools/relocs.c -@@ -763,6 +763,7 @@ static int do_reloc64(struct section *sec, Elf_Rel *rel, ElfW(Sym) *sym, - switch (r_type) { - case R_X86_64_NONE: - case R_X86_64_PC32: -+ case R_X86_64_PLT32: - /* - * NONE can be ignored and PC relative relocations don't - * need to be adjusted. -EOF + if { vergte "${kversion}" "3.17"; } && { verlt "${kversion}" "3.18.69"; } ; then + patch_linux_kernel edb9d2d5e647e7a8521b0d35f8452deb02dfd138 + fi + if { vergte "${kversion}" "3.17"; } && { verlt "${kversion}" "3.18.100"; } ; then + patch_linux_kernel 3be6583f0b6f1bf1ee650ebf473d9dee36836527 + patch_linux_kernel 12d839211d080f6a9c370398c41a260365d34c62 + fi + if { vergte "${kversion}" "3.16"; } && { verlt "${kversion}" "3.16.82"; } ; then + patch_linux_kernel ad10e6d464796f2a481de4039a43b9cfca034e1c fi if ( { vergte "${kversion}" "3.14"; } && { verlt "${kversion}" "4.4"; } ) || -- 2.34.1