From 86de99e2056e391ed19a548162749af4fe992d3e Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sun, 21 Sep 2014 20:07:44 +0000 Subject: [PATCH] [hppa/parisc64-smp] Work around gcc 4.8 miscompilation (Closes: #762390) svn path=/dists/sid/linux/; revision=21890 --- debian/changelog | 4 +++ .../parisc/hppa-arch-fast-indirect.patch | 31 +++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 36 insertions(+) create mode 100644 debian/patches/bugfix/parisc/hppa-arch-fast-indirect.patch diff --git a/debian/changelog b/debian/changelog index 77c515b5a..fc96cf6b8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,7 +1,11 @@ linux (3.16.3-3) UNRELEASED; urgency=low + [ Ian Campbell ] * [armhf] Add Exynos5 disk/usb/nic modules to udebs. + [ Ben Hutchings ] + * [hppa/parisc64-smp] Work around gcc 4.8 miscompilation (Closes: #762390) + -- Ian Campbell Sun, 21 Sep 2014 12:09:24 +0100 linux (3.16.3-2) unstable; urgency=medium diff --git a/debian/patches/bugfix/parisc/hppa-arch-fast-indirect.patch b/debian/patches/bugfix/parisc/hppa-arch-fast-indirect.patch new file mode 100644 index 000000000..e5aab36e7 --- /dev/null +++ b/debian/patches/bugfix/parisc/hppa-arch-fast-indirect.patch @@ -0,0 +1,31 @@ +From: Helge Deller +Date: Sun, 21 Sep 2014 20:53:39 +0200 +Subject: hppa-arch-fast-indirect.patch +Bug-Debian: https://bugs.debian.org/762390 + +Currently the 64bit hppa kernel gets miscompiled by gcc-4.8 and as such +it will not boot. + +The attached patch fixes one of the problems. Latest changes in gcc-4.8 +made changes to the -mfast-indirect-calls option which now produces wrong code +when compiling for 64bit. The problem is being worked on in upstream gcc-4.8, +and we don't know yet if we will implement -mfast-indirect-calls for 64bit +(which might introduce side-effects) or not. That's the reason why I don't want +to push attached patch upstream yet. + +--- a/arch/parisc/Makefile ++++ b/arch/parisc/Makefile +@@ -48,7 +48,12 @@ cflags-y := -pipe + + # These flags should be implied by an hppa-linux configuration, but they + # are not in gcc 3.2. +-cflags-y += -mno-space-regs -mfast-indirect-calls ++cflags-y += -mno-space-regs ++ ++# -mfast-indirect-calls is only relevant for 32-bit kernels. ++ifndef CONFIG_64BIT ++cflags-y += -mfast-indirect-calls ++endif + + # Currently we save and restore fpregs on all kernel entry/interruption paths. + # If that gets optimized, we might need to disable the use of fpregs in the diff --git a/debian/patches/series b/debian/patches/series index a17d4ae36..196f23271 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -55,6 +55,7 @@ bugfix/mips/MIPS-ZBOOT-add-missing-linux-string.h-include.patch bugfix/x86/x86-reject-x32-executables-if-x32-abi-not-supported.patch bugfix/s390/s390-3215-fix-hanging-console-issue.patch bugfix/arm64/arm64-crypto-fix-makefile-rule-for-aes-glue-.o.patch +bugfix/parisc/hppa-arch-fast-indirect.patch # Arch features features/mips/MIPS-Support-hard-limit-of-cpu-count-nr_cpu_ids.patch