Hi
I was hoping for some help with GNU compiler and some strange issues I've been having.
If I compile FBA using x86 GNU G++ (v4.4.1) on my Windows PC using MinGW everything works fine and all games run.
If I compile natively on the Pandora (G++ V4.3.3 for ARM) almost everything works apart from most IREM games. Weird as the code is the same as the PC build.
If I cross compile for the Caanoo using G++ V4.2.4 as per the GPH SDK, several more games don't work properly, largely with palette issues, again using identical code to that's working perfectly when build for PC. At first glance I wonder if it is related to the palette code using double data types.
As an experiment I used a fresh install of Ubuntu and installed the latest ARM cross compilers (gcc-4.6-arm-linux-gnueabi-base, g++-4.6-arm-linux-gnueabi and cpp-4.6-arm-linux-gnueabi) Using this the code build absolutely fine but Segfaults on the Caanoo before executing any user code (ie if I put a printf as the first line in main it never gets executed). I used the flags -mcpu=arm926ej-s and -march=armv5te to try and ensure compatible code was produced but this didn't help.
Does anyone know if V4.2.4 does sometimes produce buggy code and how to avoid it, or better still how to produce compatible code using a newer version such as 4.6?
Also, is there a compiler option to force all double datatypes to be treated as floats? I couldn't find anything in the docs.
Thanks
Dave
I was hoping for some help with GNU compiler and some strange issues I've been having.
If I compile FBA using x86 GNU G++ (v4.4.1) on my Windows PC using MinGW everything works fine and all games run.
If I compile natively on the Pandora (G++ V4.3.3 for ARM) almost everything works apart from most IREM games. Weird as the code is the same as the PC build.
If I cross compile for the Caanoo using G++ V4.2.4 as per the GPH SDK, several more games don't work properly, largely with palette issues, again using identical code to that's working perfectly when build for PC. At first glance I wonder if it is related to the palette code using double data types.
As an experiment I used a fresh install of Ubuntu and installed the latest ARM cross compilers (gcc-4.6-arm-linux-gnueabi-base, g++-4.6-arm-linux-gnueabi and cpp-4.6-arm-linux-gnueabi) Using this the code build absolutely fine but Segfaults on the Caanoo before executing any user code (ie if I put a printf as the first line in main it never gets executed). I used the flags -mcpu=arm926ej-s and -march=armv5te to try and ensure compatible code was produced but this didn't help.
Does anyone know if V4.2.4 does sometimes produce buggy code and how to avoid it, or better still how to produce compatible code using a newer version such as 4.6?
Also, is there a compiler option to force all double datatypes to be treated as floats? I couldn't find anything in the docs.
Thanks
Dave