Hello, like I told in the irc channel, I found some problems trying to build firefox and thunderbird. Both of them looked for some symbols, _ARM_PCS_VFP or __ARM_PCS, and our toolchain only defines __ARM_EABI__. With this patch we can give gcc 4.5.2 these definitions. The entire discussion and this patch can be found at [1]. <code> --- gcc-4.5.2.orig//gcc/config/arm/arm.c 2011-07-14 17:25:05.000000000 +0000 +++ gcc-4.5.2//gcc/config/arm/arm.c 2011-07-14 17:31:26.000000000 +0000 @@ -700,7 +700,7 @@ static int after_arm_reorg = 0; /* The maximum number of insns to be used when loading a constant. */ static int arm_constant_limit = 3; -static enum arm_pcs arm_pcs_default; +enum arm_pcs arm_pcs_default; /* For an explanation of these variables, see final_prescan_insn below. */ int arm_ccfsm_state; --- gcc-4.5.2/gcc/config/arm/arm.h.orig 2009-12-23 16:36:40.000000000 +0000 +++ gcc-4.5.2/gcc/config/arm/arm.h 2011-07-14 18:37:45.000000000 +0000 @@ -94,7 +94,13 @@ if (arm_arch_iwmmxt) \ builtin_define ("__IWMMXT__"); \ if (TARGET_AAPCS_BASED) \ - builtin_define ("__ARM_EABI__"); \ + { \ + if (arm_pcs_default == ARM_PCS_AAPCS_VFP) \ + builtin_define ("__ARM_PCS_VFP"); \ + else if (arm_pcs_default == ARM_PCS_AAPCS) \ + builtin_define ("__ARM_PCS"); \ + builtin_define ("__ARM_EABI__"); \ + } \ } while (0) /* The various ARM cores. */ @@ -1648,6 +1654,9 @@ ARM_PCS_UNKNOWN }; +/* Default procedure calling standard of current compilation unit. */ +extern enum arm_pcs arm_pcs_default; + /* A C type for declaring a variable that is used as the first argument of `FUNCTION_ARG' and other related values. */ typedef struct </code> I hope someone can check this and comment about. I need to rebuild the entire system and make the test building those ports. Any comments, suggestions or opinions are welcome. Regards, Victor. [1] http://gcc.gnu.org/ml/gcc-patches/2010-07/msg01654.html --- Learning bit by bit Victor Martinez | http://lokalix.dyndns.org