summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Bowler <jbowler@nslu2-linux.org>2005-09-09 22:38:20 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2005-09-09 22:38:20 +0000
commit752cfd0f5f3ef6666c8be5c63d56c082b181569b (patch)
tree4ba02e54c843e9f46bde5f15deeb519919220c4b
parent54e9c86c965874e1843b98fd0d625a333fe17289 (diff)
gcc(libgcc_s.so.1): fix the arm interwork _call_via_rX out of line ops
The interworking symbols were being built but not exported from libgcc (i.e. they were not in the version file), added a specific version file for them and updated t-linux. Forced the cross build to always generate ARM instructions (the thumb version does not currently work), bumped PRs.
-rw-r--r--packages/gcc/gcc-3.4.4/gcc34-thumb-interwork.patch51
-rw-r--r--packages/gcc/gcc-cross_3.4.4.bb5
-rw-r--r--packages/gcc/gcc_3.4.4.bb3
3 files changed, 57 insertions, 2 deletions
diff --git a/packages/gcc/gcc-3.4.4/gcc34-thumb-interwork.patch b/packages/gcc/gcc-3.4.4/gcc34-thumb-interwork.patch
new file mode 100644
index 0000000000..ee3a25c7ef
--- /dev/null
+++ b/packages/gcc/gcc-3.4.4/gcc34-thumb-interwork.patch
@@ -0,0 +1,51 @@
+--- gcc-3.4.4/gcc/config/arm/interwork.ver.orig 2005-09-08 21:59:26.000000000 -0700
++++ gcc-3.4.4/gcc/config/arm/interwork.ver 2005-09-08 22:11:10.211617698 -0700
+@@ -0,0 +1,37 @@
++# We need to add the _call_via_rX and _interwork... calls, follow
++# the same test as in the lib1funcs.asm file (note that this is
++# evaluated by gcc -E)
++%if (defined __ARM_ARCH_4T__ || defined __ARM_ARCH_5T__ || defined __ARM_ARCH_5TE__)
++GCC_3.4.4 {
++ _call_via_r0
++ _call_via_r1
++ _call_via_r2
++ _call_via_r3
++ _call_via_r4
++ _call_via_r5
++ _call_via_r6
++ _call_via_r7
++ _call_via_r8
++ _call_via_r9
++ _call_via_sl
++ _call_via_fp
++ _call_via_ip
++ _call_via_sp
++ _call_via_lr
++ _interwork_call_via_r0
++ _interwork_call_via_r1
++ _interwork_call_via_r2
++ _interwork_call_via_r3
++ _interwork_call_via_r4
++ _interwork_call_via_r5
++ _interwork_call_via_r6
++ _interwork_call_via_r7
++ _interwork_call_via_r8
++ _interwork_call_via_r9
++ _interwork_call_via_sl
++ _interwork_call_via_fp
++ _interwork_call_via_ip
++ _interwork_call_via_sp
++ _interwork_call_via_lr
++}
++%endif
+--- gcc-3.4.4/gcc/config/arm/t-linux.orig 2005-09-08 22:31:32.448528218 -0700
++++ gcc-3.4.4/gcc/config/arm/t-linux 2005-09-08 21:59:34.651848882 -0700
+@@ -10,6 +10,8 @@
+ _call_via_rX _interwork_call_via_rX \
+ _fixsfsi _fixunssfsi
+
++SHLIB_MAPFILES += $(srcdir)/config/arm/interwork.ver
++
+ # MULTILIB_OPTIONS = mhard-float/msoft-float
+ # MULTILIB_DIRNAMES = hard-float soft-float
+
diff --git a/packages/gcc/gcc-cross_3.4.4.bb b/packages/gcc/gcc-cross_3.4.4.bb
index c111ac00b7..9e8ebd51f5 100644
--- a/packages/gcc/gcc-cross_3.4.4.bb
+++ b/packages/gcc/gcc-cross_3.4.4.bb
@@ -5,7 +5,10 @@ inherit cross
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}"
# NOTE: split PR. If the main .oe changes something that affects its *build*
# remember to increment this one too.
-PR = "r1"
+PR = "r2"
+
+# At present the thumb implementation is non-functional
+ARM_INSTRUCTION_SET = ""
DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc"
PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
diff --git a/packages/gcc/gcc_3.4.4.bb b/packages/gcc/gcc_3.4.4.bb
index f4a67b77c2..4d1e8fca63 100644
--- a/packages/gcc/gcc_3.4.4.bb
+++ b/packages/gcc/gcc_3.4.4.bb
@@ -1,4 +1,4 @@
-PR = "r2"
+PR = "r3"
DESCRIPTION = "The GNU cc and gcc C compilers."
HOMEPAGE = "http://www.gnu.org/software/gcc/"
SECTION = "devel"
@@ -27,6 +27,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
SRC_URI += "file://gcc34-thumb-div0.patch;patch=1"
SRC_URI += "file://gcc34-thumb-clearinsn.patch;patch=1"
SRC_URI += "file://gcc34-thumb-lib1asmfuncs.patch;patch=1"
+SRC_URI += "file://gcc34-thumb-interwork.patch;patch=1"
SRC_URI += "file://gcc34-configure.in.patch;patch=1"
include gcc3-build.inc