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
On Fri, 15 Jul 2011 08:37:57 +0200 Victor Martinez <pitillo@crux-arm.nu> wrote:
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].
thus, only now, they backported this from 4.6 tree. cheers, --nico -- acrux <acrux_it@libero.it>
* acrux (acrux_it@libero.it) wrote:
On Fri, 15 Jul 2011 08:37:57 +0200 Victor Martinez <pitillo@crux-arm.nu> wrote:
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].
thus, only now, they backported this from 4.6 tree.
Yeah, there are some fixes in 4.6.x now. I'd like to stick with 4.5.x versions for the 2.7 release. And it can be bumped to 4.6 in the next releases, where we can focus on hardfp for that version. That's why I want to make a little meeting and try to plan all things together.
cheers, --nico
Regards, Victor. --- Learning bit by bit Victor Martinez | http://lokalix.dyndns.org
participants (2)
-
acrux
-
Victor Martinez