mame_raspberrypi_cross_compile
mame_raspberrypi_cross_compile copied to clipboard
Logging a few issues i have encountered putting this project into Docker (base debian bullseye)
still trying to get a successful build out of this just wanted to log the issues as i go
setup info
- Dockerfile pulling debian:latest (bullseye atm)
- Base env installs prereqs into Docker image via apt
- a script
generate_env.sh
takes over and enablesdeb-src
repos, installs mamebuild-dep
and runs bothbuild_crosstool-ng.sh
anddownload_libs.sh
and then copies thebuild_mame_*.sh
scripts to/usr/local/bin
(image is now built) - at runtime the container will then look for a file
build-script
in a volume which will setMAMECOMPILECORES
and call thebuild_mame_*.sh
scripts as defined
issues
-
ccache
is required by thebuild_mame_*.sh
scripts but not installed as part of prereqs - if the mame build fails an incomplete archive will still be created, add a check for successful return value before building the archive
- crosstool-ng build runs into this error for binutils but seems to only affect rpi2 stuff
INFO ] =================================================================
[INFO ] Installing binutils for host
[EXTRA] Configuring binutils
[EXTRA] Building binutils
[ERROR] /tmp/tmp.F3JC6ZNvTi/setup/build/ctng_rpi2_buster_armhf/.build/armv7-rpi2-linux-gnueabihf/src/binutils/gold/x86_64.cc:1590:5: error: narrowing conversion of 'elfcpp::GNU_PROPERTY_LOPROC' from 'unsigned int' to 'int' [-Wnarrowing]
[ERROR] /tmp/tmp.F3JC6ZNvTi/setup/build/ctng_rpi2_buster_armhf/.build/armv7-rpi2-linux-gnueabihf/src/binutils/gold/x86_64.cc:1591:5: error: narrowing conversion of 'elfcpp::GNU_PROPERTY_X86_ISA_1_NEEDED' from 'unsigned int' to 'int' [-Wnarrowing]
[ERROR] /tmp/tmp.F3JC6ZNvTi/setup/build/ctng_rpi2_buster_armhf/.build/armv7-rpi2-linux-gnueabihf/src/binutils/gold/x86_64.cc:1592:5: error: narrowing conversion of 'elfcpp::GNU_PROPERTY_X86_FEATURE_1_AND' from 'unsigned int' to 'int' [-Wnarrowing]
[ERROR] /tmp/tmp.F3JC6ZNvTi/setup/build/ctng_rpi2_buster_armhf/.build/armv7-rpi2-linux-gnueabihf/src/binutils/gold/x86_64.cc:1611:5: error: narrowing conversion of 'elfcpp::GNU_PROPERTY_LOPROC' from 'unsigned int' to 'int' [-Wnarrowing]
[ERROR] /tmp/tmp.F3JC6ZNvTi/setup/build/ctng_rpi2_buster_armhf/.build/armv7-rpi2-linux-gnueabihf/src/binutils/gold/x86_64.cc:1614:5: error: narrowing conversion of 'elfcpp::GNU_PROPERTY_X86_ISA_1_NEEDED' from 'unsigned int' to 'int' [-Wnarrowing]
[ERROR] /tmp/tmp.F3JC6ZNvTi/setup/build/ctng_rpi2_buster_armhf/.build/armv7-rpi2-linux-gnueabihf/src/binutils/gold/x86_64.cc:1617:5: error: narrowing conversion of 'elfcpp::GNU_PROPERTY_X86_FEATURE_1_AND' from 'unsigned int' to 'int' [-Wnarrowing]
[ERROR] /tmp/tmp.F3JC6ZNvTi/setup/build/ctng_rpi2_buster_armhf/.build/armv7-rpi2-linux-gnueabihf/src/binutils/gold/x86_64.cc:1590:5: error: narrowing conversion of 'elfcpp::GNU_PROPERTY_LOPROC' from 'unsigned int' to 'int' [-Wnarrowing]
[ERROR] /tmp/tmp.F3JC6ZNvTi/setup/build/ctng_rpi2_buster_armhf/.build/armv7-rpi2-linux-gnueabihf/src/binutils/gold/x86_64.cc:1591:5: error: narrowing conversion of 'elfcpp::GNU_PROPERTY_X86_ISA_1_NEEDED' from 'unsigned int' to 'int' [-Wnarrowing]
[ERROR] /tmp/tmp.F3JC6ZNvTi/setup/build/ctng_rpi2_buster_armhf/.build/armv7-rpi2-linux-gnueabihf/src/binutils/gold/x86_64.cc:1592:5: error: narrowing conversion of 'elfcpp::GNU_PROPERTY_X86_FEATURE_1_AND' from 'unsigned int' to 'int' [-Wnarrowing]
[ERROR] /tmp/tmp.F3JC6ZNvTi/setup/build/ctng_rpi2_buster_armhf/.build/armv7-rpi2-linux-gnueabihf/src/binutils/gold/x86_64.cc:1611:5: error: narrowing conversion of 'elfcpp::GNU_PROPERTY_LOPROC' from 'unsigned int' to 'int' [-Wnarrowing]
[ERROR] /tmp/tmp.F3JC6ZNvTi/setup/build/ctng_rpi2_buster_armhf/.build/armv7-rpi2-linux-gnueabihf/src/binutils/gold/x86_64.cc:1614:5: error: narrowing conversion of 'elfcpp::GNU_PROPERTY_X86_ISA_1_NEEDED' from 'unsigned int' to 'int' [-Wnarrowing]
[ERROR] /tmp/tmp.F3JC6ZNvTi/setup/build/ctng_rpi2_buster_armhf/.build/armv7-rpi2-linux-gnueabihf/src/binutils/gold/x86_64.cc:1617:5: error: narrowing conversion of 'elfcpp::GNU_PROPERTY_X86_FEATURE_1_AND' from 'unsigned int' to 'int' [-Wnarrowing]
[ERROR] make[5]: *** [Makefile:1123: x86_64.o] Error 1
[ERROR] make[5]: *** Waiting for unfinished jobs....
[ERROR] make[4]: *** [Makefile:1146: all-recursive] Error 1
[ERROR] make[3]: *** [Makefile:886: all] Error 2
[ERROR] make[2]: *** [Makefile:6045: all-gold] Error 2
[ERROR] make[1]: *** [Makefile:850: all] Error 2
[ERROR]
[ERROR] >>
[ERROR] >> Build failed in step 'Installing binutils for host'
[ERROR] >> called in step '(top-level)'
[ERROR] >>
[ERROR] >> Error happened in: CT_DoExecLog[scripts/functions@376]
[ERROR] >> called from: do_binutils_backend[scripts/build/binutils/binutils.sh@212]
[ERROR] >> called from: do_binutils_for_host[scripts/build/binutils/binutils.sh@70]
[ERROR] >> called from: main[scripts/crosstool-NG.sh@697]
[ERROR] >>
[ERROR] >> For more info on this error, look at the file: 'build.log'
[ERROR] >> There is a list of known issues, some with workarounds, in:
[ERROR] >> https://crosstool-ng.github.io/docs/known-issues/
[ERROR] >>
[ERROR] >> If you feel this is a bug in crosstool-NG, report it at:
[ERROR] >> https://github.com/crosstool-ng/crosstool-ng/issues/
[ERROR] >>
[ERROR] >> Make sure your report includes all the information pertinent to this issue.
[ERROR] >> Read the bug reporting guidelines here:
[ERROR] >> http://crosstool-ng.github.io/support/
[ERROR]
[ERROR] (elapsed: 4:29.89)
[04:30] / gmake: *** [/tmp/tmp.F3JC6ZNvTi/setup/build/ct-ng/bin/ct-ng:261: build] Error 2
__START__ download of RPi packages for architecture: armhf
Added ccache
to install_prereqs.sh
.
Did a big dive into the ct-ng stuff for Bullseye today, but need to re-do the process for the RPi2 Buster stuff. Post ct-ng version 1.25.0 there are some big changes upstream, so I need to cap the version I'm using to 1.25.0.
Lots of changes made today - total rewrite of the tools and scripts.
Initial tests have Debian 11 Bullseye and Debian 12 Bookworm builds working for 32bit and 64bit.
I'm using Apptainer as my container. I'll get the container definition file uploaded soon. Hopefully it can give some hints for Docker users.