---- gcc-3.4.3/libc/sysdeps/powerpc/configure.orig 2004-05-28 23:18:10.000000000 +0200
-+++ gcc-3.4.3/libc/sysdeps/powerpc/configure 2004-11-17 21:13:01.151745976 +0100
+--- a/glibc-2.3.5/sysdeps/powerpc/configure 2004-05-28 23:18:10.000000000 +0200
++++ b/glibc-2.3.5/sysdeps/powerpc/configure 2004-11-17 21:13:01.151745976 +0100
@@ -11,7 +11,7 @@
.machine "altivec"
blr
--- /dev/null
+--- gcc-4.0.0-20050417/gcc/reload.c.orig 2005-04-19 18:30:49.000000000 +0200
++++ gcc-4.0.0-20050417/gcc/reload.c 2005-04-19 18:30:52.000000000 +0200
+@@ -1520,7 +1520,7 @@ push_reload (rtx in, rtx out, rtx *inloc
+ But if there is no spilling in this block, that is OK.
+ An explicitly used hard reg cannot be a spill reg. */
+
+- if (rld[i].reg_rtx == 0 && in != 0)
++ if (rld[i].reg_rtx == 0 && in != 0 && hard_regs_live_known)
+ {
+ rtx note;
+ int regno;
+@@ -1534,6 +1534,9 @@ push_reload (rtx in, rtx out, rtx *inloc
+ && REG_P (XEXP (note, 0))
+ && (regno = REGNO (XEXP (note, 0))) < FIRST_PSEUDO_REGISTER
+ && reg_mentioned_p (XEXP (note, 0), in)
++ && (ORIGINAL_REGNO (XEXP (note, 0)) < FIRST_PSEUDO_REGISTER
++ || ! bitmap_bit_p (ENTRY_BLOCK_PTR->global_live_at_end,
++ ORIGINAL_REGNO (XEXP (note, 0))))
+ && ! refers_to_regno_for_reload_p (regno,
+ (regno
+ + hard_regno_nregs[regno]
+@@ -1997,7 +2000,16 @@ find_dummy_reload (rtx real_in, rtx real
+ is a subreg, and in that case, out
+ has a real mode. */
+ (GET_MODE (out) != VOIDmode
+- ? GET_MODE (out) : outmode)))
++ ? GET_MODE (out) : outmode))
++ /* But only do all this if we can be sure, that this input
++ operand doesn't correspond with an uninitialized pseudoreg.
++ global can assign some hardreg to it, which is the same as
++ a different pseudo also currently live (as it can ignore the
++ conflict). So we never must introduce writes to such hardregs,
++ as they would clobber the other live pseudo using the same. */
++ && (ORIGINAL_REGNO (in) < FIRST_PSEUDO_REGISTER
++ || ! bitmap_bit_p (ENTRY_BLOCK_PTR->global_live_at_end,
++ ORIGINAL_REGNO (in))))
+ {
+ unsigned int regno = REGNO (in) + in_offset;
+ unsigned int nwords = hard_regno_nregs[regno][inmode];
--- /dev/null
+===================================================================
+RCS file: /cvs/gcc/gcc/gcc/tree-ssa-pre.c,v
+retrieving revision 2.65.4.2
+retrieving revision 2.65.4.3
+diff -u -r2.65.4.2 -r2.65.4.3
+--- gcc/gcc/tree-ssa-pre.c 2005/04/17 23:40:31 2.65.4.2
++++ gcc/gcc/tree-ssa-pre.c 2005/04/25 14:02:31 2.65.4.3
+@@ -1330,7 +1330,8 @@
+
+ folded = fold (build (TREE_CODE (expr), TREE_TYPE (expr),
+ genop1, genop2));
+- newexpr = force_gimple_operand (folded, &forced_stmts, false, NULL);
++ newexpr = force_gimple_operand (unshare_expr (folded),
++ &forced_stmts, false, NULL);
+ if (forced_stmts)
+ {
+ tsi = tsi_start (forced_stmts);
+@@ -1372,14 +1373,8 @@
+ add_referenced_tmp_var (temp);
+ folded = fold (build (TREE_CODE (expr), TREE_TYPE (expr),
+ genop1));
+- /* If the generated operand is already GIMPLE min_invariant
+- just use it instead of calling force_gimple_operand on it,
+- since that may make it not invariant by copying it into an
+- assignment. */
+- if (!is_gimple_min_invariant (genop1))
+- newexpr = force_gimple_operand (folded, &forced_stmts, false, NULL);
+- else
+- newexpr = genop1;
++ newexpr = force_gimple_operand (unshare_expr (folded),
++ &forced_stmts, false, NULL);
+ if (forced_stmts)
+ {
+ tsi = tsi_start (forced_stmts);
Summary(pt_BR): Utilitários para desenvolvimento de binários da GNU - PPC gcc
Summary(tr): GNU geliþtirme araçlarý - PPC gcc
Name: crossppc-gcc
-Version: 3.4.3
-Release: 2
+Version: 4.0.0
+Release: 1
Epoch: 1
License: GPL
Group: Development/Languages
Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/gcc-%{version}.tar.bz2
-# Source0-md5: e744b30c834360fccac41eb7269a3011
-%define _llh_ver 2.6.9.1
+# Source0-md5: 55ee7df1b29f719138ec063c57b89db6
+%define _llh_ver 2.6.11.2
Source1: http://ep09.pld-linux.org/~mmazur/linux-libc-headers/linux-libc-headers-%{_llh_ver}.tar.bz2
-# Source1-md5: d3507b2c0203a0760a677022badcf455
-Source2: glibc-20041030.tar.bz2
-# Source2-md5: 4e14871efd881fbbf523a0ba16175bc7
+# Source1-md5: 2d21d8e7ff641da74272b114c786464e
+%define _glibc_ver 2.3.5
+Source2: ftp://sources.redhat.com/pub/glibc/releases/glibc-%{_glibc_ver}.tar.bz2
+# Source2-md5: 93d9c51850e0513aa4846ac0ddcef639
+Source3: ftp://sources.redhat.com/pub/glibc/releases/glibc-linuxthreads-%{_glibc_ver}.tar.bz2
+# Source3-md5: 77011b0898393c56b799bc011a0f37bf
Patch0: %{name}-libc-sysdeps-configure.patch
+Patch1: %{name}-pr20973.patch
+Patch2: %{name}-pr21173.patch
URL: http://gcc.gnu.org/
BuildRequires: autoconf
BuildRequires: automake
Ten pakiet dodaje obs³ugê C++ do kompilatora gcc dla PPC.
%prep
-%setup -q -n gcc-%{version} -a1 -a2
+%setup -q -n gcc-%{version} -a1 -a2 -a3
+mv linuxthreads* glibc-%{_glibc_ver}/
%patch0 -p1
+%patch1 -p1
+%patch2 -p1
%build
FAKE_ROOT=$PWD/fake-root
cp -r linux-libc-headers-%{_llh_ver}/include/{asm-ppc,linux} $FAKE_ROOT/usr/include
ln -s asm-ppc $FAKE_ROOT/usr/include/asm
-cd libc
+cd glibc-%{_glibc_ver}
cp -f /usr/share/automake/config.* scripts
rm -rf builddir && install -d builddir && cd builddir
../configure \
%{__make} -C obj-%{target} install-gcc \
DESTDIR=$RPM_BUILD_ROOT
+install obj-%{target}/gcc/specs $RPM_BUILD_ROOT%{gcclib}
+
# don't want this here
rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a