crozone / ipodloader2

Bootloader for classic iPods. Supports Rockbox, iPod Linux, and stock iPod OS.
44 stars 1 forks source link

Building on modern toolchain (gcc-arm-none-eabi) #2

Closed crozone closed 2 years ago

crozone commented 4 years ago

We need to be able to build ipodloader2 on a modern cross compiler arm toolchain. The current build system consists of old toolchain binaries on a 32-bit debian VM, which is highly impractical.

gcc-arm-none-eabi is available in the debian package repository and will be the target.

The goal is to have the project build without any errors or warnings.

Work is ongoing in the https://github.com/crozone/ipodloader2/tree/arm-none-eabi branch.

crozone commented 4 years ago

TODO: Diff https://github.com/daniel5151/clicky/tree/master/resources/ipodloader2 against https://github.com/iPodLinux/ipodloader2 to isolate the changes made in clicky to get iPodLoader2 building on modern GCC.

✅ Done

crozone commented 3 years ago

The code in the arm-none-eabi branch compiles with arm-none-eabi-gcc version 5.4.1, without errors or warnings. However it does not boot on ipod mini.

crozone commented 2 years ago

Build works on arm-none-eabi-gcc (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] with -O1 optimisation, breaks on -Os, -O2 or higher.