summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--0001-Revert-powerpc-Simplify-module-TOC-handling.patch103
-rw-r--r--config-generic2
-rw-r--r--gitrev2
-rw-r--r--kernel.spec44
-rw-r--r--sources1
5 files changed, 149 insertions, 3 deletions
diff --git a/0001-Revert-powerpc-Simplify-module-TOC-handling.patch b/0001-Revert-powerpc-Simplify-module-TOC-handling.patch
new file mode 100644
index 000000000..85438ee80
--- /dev/null
+++ b/0001-Revert-powerpc-Simplify-module-TOC-handling.patch
@@ -0,0 +1,103 @@
+From b66e7caab9e6634dadce2aced6e174c095e1ca0e Mon Sep 17 00:00:00 2001
+From: Peter Robinson <pbrobinson@gmail.com>
+Date: Tue, 9 Feb 2016 15:00:02 +0000
+Subject: [PATCH] Revert "powerpc: Simplify module TOC handling"
+
+This reverts commit c153693d7eb9eeb28478aa2deaaf0b4e7b5ff5e9.
+---
+ arch/powerpc/kernel/misc_64.S | 28 ++++++++++++++++++++++++++++
+ arch/powerpc/kernel/module_64.c | 12 +++---------
+ scripts/mod/modpost.c | 3 +--
+ 3 files changed, 32 insertions(+), 11 deletions(-)
+
+diff --git a/arch/powerpc/kernel/misc_64.S b/arch/powerpc/kernel/misc_64.S
+index f28754c..db475d4 100644
+--- a/arch/powerpc/kernel/misc_64.S
++++ b/arch/powerpc/kernel/misc_64.S
+@@ -701,3 +701,31 @@ _GLOBAL(kexec_sequence)
+ li r5,0
+ blr /* image->start(physid, image->start, 0); */
+ #endif /* CONFIG_KEXEC */
++
++#ifdef CONFIG_MODULES
++#if defined(_CALL_ELF) && _CALL_ELF == 2
++
++#ifdef CONFIG_MODVERSIONS
++.weak __crc_TOC.
++.section "___kcrctab+TOC.","a"
++.globl __kcrctab_TOC.
++__kcrctab_TOC.:
++ .llong __crc_TOC.
++#endif
++
++/*
++ * Export a fake .TOC. since both modpost and depmod will complain otherwise.
++ * Both modpost and depmod strip the leading . so we do the same here.
++ */
++.section "__ksymtab_strings","a"
++__kstrtab_TOC.:
++ .asciz "TOC."
++
++.section "___ksymtab+TOC.","a"
++/* This symbol name is important: it's used by modpost to find exported syms */
++.globl __ksymtab_TOC.
++__ksymtab_TOC.:
++ .llong 0 /* .value */
++ .llong __kstrtab_TOC.
++#endif /* ELFv2 */
++#endif /* MODULES */
+diff --git a/arch/powerpc/kernel/module_64.c b/arch/powerpc/kernel/module_64.c
+index ac64ffd..59663af 100644
+--- a/arch/powerpc/kernel/module_64.c
++++ b/arch/powerpc/kernel/module_64.c
+@@ -326,10 +326,7 @@ static void dedotify_versions(struct modversion_info *vers,
+ }
+ }
+
+-/*
+- * Undefined symbols which refer to .funcname, hack to funcname. Make .TOC.
+- * seem to be defined (value set later).
+- */
++/* Undefined symbols which refer to .funcname, hack to funcname (or .TOC.) */
+ static void dedotify(Elf64_Sym *syms, unsigned int numsyms, char *strtab)
+ {
+ unsigned int i;
+@@ -337,11 +334,8 @@ static void dedotify(Elf64_Sym *syms, unsigned int numsyms, char *strtab)
+ for (i = 1; i < numsyms; i++) {
+ if (syms[i].st_shndx == SHN_UNDEF) {
+ char *name = strtab + syms[i].st_name;
+- if (name[0] == '.') {
+- if (strcmp(name+1, "TOC.") == 0)
+- syms[i].st_shndx = SHN_ABS;
++ if (name[0] == '.')
+ memmove(name, name+1, strlen(name));
+- }
+ }
+ }
+ }
+@@ -357,7 +351,7 @@ static Elf64_Sym *find_dot_toc(Elf64_Shdr *sechdrs,
+ numsyms = sechdrs[symindex].sh_size / sizeof(Elf64_Sym);
+
+ for (i = 1; i < numsyms; i++) {
+- if (syms[i].st_shndx == SHN_ABS
++ if (syms[i].st_shndx == SHN_UNDEF
+ && strcmp(strtab + syms[i].st_name, "TOC.") == 0)
+ return &syms[i];
+ }
+diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
+index 48958d3..e080746 100644
+--- a/scripts/mod/modpost.c
++++ b/scripts/mod/modpost.c
+@@ -594,8 +594,7 @@ static int ignore_undef_symbol(struct elf_info *info, const char *symname)
+ if (strncmp(symname, "_restgpr0_", sizeof("_restgpr0_") - 1) == 0 ||
+ strncmp(symname, "_savegpr0_", sizeof("_savegpr0_") - 1) == 0 ||
+ strncmp(symname, "_restvr_", sizeof("_restvr_") - 1) == 0 ||
+- strncmp(symname, "_savevr_", sizeof("_savevr_") - 1) == 0 ||
+- strcmp(symname, ".TOC.") == 0)
++ strncmp(symname, "_savevr_", sizeof("_savevr_") - 1) == 0)
+ return 1;
+ /* Do not ignore this symbol */
+ return 0;
+--
+2.5.0
+
diff --git a/config-generic b/config-generic
index 7dd27101c..9eef87601 100644
--- a/config-generic
+++ b/config-generic
@@ -4800,6 +4800,8 @@ CONFIG_HEADERS_CHECK=y
# This breaks booting until the module patches are in-tree
# CONFIG_DEBUG_KOBJECT_RELEASE is not set
#
+# This just changes a default enable with workqueue.debug_force_rr_cpu
+# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
#
# These debug options are deliberatly left on (even in 'make release' kernels).
# They aren't that much of a performance impact, and the value
diff --git a/gitrev b/gitrev
index 336279529..4daf07a73 100644
--- a/gitrev
+++ b/gitrev
@@ -1 +1 @@
-388f7b1d6e8ca06762e2454d28d6c3c55ad0fe95
+721675fcf277cfd345117d3abae1c5590c5fdfd4
diff --git a/kernel.spec b/kernel.spec
index 7720e6dfc..411d352dc 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -75,7 +75,7 @@ Summary: The Linux kernel
# The rc snapshot level
%define rcrev 3
# The git snapshot level
-%define gitrev 0
+%define gitrev 2
# Set rpm version accordingly
%define rpmversion 4.%{upstream_sublevel}.0
%endif
@@ -597,6 +597,8 @@ Patch502: firmware-Drop-WARN-from-usermodehelper_read_trylock-.patch
Patch508: kexec-uefi-copy-secure_boot-flag-in-boot-params.patch
+Patch510: 0001-Revert-powerpc-Simplify-module-TOC-handling.patch
+
#rhbz 1286293
Patch571: ideapad-laptop-Add-Lenovo-ideapad-Y700-17ISK-to-no_h.patch
@@ -1440,9 +1442,35 @@ BuildKernel() {
if [ -d arch/%{asmarch}/mach-${Flavour}/include ]; then
cp -a --parents arch/%{asmarch}/mach-${Flavour}/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
fi
+ # include a few files for 'make prepare'
+ cp -a --parents arch/arm/tools/gen-mach-types $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+ cp -a --parents arch/arm/tools/mach-types $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+
%endif
cp -a include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
-
+%ifarch %{ix86} x86_64
+ # files for 'make prepare' to succeed with kernel-devel
+ cp -a --parents arch/x86/entry/syscalls/syscall_32.tbl $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+ cp -a --parents arch/x86/entry/syscalls/syscalltbl.sh $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+ cp -a --parents arch/x86/entry/syscalls/syscallhdr.sh $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+ cp -a --parents arch/x86/entry/syscalls/syscall_64.tbl $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+ cp -a --parents arch/x86/tools/relocs_32.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+ cp -a --parents arch/x86/tools/relocs_64.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+ cp -a --parents arch/x86/tools/relocs.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+ cp -a --parents arch/x86/tools/relocs_common.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+ cp -a --parents arch/x86/tools/relocs.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+ cp -a --parents tools/include/tools/le_byteshift.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+ cp -a --parents arch/x86/purgatory/purgatory.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+ cp -a --parents arch/x86/purgatory/sha256.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+ cp -a --parents arch/x86/purgatory/sha256.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+ cp -a --parents arch/x86/purgatory/stack.S $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+ cp -a --parents arch/x86/purgatory/string.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+ cp -a --parents arch/x86/purgatory/setup-x86_64.S $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+ cp -a --parents arch/x86/purgatory/entry64.S $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+ cp -a --parents arch/x86/boot/string.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+ cp -a --parents arch/x86/boot/string.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+ cp -a --parents arch/x86/boot/ctype.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+%endif
# Make sure the Makefile and version.h have a matching timestamp so that
# external modules can be built
touch -r $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Makefile $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/generated/uapi/linux/version.h
@@ -2061,6 +2089,18 @@ fi
#
#
%changelog
+* Thu Feb 11 2016 Justin M. Forbes <jforbes@fedoraproject.org> - 4.5.0-0.rc3.git2.1
+- Linux v4.5-rc3-57-g721675f
+
+* Tue Feb 09 2016 Justin M. Forbes <jforbes@fedoraproject.org> - 4.5.0-0.rc3.git1.1
+- Linux v4.5-rc3-19-g7cf91ad
+
+* Tue Feb 9 2016 Laura Abbott <labbott@fedoraproject.org>
+- Let 'make prepare' succeed with kernel-devel
+
+* Tue Feb 9 2016 Peter Robinson <pbrobinson@fedoraproject.org> 4.5.0-0.rc3.git0.2
+- Fix Power64 kernel build
+
* Mon Feb 08 2016 Justin M. Forbes <jforbes@fedoraproject.org> - 4.5.0-0.rc3.git0.1
- Disable debugging options.
- Linux v4.5-rc3
diff --git a/sources b/sources
index bbf1b88a7..0fd68bd4b 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,4 @@
9a78fa2eb6c68ca5a40ed5af08142599 linux-4.4.tar.xz
dcbc8fe378a676d5d0dd208cf524e144 perf-man-4.4.tar.gz
1ae1cd8a5d6555ac73c727982008a2b8 patch-4.5-rc3.xz
+4f825894af380f3efe8fb7d7825d8e81 patch-4.5-rc3-git2.xz