Blame mingw32-gcc.spec

7274853
%global __os_install_post /usr/lib/rpm/brp-compress %{nil}
eb48a50
6c16939
%global DATE 20091114
6c16939
%global SVNREV 154179
9a2ea4c
eb48a50
Name:           mingw32-gcc
6c16939
Version:        4.4.2
4d49303
Release:        2%{?dist}
eb48a50
Summary:        MinGW Windows cross-compiler (GCC) for C
eb48a50
8b5fdec
License:        GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions
eb48a50
Group:          Development/Languages
9a2ea4c
9a2ea4c
# We use the same source as Fedora's native gcc.
9a2ea4c
URL:            http://gcc.gnu.org
9a2ea4c
Source0:        gcc-%{version}-%{DATE}.tar.bz2
9a2ea4c
Source1:        libgcc_post_upgrade.c
9a2ea4c
Source2:        README.libgcjwebplugin.so
9a2ea4c
Source3:        protoize.1
9a2ea4c
9a2ea4c
# Patches from Fedora's native gcc.
9a2ea4c
Patch0:         gcc44-hack.patch
9a2ea4c
Patch1:         gcc44-build-id.patch
9a2ea4c
Patch2:         gcc44-c++-builtin-redecl.patch
9a2ea4c
Patch3:         gcc44-ia64-libunwind.patch
9a2ea4c
Patch4:         gcc44-java-nomulti.patch
9a2ea4c
Patch5:         gcc44-ppc32-retaddr.patch
8b5fdec
Patch6:         gcc44-pr33763.patch
8b5fdec
Patch7:         gcc44-rh330771.patch
8b5fdec
Patch8:         gcc44-rh341221.patch
8b5fdec
Patch9:         gcc44-java-debug-iface-type.patch
8b5fdec
Patch10:        gcc44-i386-libgomp.patch
8b5fdec
Patch11:        gcc44-sparc-config-detection.patch
8b5fdec
Patch12:        gcc44-libgomp-omp_h-multilib.patch
8b5fdec
Patch13:        gcc44-libtool-no-rpath.patch
8b5fdec
Patch14:        gcc44-cloog-dl.patch
8b5fdec
Patch16:        gcc44-unwind-debug-hook.patch
8b5fdec
Patch17:        gcc44-pr38757.patch
8b5fdec
Patch18:        gcc44-libstdc++-docs.patch
6c16939
Patch19:        gcc44-ppc64-aixdesc.patch
9a2ea4c
eb48a50
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
eb48a50
eb48a50
BuildRequires:  texinfo
9a2ea4c
BuildRequires:  mingw32-filesystem >= 49
363ceae
# Need mingw32-binutils which support %gnu_unique_object >= 2.19.51.0.14
363ceae
BuildRequires:  mingw32-binutils >= 2.19.51.0.14
eb48a50
BuildRequires:  mingw32-runtime
eb48a50
BuildRequires:  mingw32-w32api
4d49303
BuildRequires:  mingw32-pthreads
eb48a50
BuildRequires:  gmp-devel
eb48a50
BuildRequires:  mpfr-devel
eb48a50
BuildRequires:  libgomp
9a2ea4c
BuildRequires:  flex
eb48a50
eb48a50
# NB: Explicit mingw32-filesystem dependency is REQUIRED here.
9a2ea4c
Requires:       mingw32-filesystem >= 48
363ceae
# Need mingw32-binutils which support %gnu_unique_object
363ceae
Requires:       mingw32-binutils >= 2.19.51.0.14
eb48a50
Requires:       mingw32-runtime
eb48a50
Requires:       mingw32-w32api
eb48a50
Requires:       mingw32-cpp
4d49303
# libgomp dll is linked with pthreads, but since we don't run the
4d49303
# automatic dependency scripts, it doesn't get picked up automatically.
4d49303
Requires:       mingw32-pthreads
eb48a50
9a2ea4c
# We don't run the automatic dependency scripts which would
9a2ea4c
# normally detect and provide the following DLL:
9a2ea4c
Provides:       mingw32(libgcc_s_sjlj-1.dll)
4d49303
Provides:       mingw32(libgomp-1.dll)
9a2ea4c
eb48a50
eb48a50
%description
9a2ea4c
MinGW Windows cross-compiler (GCC) for C.
eb48a50
eb48a50
eb48a50
%package -n mingw32-cpp
9a2ea4c
Summary: MinGW Windows cross-C Preprocessor
eb48a50
Group: Development/Languages
eb48a50
eb48a50
%description -n mingw32-cpp
eb48a50
MinGW Windows cross-C Preprocessor
eb48a50
eb48a50
eb48a50
%package c++
eb48a50
Summary: MinGW Windows cross-compiler for C++
eb48a50
Group: Development/Languages
9a2ea4c
Requires: %{name} = %{version}-%{release}
eb48a50
eb48a50
%description c++
9a2ea4c
MinGW Windows cross-compiler for C++.
9a2ea4c
9a2ea4c
9a2ea4c
%package objc
9a2ea4c
Summary: MinGW Windows cross-compiler support for Objective C
9a2ea4c
Group: Development/Languages
9a2ea4c
Requires: %{name} = %{version}-%{release}
7ecd89b
#Requires: mingw32-libobjc = %{version}-%{release}
9a2ea4c
9a2ea4c
%description objc
9a2ea4c
MinGW Windows cross-compiler support for Objective C.
9a2ea4c
9a2ea4c
9a2ea4c
%package objc++
9a2ea4c
Summary: MinGW Windows cross-compiler support for Objective C++
9a2ea4c
Group: Development/Languages
7ecd89b
Requires: %{name}-c++ = %{version}-%{release}
9a2ea4c
Requires: %{name}-objc = %{version}-%{release}
9a2ea4c
9a2ea4c
%description objc++
9a2ea4c
MinGW Windows cross-compiler support for Objective C++.
9a2ea4c
9a2ea4c
9a2ea4c
%package gfortran
9a2ea4c
Summary: MinGW Windows cross-compiler for FORTRAN
9a2ea4c
Group: Development/Languages
9a2ea4c
Requires: %{name} = %{version}-%{release}
9a2ea4c
9a2ea4c
%description gfortran
9a2ea4c
MinGW Windows cross-compiler for FORTRAN.
eb48a50
eb48a50
eb48a50
%prep
9a2ea4c
%setup -q -n gcc-%{version}-%{DATE}
9a2ea4c
%patch0 -p0 -b .hack~
9a2ea4c
%patch1 -p0 -b .build-id~
9a2ea4c
%patch2 -p0 -b .c++-builtin-redecl~
9a2ea4c
%patch3 -p0 -b .ia64-libunwind~
9a2ea4c
%patch4 -p0 -b .java-nomulti~
9a2ea4c
%patch5 -p0 -b .ppc32-retaddr~
8b5fdec
%patch6 -p0 -b .pr33763~
8b5fdec
%patch7 -p0 -b .rh330771~
8b5fdec
%patch8 -p0 -b .rh341221~
8b5fdec
%patch9 -p0 -b .java-debug-iface-type~
8b5fdec
%patch10 -p0 -b .i386-libgomp~
8b5fdec
%patch11 -p0 -b .sparc-config-detection~
8b5fdec
%patch12 -p0 -b .libgomp-omp_h-multilib~
8b5fdec
%patch13 -p0 -b .libtool-no-rpath~
8b5fdec
%patch14 -p0 -b .cloog-dl~
8b5fdec
%patch16 -p0 -b .unwind-debug-hook~
8b5fdec
%patch17 -p0 -b .pr38757~
8b5fdec
%patch18 -p0 -b .libstdc++-docs~
6c16939
%patch19 -p0 -b .ppc64-aixdesc~
7274853
6c16939
sed -i -e 's/4\.4\.3/%{version}/' gcc/BASE-VER
7274853
echo 'Fedora MinGW %{version}-%{release}' > gcc/DEV-PHASE
eb48a50
eb48a50
eb48a50
%build
eb48a50
mkdir -p build
9a2ea4c
pushd build
eb48a50
9a2ea4c
# GNAT is required to build Ada.  Don't build GCJ.
9a2ea4c
#languages="c,c++,objc,obj-c++,java,fortran,ada"
9a2ea4c
languages="c,c++,objc,obj-c++,fortran"
eb48a50
eb48a50
CC="%{__cc} ${RPM_OPT_FLAGS}" \
eb48a50
../configure \
eb48a50
  --prefix=%{_prefix} \
