IRC channel logs

2022-07-11.log

back to list of logs

***ytret_ is now known as ytret
<ytret>Hello. I have created an ISO using grub-mkrescue containing only cross-compiled /boot/gnumach.gz and /boot/grub/grub.cfg to boot Mach without any modules. The problem is that the kernel is not even loaded, the system just reboots. Is it possible to boot using an ISO at all?
<ytret>I'm using QEMU's -cdrom option.
<youpi>ytret: do you get the grub menu, does it print that it's loading the kernel?
<youpi>there shouldn't be any problem with booting gnumach that way, it's probably just some mistake somewhere
<ytret>youpi: GRUB shows that its loading gnumach.gz, and after a couple of seconds there is a triple fault at 0x0000fff0
<ytret>both in QEMU and in Bochs
<ytret>that's not even the kernel; and boot_entry is not reached - I've set a breakpoint for it in GDB
<youpi>maybe first try to boot the debian-built kernel
<youpi>to make sure that your qemu+grub environment is ok
<ytret>youpi: just checked, debian-gnumach-1.8-486.gz does boot and panic, as expected
<ytret>I have configured using ../configure --host=i686-gnu CC='gcc -m32' LD='ld -melf_32'
<ytret>`grub-file --is-x86-multiboot gnumach.gz' returns 0
<ytret>Ok, I have configured with the same flags as the debian kernel was configured with, and now it boots
<Zopolis4>Any idea what the specific flag that made it work was?
<ytret>Zopolis4: I will try to figure that out now :)
<ytret>Zopolis4: it's CFLAGS=-fno-pie
<ytret>the whole configure command is: ../configure --prefix=$MY_SYSROOT --host=i686-gnu 'CC=gcc -m32' 'LD=ld -melf_i386' CFLAGS=-fno-pie
<Zopolis4>weird
<ytret>So I've built a GCC cross-compiler without stdlib, and then `clib-routines.o' tries to "steal from the C library" a few routines.
<ytret>That's literally the last step of the build. If I just replace the compiler with 'gcc -m32'
<ytret>it builds clib-routines.o and links 'gnumach'.