Allow musl to build with new binutils
PATCH 1/1 Allow musl to build with new binutils
New binutils cannot build musl-1.1.16 due to breakage in arm atomics asm. This patch from upstream musl repository is needed until musl-1.1.17 is released:
https://git.musl-libc.org/cgit/musl/commit/?id=b261a24256792177a5f0531dbb25cc6267220ca5
--- .../0002-arm-atomics-asm-with-new-binutils.patch | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 package/musl/0002-arm-atomics-asm-with-new-binutils.patch
package/musl/0002-arm-atomics-asm-with-new-binutils.patch new file +40 -0
@@ -0,0 +1,40 @@ +From b261a24256792177a5f0531dbb25cc6267220ca5 Mon Sep 17 00:00:00 2001 +From: Rich Felker <[email protected]> +Date: Wed, 15 Feb 2017 17:05:50 -0500 +Subject: fix build regression in arm atomics asm with new binutils + +binutils commit bada43421274615d0d5f629a61a60b7daa71bc15 tightened +immediate fixup handling in gas in such a way that the final .arch of +an object file must be compatible with the fixups used when the +instruction was assembled; this in turn broke assembling of atomics.s, +at least in thumb mode. + +it's not clear whether this should be considered a bug in gas, but +.object_arch is preferable anyway for our purpose here of controlling +the ISA level tag on the object file being produced, and it's the +intended directive for use in object files with runtime code +selection. research by Szabolcs Nagy confirmed that .object_arch is +supported in all relevant versions of binutils and clang's integrated +assembler. + +patch by Reiner Herrmann. +--- + src/thread/arm/atomics.s | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/thread/arm/atomics.s b/src/thread/arm/atomics.s +index 202faa4..101ad39 100644 +--- a/src/thread/arm/atomics.s ++++ b/src/thread/arm/atomics.s +@@ -84,7 +84,7 @@ __a_gettp_cp15: + bx lr + + /* Tag this file with minimum ISA level so as not to affect linking. */ +-.arch armv4t ++.object_arch armv4t + .eabi_attribute 6,2 + + .data +-- +cgit v0.11.2 +
Signature · 1 line
2.14.1
PATCH 1/1 Allow musl to build with new binutils
Hi Timothy,
Looks good, but one major problem below that will require a respin: you need to
add your Signed-off-by to the patch.
Quoted 1 line · Timothy Lee
New binutils cannot build musl-1.1.16 due to breakage in arm atomics asm. This
Can you specify which binutils version that is? Based on the log message below
it would be 2.28.
Quoted 25 lines
patch from upstream musl repository is needed until musl-1.1.17 is released:
https://git.musl-libc.org/cgit/musl/commit/?id=b261a24256792177a5f0531dbb25cc6267220ca5Signed-off-by Timothy Lee <[email protected]>--- .../0002-arm-atomics-asm-with-new-binutils.patch | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 package/musl/0002-arm-atomics-asm-with-new-binutils.patchpackage/musl/0002-arm-atomics-asm-with-new-binutils.patch new file +10
-0@@ -0,0 +1,40 @@ +From b261a24256792177a5f0531dbb25cc6267220ca5 Mon Sep 17 00:00:00 2001 +From: Rich Felker <[email protected]> +Date: Wed, 15 Feb 2017 17:05:50 -0500 +Subject: fix build regression in arm atomics asm with new binutils + +binutils commit bada43421274615d0d5f629a61a60b7daa71bc15 tightened +immediate fixup handling in gas in such a way that the final .arch of +an object file must be compatible with the fixups used when the +instruction was assembled; this in turn broke assembling of atomics.s, +at least in thumb mode.
package/musl/0002-arm-atomics-asm-with-new-binutils.patch line 20
Quoted 10 lines
package/musl/0002-arm-atomics-asm-with-new-binutils.patch new file +10
-0+ +it's not clear whether this should be considered a bug in gas, but +.object_arch is preferable anyway for our purpose here of controlling +the ISA level tag on the object file being produced, and it's the +intended directive for use in object files with runtime code +selection. research by Szabolcs Nagy confirmed that .object_arch is +supported in all relevant versions of binutils and clang's integrated +assembler. + +patch by Reiner Herrmann.
Just like in the patch itself, you need to add your Signed-off-by here. This
is a short way for you to assert that you are entitled to contribute the patch under the package license.
Quoted 4 lines
package/musl/0002-arm-atomics-asm-with-new-binutils.patch new file +4
-0+--- + src/thread/arm/atomics.s | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) +
package/musl/0002-arm-atomics-asm-with-new-binutils.patch line 34
Quoted 10 lines
package/musl/0002-arm-atomics-asm-with-new-binutils.patch new file +10
-0+diff --git a/src/thread/arm/atomics.s b/src/thread/arm/atomics.s +index 202faa4..101ad39 100644 +--- a/src/thread/arm/atomics.s ++++ b/src/thread/arm/atomics.s +@@ -84,7 +84,7 @@ __a_gettp_cp15: + bx lr + + /* Tag this file with minimum ISA level so as not to affect linking. */ +-.arch armv4t ++.object_arch armv4t
I was surprised that this problem was not discovered in
http://toolchains.free-electrons.com/ but I guess that's because the problem only applies to ARMv4 and no ARMv4 toolchains are built. Maybe add to the commit log that this is only for ARMv4.
Regards,
Arnout
Quoted 7 lines
package/musl/0002-arm-atomics-asm-with-new-binutils.patch new file +6
-0+ .eabi_attribute 6,2 + + .data +-- +cgit v0.11.2 +
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
PATCH 1/1 Allow musl for ARMv4 to build with new binutils
New binutils (since 2.27.51) cannot build musl-1.1.16 due to breakage in ARMv4 atomics asm. This patch from upstream musl repository is needed until musl-1.1.17 is released:
https://git.musl-libc.org/cgit/musl/commit/?id=b261a24256792177a5f0531dbb25cc6267220ca5
--- .../0002-arm-atomics-asm-with-new-binutils.patch | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 package/musl/0002-arm-atomics-asm-with-new-binutils.patch
package/musl/0002-arm-atomics-asm-with-new-binutils.patch new file +42 -0
@@ -0,0 +1,42 @@ +From b261a24256792177a5f0531dbb25cc6267220ca5 Mon Sep 17 00:00:00 2001 +From: Rich Felker <[email protected]> +Date: Wed, 15 Feb 2017 17:05:50 -0500 +Subject: fix build regression in arm atomics asm with new binutils + +binutils commit bada43421274615d0d5f629a61a60b7daa71bc15 tightened +immediate fixup handling in gas in such a way that the final .arch of +an object file must be compatible with the fixups used when the +instruction was assembled; this in turn broke assembling of atomics.s, +at least in thumb mode. + +it's not clear whether this should be considered a bug in gas, but +.object_arch is preferable anyway for our purpose here of controlling +the ISA level tag on the object file being produced, and it's the +intended directive for use in object files with runtime code +selection. research by Szabolcs Nagy confirmed that .object_arch is +supported in all relevant versions of binutils and clang's integrated +assembler. + +patch by Reiner Herrmann. + +Signed-off-by: Timothy Lee <[email protected]> +--- + src/thread/arm/atomics.s | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/thread/arm/atomics.s b/src/thread/arm/atomics.s +index 202faa4..101ad39 100644 +--- a/src/thread/arm/atomics.s ++++ b/src/thread/arm/atomics.s +@@ -84,7 +84,7 @@ __a_gettp_cp15: + bx lr + + /* Tag this file with minimum ISA level so as not to affect linking. */ +-.arch armv4t ++.object_arch armv4t + .eabi_attribute 6,2 + + .data +-- +cgit v0.11.2 +
Signature · 1 line
2.14.1
Thomas Petazzoni
AppliedPATCH 1/1 Allow musl for ARMv4 to build with new binutils
Hello,
Quoted 10 lines · Timothy Lee
New binutils (since 2.27.51) cannot build musl-1.1.16 due to breakage in ARMv4 atomics asm. This patch from upstream musl repository is needed until musl-1.1.17 is released:
https://git.musl-libc.org/cgit/musl/commit/?id=b261a24256792177a5f0531dbb25cc6267220ca5Signed-off-by Timothy Lee <[email protected]>--- .../0002-arm-atomics-asm-with-new-binutils.patch | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 package/musl/0002-arm-atomics-asm-with-new-binutils.patch
Applied to master, thanks.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com