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
_______________________________________________
crux-arm mailing list
[email protected]
http://crux-arm.nu/mailman/listinfo/crux-arm

Reply via email to