andwn / marsdev

Cross platform Mega Drive / 32X toolchain

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Dockerfile doesn't create a working build system

dleslie opened this issue · comments

As can be seen in the build.log here:
https://gist.github.com/dleslie/05d53371ffd1ca04674e8a943a9d2f06

Which is an output from running build.sh from here:
https://github.com/dleslie/genesis-dev/tree/master/examples/marsdev

There's a few problems that aren't present normally, despite some examples not normally building.

Related issues:
#14
#13
#12

You have to build as root

Because the files are found in /root/mars and are owned by root exclusively, it's impossible to set the uid/gid with docker and so avoid writing files to the host as root. This is annoying, as it means cleaning the folder requires root access (or running docker).

There's no shell wrapper for rescomp.jar

/root/mars/bin/rescomp res/resources.res res/resources.s
make: /root/mars/bin/rescomp: Command not found
make: *** [Makefile:64: res/resources.s] Error 127

Curl failed?

Perhaps just a spurious one-off, but Sonic failed to build because:

error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

No z80asm

This is known, I believe, but worth noting anyhow.

/root/mars/bin/z80asm -i src-z80/build.z80 -o res/echoblob.bin
make: /root/mars/bin/z80asm: Command not found

SGDK Skeleton fails to link

/root/mars/m68k-elf/bin/m68k-elf-gcc -o out.elf -T /root/mars/ldscripts/sgdk.ld -nostdlib boot/sega.o res/resources.o src/main.o   -L/root/mars/m68k-elf/lib/gcc/m68k-elf/9.3.0 -lgcc -u __modsi3 -u __divsi3 -u __mulsi3 -u __umodsi3 -u __udivsi3 -u __umulsi3 -L/root/mars/m68k-elf/lib -lmd-far
/root/mars/m68k-elf/lib/gcc/m68k-elf/9.3.0/../../../../m68k-elf/bin/ld: boot/sega.o: in function `_EXTINT':
(.text.keepboot+0x44e): undefined reference to `internalExtIntCB'
/root/mars/m68k-elf/lib/gcc/m68k-elf/9.3.0/../../../../m68k-elf/bin/ld: boot/sega.o: in function `_HINT':
(.text.keepboot+0x460): undefined reference to `internalHIntCB'
/root/mars/m68k-elf/lib/gcc/m68k-elf/9.3.0/../../../../m68k-elf/bin/ld: boot/sega.o: in function `_VINT':
(.text.keepboot+0x472): undefined reference to `internalVIntCB'

The dockerfile is unfinished. I haven't gotten to the point of testing it. I don't know when I will have time to work on any of this.