gcc(libgcc_s.so.1): fix the arm interwork _call_via_rX out of line ops
authorJohn Bowler <jbowler@nslu2-linux.org>
Fri, 9 Sep 2005 22:38:20 +0000 (22:38 +0000)
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>
Fri, 9 Sep 2005 22:38:20 +0000 (22:38 +0000)
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.

packages/gcc/gcc-3.4.4/gcc34-thumb-interwork.patch [new file with mode: 0644]
packages/gcc/gcc-cross_3.4.4.bb
packages/gcc/gcc_3.4.4.bb

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 (file)
index 0000000..ee3a25c
--- /dev/null
@@ -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
index c111ac0..9e8ebd5 100644 (file)
@@ -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++"
index f4a67b7..4d1e8fc 100644 (file)
@@ -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