eb48a50
  --bindir=%{_bindir} \
eb48a50
  --includedir=%{_includedir} \
eb48a50
  --libdir=%{_libdir} \
eb48a50
  --mandir=%{_mandir} \
eb48a50
  --infodir=%{_infodir} \
eb48a50
  --datadir=%{_datadir} \
eb48a50
  --build=%_build --host=%_host \
eb48a50
  --target=%{_mingw32_target} \
eb48a50
  --with-gnu-as --with-gnu-ld --verbose \
eb48a50
  --without-newlib \
eb48a50
  --disable-multilib \
4d49303
  --enable-libgomp \
eb48a50
  --with-system-zlib \
eb48a50
  --disable-nls --without-included-gettext \
eb48a50
  --disable-win32-registry \
eb48a50
  --enable-version-specific-runtime-libs \
eb48a50
  --with-sysroot=%{_mingw32_sysroot} \
9a2ea4c
  --enable-languages="$languages" \
9a2ea4c
  --with-bugurl=http://bugzilla.redhat.com/bugzilla
eb48a50
c007570
make %{?_smp_mflags} all
eb48a50
9a2ea4c
popd
9a2ea4c
eb48a50
eb48a50
%install
eb48a50
rm -rf $RPM_BUILD_ROOT
eb48a50
9a2ea4c
pushd build
eb48a50
make DESTDIR=$RPM_BUILD_ROOT install
eb48a50
eb48a50
# These files conflict with existing installed files.
eb48a50
rm -rf $RPM_BUILD_ROOT%{_infodir}
eb48a50
rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty*
eb48a50
rm -f $RPM_BUILD_ROOT%{_mandir}/man7/*
eb48a50
eb48a50
mkdir -p $RPM_BUILD_ROOT/lib
eb48a50
ln -sf ..%{_prefix}/bin/i686-pc-mingw32-cpp \
eb48a50
  $RPM_BUILD_ROOT/lib/i686-pc-mingw32-cpp
eb48a50
9a2ea4c
# Not sure why gcc puts this DLL into _bindir, but surely better if
9a2ea4c
# it goes into _mingw32_bindir.
9a2ea4c
mkdir -p $RPM_BUILD_ROOT%{_mingw32_bindir}
9a2ea4c
mv $RPM_BUILD_ROOT%{_bindir}/libgcc_s_sjlj-1.dll \
9a2ea4c
  $RPM_BUILD_ROOT%{_mingw32_bindir}
4d49303
# Same goes for this DLL under _libdir.
4d49303
mv $RPM_BUILD_ROOT%{_libdir}/gcc/i686-pc-mingw32/bin/libgomp-1.dll \
4d49303
  $RPM_BUILD_ROOT%{_mingw32_bindir}
9a2ea4c
9a2ea4c
# Don't want the *.la files.
9a2ea4c
find $RPM_BUILD_ROOT -name '*.la' -delete
9a2ea4c
9a2ea4c
popd
9a2ea4c
9a2ea4c
eb48a50
%clean
eb48a50
rm -rf $RPM_BUILD_ROOT
eb48a50
eb48a50
eb48a50
%files
7274853
%defattr(-,root,root,-)
eb48a50
%{_bindir}/i686-pc-mingw32-gcc
eb48a50
%{_bindir}/i686-pc-mingw32-gcc-%{version}
eb48a50
%{_bindir}/i686-pc-mingw32-gccbug
eb48a50
%{_bindir}/i686-pc-mingw32-gcov
eb48a50
%{_prefix}/i686-pc-mingw32/lib/libiberty.a
eb48a50
%dir %{_libdir}/gcc/i686-pc-mingw32
eb48a50
%dir %{_libdir}/gcc/i686-pc-mingw32/%{version}
eb48a50
%{_libdir}/gcc/i686-pc-mingw32/%{version}/crtbegin.o
eb48a50
%{_libdir}/gcc/i686-pc-mingw32/%{version}/crtend.o
eb48a50
%{_libdir}/gcc/i686-pc-mingw32/%{version}/crtfastmath.o
eb48a50
%{_libdir}/gcc/i686-pc-mingw32/%{version}/libgcc.a
9a2ea4c
%{_libdir}/gcc/i686-pc-mingw32/%{version}/libgcc_eh.a
9a2ea4c
%{_libdir}/gcc/i686-pc-mingw32/%{version}/libgcc_s.a
eb48a50
%{_libdir}/gcc/i686-pc-mingw32/%{version}/libgcov.a
4d49303
%{_libdir}/gcc/i686-pc-mingw32/%{version}/libgomp.a
4d49303
%{_libdir}/gcc/i686-pc-mingw32/%{version}/libgomp.dll.a
4d49303
%{_libdir}/gcc/i686-pc-mingw32/%{version}/libgomp.spec
eb48a50
%{_libdir}/gcc/i686-pc-mingw32/%{version}/libssp.a
eb48a50
%{_libdir}/gcc/i686-pc-mingw32/%{version}/libssp_nonshared.a
9a2ea4c
%{_libdir}/gcc/i686-pc-mingw32/%{version}/libssp.dll.a
eb48a50
%dir %{_libdir}/gcc/i686-pc-mingw32/%{version}/include
eb48a50
%dir %{_libdir}/gcc/i686-pc-mingw32/%{version}/include-fixed
eb48a50
%dir %{_libdir}/gcc/i686-pc-mingw32/%{version}/include/ssp
eb48a50
%{_libdir}/gcc/i686-pc-mingw32/%{version}/include-fixed/README
eb48a50
%{_libdir}/gcc/i686-pc-mingw32/%{version}/include-fixed/*.h
eb48a50
%{_libdir}/gcc/i686-pc-mingw32/%{version}/include/*.h
eb48a50
%{_libdir}/gcc/i686-pc-mingw32/%{version}/include/ssp/*.h
eb48a50
%dir %{_libdir}/gcc/i686-pc-mingw32/%{version}/install-tools
eb48a50
%{_libdir}/gcc/i686-pc-mingw32/%{version}/install-tools/*
9a2ea4c
%dir %{_libdir}/gcc/i686-pc-mingw32/bin/
9a2ea4c
%{_libdir}/gcc/i686-pc-mingw32/bin/libssp-0.dll
eb48a50
%dir %{_libexecdir}/gcc/i686-pc-mingw32/%{version}/install-tools
eb48a50
%{_libexecdir}/gcc/i686-pc-mingw32/%{version}/install-tools/*
9a2ea4c
%{_mingw32_bindir}/libgcc_s_sjlj-1.dll
4d49303
%{_mingw32_bindir}/libgomp-1.dll
eb48a50
%{_mandir}/man1/i686-pc-mingw32-gcc.1*
eb48a50
%{_mandir}/man1/i686-pc-mingw32-gcov.1*
eb48a50
eb48a50
eb48a50
%files -n mingw32-cpp
7274853
%defattr(-,root,root,-)
eb48a50
/lib/i686-pc-mingw32-cpp
eb48a50
%{_bindir}/i686-pc-mingw32-cpp
eb48a50
%{_mandir}/man1/i686-pc-mingw32-cpp.1*
eb48a50
%dir %{_libdir}/gcc/i686-pc-mingw32
eb48a50
%dir %{_libdir}/gcc/i686-pc-mingw32/%{version}
eb48a50
%{_libexecdir}/gcc/i686-pc-mingw32/%{version}/cc1
eb48a50
eb48a50
eb48a50
%files c++
7274853
%defattr(-,root,root,-)
eb48a50
%{_bindir}/i686-pc-mingw32-g++
eb48a50
%{_bindir}/i686-pc-mingw32-c++
eb48a50
%{_mandir}/man1/i686-pc-mingw32-g++.1*
eb48a50
%{_libdir}/gcc/i686-pc-mingw32/%{version}/include/c++/
eb48a50
%{_libdir}/gcc/i686-pc-mingw32/%{version}/libstdc++.a
eb48a50
%{_libdir}/gcc/i686-pc-mingw32/%{version}/libsupc++.a
eb48a50
%{_libexecdir}/gcc/i686-pc-mingw32/%{version}/cc1plus
eb48a50
%{_libexecdir}/gcc/i686-pc-mingw32/%{version}/collect2
eb48a50
eb48a50
9a2ea4c
%files objc
7274853
%defattr(-,root,root,-)
9a2ea4c
%{_libdir}/gcc/i686-pc-mingw32/%{version}/include/objc/
9a2ea4c
%{_libdir}/gcc/i686-pc-mingw32/%{version}/libobjc.a
9a2ea4c
%{_libexecdir}/gcc/i686-pc-mingw32/%{version}/cc1obj
9a2ea4c
9a2ea4c
9a2ea4c
%files objc++
7274853
%defattr(-,root,root,-)
9a2ea4c
%{_libexecdir}/gcc/i686-pc-mingw32/%{version}/cc1objplus
9a2ea4c
9a2ea4c
9a2ea4c
%files gfortran
7274853
%defattr(-,root,root,-)
9a2ea4c
%{_bindir}/i686-pc-mingw32-gfortran
9a2ea4c
%{_mandir}/man1/i686-pc-mingw32-gfortran.1*
9a2ea4c
%{_libdir}/gcc/i686-pc-mingw32/%{version}/libgfortran.a
9a2ea4c
%{_libdir}/gcc/i686-pc-mingw32/%{version}/libgfortranbegin.a
4d49303
%dir %{_libdir}/gcc/i686-pc-mingw32/%{version}/finclude
4d49303
%{_libdir}/gcc/i686-pc-mingw32/%{version}/finclude/omp_lib.f90
4d49303
%{_libdir}/gcc/i686-pc-mingw32/%{version}/finclude/omp_lib.h
4d49303
%{_libdir}/gcc/i686-pc-mingw32/%{version}/finclude/omp_lib.mod
4d49303
%{_libdir}/gcc/i686-pc-mingw32/%{version}/finclude/omp_lib_kinds.mod
9a2ea4c
%{_libexecdir}/gcc/i686-pc-mingw32/%{version}/f951
9a2ea4c
9a2ea4c
eb48a50
%changelog
4d49303
* Thu Dec 17 2009 Chris Bagwell <chris@cnpbagwell.com> - 4.4.2-2
4d49303
- Enable libgomp support.
4d49303
6c16939
* Sun Nov 22 2009 Kalev Lember <kalev@smartlink.ee> - 4.4.2-1
6c16939
- Update to gcc 4.4.2 20091114 svn 154179, which includes
6c16939
  VTA backport from 4.5 branch.
6c16939
- Patches taken from native Fedora gcc-4.4.2-10.
6c16939
363ceae
* Fri Sep 18 2009 Kalev Lember <kalev@smartlink.ee> - 4.4.1-3
363ceae
- Require mingw32-binutils >= 2.19.51.0.14 for %%gnu_unique_object support.
363ceae
8b5fdec
* Thu Sep 03 2009 Kalev Lember <kalev@smartlink.ee> - 4.4.1-2
8b5fdec
- Update to gcc 4.4.1 20090902 svn 151328.
8b5fdec
- Patches taken from native Fedora gcc-4.4.1-8.
8b5fdec
- Another license update to keep it in sync with native gcc package.
8b5fdec
7274853
* Sun Aug 23 2009 Kalev Lember <kalev@smartlink.ee> - 4.4.1-1
7274853
- Update to gcc 4.4.1 20090818 svn 150873.
7274853
- Patches taken from native Fedora gcc-4.4.1-6.
7274853
- Replaced %%define with %%global and updated %%defattr.
7274853
- Changed license to match native Fedora gcc package.
7274853
347f29e
* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.4.0-0.8
347f29e
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
347f29e
c007570
* Mon Mar 23 2009 Richard W.M. Jones <rjones@redhat.com> - 4.4.0-0.7
c007570
- New native Fedora version gcc 4.4.0 20090319 svn 144967.
c007570
- Enable _smp_mflags.
c007570
7ecd89b
* Wed Mar  4 2009 Richard W.M. Jones <rjones@redhat.com> - 4.4.0-0.6
7ecd89b
- Fix libobjc and consequently Objective C and Objective C++ compilers.
7ecd89b
af985a7
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.4.0-0.5
af985a7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
af985a7
9a2ea4c
* Fri Feb 20 2009 Richard W.M. Jones <rjones@redhat.com> - 4.4.0-0.4
9a2ea4c
- Rebuild for mingw32-gcc 4.4
9a2ea4c
9a2ea4c
* Thu Feb 19 2009 Richard W.M. Jones <rjones@redhat.com> - 4.4.0-0.2
9a2ea4c
- Move to upstream version 4.4.0-20090216 (same as Fedora native version).
9a2ea4c
- Added FORTRAN support.
9a2ea4c
- Added Objective C support.
9a2ea4c
- Added Objective C++ support.
9a2ea4c
eb48a50
* Mon Nov 24 2008 Richard W.M. Jones <rjones@redhat.com> - 4.3.2-12
eb48a50
- Rebuild against latest filesystem package.
eb48a50
eb48a50
* Fri Nov 21 2008 Richard W.M. Jones <rjones@redhat.com> - 4.3.2-11
eb48a50
- Remove obsoletes for a long dead package.
eb48a50
eb48a50
* Wed Nov 19 2008 Richard W.M. Jones <rjones@redhat.com> - 4.3.2-10
eb48a50
- Rebuild against mingw32-filesystem 37
eb48a50
eb48a50
* Wed Nov 19 2008 Richard W.M. Jones <rjones@redhat.com> - 4.3.2-9
eb48a50
- Rebuild against mingw32-filesystem 36
eb48a50
eb48a50
* Thu Oct 30 2008 Richard W.M. Jones <rjones@redhat.com> - 4.3.2-8
eb48a50
- Don't BR mpfr-devel for RHEL/EPEL-5 (Levente Farkas).
eb48a50
eb48a50
* Thu Sep  4 2008 Richard W.M. Jones <rjones@redhat.com> - 4.3.2-7
eb48a50
- Rename mingw -> mingw32.
eb48a50
eb48a50
* Thu Sep  4 2008 Richard W.M. Jones <rjones@redhat.com> - 4.3.2-6
eb48a50
- Use RPM macros from mingw-filesystem.
eb48a50
eb48a50
* Mon Jul  7 2008 Richard W.M. Jones <rjones@redhat.com> - 4.3.2-3
eb48a50
- Initial RPM release, largely based on earlier work from several sources.