From c63d4533ab1ea37ac11ea4046e5bd6270be682ed Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Tue, 20 Jun 2017 20:08:40 +0100 Subject: [PATCH] [sparc64] Update "Revert "sparc: move exports to definitions"" for the addition of __multi3 (fixes FTBFS) --- debian/changelog | 2 ++ ...rt-sparc-move-exports-to-definitions.patch | 32 +++++++++++++++---- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/debian/changelog b/debian/changelog index c4b624db8..dbd49ebe8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,8 @@ linux (4.11.6-2) UNRELEASED; urgency=medium * [md68k] udeb: Use only the common module list for nic-shared-modules (fixes FTBFS) + * [sparc64] Update "Revert "sparc: move exports to definitions"" for the + addition of __multi3 (fixes FTBFS) -- Ben Hutchings Tue, 20 Jun 2017 19:18:44 +0100 diff --git a/debian/patches/bugfix/sparc/revert-sparc-move-exports-to-definitions.patch b/debian/patches/bugfix/sparc/revert-sparc-move-exports-to-definitions.patch index 59f634c8d..5879c023b 100644 --- a/debian/patches/bugfix/sparc/revert-sparc-move-exports-to-definitions.patch +++ b/debian/patches/bugfix/sparc/revert-sparc-move-exports-to-definitions.patch @@ -16,6 +16,9 @@ them. Don't restore the export of memscan. Commit aa95ce361ed9 "sparc64: Delete __ret_efault." did what it says; don't try to export that symbol. + +Commit 1b4af13ff2cc "sparc64: Add __multi3 for gcc 7.x and later." +did what it says; add a prototype and export it from C code instead. --- arch/sparc/include/asm/Kbuild | 1 - arch/sparc/kernel/Makefile | 2 +- @@ -70,7 +73,7 @@ don't try to export that symbol. --- a/arch/sparc/include/asm/Kbuild +++ b/arch/sparc/include/asm/Kbuild -@@ -6,7 +6,6 @@ generic-y += cputime.h +@@ -5,7 +5,6 @@ generic-y += clkdev.h generic-y += div64.h generic-y += emergency-restart.h generic-y += exec.h @@ -143,7 +146,7 @@ don't try to export that symbol. /* This section from from _start to sparc64_boot_end should fit into * 0x0000000000404000 to 0x0000000000408000. */ -@@ -144,7 +143,6 @@ prom_cpu_compatible: +@@ -145,7 +144,6 @@ prom_cpu_compatible: .skip 64 prom_root_node: .word 0 @@ -151,7 +154,7 @@ don't try to export that symbol. prom_mmu_ihandle_cache: .word 0 prom_boot_mapped_pc: -@@ -160,7 +158,6 @@ is_sun4v: +@@ -161,7 +159,6 @@ is_sun4v: .word 0 sun4v_chip_type: .word SUN4V_CHIP_INVALID @@ -159,7 +162,7 @@ don't try to export that symbol. 1: rd %pc, %l0 -@@ -923,7 +920,6 @@ swapper_4m_tsb: +@@ -927,7 +924,6 @@ swapper_4m_tsb: .globl prom_tba, tlb_type prom_tba: .xword 0 tlb_type: .word 0 /* Must NOT end up in BSS */ @@ -275,7 +278,7 @@ don't try to export that symbol. +EXPORT_SYMBOL(saved_command_line); --- /dev/null +++ b/arch/sparc/kernel/sparc_ksyms_64.c -@@ -0,0 +1,52 @@ +@@ -0,0 +1,56 @@ +/* arch/sparc64/kernel/sparc64_ksyms.c: Sparc64 specific ksyms support. + * + * Copyright (C) 1996, 2007 David S. Miller (davem@davemloft.net) @@ -326,11 +329,15 @@ don't try to export that symbol. +EXPORT_SYMBOL(ffs); +EXPORT_SYMBOL(__ffs); + ++/* from multi3.S */ ++asmlinkage __int128 __multi3(__int128, __int128); ++EXPORT_SYMBOL(__multi3); ++ +/* Exporting a symbol from /init/main.c */ +EXPORT_SYMBOL(saved_command_line); --- a/arch/sparc/lib/Makefile +++ b/arch/sparc/lib/Makefile -@@ -43,4 +43,5 @@ lib-$(CONFIG_SPARC64) += mcount.o ipcsum +@@ -44,4 +44,5 @@ lib-$(CONFIG_SPARC64) += mcount.o ipcsum obj-$(CONFIG_SPARC64) += iomap.o obj-$(CONFIG_SPARC32) += atomic32.o ucmpdi2.o @@ -1289,3 +1296,16 @@ don't try to export that symbol. restore ENDPROC(xor_niagara_5) -EXPORT_SYMBOL(xor_niagara_5) +--- a/arch/sparc/lib/multi3.S ++++ b/arch/sparc/lib/multi3.S +@@ -1,5 +1,4 @@ + #include +-#include + + .text + .align 4 +@@ -32,4 +31,3 @@ ENTRY(__multi3) /* %o0 = u, %o1 = v */ + retl + add %g1, %o0, %o0 + ENDPROC(__multi3) +-EXPORT_SYMBOL(__multi3)