From: Christoph Buck <dev@icepic.de>
To: "Zack Weinberg" <zack@owlfolio.org>
Cc: help-guix@gnu.org
Subject: Re: ABI mismatch on boot on arm32 system
Date: Sun, 20 Oct 2024 19:24:09 +0200 [thread overview]
Message-ID: <87a5eyheme.fsf@icepic.de> (raw)
In-Reply-To: <86b5aa0a-35ce-40ee-84a6-de58ea153fbf@app.fastmail.com> (Zack Weinberg's message of "Sun, 20 Oct 2024 11:39:57 -0400")
[-- Attachment #1: Type: text/plain, Size: 784 bytes --]
Hi Zack!
> Can you show us the *complete and unedited* output of `readelf -hlSd
> file-systems.go` from both the working and the broken ramdisk, please?
>
Sure. See the attachments of this mail.
But i just saw that i made a mistake and compaired the module
`qemu/gnu/build/file-systems.go` to
`cross/gnu/system/file-systems.go`.
The md5sum between `qemu/gnu/system/file-systems.go` and
`cross/gnu/system/file-systems.go` is still different, but the exported
symbols are the same (see attachemt). The only difference i now can see
is in the `Start of section headers` (426376 vs 426352) and different
addresses in the subsequent output of `readelf`. Are theses expected to
be deterministic/equal?
Sorry for the confusion.
> zw
Greetings Christoph
--
Best regards
Christoph
[-- Attachment #2: qemu.readelf --]
[-- Type: application/octet-stream, Size: 3734 bytes --]
ELF Header:
Magic: 7f 45 4c 46 01 01 01 ff 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: <unknown: ff>
ABI Version: 0
Type: DYN (Shared object file)
Machine: None
Version: 0x1
Entry point address: 0x0
Start of program headers: 52 (bytes into file)
Start of section headers: 426352 (bytes into file)
Flags: 0x0
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 3
Size of section headers: 40 (bytes)
Number of section headers: 20
Section header string table index: 17
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .guile.procprops PROGBITS 00000000 06c790 000020 00 0 0 8
[ 2] .rodata PROGBITS 0003fe38 03fe38 0074ac 00 A 0 0 8
[ 3] .data PROGBITS 00050000 050000 018170 00 WA 0 0 8
[ 4] .rtl-text PROGBITS 00000098 000098 03fda0 00 A 0 0 8
[ 5] .dynamic DYNAMIC 000472e8 0472e8 000030 00 A 0 0 8
[ 6] .strtab STRTAB 00000000 070b98 000666 00 0 0 8
[ 7] .symtab SYMTAB 00000000 06f118 001a80 10 6 0 8
[ 8] .guile.ariti[...] STRTAB 00000000 071200 00085a 00 0 0 8
[ 9] .guile.arities PROGBITS 00000000 068490 004253 00 8 0 8
[10] .guile.docst[...] STRTAB 00000000 071a60 0008ac 00 0 0 8
[11] .guile.docstrs PROGBITS 00000000 06c6e8 0000a8 00 10 0 8
[12] .debug_info PROGBITS 00000000 06c7b0 000b6f 00 0 0 8
[13] .debug_abbrev PROGBITS 00000000 06d320 000041 00 0 0 8
[14] .debug_str PROGBITS 00000000 06d368 000672 00 0 0 8
[15] .debug_loc PROGBITS 00000000 06d9e0 000000 00 0 0 8
[16] .debug_line PROGBITS 00000000 06d9e0 001733 00 0 0 8
[17] .shstrtab STRTAB 00000000 072310 0000d3 00 0 0 8
[18] PROGBITS 00000000 000000 000094 00 A 0 0 8
[19] NULL 00000000 068170 000000 00 0 0 0
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
L (link order), O (extra OS processing required), G (group), T (TLS),
C (compressed), x (unknown), o (OS specific), E (exclude),
p (processor specific)
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x000000 0x00000000 0x00000000 0x47318 0x47318 R 0x10000
LOAD 0x050000 0x00050000 0x00050000 0x18170 0x18170 RW 0x10000
DYNAMIC 0x0472e8 0x000472e8 0x000472e8 0x00030 0x00030 R 0x8
Section to Segment mapping:
Segment Sections...
00 .rodata .rtl-text .dynamic
01 .data
02 .dynamic
Dynamic section at offset 0x472e8 contains 6 entries:
Tag Type Name/Value
0x37146003 (<unknown>: 37146003) 0x3000006
0x37146002 (<unknown>: 37146002) 0x98
0x37146000 (<unknown>: 37146000) 0x50000
0x37146001 (<unknown>: 37146001) 0x18170
0x0000000c (INIT) 0x1b918
0x00000000 (NULL) 0x0
[-- Attachment #3: cross.readelf --]
[-- Type: application/octet-stream, Size: 3735 bytes --]
ELF Header:
Magic: 7f 45 4c 46 01 01 01 ff 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: <unknown: ff>
ABI Version: 0
Type: DYN (Shared object file)
Machine: None
Version: 0x1
Entry point address: 0x0
Start of program headers: 52 (bytes into file)
Start of section headers: 426376 (bytes into file)
Flags: 0x0
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 3
Size of section headers: 40 (bytes)
Number of section headers: 20
Section header string table index: 17
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .guile.procprops PROGBITS 00000000 06c7a8 000020 00 0 0 8
[ 2] .rodata PROGBITS 0003fe60 03fe60 008b64 00 A 0 0 8
[ 3] .data PROGBITS 00050000 050000 018188 00 WA 0 0 8
[ 4] .rtl-text PROGBITS 00000098 000098 03fdc4 00 A 0 0 8
[ 5] .dynamic DYNAMIC 000489c8 0489c8 000030 00 A 0 0 8
[ 6] .strtab STRTAB 00000000 070ba8 000666 00 0 0 8
[ 7] .symtab SYMTAB 00000000 06f128 001a80 10 6 0 8
[ 8] .guile.ariti[...] STRTAB 00000000 071210 000b62 00 0 0 8
[ 9] .guile.arities PROGBITS 00000000 0684a8 004255 00 8 0 8
[10] .guile.docst[...] STRTAB 00000000 071d78 0008ac 00 0 0 8
[11] .guile.docstrs PROGBITS 00000000 06c700 0000a8 00 10 0 8
[12] .debug_info PROGBITS 00000000 06c7c8 000b67 00 0 0 8
[13] .debug_abbrev PROGBITS 00000000 06d330 000041 00 0 0 8
[14] .debug_str PROGBITS 00000000 06d378 000672 00 0 0 8
[15] .debug_loc PROGBITS 00000000 06d9f0 000000 00 0 0 8
[16] .debug_line PROGBITS 00000000 06d9f0 001733 00 0 0 8
[17] .shstrtab STRTAB 00000000 072628 0000d3 00 0 0 8
[18] PROGBITS 00000000 000000 000094 00 A 0 0 8
[19] NULL 00000000 068188 000000 00 0 0 0
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
L (link order), O (extra OS processing required), G (group), T (TLS),
C (compressed), x (unknown), o (OS specific), E (exclupde),
p (processor specific)
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x000000 0x00000000 0x00000000 0x489f8 0x489f8 R 0x10000
LOAD 0x050000 0x00050000 0x00050000 0x18188 0x18188 RW 0x10000
DYNAMIC 0x0489c8 0x000489c8 0x000489c8 0x00030 0x00030 R 0x8
Section to Segment mapping:
Segment Sections...
00 .rodata .rtl-text .dynamic
01 .data
02 .dynamic
Dynamic section at offset 0x489c8 contains 6 entries:
Tag Type Name/Value
0x37146003 (<unknown>: 37146003) 0x3000006
0x37146002 (<unknown>: 37146002) 0x98
0x37146000 (<unknown>: 37146000) 0x50000
0x37146001 (<unknown>: 37146001) 0x18188
0x0000000c (INIT) 0x1b918
0x00000000 (NULL) 0x0
prev parent reply other threads:[~2024-10-20 17:24 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-16 10:11 ABI mismatch on boot on arm32 system Christoph Buck
2024-10-16 20:05 ` Richard Sent
2024-10-20 15:15 ` Christoph Buck
2024-10-18 20:58 ` Denis 'GNUtoo' Carikli
2024-10-20 15:23 ` Christoph Buck
2024-10-20 15:39 ` Zack Weinberg
2024-10-20 17:24 ` Christoph Buck [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
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87a5eyheme.fsf@icepic.de \
--to=dev@icepic.de \
--cc=help-guix@gnu.org \
--cc=zack@owlfolio.org \
/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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).