a1ce9474e4
The m68k Linux kernel build is broken with binutils >= 2.41 with: arch/m68k/fpsp040/skeleton.S: Assembler messages: arch/m68k/fpsp040/skeleton.S:502: Error: junk at end of line, first unrecognized character is `#' arch/m68k/fpsp040/skeleton.S:508: Error: junk at end of line, first unrecognized character is `#' This commit adds a backport from the upstream Linux kernel which fixes this issue. Many thanks to Romain Naour for the issue investigation and the identification of the kernel commit fixing this. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
98 lines
2.9 KiB
Diff
98 lines
2.9 KiB
Diff
From 0bb6b7477f5dcfafbdd76eea9c7aa7a5f78d7613 Mon Sep 17 00:00:00 2001
|
|
From: Ben Hutchings <benh@debian.org>
|
|
Date: Fri, 16 Jun 2023 17:36:10 +0200
|
|
Subject: [PATCH] m68k: Fix invalid .section syntax
|
|
|
|
gas supports several different forms for .section for ELF targets,
|
|
including:
|
|
.section NAME [, "FLAGS"[, @TYPE[,FLAG_SPECIFIC_ARGUMENTS]]]
|
|
and:
|
|
.section "NAME"[, #FLAGS...]
|
|
|
|
In several places we use a mix of these two forms:
|
|
.section NAME, #FLAGS...
|
|
|
|
A current development snapshot of binutils (2.40.50.20230611) treats
|
|
this mixed syntax as an error.
|
|
|
|
Change to consistently use:
|
|
.section NAME, "FLAGS"
|
|
as is used elsewhere in the kernel.
|
|
|
|
Link: https://buildd.debian.org/status/fetch.php?pkg=linux&arch=m68k&ver=6.4%7Erc6-1%7Eexp1&stamp=1686907300&raw=1
|
|
Signed-off-by: Ben Hutchings <benh@debian.org>
|
|
Tested-by: Jan-Benedict Glaw <jbglaw@lug-owl.de>
|
|
Link: https://lore.kernel.org/r/ZIyBaueWT9jnTwRC@decadent.org.uk
|
|
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
|
Upstream: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=922a9bd138101e3e5718f0f4d40dba68ef89bb43
|
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
|
---
|
|
arch/m68k/fpsp040/skeleton.S | 4 ++--
|
|
arch/m68k/ifpsp060/os.S | 4 ++--
|
|
arch/m68k/kernel/relocate_kernel.S | 4 ++--
|
|
3 files changed, 6 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/arch/m68k/fpsp040/skeleton.S b/arch/m68k/fpsp040/skeleton.S
|
|
index 439395aa6fb4..081922c72daa 100644
|
|
--- a/arch/m68k/fpsp040/skeleton.S
|
|
+++ b/arch/m68k/fpsp040/skeleton.S
|
|
@@ -499,13 +499,13 @@ in_ea:
|
|
dbf %d0,morein
|
|
rts
|
|
|
|
- .section .fixup,#alloc,#execinstr
|
|
+ .section .fixup,"ax"
|
|
.even
|
|
1:
|
|
jbsr fpsp040_die
|
|
jbra .Lnotkern
|
|
|
|
- .section __ex_table,#alloc
|
|
+ .section __ex_table,"a"
|
|
.align 4
|
|
|
|
.long in_ea,1b
|
|
diff --git a/arch/m68k/ifpsp060/os.S b/arch/m68k/ifpsp060/os.S
|
|
index 7a0d6e428066..89e2ec224ab6 100644
|
|
--- a/arch/m68k/ifpsp060/os.S
|
|
+++ b/arch/m68k/ifpsp060/os.S
|
|
@@ -379,11 +379,11 @@ _060_real_access:
|
|
|
|
|
|
| Execption handling for movs access to illegal memory
|
|
- .section .fixup,#alloc,#execinstr
|
|
+ .section .fixup,"ax"
|
|
.even
|
|
1: moveq #-1,%d1
|
|
rts
|
|
-.section __ex_table,#alloc
|
|
+.section __ex_table,"a"
|
|
.align 4
|
|
.long dmrbuae,1b
|
|
.long dmrwuae,1b
|
|
diff --git a/arch/m68k/kernel/relocate_kernel.S b/arch/m68k/kernel/relocate_kernel.S
|
|
index ab0f1e7d4653..f7667079e08e 100644
|
|
--- a/arch/m68k/kernel/relocate_kernel.S
|
|
+++ b/arch/m68k/kernel/relocate_kernel.S
|
|
@@ -26,7 +26,7 @@ ENTRY(relocate_new_kernel)
|
|
lea %pc@(.Lcopy),%a4
|
|
2: addl #0x00000000,%a4 /* virt_to_phys() */
|
|
|
|
- .section ".m68k_fixup","aw"
|
|
+ .section .m68k_fixup,"aw"
|
|
.long M68K_FIXUP_MEMOFFSET, 2b+2
|
|
.previous
|
|
|
|
@@ -49,7 +49,7 @@ ENTRY(relocate_new_kernel)
|
|
lea %pc@(.Lcont040),%a4
|
|
5: addl #0x00000000,%a4 /* virt_to_phys() */
|
|
|
|
- .section ".m68k_fixup","aw"
|
|
+ .section .m68k_fixup,"aw"
|
|
.long M68K_FIXUP_MEMOFFSET, 5b+2
|
|
.previous
|
|
|
|
--
|
|
2.41.0
|
|
|