From: John Keeping <john@metanate.com>
To: Arnout Vandecappelle <arnout@mind.be>
Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>,
Romain Naour <romain.naour@gmail.com>,
"Yann E. MORIN" <yann.morin.1998@free.fr>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH] package/gcc/gcc-final: map debug prefix when reproducible
Date: Wed, 8 Feb 2023 09:34:01 +0000 [thread overview]
Message-ID: <Y+NsiQNtivPVdAb7@donbot> (raw)
In-Reply-To: <6fb44e39-92ac-60d3-2c87-8c156ac850dc@mind.be>
On Wed, Feb 08, 2023 at 09:05:01AM +0100, Arnout Vandecappelle wrote:
> On 07/02/2023 21:05, John Keeping wrote:
> [snip]
> > I've been testing this with --enable-linker-build-id in the configure
> > options as well to see whether it's possible to enable build IDs for
> > reproducible builds and this change gets a lot closer - the differences
> > are now a handful of files that embed an RPATH pointing to .libs during
> > the build.
>
> Just so I understand things correctly: those .libs RPATH entries get
> removed by Buildroot's patchelf run at the end of the build, but they still
> end up affecting the build-id, correct? And these RPATH entries are of
> course not affected by file-prefix-map, because that would break them
> entirely...
Yes, that's largely correct - the RPATH entries are removed and are not
present in the target.
The files are still slightly different as a follow-on effect since the
path is included in the string table. (Note that the two build
directories I'm using for testing have different *length* names.)
$ diff -u <(readelf -hlS build-1/target/bin/mount) <(readelf -hlS build-1abc/target/bin/mount)
--- /dev/fd/63 2023-02-08 09:26:16.879386009 +0000
+++ /dev/fd/62 2023-02-08 09:26:16.882719365 +0000
@@ -8,7 +8,7 @@
Type: DYN (Position-Independent Executable file)
Machine: ARM
Version: 0x1
- Entry point address: 0x44ac
+ Entry point address: 0x44b0
Start of program headers: 52 (bytes into file)
Start of section headers: 41268 (bytes into file)
Flags: 0x5000200, Version5 EABI, soft-float ABI
@@ -28,18 +28,18 @@
[ 4] .hash HASH 000001ac 0001ac 0004a0 04 A 6 0 4
[ 5] .gnu.hash GNU_HASH 0000064c 00064c 000018 04 A 6 0 4
[ 6] .dynsym DYNSYM 00000664 000664 000a30 10 A 7 3 4
- [ 7] .dynstr STRTAB 00001094 001094 000a69 00 A 0 0 1
- [ 8] .gnu.version VERSYM 00001afe 001afe 000146 02 A 6 0 2
- [ 9] .gnu.version_r VERNEED 00001c44 001c44 000130 00 A 7 3 4
- [10] .rel.dyn REL 00001d74 001d74 000260 08 A 6 0 4
- [11] .rel.plt REL 00001fd4 001fd4 0004a8 08 AI 6 23 4
- [12] .init PROGBITS 0000247c 00247c 00000c 00 AX 0 0 4
- [13] .plt PROGBITS 00002488 002488 000710 04 AX 0 0 4
- [14] .text PROGBITS 00002b98 002b98 0057d4 00 AX 0 0 4
- [15] .fini PROGBITS 0000836c 00836c 000008 00 AX 0 0 4
- [16] .rodata PROGBITS 00008374 008374 00151c 00 A 0 0 4
- [17] .ARM.exidx ARM_EXIDX 00009890 009890 000008 00 AL 14 0 4
- [18] .eh_frame PROGBITS 00009898 009898 000004 00 A 0 0 4
+ [ 7] .dynstr STRTAB 00001094 001094 000a6c 00 A 0 0 1
+ [ 8] .gnu.version VERSYM 00001b00 001b00 000146 02 A 6 0 2
+ [ 9] .gnu.version_r VERNEED 00001c48 001c48 000130 00 A 7 3 4
+ [10] .rel.dyn REL 00001d78 001d78 000260 08 A 6 0 4
+ [11] .rel.plt REL 00001fd8 001fd8 0004a8 08 AI 6 23 4
+ [12] .init PROGBITS 00002480 002480 00000c 00 AX 0 0 4
+ [13] .plt PROGBITS 0000248c 00248c 000710 04 AX 0 0 4
+ [14] .text PROGBITS 00002b9c 002b9c 0057d4 00 AX 0 0 4
+ [15] .fini PROGBITS 00008370 008370 000008 00 AX 0 0 4
+ [16] .rodata PROGBITS 00008378 008378 00151c 00 A 0 0 4
+ [17] .ARM.exidx ARM_EXIDX 00009894 009894 000008 00 AL 14 0 4
+ [18] .eh_frame PROGBITS 0000989c 00989c 000004 00 A 0 0 4
[19] .init_array INIT_ARRAY 0001994c 00994c 000004 04 WA 0 0 4
[20] .fini_array FINI_ARRAY 00019950 009950 000004 04 WA 0 0 4
[21] .data.rel.ro PROGBITS 00019954 009954 0002fc 00 WA 0 0 4
@@ -57,11 +57,11 @@
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
- EXIDX 0x009890 0x00009890 0x00009890 0x00008 0x00008 R 0x4
+ EXIDX 0x009894 0x00009894 0x00009894 0x00008 0x00008 R 0x4
PHDR 0x000034 0x00000034 0x00000034 0x00120 0x00120 R 0x4
INTERP 0x000154 0x00000154 0x00000154 0x00013 0x00013 R 0x1
[Requesting program interpreter: /lib/ld-linux.so.3]
- LOAD 0x000000 0x00000000 0x00000000 0x0989c 0x0989c R E 0x10000
+ LOAD 0x000000 0x00000000 0x00000000 0x098a0 0x098a0 R E 0x10000
LOAD 0x00994c 0x0001994c 0x0001994c 0x006c0 0x006cc RW 0x10000
DYNAMIC 0x009c50 0x00019c50 0x00019c50 0x00120 0x00120 RW 0x4
NOTE 0x000168 0x00000168 0x00000168 0x00044 0x00044 R 0x4
$ diff -u <(readelf -p 7 build-1/target/bin/mount) <(readelf -p 7 build-1abc/target/bin/mount)
--- /dev/fd/63 2023-02-08 09:26:28.439469928 +0000
+++ /dev/fd/62 2023-02-08 09:26:28.439469928 +0000
@@ -171,5 +171,5 @@
[ a0b] MOUNT_2.21
[ a16] MOUNT_2.24
[ a21] MOUNT_2.19
- [ a2d] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ [ a2d] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
prev parent reply other threads:[~2023-02-08 9:34 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-06 16:26 [Buildroot] [PATCH] package/gcc/gcc-final: map debug prefix when reproducible John Keeping
2023-02-07 13:55 ` Yann E. MORIN
2023-02-07 20:05 ` John Keeping
2023-02-08 8:05 ` Arnout Vandecappelle
2023-02-08 9:34 ` John Keeping [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Y+NsiQNtivPVdAb7@donbot \
--to=john@metanate.com \
--cc=arnout@mind.be \
--cc=buildroot@buildroot.org \
--cc=giulio.benetti@benettiengineering.com \
--cc=romain.naour@gmail.com \
--cc=thomas.petazzoni@bootlin.com \
--cc=yann.morin.1998@free.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox