X86 kernel compilations fail

So I’ve tried to compile both my own project Omega which depends on LibO (also on my Github. I had a link but I’m new so only two are allowed.) as it is meant to have it’s own standard library for types, etc… I’ve also tried to compile FluoriteOS which has it’s “stdlib” built right in rather than as a dependency and both fail with a similar error:

crystal build --cross-compile --target=i386-unknown-fluorite-none --prelude=empty -o kernel/src/kernel kernel/src/kernel.cr
while requiring “…/minrt/src/prelude” (Exception)
Unhandled exception: Error opening file ‘crystal’ with mode ‘r’: No such file or directory (Errno)
Failed to raise an exception: END_OF_STACK
[0x55e3f69c8db6] ???
[0x55e3f606a07b] __crystal_raise +43
[0x55e3f606b865] ???
[0x55e3f6076e8a] ???
[0x55e3f60702cc] ???
[0x55e3f606f80f] ???
[0x55e3f607ac1c] ???
[0x55e3f6085d0f] ???
[0x55e3f606de67] main +55
[0x7f11a4207ce3] __libc_start_main +243
[0x55e3f606651e] _start +46
[0x0] ???

As far as I can tell, this is either due to using --prelude=empty or possibly an issue with linking x86/x86_64 (I’ve tried both but don’t understand it so not much info gained on that). Does anyone have a similar issue? If it’s a bug with Crystal itself, can I bypass this? If it’s a bug in my code and with TheKernelCorp’s then can this be fixed?

1 Like

Just to be thorough: I do realize there are many more bugs (mostly assembly) in my code, but changes that introduced those are relatively recent. My code compiled (with the .ld linked (no x86.asm) and was bootable) in the past, before I put it on Github, but I no longer have access to those old, working versions. if I compile it as a linux program, without --prelude=empty and with variables in VERSION.cr set properly, bypassing the VGA driver, it does work. So the issue has to be either buggy asm or with LibO being incomplete. I hope that once the issue in the OP is fixed that I can debug the asm.