Fix build and boot with modern GCC#51
Fix build and boot with modern GCC#51joshualtucker wants to merge 7 commits intoiDroid-Project:masterfrom
Conversation
- Port SCons scripts from Python 2 to Python 3 - Switch cross-compiler prefix arm-elf- to arm-none-eabi- - Add -std=gnu11 (GCC 15 defaults to C23, breaking old C idioms) - Add -fcommon (GCC 10+ default fno-common breaks globals-in-headers) - Add per-platform -mcpu flags (assembler needs explicit ARM arch) - Remove --nostdlib and -Werror from build flags - Fix auto_store inline declaration in util.h - Use pre-built mk8900image binary on Darwin arm64 (Rosetta)
|
Wow, I can't say I was expecting to ever see this build on a modern system! It'll take me some time to consume this properly, and I am already pondering how I test it - I don't have any of the appropriate devices anymore - maybe one of the other guys who originally worked on it will have a device stashed somewhere that can build and test properly. |
|
I've only managed to test it on an iPhone 3G as I don't have the other devices either, but all works fine there! |
|
Hey @nickpack, any further thoughts on this? |
|
BTW - I'm open to maintaining this repo on an ongoing basis. I have a keen interest in the preservation and documentation of the early days of iOS exploitation / security research. I used to be quite active in the community: |
Summary
openiBoot failed to build and boot when compiled with modern arm-none-eabi-gcc (GCC 15) on Apple Silicon. This PR:
LinkedList, TaskRegisterState, and TaskDescriptor (layout verified identical via _Static_assert).
Changes by area
Build system
Core fixes
Driver fixes
Menu
Documentation
Test plan