summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2005-08-05 22:15:05 +0000
committerMike Frysinger <vapier@gentoo.org>2005-08-05 22:15:05 +0000
commit480cf9fd99655f656d7cd5e6ef519b3ad35bfa8a (patch)
treea9a9c110c85f9efcafa38ac46f1f7725e008b5a4 /sys-devel
parentmoved to patchtarball (diff)
downloadhistorical-480cf9fd99655f656d7cd5e6ef519b3ad35bfa8a.tar.gz
historical-480cf9fd99655f656d7cd5e6ef519b3ad35bfa8a.tar.bz2
historical-480cf9fd99655f656d7cd5e6ef519b3ad35bfa8a.zip
Merge soft-float support by Yuri Vasilevski #75585.
Package-Manager: portage-2.0.51.22-r2
Diffstat (limited to 'sys-devel')
-rw-r--r--sys-devel/gcc/ChangeLog6
-rw-r--r--sys-devel/gcc/Manifest14
-rw-r--r--sys-devel/gcc/files/3.4.4/gcc-3.4.4-softfloat.patch156
-rw-r--r--sys-devel/gcc/gcc-3.4.4.ebuild4
4 files changed, 171 insertions, 9 deletions
diff --git a/sys-devel/gcc/ChangeLog b/sys-devel/gcc/ChangeLog
index 49b5929103d2..f306779732eb 100644
--- a/sys-devel/gcc/ChangeLog
+++ b/sys-devel/gcc/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for sys-devel/gcc
# Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/ChangeLog,v 1.440 2005/07/30 23:41:59 halcy0n Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/ChangeLog,v 1.441 2005/08/05 22:15:05 vapier Exp $
+
+ 05 Aug 2005; Mike Frysinger <vapier@gentoo.org>
+ +files/3.4.4/gcc-3.4.4-softfloat.patch, gcc-3.4.4.ebuild:
+ Merge soft-float support by Yuri Vasilevski #75585.
*gcc-4.1.0_beta20050730 (30 Jul 2005)
diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest
index 5ee4fdb90737..c7e2a18ee130 100644
--- a/sys-devel/gcc/Manifest
+++ b/sys-devel/gcc/Manifest
@@ -11,12 +11,12 @@ MD5 3e3bc1c3e3953428824c0fd3f206c48b gcc-3.3.2-r7.ebuild 21757
MD5 9111df8f4b2d0f617ccc1ab9c7755d7f gcc-3.3.5.20050130-r1.ebuild 3209
MD5 521ca7a790e5ac461503c5aca11f62dd gcc-3.4.3-r1.ebuild 5429
MD5 1a84ea5c09067bb7da6c8959f13e2154 gcc-3.3.5-r1.ebuild 3777
-MD5 c64e1604f1e261a37f53bff3cde0c84c gcc-3.4.4.ebuild 4914
+MD5 7d11d9fe1a391fb6b14b8b07852a6374 gcc-3.4.4.ebuild 5006
MD5 1cc5f2fcbc1f6dc2a7ed43ca14b6ed9c gcc-4.1.0_beta20050730.ebuild 1525
MD5 b5774f75bb651dcfb7654cd186938c99 gcc-3.4.3.20050110-r2.ebuild 5191
MD5 9718cbc7f6f1b2f19ff801f4c2e62721 gcc-3.2.2.ebuild 511
MD5 71b180bed94dca00dddf253f7bd6508f gcc-3.2.3-r4.ebuild 19841
-MD5 a82653f5d85c5ebbcb93bccf3fbfb04b ChangeLog 91209
+MD5 cedf6b53ee32cc1ddecc1c208afbed54 ChangeLog 91373
MD5 3196c90905902891b12b4d08372c0eb5 gcc-2.95.3-r9.ebuild 7524
MD5 0d683280daf95e6bb9712549352a200c files/digest-gcc-3.1.1-r2 140
MD5 9e216fb231a24884fe548b31864296b8 files/digest-gcc-3.3.5.20050130-r2 620
@@ -60,8 +60,8 @@ MD5 7cb2138ac2df6f8674d19974e966a45b files/3.4.1/gcc-3.4.1-mips-n32only.patch 61
MD5 14fec2000fc63536d4cf22195e88e14f files/3.4.1/gcc-3.4.1-r2-gentoo-branding.patch 781
MD5 cd770c23ece7458db5e6c5067f262ce0 files/3.4.1/gcc-3.4.1-glibc-is-native.patch 760
MD5 aa8e15a63d797df37bbd4e489ed0267f files/3.4.1/gcc-3.4.1-mips-n64only.patch 614
-MD5 f6e2d11b3bbcf00592a73033be5bd264 files/3.4.4/gcc-3.4_x-avr-news-devs2.patch 5454
MD5 50f1f564c568b9e28231c592d4df2f36 files/3.4.4/gcc-3.4.4-cross-compile.patch 1728
+MD5 2c355d808b490994c6566b10f3c0ba27 files/3.4.4/gcc-3.4.4-softfloat.patch 5242
MD5 494d917cc15c81c9cead4a8c17d4d00d files/3.2.3/gcc32-mklibgcc-serialize-crtfiles.patch 926
MD5 52ef1426cb70a472182503502b768058 files/3.2.3/gcc-3.2.3-mergel-fix.patch 2749
MD5 c9c45dab64bab25e716859626ad7f94f files/3.2.3/gcc32-c++-classfn-member-template.patch 3219
@@ -96,9 +96,9 @@ MD5 17f15202b98a8dd84d0f4b67eff2d868 files/3.2.2/gcc32-pr7768.patch 1789
MD5 184cb0a87ee2fa0197dec6f4902ef4c8 files/3.3.5/gcc-3.3.5-no-COPYING-cross-compile.patch 1192
MD5 7c29f54dd8d50385ac42fae65459c744 files/3.3.5/gcc-3.3.5-ffecom_gfrt_basictype-prototype.patch 538
-----BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.1 (GNU/Linux)
+Version: GnuPG v1.4.2 (GNU/Linux)
-iD8DBQFC7Vv/gIKl8Uu19MoRAsdyAKCEQ6nuLp4p1G04zuuhxNMdPcU+OQCeObT6
-crjU/TnukCwU/tolc2mm+yQ=
-=Bqz9
+iD8DBQFC8+UBgIKl8Uu19MoRArEIAJ97kuRzcCSA2yWkp/gL37QKhIR0AwCfYtMj
+0GxKSHJRtX3KPInu0vEtTCA=
+=FA5b
-----END PGP SIGNATURE-----
diff --git a/sys-devel/gcc/files/3.4.4/gcc-3.4.4-softfloat.patch b/sys-devel/gcc/files/3.4.4/gcc-3.4.4-softfloat.patch
new file mode 100644
index 000000000000..9646bed63726
--- /dev/null
+++ b/sys-devel/gcc/files/3.4.4/gcc-3.4.4-softfloat.patch
@@ -0,0 +1,156 @@
+The hunk for gcc/config/arm/t-linux comes from:
+http://gcc.gnu.org/PR14352
+
+The rest is a custom job by Yuri Vasilevski.
+
+The idea here is that we add soft float support into the spec file
+so that we don't have to worry about packages stripping out softfloat
+flags from CFLAGS/CXXFLAGS.
+
+http://bugs.gentoo.org/75585
+
+--- gcc-3.4.4/gcc/config/arm/coff.h
++++ gcc-3.4.4/gcc/config/arm/coff.h
+@@ -31,11 +31,16 @@
+ #define TARGET_VERSION fputs (" (ARM/coff)", stderr)
+
+ #undef TARGET_DEFAULT
+-#define TARGET_DEFAULT (ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME | ARM_FLAG_MMU_TRAPS)
++#define TARGET_DEFAULT \
++ ( ARM_FLAG_SOFT_FLOAT \
++ | ARM_FLAG_VFP \
++ | ARM_FLAG_APCS_32 \
++ | ARM_FLAG_APCS_FRAME \
++ | ARM_FLAG_MMU_TRAPS )
+
+ #ifndef MULTILIB_DEFAULTS
+ #define MULTILIB_DEFAULTS \
+- { "marm", "mlittle-endian", "msoft-float", "mapcs-32", "mno-thumb-interwork" }
++ { "marm", "mlittle-endian", "mapcs-32", "mno-thumb-interwork" }
+ #endif
+
+ /* This is COFF, but prefer stabs. */
+--- gcc-3.4.4/gcc/config/arm/elf.h
++++ gcc-3.4.4/gcc/config/arm/elf.h
+@@ -46,7 +46,9 @@
+
+ #ifndef SUBTARGET_ASM_FLOAT_SPEC
+ #define SUBTARGET_ASM_FLOAT_SPEC "\
+-%{mapcs-float:-mfloat} %{msoft-float:-mfpu=softfpa}"
++%{mapcs-float:-mfloat} \
++%{mhard-float:-mfpu=fpa} \
++%{!mhard-float: %{msoft-float:-mfpu=softvfp} %{!msoft-float:-mfpu=softvfp}}"
+ #endif
+
+ #ifndef ASM_SPEC
+@@ -106,12 +108,17 @@
+ #endif
+
+ #ifndef TARGET_DEFAULT
+-#define TARGET_DEFAULT (ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME | ARM_FLAG_MMU_TRAPS)
++#define TARGET_DEFAULT \
++ (ARM_FLAG_SOFT_FLOAT \
++ | ARM_FLAG_VFP \
++ | ARM_FLAG_APCS_32 \
++ | ARM_FLAG_APCS_FRAME \
++ | ARM_FLAG_MMU_TRAPS )
+ #endif
+
+ #ifndef MULTILIB_DEFAULTS
+ #define MULTILIB_DEFAULTS \
+- { "marm", "mlittle-endian", "msoft-float", "mapcs-32", "mno-thumb-interwork", "fno-leading-underscore" }
++ { "marm", "mlittle-endian", "mapcs-32", "mno-thumb-interwork", "fno-leading-underscore" }
+ #endif
+
+ #define TARGET_ASM_FILE_START_APP_OFF true
+--- gcc-3.4.4/gcc/config/arm/linux-elf.h
++++ gcc-3.4.4/gcc/config/arm/linux-elf.h
+@@ -44,20 +44,33 @@
+ #define TARGET_LINKER_EMULATION "armelf_linux"
+ #endif
+
+-/* Default is to use APCS-32 mode. */
++/*
++ * Default is to use APCS-32 mode with soft-vfp.
++ * The old Linux default for floats can be achieved with -mhard-float
++ * or with the configure --with-float=hard option.
++ * If -msoft-float or --with-float=soft is used then software float
++ * support will be used just like the default but with the legacy
++ * big endian word ordering for double float representation instead.
++ */
+ #undef TARGET_DEFAULT
+ #define TARGET_DEFAULT \
+ ( ARM_FLAG_APCS_32 | \
++ ARM_FLAG_SOFT_FLOAT | \
++ ARM_FLAG_VFP | \
+ ARM_FLAG_MMU_TRAPS | \
+ TARGET_ENDIAN_DEFAULT )
+
++#undef SUBTARGET_EXTRA_ASM_SPEC
++#define SUBTARGET_EXTRA_ASM_SPEC "%{mhard-float:-mfpu=fpa} \
++%{!mhard-float: %{msoft-float:-mfpu=softvfp} %{!msoft-float:-mfpu=softvfp}}"
++
+ #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
+
+ #define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
+
+ #undef MULTILIB_DEFAULTS
+ #define MULTILIB_DEFAULTS \
+- { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
++ { "marm", TARGET_ENDIAN_OPTION, "mapcs-32", "mno-thumb-interwork" }
+
+ #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
+
+@@ -72,7 +85,7 @@
+ %{shared:-lc} \
+ %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
+
+-#define LIBGCC_SPEC "%{msoft-float:-lfloat} -lgcc"
++#define LIBGCC_SPEC "-lgcc"
+
+ /* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add
+ the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
+--- gcc-3.4.4/gcc/config/arm/t-linux
++++ gcc-3.4.4/gcc/config/arm/t-linux
+@@ -4,7 +4,10 @@
+ LIBGCC2_DEBUG_CFLAGS = -g0
+
+ LIB1ASMSRC = arm/lib1funcs.asm
+-LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
++LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
++ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
++ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
++ _fixsfsi _fixunssfsi
+
+ # MULTILIB_OPTIONS = mhard-float/msoft-float
+ # MULTILIB_DIRNAMES = hard-float soft-float
+--- gcc-3.4.4/gcc/config/arm/unknown-elf.h
++++ gcc-3.4.4/gcc/config/arm/unknown-elf.h
+@@ -30,7 +30,12 @@
+
+ /* Default to using APCS-32 and software floating point. */
+ #ifndef TARGET_DEFAULT
+-#define TARGET_DEFAULT (ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME | ARM_FLAG_MMU_TRAPS)
++#define TARGET_DEFAULT \
++ ( ARM_FLAG_SOFT_FLOAT \
++ | ARM_FLAG_VFP \
++ | ARM_FLAG_APCS_32 \
++ | ARM_FLAG_APCS_FRAME \
++ | ARM_FLAG_MMU_TRAPS )
+ #endif
+
+ /* Now we define the strings used to build the spec file. */
+--- gcc-3.4.4/gcc/config/arm/xscale-elf.h
++++ gcc-3.4.4/gcc/config/arm/xscale-elf.h
+@@ -51,9 +51,9 @@
+
+ #define SUBTARGET_EXTRA_ASM_SPEC "%{!mcpu=*:-mcpu=xscale} \
+ %{mhard-float:-mfpu=fpa} \
+- %{!mhard-float: %{msoft-float:-mfpu=softfpa;:-mfpu=softvfp}}"
++ %{!mhard-float: %{msoft-float:-mfpu=softvfp} %{!msoft-float:-mfpu=softvfp}}"
+
+ #ifndef MULTILIB_DEFAULTS
+ #define MULTILIB_DEFAULTS \
+- { "mlittle-endian", "mno-thumb-interwork", "marm", "msoft-float" }
++ { "mlittle-endian", "mno-thumb-interwork", "marm" }
+ #endif
diff --git a/sys-devel/gcc/gcc-3.4.4.ebuild b/sys-devel/gcc/gcc-3.4.4.ebuild
index 14b316c2c195..fcb8b035fdbf 100644
--- a/sys-devel/gcc/gcc-3.4.4.ebuild
+++ b/sys-devel/gcc/gcc-3.4.4.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.4.4.ebuild,v 1.23 2005/07/31 23:17:01 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.4.4.ebuild,v 1.24 2005/08/05 22:15:05 vapier Exp $
MAN_VER=""
PATCH_VER="1.4"
@@ -97,6 +97,8 @@ src_unpack() {
# Fix cross-compiling
epatch "${FILESDIR}"/3.4.4/gcc-3.4.4-cross-compile.patch
+ [[ ${CTARGET} == *-softfloat-* ]] && epatch "${FILESDIR}"/3.4.4/gcc-3.4.4-softfloat.patch
+
# Arch stuff
case $(tc-arch) in
mips)