summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2020-10-29 22:47:03 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-10-31 08:53:13 +0000
commitcc4b464e31fec68b32592cc84344a9704eae8e02 (patch)
treede97ce7892f8d795ea913206b458d2a57a469e37
parent7c2f9bf09c930da335aa88a201656df1e62f3bbd (diff)
downloadopenembedded-core-cc4b464e31fec68b32592cc84344a9704eae8e02.tar.gz
musl: Add .file directive in crt assembly files
This helps linker to noot emit absolute paths into .debug_line sections of liked binaries and libraries and therefore make them reproducible Reported-by: Andrei Gherzan <andrei@gherzan.ro> Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-core/musl/musl/0001-crt-Add-.file-directive.patch300
-rw-r--r--meta/recipes-core/musl/musl_git.bb1
2 files changed, 301 insertions, 0 deletions
diff --git a/meta/recipes-core/musl/musl/0001-crt-Add-.file-directive.patch b/meta/recipes-core/musl/musl/0001-crt-Add-.file-directive.patch
new file mode 100644
index 0000000000..d2bd587e39
--- /dev/null
+++ b/meta/recipes-core/musl/musl/0001-crt-Add-.file-directive.patch
@@ -0,0 +1,300 @@
+From b0124f3c4f2a353506621d387135ebea6b8c6609 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 29 Oct 2020 22:40:53 -0700
+Subject: [PATCH] crt: Add .file directive
+
+Musl linked binaries come out to be not reproducible because
+absolute build path is seen in debug info of crti.o and crtn.o
+This is due to the fact that these objects are built from assembly
+source files and they are missing .file directive
+if we add .file <filename>.s in them then debug info encodes this
+value instead of absolute path in debug_line section
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ crt/aarch64/crti.s | 1 +
+ crt/aarch64/crtn.s | 1 +
+ crt/arm/crti.s | 1 +
+ crt/arm/crtn.s | 1 +
+ crt/i386/crti.s | 1 +
+ crt/i386/crtn.s | 1 +
+ crt/microblaze/crti.s | 1 +
+ crt/microblaze/crtn.s | 1 +
+ crt/mips/crti.s | 1 +
+ crt/mips/crtn.s | 1 +
+ crt/mips64/crti.s | 1 +
+ crt/mips64/crtn.s | 1 +
+ crt/mipsn32/crti.s | 1 +
+ crt/mipsn32/crtn.s | 1 +
+ crt/or1k/crti.s | 1 +
+ crt/or1k/crtn.s | 1 +
+ crt/powerpc/crti.s | 1 +
+ crt/powerpc/crtn.s | 1 +
+ crt/powerpc64/crti.s | 1 +
+ crt/powerpc64/crtn.s | 1 +
+ crt/s390x/crti.s | 1 +
+ crt/s390x/crtn.s | 1 +
+ crt/sh/crti.s | 1 +
+ crt/sh/crtn.s | 1 +
+ crt/x32/crti.s | 1 +
+ crt/x32/crtn.s | 1 +
+ crt/x86_64/crti.s | 1 +
+ crt/x86_64/crtn.s | 1 +
+ 28 files changed, 28 insertions(+)
+
+diff --git a/crt/aarch64/crti.s b/crt/aarch64/crti.s
+index 775df0ac..0f7c23a9 100644
+--- a/crt/aarch64/crti.s
++++ b/crt/aarch64/crti.s
+@@ -1,3 +1,4 @@
++.file "crti.s"
+ .section .init
+ .global _init
+ .type _init,%function
+diff --git a/crt/aarch64/crtn.s b/crt/aarch64/crtn.s
+index 73cab692..d62fc129 100644
+--- a/crt/aarch64/crtn.s
++++ b/crt/aarch64/crtn.s
+@@ -1,3 +1,4 @@
++.file "crtn.s"
+ .section .init
+ ldp x29,x30,[sp],#16
+ ret
+diff --git a/crt/arm/crti.s b/crt/arm/crti.s
+index 18dc1e41..8df72979 100644
+--- a/crt/arm/crti.s
++++ b/crt/arm/crti.s
+@@ -1,3 +1,4 @@
++.file "crti.s"
+ .syntax unified
+
+ .section .init
+diff --git a/crt/arm/crtn.s b/crt/arm/crtn.s
+index dc020f92..7451355b 100644
+--- a/crt/arm/crtn.s
++++ b/crt/arm/crtn.s
+@@ -1,3 +1,4 @@
++.file "crtn.s"
+ .syntax unified
+
+ .section .init
+diff --git a/crt/i386/crti.s b/crt/i386/crti.s
+index d2682a20..2823fc3b 100644
+--- a/crt/i386/crti.s
++++ b/crt/i386/crti.s
+@@ -1,3 +1,4 @@
++.file "crti.s"
+ .section .init
+ .global _init
+ _init:
+diff --git a/crt/i386/crtn.s b/crt/i386/crtn.s
+index f3b61e01..04fb1646 100644
+--- a/crt/i386/crtn.s
++++ b/crt/i386/crtn.s
+@@ -1,3 +1,4 @@
++.file "crtn.s"
+ .section .init
+ add $12,%esp
+ ret
+diff --git a/crt/microblaze/crti.s b/crt/microblaze/crti.s
+index ed1c2fa4..29ee4733 100644
+--- a/crt/microblaze/crti.s
++++ b/crt/microblaze/crti.s
+@@ -1,3 +1,4 @@
++.file "crti.s"
+ .section .init
+ .global _init
+ .align 2
+diff --git a/crt/microblaze/crtn.s b/crt/microblaze/crtn.s
+index 1e02c984..c2083749 100644
+--- a/crt/microblaze/crtn.s
++++ b/crt/microblaze/crtn.s
+@@ -1,3 +1,4 @@
++.file "crtn.s"
+ .section .init
+ lwi r15, r1, 0
+ rtsd r15, 8
+diff --git a/crt/mips/crti.s b/crt/mips/crti.s
+index 39dee380..0211764e 100644
+--- a/crt/mips/crti.s
++++ b/crt/mips/crti.s
+@@ -1,3 +1,4 @@
++.file "crti.s"
+ .set noreorder
+
+ .section .init
+diff --git a/crt/mips/crtn.s b/crt/mips/crtn.s
+index 506a04b7..606490cf 100644
+--- a/crt/mips/crtn.s
++++ b/crt/mips/crtn.s
+@@ -1,3 +1,4 @@
++.file "crtn.s"
+ .set noreorder
+
+ .section .init
+diff --git a/crt/mips64/crti.s b/crt/mips64/crti.s
+index c962dd09..f2c19cdd 100644
+--- a/crt/mips64/crti.s
++++ b/crt/mips64/crti.s
+@@ -1,3 +1,4 @@
++.file "crti.s"
+ .set noreorder
+
+ .section .init
+diff --git a/crt/mips64/crtn.s b/crt/mips64/crtn.s
+index f3930b24..68903ffa 100644
+--- a/crt/mips64/crtn.s
++++ b/crt/mips64/crtn.s
+@@ -1,3 +1,4 @@
++.file "crtn.s"
+ .set noreorder
+
+ .section .init
+diff --git a/crt/mipsn32/crti.s b/crt/mipsn32/crti.s
+index 14fa28d9..a35387d3 100644
+--- a/crt/mipsn32/crti.s
++++ b/crt/mipsn32/crti.s
+@@ -1,3 +1,4 @@
++.file "crti.s"
+ .set noreorder
+ .section .init
+ .global _init
+diff --git a/crt/mipsn32/crtn.s b/crt/mipsn32/crtn.s
+index dccd7e89..bdb6e561 100644
+--- a/crt/mipsn32/crtn.s
++++ b/crt/mipsn32/crtn.s
+@@ -1,3 +1,4 @@
++.file "crtn.s"
+ .set noreorder
+ .section .init
+ ld $gp, 16($sp)
+diff --git a/crt/or1k/crti.s b/crt/or1k/crti.s
+index 7e741459..919369ca 100644
+--- a/crt/or1k/crti.s
++++ b/crt/or1k/crti.s
+@@ -1,3 +1,4 @@
++.file "crti.s"
+ .section .init
+ .global _init
+ _init:
+diff --git a/crt/or1k/crtn.s b/crt/or1k/crtn.s
+index 4185a027..d670b327 100644
+--- a/crt/or1k/crtn.s
++++ b/crt/or1k/crtn.s
+@@ -1,3 +1,4 @@
++.file "crtn.s"
+ .section .init
+ l.lwz r9,0(r1)
+ l.jr r9
+diff --git a/crt/powerpc/crti.s b/crt/powerpc/crti.s
+index 60461ca4..b748ca48 100644
+--- a/crt/powerpc/crti.s
++++ b/crt/powerpc/crti.s
+@@ -1,3 +1,4 @@
++.file "crti.s"
+ .section .init
+ .align 2
+ .global _init
+diff --git a/crt/powerpc/crtn.s b/crt/powerpc/crtn.s
+index 2d14a6f0..d989e36f 100644
+--- a/crt/powerpc/crtn.s
++++ b/crt/powerpc/crtn.s
+@@ -1,3 +1,4 @@
++.file "crtn.s"
+ .section .init
+ .align 2
+ lwz 0,36(1)
+diff --git a/crt/powerpc64/crti.s b/crt/powerpc64/crti.s
+index 9f712f0e..d3323a67 100644
+--- a/crt/powerpc64/crti.s
++++ b/crt/powerpc64/crti.s
+@@ -1,3 +1,4 @@
++.file "crti.s"
+ .section .init
+ .align 2
+ .global _init
+diff --git a/crt/powerpc64/crtn.s b/crt/powerpc64/crtn.s
+index a7a9f4a0..5e71ae66 100644
+--- a/crt/powerpc64/crtn.s
++++ b/crt/powerpc64/crtn.s
+@@ -1,3 +1,4 @@
++.file "crtn.s"
+ .section .init
+ .align 2
+ addi 1, 1, 32
+diff --git a/crt/s390x/crti.s b/crt/s390x/crti.s
+index f453205b..3da3c5e1 100644
+--- a/crt/s390x/crti.s
++++ b/crt/s390x/crti.s
+@@ -1,3 +1,4 @@
++.file "crti.s"
+ .section .init
+ .align 2
+ .global _init
+diff --git a/crt/s390x/crtn.s b/crt/s390x/crtn.s
+index 06066dc9..bfd55caf 100644
+--- a/crt/s390x/crtn.s
++++ b/crt/s390x/crtn.s
+@@ -1,3 +1,4 @@
++.file "crtn.s"
+ .section .init
+ .align 2
+ lmg %r14, %r15, 272(%r15)
+diff --git a/crt/sh/crti.s b/crt/sh/crti.s
+index d99bfd5c..77d61c51 100644
+--- a/crt/sh/crti.s
++++ b/crt/sh/crti.s
+@@ -1,3 +1,4 @@
++.file "crti.s"
+ .section .init
+ .global _init
+ .type _init, @function
+diff --git a/crt/sh/crtn.s b/crt/sh/crtn.s
+index 958ce951..29deb5be 100644
+--- a/crt/sh/crtn.s
++++ b/crt/sh/crtn.s
+@@ -1,3 +1,4 @@
++.file "crtn.s"
+ .section .init
+ lds.l @r15+, pr
+ mov.l @r15+, r14
+diff --git a/crt/x32/crti.s b/crt/x32/crti.s
+index 4788968b..8668b7c7 100644
+--- a/crt/x32/crti.s
++++ b/crt/x32/crti.s
+@@ -1,3 +1,4 @@
++.file "crti.s"
+ .section .init
+ .global _init
+ _init:
+diff --git a/crt/x32/crtn.s b/crt/x32/crtn.s
+index 29198b77..ef73d295 100644
+--- a/crt/x32/crtn.s
++++ b/crt/x32/crtn.s
+@@ -1,3 +1,4 @@
++.file "crtn.s"
+ .section .init
+ pop %rax
+ ret
+diff --git a/crt/x86_64/crti.s b/crt/x86_64/crti.s
+index 4788968b..8668b7c7 100644
+--- a/crt/x86_64/crti.s
++++ b/crt/x86_64/crti.s
+@@ -1,3 +1,4 @@
++.file "crti.s"
+ .section .init
+ .global _init
+ _init:
+diff --git a/crt/x86_64/crtn.s b/crt/x86_64/crtn.s
+index 29198b77..ef73d295 100644
+--- a/crt/x86_64/crtn.s
++++ b/crt/x86_64/crtn.s
+@@ -1,3 +1,4 @@
++.file "crtn.s"
+ .section .init
+ pop %rax
+ ret
+--
+2.29.1
+
diff --git a/meta/recipes-core/musl/musl_git.bb b/meta/recipes-core/musl/musl_git.bb
index 897e56e10f..504fdfe019 100644
--- a/meta/recipes-core/musl/musl_git.bb
+++ b/meta/recipes-core/musl/musl_git.bb
@@ -15,6 +15,7 @@ PV = "${BASEVER}+git${SRCPV}"
SRC_URI = "git://git.musl-libc.org/musl \
file://0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch \
file://0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch \
+ file://0001-crt-Add-.file-directive.patch \
"
S = "${WORKDIR}/git"