Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add prebuilts for Raspberry Pi #13

Open
plattysoft opened this issue Jul 28, 2021 · 14 comments
Open

Add prebuilts for Raspberry Pi #13

plattysoft opened this issue Jul 28, 2021 · 14 comments

Comments

@plattysoft
Copy link

plattysoft commented Jul 28, 2021

I was trying to get rlengine up and running on a Raspberry Pi using Raspbian.
The problem is that the current makefile detects it as an x86, which is wrong.
I have make a prebuilt version of sdcc 3.8.0 and tweaked main.mk to account for arm architecture (plattysoft@76bee55)

As of today, it does compile, and the hello world rom works, but the more complex examples that use sprites got into an endless loop.

I suspect I need to patch something in the sdcc built after compiling, but there is no documentation about it.

If you point me to what those changes are, I can make this work and open a PR from my fork.

Cheers.

@retrodeluxe
Copy link
Owner

Hi @plattysoft,

the prebuilt sdcc indeed contains patches, the binaries come from this repo:

https://github.com/retrodeluxe/sdcc-msx

you can see the changes in the history.

If you build from that repo for arm you should get an equivalent to the x86 and darwin prebuilts.

Let me know if that works... some of the bigger examples indeed need a patched sdcc, but the sprites one I think it should work fine without it, so maybe there is another problem.

@plattysoft
Copy link
Author

ah, I have to try that.
Most of the examples work, but for example the physic one is giving me this error:

/home/pi/code/rlengine-msx/build//..//build/build_ascii8_rom.mk:41: recipe for target '/home/pi/code/rlengine-msx/test/phys_test/out/bin/phys_test.ihx' failed
make: *** [/home/pi/code/rlengine-msx/test/phys_test/out/bin/phys_test.ihx] Error 2

@retrodeluxe
Copy link
Owner

yup, if the Makefile uses

CONFIG_BANKED_CALLS := enabled

it requires the changes included in the customized sdcc-msx repo. The build should be fixed after updating the prebuilt.

@plattysoft
Copy link
Author

I got an error building the sources, but the configure did not gave any warning and I was also able to build the version 3.8.0 of sdcc, so not sure if I am missing some tool / lib that needs to be installed in the Pi

@retrodeluxe
Copy link
Owner

I think if you build sdcc for all the targets it requires some tools that may not be available on your linux, and it doesn' t complain during the configure.
Best is to disable those targets when doing the configure:

--disable-mcs51-port Excludes the Intel mcs51 port
--disable-z80-port Excludes the Z80 port
--disable-z180-port Excludes the Z180 port
--disable-r2k-port Excludes the Rabbit 2000 port
--disable-r3ka-port Excludes the Rabbit 3000A port
--disable-gbz80-port Excludes the Gameboy gbz80 port
--disable-tlcs90-port Excludes the TLCS-90 port
--disable-ez80_z80-port Excludes the EZ80-Z80 port
--disable-ds390-port Excludes the DS390 port
--disable-ds400-port Excludes the DS400 port
--disable-pic14-port Excludes the PIC14 port
--disable-pic16-port Excludes the PIC16 port
--disable-hc08-port Excludes the HC08 port
--disable-s08-port Excludes the S08 port
--disable-stm8-port Excludes the STM8 port
--disable-ucsim Disables configuring and building of ucsim
--disable-device-lib Disables building device libraries
--disable-packihx Disables building packihx
--disable-sdcpp Disables building sdcpp
--disable-sdcdb Disables building sdcdb
--disable-sdbinutils Disables configuring and building of sdbinutils
--disable-non-free Disables non-free runtime library parts

maybe the error gives you a hint on which ones to disable.

@plattysoft
Copy link
Author

I was just re-running it.

Makefile:472: recipe for target 'bfd.info' failed
make[4]: *** [bfd.info] Error 127

I realized that my current version of Raspberry OS is about 2 years old and can't be updated, so I am going to re-flash it and go again from scratch.

I will let you know. Thanks!

@retrodeluxe
Copy link
Owner

yep, that relates to:
--disable-sdbinutils

@plattysoft
Copy link
Author

Well, I already started flashing a newer version of the Raspberry OS on the Pi, so I won't be able to try again until later.
I will reconfigure all that and see how it goes.
Thanks!

@plattysoft
Copy link
Author

plattysoft commented Jul 28, 2021

Now, with an updated tool system, and disabling all the targets, I am getting a completely different error. It is interesting because sdbinutils is disabled.

make[1]: Entering directory '/home/pi/code/sdcc-msx/sdcc/support/sdbinutils'
make[1]: *** No targets specified and no makefile found.  Stop.
make[1]: Leaving directory '/home/pi/code/sdcc-msx/sdcc/support/sdbinutils'
make: *** [Makefile:147: sdcc-sdbinutils] Error 2

@plattysoft
Copy link
Author

plattysoft commented Jul 30, 2021

This is strange, I complied sdcc without errors on the previous version of the OS. I will try to build the standard 3.8 version and see if the issue is with this branch or with the current dev environment

@plattysoft
Copy link
Author

plattysoft commented Jul 31, 2021

Does it need a specific version of gcc to compile? I downloaded sdcc 3.8.0, which I previously compiled without problems, and it is failing too. The compiler version is the only thing that I can think of.

I am using gcc 8.3

@retrodeluxe
Copy link
Owner

I am not sure, I usually don't have problems with the sdcc build, neither in MacOS nor in Linux. Probably there is something different on the build for ARM.

Can you post here the build error? maybe I can guess something.

@retrodeluxe
Copy link
Owner

@plattysoft did you figure out the problem?

@plattysoft
Copy link
Author

I haven't tried in a few days, both sdcc from the main branch and the one from this repo gave an error compiling, and it wasn't really informative, so given that I can use the engine on my Mac, I decided to swap to it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants