[PATCH] Proposed patch for gcc 4.4 (20090216)
Richard W.M. Jones
rjones at redhat.com
Thu Feb 19 14:28:45 UTC 2009
This is a proposed patch which does a straightforward upgrade to the
same (prelease) version of GCC 4.4 that is in Fedora Rawhide.
The patches etc are not included, but they are exactly the same as the
ones found in native Fedora GCC.
This also builds the Objective C, Objective C++ and FORTRAN compilers.
Rich.
--
Richard Jones, Emerging Technologies, Red Hat http://et.redhat.com/~rjones
Read my OCaml programming blog: http://camltastic.blogspot.com/
Fedora now supports 68 OCaml packages (the OPEN alternative to F#)
http://cocan.org/getting_started_with_ocaml_on_red_hat_and_fedora
-------------- next part --------------
Index: mingw32-gcc.spec
===================================================================
RCS file: /cvs/pkgs/rpms/mingw32-gcc/devel/mingw32-gcc.spec,v
retrieving revision 1.1
diff -u -r1.1 mingw32-gcc.spec
--- mingw32-gcc.spec 25 Nov 2008 17:49:43 -0000 1.1
+++ mingw32-gcc.spec 19 Feb 2009 14:23:58 -0000
@@ -1,20 +1,50 @@
%define __os_install_post /usr/lib/rpm/brp-compress %{nil}
+%define DATE 20090216
+%define SVNREV 144214
+
Name: mingw32-gcc
-Version: 4.3.2
-Release: 12%{?dist}
+Version: 4.4.0
+Release: 0.1%{?dist}
Summary: MinGW Windows cross-compiler (GCC) for C
-License: GPLv2+
+License: GPLv3+ and GPLv2+ with exceptions
Group: Development/Languages
-URL: http://www.mingw.org/
-Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-core-%{version}.tar.bz2
-Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-g++-%{version}.tar.bz2
-Patch1: %{name}-build.patch
+
+# We use the same source as Fedora's native gcc.
+URL: http://gcc.gnu.org
+Source0: gcc-%{version}-%{DATE}.tar.bz2
+Source1: libgcc_post_upgrade.c
+Source2: README.libgcjwebplugin.so
+Source3: protoize.1
+Source5: ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-ppl-0.15.tar.gz
+
+# Patches from Fedora's native gcc.
+Patch0: gcc44-hack.patch
+Patch1: gcc44-build-id.patch
+Patch2: gcc44-c++-builtin-redecl.patch
+Patch3: gcc44-ia64-libunwind.patch
+Patch4: gcc44-java-nomulti.patch
+Patch5: gcc44-ppc32-retaddr.patch
+Patch7: gcc44-pr27898.patch
+Patch8: gcc44-pr32139.patch
+Patch9: gcc44-pr33763.patch
+Patch10: gcc44-rh330771.patch
+Patch11: gcc44-rh341221.patch
+Patch12: gcc44-java-debug-iface-type.patch
+Patch13: gcc44-i386-libgomp.patch
+Patch15: gcc44-sparc-config-detection.patch
+Patch16: gcc44-libgomp-omp_h-multilib.patch
+Patch20: gcc44-libtool-no-rpath.patch
+Patch21: gcc44-cloog-dl.patch
+Patch22: gcc44-raw-string.patch
+Patch23: gcc44-pr39175.patch
+Patch24: gcc44-diff.patch
+
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: texinfo
-BuildRequires: mingw32-filesystem >= 39-3
+BuildRequires: mingw32-filesystem >= 48
BuildRequires: mingw32-binutils
BuildRequires: mingw32-runtime
BuildRequires: mingw32-w32api
@@ -25,7 +55,8 @@
BuildRequires: libgomp
# NB: Explicit mingw32-filesystem dependency is REQUIRED here.
-Requires: mingw32-filesystem >= 39-3
+Requires: mingw32-filesystem >= 48
+
Requires: mingw32-binutils
Requires: mingw32-runtime
Requires: mingw32-w32api
@@ -33,7 +64,7 @@
%description
-MinGW Windows cross-compiler (GCC) for C
+MinGW Windows cross-compiler (GCC) for C.
%package -n mingw32-cpp
@@ -47,24 +78,72 @@
%package c++
Summary: MinGW Windows cross-compiler for C++
Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
%description c++
-MinGW Windows cross-compiler for C++
+MinGW Windows cross-compiler for C++.
+
+
+%package objc
+Summary: MinGW Windows cross-compiler support for Objective C
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+Requires: mingw32-libobjc = %{version}-%{release}
+
+%description objc
+MinGW Windows cross-compiler support for Objective C.
+
+
+%package objc++
+Summary: MinGW Windows cross-compiler support for Objective C++
+Group: Development/Languages
+Requires: %{name}-g++ = %{version}-%{release}
+Requires: %{name}-objc = %{version}-%{release}
+
+%description objc++
+MinGW Windows cross-compiler support for Objective C++.
+
+
+%package gfortran
+Summary: MinGW Windows cross-compiler for FORTRAN
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+
+%description gfortran
+MinGW Windows cross-compiler for FORTRAN.
%prep
-%setup -q -c
-%setup -q -D -T -a1
-%patch1 -p1
+%setup -q -n gcc-%{version}-%{DATE}
+%patch0 -p0 -b .hack~
+%patch1 -p0 -b .build-id~
+%patch2 -p0 -b .c++-builtin-redecl~
+%patch3 -p0 -b .ia64-libunwind~
+%patch4 -p0 -b .java-nomulti~
+%patch5 -p0 -b .ppc32-retaddr~
+%patch7 -p0 -b .pr27898~
+%patch8 -p0 -b .pr32139~
+%patch9 -p0 -b .pr33763~
+%patch10 -p0 -b .rh330771~
+%patch11 -p0 -b .rh341221~
+%patch12 -p0 -b .java-debug-iface-type~
+%patch13 -p0 -b .i386-libgomp~
+%patch15 -p0 -b .sparc-config-detection~
+%patch16 -p0 -b .libgomp-omp_h-multilib~
+%patch20 -p0 -b .libtool-no-rpath~
+%patch21 -p0 -b .cloog-dl~
+%patch22 -p0 -b .raw-string~
+%patch23 -p0 -b .pr39175~
+%patch24 -p0 -b .diff~
%build
-cd gcc-%{version}
-
mkdir -p build
-cd build
+pushd build
-languages="c,c++"
+# GNAT is required to build Ada. Don't build GCJ.
+#languages="c,c++,objc,obj-c++,java,fortran,ada"
+languages="c,c++,objc,obj-c++,fortran"
CC="%{__cc} ${RPM_OPT_FLAGS}" \
../configure \
@@ -85,16 +164,18 @@
--disable-win32-registry \
--enable-version-specific-runtime-libs \
--with-sysroot=%{_mingw32_sysroot} \
- --enable-languages="$languages" $optargs
+ --enable-languages="$languages" \
+ --with-bugurl=http://bugzilla.redhat.com/bugzilla
make all
+popd
+
%install
rm -rf $RPM_BUILD_ROOT
-cd gcc-%{version}
-cd build
+pushd build
make DESTDIR=$RPM_BUILD_ROOT install
# These files conflict with existing installed files.
@@ -106,6 +187,15 @@
ln -sf ..%{_prefix}/bin/i686-pc-mingw32-cpp \
$RPM_BUILD_ROOT/lib/i686-pc-mingw32-cpp
+# Not sure why gcc puts this DLL into _bindir, but surely better if
+# it goes into _mingw32_bindir.
+mkdir -p $RPM_BUILD_ROOT%{_mingw32_bindir}
+mv $RPM_BUILD_ROOT%{_bindir}/libgcc_s_sjlj-1.dll \
+ $RPM_BUILD_ROOT%{_mingw32_bindir}
+
+popd
+
+
%clean
rm -rf $RPM_BUILD_ROOT
@@ -123,11 +213,14 @@
%{_libdir}/gcc/i686-pc-mingw32/%{version}/crtend.o
%{_libdir}/gcc/i686-pc-mingw32/%{version}/crtfastmath.o
%{_libdir}/gcc/i686-pc-mingw32/%{version}/libgcc.a
+%{_libdir}/gcc/i686-pc-mingw32/%{version}/libgcc_eh.a
+%{_libdir}/gcc/i686-pc-mingw32/%{version}/libgcc_s.a
%{_libdir}/gcc/i686-pc-mingw32/%{version}/libgcov.a
%{_libdir}/gcc/i686-pc-mingw32/%{version}/libssp.a
%{_libdir}/gcc/i686-pc-mingw32/%{version}/libssp.la
%{_libdir}/gcc/i686-pc-mingw32/%{version}/libssp_nonshared.a
%{_libdir}/gcc/i686-pc-mingw32/%{version}/libssp_nonshared.la
+%{_libdir}/gcc/i686-pc-mingw32/%{version}/libssp.dll.a
%dir %{_libdir}/gcc/i686-pc-mingw32/%{version}/include
%dir %{_libdir}/gcc/i686-pc-mingw32/%{version}/include-fixed
%dir %{_libdir}/gcc/i686-pc-mingw32/%{version}/include/ssp
@@ -137,8 +230,11 @@
%{_libdir}/gcc/i686-pc-mingw32/%{version}/include/ssp/*.h
%dir %{_libdir}/gcc/i686-pc-mingw32/%{version}/install-tools
%{_libdir}/gcc/i686-pc-mingw32/%{version}/install-tools/*
+%dir %{_libdir}/gcc/i686-pc-mingw32/bin/
+%{_libdir}/gcc/i686-pc-mingw32/bin/libssp-0.dll
%dir %{_libexecdir}/gcc/i686-pc-mingw32/%{version}/install-tools
%{_libexecdir}/gcc/i686-pc-mingw32/%{version}/install-tools/*
+%{_mingw32_bindir}/libgcc_s_sjlj-1.dll
%{_mandir}/man1/i686-pc-mingw32-gcc.1*
%{_mandir}/man1/i686-pc-mingw32-gcov.1*
@@ -167,7 +263,37 @@
%{_libexecdir}/gcc/i686-pc-mingw32/%{version}/collect2
+%files objc
+%defattr(-,root,root)
+%{_libdir}/gcc/i686-pc-mingw32/%{version}/include/objc/
+%{_libdir}/gcc/i686-pc-mingw32/%{version}/libobjc.a
+%{_libdir}/gcc/i686-pc-mingw32/%{version}/libobjc.la
+%{_libexecdir}/gcc/i686-pc-mingw32/%{version}/cc1obj
+
+
+%files objc++
+%defattr(-,root,root)
+%{_libexecdir}/gcc/i686-pc-mingw32/%{version}/cc1objplus
+
+
+%files gfortran
+%defattr(-,root,root)
+%{_bindir}/i686-pc-mingw32-gfortran
+%{_mandir}/man1/i686-pc-mingw32-gfortran.1*
+%{_libdir}/gcc/i686-pc-mingw32/%{version}/libgfortran.a
+%{_libdir}/gcc/i686-pc-mingw32/%{version}/libgfortran.la
+%{_libdir}/gcc/i686-pc-mingw32/%{version}/libgfortranbegin.a
+%{_libdir}/gcc/i686-pc-mingw32/%{version}/libgfortranbegin.la
+%{_libexecdir}/gcc/i686-pc-mingw32/%{version}/f951
+
+
%changelog
+* Thu Feb 19 2009 Richard W.M. Jones <rjones at redhat.com> - 4.4.0-0.1
+- Move to upstream version 4.4.0-20090216 (same as Fedora native version).
+- Added FORTRAN support.
+- Added Objective C support.
+- Added Objective C++ support.
+
* Mon Nov 24 2008 Richard W.M. Jones <rjones at redhat.com> - 4.3.2-12
- Rebuild against latest filesystem package.
More information about the mingw
mailing list