[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