Luca, le ven. 26 mai 2023 13:18:08 +0200, a ecrit: > Il 26/05/23 12:56, Samuel Thibault ha scritto: > > Luca, le ven. 26 mai 2023 12:55:32 +0200, a ecrit: > > > read_exec() it seems that there is something wrong with the elf parsing, > > > as > > > the size parameters look like kernel addresses: > > > > > > (gdb) p/x file_size > > > $1 = 0xffffffff8106f4d3 > > > > Perhaps a spurious signedness bit extension? > > Could be, the elf header seems ok when calling read_exec: > > (gdb) frame 1 > #1 0xffffffff8107a712 in exec_load (read=0xffffffff8106f45c <boot_read>, > read_exec=0xffffffff8106f4e5 <read_exec>, handle=0xffffffffbd8faea0, > out_info=0xffffffffbd8f0f70) > at ../kern/elf-load.c:87 > 87 result = (*read_exec)(handle, > (gdb) p/x *ph > $9 = { > p_type = 0x1, > p_flags = 0x5, > p_offset = 0x0, > p_vaddr = 0x400000, > p_paddr = 0x400000, > p_filesz = 0x1cfd58, > p_memsz = 0x1cfd58, > p_align = 0x1000 > } > > but I can't explain why I don't see the same issue with my build. I 've now > configured gnumach just with > > ../configure --enable-silent-rules MIG=/path_to_my/mig --disable-user32 > --enable-kdb > > and I'm building on Debian/Linux stable.
Indeed, when I use that configuration, I don't get the issue. Heh, when I tell my students never to hide anything because you never know what might be relevant... CFLAGS="" MIG=/usr/bin/x86_64-gnu-mig ../configure --disable-user32 --enable-kdb does get the issue, while CFLAGS="-O2" MIG=/usr/bin/x86_64-gnu-mig ../configure --disable-user32 --enable-kdb or equivalently, MIG=/usr/bin/x86_64-gnu-mig ../configure --disable-user32 --enable-kdb doesn't... Samuel