diff options
author | 2006-01-14 02:34:35 +0000 | |
---|---|---|
committer | 2006-01-14 02:34:35 +0000 | |
commit | 41e6e81c86eb32566a5c09d5fe85f387ea8e40f8 (patch) | |
tree | a6c6b834dd9299fb858505e4738412c53d5c9111 /sys-devel/gcc | |
parent | clean out old files (diff) | |
download | gentoo-2-41e6e81c86eb32566a5c09d5fe85f387ea8e40f8.tar.gz gentoo-2-41e6e81c86eb32566a5c09d5fe85f387ea8e40f8.tar.bz2 gentoo-2-41e6e81c86eb32566a5c09d5fe85f387ea8e40f8.zip |
Update softfloat patch from yuri.
(Portage version: 2.1_pre3-r1)
Diffstat (limited to 'sys-devel/gcc')
-rw-r--r-- | sys-devel/gcc/ChangeLog | 6 | ||||
-rw-r--r-- | sys-devel/gcc/files/4.0.2/gcc-4.0.2-softfloat.patch | 84 | ||||
-rw-r--r-- | sys-devel/gcc/gcc-4.0.2-r3.ebuild | 5 |
3 files changed, 93 insertions, 2 deletions
diff --git a/sys-devel/gcc/ChangeLog b/sys-devel/gcc/ChangeLog index 940ca555039d..1d357e3a4d6f 100644 --- a/sys-devel/gcc/ChangeLog +++ b/sys-devel/gcc/ChangeLog @@ -1,6 +1,10 @@ # ChangeLog for sys-devel/gcc # Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/ChangeLog,v 1.487 2006/01/14 01:42:16 halcy0n Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/ChangeLog,v 1.488 2006/01/14 02:34:35 vapier Exp $ + + 14 Jan 2006; Mike Frysinger <vapier@gentoo.org> + +files/4.0.2/gcc-4.0.2-softfloat.patch, gcc-4.0.2-r3.ebuild: + Update softfloat patch from yuri. *gcc-4.1.0_beta20060113 (14 Jan 2006) diff --git a/sys-devel/gcc/files/4.0.2/gcc-4.0.2-softfloat.patch b/sys-devel/gcc/files/4.0.2/gcc-4.0.2-softfloat.patch new file mode 100644 index 000000000000..1e01479ffcd9 --- /dev/null +++ b/sys-devel/gcc/files/4.0.2/gcc-4.0.2-softfloat.patch @@ -0,0 +1,84 @@ +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-4.0.2/gcc/config/arm/elf.h ++++ gcc-4.0.2/gcc/config/arm/elf.h +@@ -45,8 +45,9 @@ + #endif + + #ifndef SUBTARGET_ASM_FLOAT_SPEC +-#define SUBTARGET_ASM_FLOAT_SPEC "\ +-%{mapcs-float:-mfloat}" ++#define SUBTARGET_ASM_FLOAT_SPEC "%{mapcs-float:-mfloat} \ ++ %{mhard-float:-mfpu=fpa} \ ++ %{!mhard-float: %{msoft-float:-mfpu=softfpa;:-mfpu=softvfp}}" + #endif + + #ifndef ASM_SPEC +@@ -58,8 +59,6 @@ + %{mapcs-*:-mapcs-%*} \ + %(subtarget_asm_float_spec) \ + %{mthumb-interwork:-mthumb-interwork} \ +-%{msoft-float:-mfloat-abi=soft} %{mhard-float:-mfloat-abi=hard} \ +-%{mfloat-abi=*} %{mfpu=*} \ + %(subtarget_extra_asm_spec)" + #endif + +--- gcc-4.0.2/gcc/config/arm/linux-elf.h ++++ gcc-4.0.2/gcc/config/arm/linux-elf.h +@@ -32,18 +32,22 @@ + #define NO_IMPLICIT_EXTERN_C + + #undef TARGET_DEFAULT_FLOAT_ABI +-#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD ++#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT + + #undef TARGET_DEFAULT + #define TARGET_DEFAULT (0) + ++#undef SUBTARGET_EXTRA_ASM_SPEC ++#define SUBTARGET_EXTRA_ASM_SPEC "%{mhard-float:-mfpu=fpa} \ ++ %{!mhard-float: %{msoft-float:-mfpu=softfpa;:-mfpu=softvfp}}" ++ + #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6 + + #define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p" + + #undef MULTILIB_DEFAULTS + #define MULTILIB_DEFAULTS \ +- { "marm", "mlittle-endian", "mhard-float", "mno-thumb-interwork" } ++ { "marm", "mlittle-endian", "msoft-float", "mno-thumb-interwork" } + + /* The GNU C++ standard library requires that these macros be defined. */ + #undef CPLUSPLUS_CPP_SPEC +@@ -56,7 +60,7 @@ + %{shared:-lc} \ + %{!shared:%{profile:-lc_p}%{!profile:-lc}}" + +-#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-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-4.0.2/gcc/config/arm/t-linux ++++ gcc-4.0.2/gcc/config/arm/t-linux +@@ -4,7 +4,10 @@ TARGET_LIBGCC2_CFLAGS = -fomit-frame-poi + 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 _floatdidf _floatdisf + + # MULTILIB_OPTIONS = mhard-float/msoft-float + # MULTILIB_DIRNAMES = hard-float soft-float diff --git a/sys-devel/gcc/gcc-4.0.2-r3.ebuild b/sys-devel/gcc/gcc-4.0.2-r3.ebuild index faf8f4e99714..eb96eb9b2762 100644 --- a/sys-devel/gcc/gcc-4.0.2-r3.ebuild +++ b/sys-devel/gcc/gcc-4.0.2-r3.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-4.0.2-r3.ebuild,v 1.4 2006/01/07 03:31:54 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-4.0.2-r3.ebuild,v 1.5 2006/01/14 02:34:35 vapier Exp $ PATCH_VER="1.5" PATCH_GCC_VER="4.0.2" @@ -62,5 +62,8 @@ src_unpack() { # Fix cross-compiling epatch "${FILESDIR}"/4.0.2/gcc-4.0.2-cross-compile.patch + +# [[ ${CTARGET} == *-softfloat-* ]] && +epatch "${FILESDIR}"/4.0.2/gcc-4.0.2-softfloat.patch } |