X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=crossmingw32-gcc.spec;h=6c0747e8895a575c60608faafcc126b8e77f9b9f;hb=6ccf21dc5d27efc0a1e19c4556d6418843318073;hp=2a5c0f2c9308ab22c763c2cdcc303cd3a29d9dfe;hpb=207a380a451a3d861b4e991b279be099d008f617;p=packages%2Fcrossmingw32-gcc.git diff --git a/crossmingw32-gcc.spec b/crossmingw32-gcc.spec index 2a5c0f2..6c0747e 100644 --- a/crossmingw32-gcc.spec +++ b/crossmingw32-gcc.spec @@ -1,10 +1,11 @@ # -# TODO: -# - openmp -# # Conditional build: -%bcond_with bootstrap # bootstrap build (using binary w32api/mingwrt) +%bcond_with bootstrap # bootstrap build (using binary w32api/mingwrt, no gomp) +%bcond_without gomp # OpenMP libraries # +%if %{with bootstrap} +%undefine with_gomp +%endif Summary: Cross MinGW32 GNU binary utility development utilities - gcc Summary(es.UTF-8): Utilitarios para desarrollo de binarios de la GNU - MinGW32 gcc Summary(fr.UTF-8): Utilitaires de développement binaire de GNU - MinGW32 gcc @@ -12,36 +13,44 @@ Summary(pl.UTF-8): Skrośne narzędzia programistyczne GNU dla MinGW32 - gcc Summary(pt_BR.UTF-8): Utilitários para desenvolvimento de binários da GNU - MinGW32 gcc Summary(tr.UTF-8): GNU geliştirme araçları - MinGW32 gcc Name: crossmingw32-gcc -Version: 4.5.2 +Version: 4.9.3 Release: 1 Epoch: 1 License: GPL v3+ Group: Development/Languages -Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/gcc-%{version}.tar.bz2 -# Source0-md5: d6559145853fbaaa0fd7556ed93bce9a -%define apiver 3.15 -Source1: http://downloads.sourceforge.net/mingw/w32api-%{apiver}-1-mingw32-dev.tar.lzma -# Source1-md5: efcbcadd0299a6413d95b9ce919ede9f -%define runver 3.18 -Source2: http://downloads.sourceforge.net/mingw/mingwrt-%{runver}-mingw32-dev.tar.gz -# Source2-md5: e49803d8c14b1ffa6e24e5b5fee31a3d -# svn diff -x --ignore-eol-style svn://gcc.gnu.org/svn/gcc/tags/gcc_4_5_2_release svn://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch > gcc-branch.diff +Source0: https://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-%{version}.tar.bz2 +# Source0-md5: 6f831b4d251872736e8e9cc09746f327 +%define mingw32_ver 4.0.3 +Source1: http://downloads.sourceforge.net/mingw/mingwrt-%{mingw32_ver}-1-mingw32-dev.tar.lzma +# Source1-md5: c2c9aa82e0cb47abac01760525684858 +Source2: gcc-optimize-la.pl +# svn diff -x --ignore-eol-style --force svn://gcc.gnu.org/svn/gcc/tags/gcc_4_9_3_release svn://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch > gcc-branch.diff Patch100: gcc-branch.diff +# Patch100-md5: 253cbf4cc2f71d9c9362f4a3be25bb17 Patch0: %{name}-buildsystem1.patch Patch1: %{name}-buildsystem2.patch Patch2: %{name}-lfs.patch -BuildRequires: autoconf -BuildRequires: automake +Patch12: gcc-isl0.15-1.patch +Patch13: gcc-isl0.15-2.patch +URL: http://gcc.gnu.org/ +BuildRequires: autoconf >= 2.64 +BuildRequires: automake >= 1:1.9.3 BuildRequires: bison BuildRequires: crossmingw32-binutils >= 2.15.91.0.2-2 -BuildRequires: flex -BuildRequires: libmpc-devel +%{?with_gomp:BuildRequires: crossmingw32-pthreads-w32} %if %{without bootstrap} BuildRequires: crossmingw32-runtime >= 3.5 BuildRequires: crossmingw32-w32api >= 3.1 %endif +BuildRequires: cloog-isl-devel >= 0.17.0 +BuildRequires: cloog-isl-devel < 0.19 +BuildRequires: flex +BuildRequires: gmp-devel >= 4.1 +BuildRequires: isl-devel >= 0.13 +BuildRequires: libmpc-devel BuildRequires: mpfr-devel BuildRequires: perl-tools-pod +BuildRequires: ppl-devel >= 0.11 BuildRequires: texinfo >= 4.2 %if %{with booststrap} BuildRequires: tar >= 1:1.22 @@ -62,6 +71,12 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define _enable_debug_packages 0 +# functions with printf format attribute but with special parser and also +# receiving non constant format strings +%define Werror_cflags %{nil} + +%define _ssp_cflags %{nil} + %description crossmingw32 is a complete cross-compiling development system for building stand-alone Microsoft Windows applications under Linux using @@ -96,6 +111,46 @@ libgcc DLL library for Windows. %description -n crossmingw32-libgcc-dll -l pl.UTF-8 Biblioteka DLL libgcc dla Windows. +%package -n crossmingw32-libgomp +Summary: GNU OpenMP library - cross MinGW32 version +Summary(pl.UTF-8): Biblioteka GNU OpenMP - wersja skrośna MinGW32 +License: GPL v3+ with GCC Runtime Library Exception v3.1 +Group: Development/Libraries +Requires: %{name} = %{epoch}:%{version}-%{release} + +%description -n crossmingw32-libgomp +This package contains cross MinGW32 version of GNU OpenMP library. + +%description -n crossmingw32-libgomp -l pl.UTF-8 +Ten pakiet zawiera wersję skrośną MinGW32 biblioteki GNU OpenMP. + +%package -n crossmingw32-libgomp-static +Summary: Static GNU OpenMP library - cross MinGW32 version +Summary(pl.UTF-8): Statyczna biblioteka GNU OpenMP - wersja skrośna MinGW32 +License: GPL v3+ with GCC Runtime Library Exception v3.1 +Group: Development/Libraries +Requires: crossmingw32-libgomp = %{epoch}:%{version}-%{release} + +%description -n crossmingw32-libgomp-static +Static GNU OpenMP library - cross MinGW32 version. + +%description -n crossmingw32-libgomp-static -l pl.UTF-8 +Statyczna biblioteka GNU OpenMP - wersja skrośna MinGW32. + +%package -n crossmingw32-libgomp-dll +Summary: DLL GNU OpenMP library for Windows +Summary(pl.UTF-8): Biblioteka DLL GNU OpenMP dla Windows +License: GPL v3+ with GCC Runtime Library Exception v3.1 +Group: Development/Libraries +Requires: crossmingw32-libgcc-dll = %{epoch}:%{version}-%{release} +Requires: crossmingw32-pthreads-dll + +%description -n crossmingw32-libgomp-dll +DLL GNU OpenMP library for Windows. + +%description -n crossmingw32-libgomp-dll -l pl.UTF-8 +Biblioteka DLL GNU OpenMP dla Windows. + %package c++ Summary: MinGW32 binary utility development utilities - g++ Summary(pl.UTF-8): Zestaw narzędzi MinGW32 - g++ @@ -200,6 +255,7 @@ Summary: MinGW32 binary utility development utilities - Fortran Summary(pl.UTF-8): Zestaw narzędzi MinGW32 - Fortran Group: Development/Languages Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: crossmingw32-libquadmath = %{epoch}:%{version}-%{release} Obsoletes: crossmingw32-gcc-g77 %description fortran @@ -222,7 +278,7 @@ Ten pakiet zawiera kompilator Fortranu generujący kod pod Win32. %package -n crossmingw32-libgfortran-static Summary: Static Fortran library - cross MinGW32 version -Summary(pl.UTF-8): Statyczna biblioteka Fortrana - wersja skrośna MinGW32 +Summary(pl.UTF-8): Statyczna biblioteka Fortranu - wersja skrośna MinGW32 Group: Development/Libraries Requires: %{name}-fortran = %{epoch}:%{version}-%{release} @@ -230,13 +286,13 @@ Requires: %{name}-fortran = %{epoch}:%{version}-%{release} Static Fortran library - cross MinGW32 version. %description -n crossmingw32-libgfortran-static -l pl.UTF-8 -Statyczna biblioteka Fortrana - wersja skrośna MinGW32. +Statyczna biblioteka Fortranu - wersja skrośna MinGW32. %package -n crossmingw32-libgfortran-dll Summary: libgfortran DLL library for Windows Summary(pl.UTF-8): Biblioteka DLL libgfortran dla Windows Group: Applications/Emulators -Requires: wine +Requires: crossmingw32-libquadmath-dll %description -n crossmingw32-libgfortran-dll libgfortran DLL library for Windows. @@ -244,6 +300,50 @@ libgfortran DLL library for Windows. %description -n crossmingw32-libgfortran-dll -l pl.UTF-8 Biblioteka DLL libgfortran dla Windows. +%package -n crossmingw32-libquadmath +Summary: GCC __float128 support library - cross MinGW32 version +Summary(pl.UTF-8): Biblioteka do obsługi typu __float128 - wersja skrośna MinGW32 +License: GPL v2+ with linking exception +Group: Development/Libraries +Requires: %{name} = %{epoch}:%{version}-%{release} + +%description -n crossmingw32-libquadmath +This package contains cross MinGW32 version of GCC support library +which is needed for __float128 math support and for Fortran REAL*16 +support. + +%description -n crossmingw32-libquadmath -l pl.UTF-8 +Ten pakiet zawiera wersję skrośną MinGW32 biblioteki GCC do obsługi +operacji matematycznych na zmiennych typu __float128 oraz typu REAL*16 +w Fortranie. + +%package -n crossmingw32-libquadmath-static +Summary: Static GCC __float128 support library - cross MinGW32 version +Summary(pl.UTF-8): Biblioteka statyczna GCC do obsługi typu __float128 - wersja skrośna MinGW32 +License: GPL v2+ with linking exception +Group: Development/Libraries +Requires: crossmingw32-libquadmath = %{epoch}:%{version}-%{release} + +%description -n crossmingw32-libquadmath-static +Static GCC __float128 support library - cross MinGW32 version. + +%description -n crossmingw32-libquadmath-static -l pl.UTF-8 +Biblioteka statyczna GCC do obsługi typu __float128 - wersja skrośna +MinGW32. + +%package -n crossmingw32-libquadmath-dll +Summary: DLL GCC __float128 support library for Windows +Summary(pl.UTF-8): Biblioteka DLL GCC do obsługi typu __float128 dla Windows +License: GPL v2+ with linking exception +Group: Applications/Emulators +Requires: wine + +%description -n crossmingw32-libquadmath-dll +DLL GCC __float128 support library for Windows. + +%description -n crossmingw32-libquadmath-dll -l pl.UTF-8 +Biblioteka DLL GCC do obsługi typu __float128 dla Windows. + %package java Summary: MinGW32 binary utility development utilities - Java Summary(pl.UTF-8): Zestaw narzędzi MinGW32 - Java @@ -273,12 +373,13 @@ Ten pakiet zawiera kompilator Javy generujący kod pod Win32. %patch100 -p0 %patch0 -p1 %patch2 -p1 +%patch12 -p1 +%patch13 -p1 %if %{with bootstrap} -# note: "winsup" dirs below are special, handled by gcc's configure -install -d winsup/{mingw,w32api} -tar xf %{SOURCE1} -C winsup/w32api -tar xf %{SOURCE2} -C winsup/mingw +# note: "winsup" dir is special, handled by gcc's configure +install -d winsup/mingw +tar xf %{SOURCE1} -C winsup/mingw %endif # override snapshot version. @@ -290,7 +391,7 @@ rm -rf builddir && install -d builddir && cd builddir %if %{with bootstrap} install -d %{target}/winsup ln -sf ../../../winsup/mingw/lib %{target}/winsup/mingw -ln -sf ../../../winsup/w32api %{target}/winsup/w32api +ln -sf ../../../winsup/mingw/include %{target}/winsup/w32api WINSUPDIR=$(cd ..; pwd)/winsup %endif @@ -306,28 +407,32 @@ TEXCONFIG=false \ --libexecdir=%{_libdir} \ --infodir=%{_infodir} \ --mandir=%{_mandir} \ + --with-build-time-tools=%{arch}/bin \ %{!?with_bootstrap:--with-headers=%{arch}/include} \ --with-libs=%{!?with_bootstrap:%{arch}/lib}%{?with_bootstrap:${WINSUPDIR}/mingw/lib} \ - --with-build-time-tools=%{arch}/bin \ --with-dwarf2 \ --with-gnu-as \ --with-gnu-ld \ --with-mangler-in-ld \ --with-long-double-128 \ + --with-cloog \ + --with-ppl \ + --disable-isl-version-check \ + --enable-shared \ --enable-threads \ --enable-languages="c,c++,fortran,java,objc" \ --enable-c99 \ - --enable-long-long \ --enable-fully-dynamic-string \ + --enable-libgomp \ --enable-libstdcxx-allocator=new \ + --enable-long-long \ --enable-version-specific-runtime-libs \ - --enable-shared \ + --disable-libssp \ + --disable-multilib \ --disable-nls \ - --disable-symvers \ --disable-sjlj-exceptions \ + --disable-symvers \ --disable-win32-registry \ - --disable-multilib \ - --disable-libssp \ --target=%{target} cd .. @@ -342,9 +447,6 @@ install -d $RPM_BUILD_ROOT%{_bindir} %{__make} -C builddir install \ DESTDIR=$RPM_BUILD_ROOT -# host (ELF) library -%{__rm} $RPM_BUILD_ROOT%{_libdir}/libiberty.a - mv $RPM_BUILD_ROOT%{gcclibdir}/include-fixed/{limits,syslimits}.h $RPM_BUILD_ROOT%{gcclibdir}/include %{__rm} -r $RPM_BUILD_ROOT%{gcclibdir}/include-fixed %{__rm} -r $RPM_BUILD_ROOT%{gcclibdir}/install-tools @@ -360,7 +462,8 @@ ln -sf %{arch}/bin/%{target}-gfortran $RPM_BUILD_ROOT%{_bindir}/%{target}-gfortr # DLLs install -d $RPM_BUILD_ROOT%{_dlldir} -mv -f $RPM_BUILD_ROOT%{arch}/bin/*.dll $RPM_BUILD_ROOT%{_dlldir} +mv -f $RPM_BUILD_ROOT%{gccarchdir}/*.dll $RPM_BUILD_ROOT%{_dlldir} +mv -f $RPM_BUILD_ROOT%{gcclibdir}/*.dll $RPM_BUILD_ROOT%{_dlldir} if [ ! -f $RPM_BUILD_ROOT%{_dlldir}/libgcc_s_dw2-1.dll ]; then echo "libgcc DLL not installed?" install builddir/i386-mingw32/libgcc/shlib/libgcc_s_dw2-1.dll $RPM_BUILD_ROOT%{_dlldir} @@ -368,10 +471,22 @@ fi %if 0%{!?debug:1} %{target}-strip --strip-unneeded -R.comment -R.note $RPM_BUILD_ROOT%{_dlldir}/*.dll -%{target}-strip -g -R.comment -R.note $RPM_BUILD_ROOT%{gcclibdir}/lib*.a \ - $RPM_BUILD_ROOT%{arch}/lib/lib*.a +%{target}-strip -g -R.comment -R.note $RPM_BUILD_ROOT%{gcclibdir}/lib*.a %endif +# avoid -L poisoning in *.la +for f in libcaf_single.la libgfortran.la libgfortranbegin.la libobjc.la libquadmath.la %{?with_gomp:libgomp.la} ; do + file="$RPM_BUILD_ROOT%{gcclibdir}/$f" + %{__perl} %{SOURCE2} "$file" %{gcclibdir} >"${file}.fixed" + %{__mv} "${file}.fixed" "$file" +done + +# for pretty-printers see native gcc +%{__rm} $RPM_BUILD_ROOT%{gcclibdir}/libstdc++.dll.a-gdb.py +%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/gcc-%{version}/python/libstdcxx +# no plugin development for mingw32 (at least for now) +%{__rm} $RPM_BUILD_ROOT%{gcclibdir}/liblto_plugin.la +%{__rm} -r $RPM_BUILD_ROOT%{gcclibdir}/plugin # already in native gcc %{__rm} -r $RPM_BUILD_ROOT%{_infodir} # common FSF man pages @@ -389,20 +504,25 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_bindir}/%{target}-gcov %attr(755,root,root) %{arch}/bin/%{target}-gcc %attr(755,root,root) %{arch}/bin/%{target}-gcc-%{version} -%attr(755,root,root) %{arch}/bin/%{target}-gccbug +%attr(755,root,root) %{arch}/bin/%{target}-gcc-ar +%attr(755,root,root) %{arch}/bin/%{target}-gcc-nm +%attr(755,root,root) %{arch}/bin/%{target}-gcc-ranlib %attr(755,root,root) %{arch}/bin/%{target}-cpp %attr(755,root,root) %{arch}/bin/%{target}-gcov -%attr(755,root,root) %{arch}/bin/gcc -%{arch}/lib/libiberty.a %dir %{gccarchdir} %dir %{gcclibdir} %attr(755,root,root) %{gcclibdir}/cc1 %attr(755,root,root) %{gcclibdir}/collect2 %attr(755,root,root) %{gcclibdir}/lto-wrapper +%attr(755,root,root) %{gcclibdir}/lto1 +%attr(755,root,root) %{gcclibdir}/liblto_plugin.so* %{gcclibdir}/libgcc.a %{gcclibdir}/libgcc_eh.a %{gcclibdir}/libgcc_s.a %{gcclibdir}/libgcov.a +%{gcclibdir}/crtbegin.o +%{gcclibdir}/crtend.o +%{gcclibdir}/crtfastmath.o %dir %{gcclibdir}/include %{gcclibdir}/include/*.h %{_mandir}/man1/%{target}-cpp.1* @@ -413,21 +533,32 @@ rm -rf $RPM_BUILD_ROOT %defattr(644,root,root,755) %{_dlldir}/libgcc_s_dw2-1.dll +%if %{with gomp} +%files -n crossmingw32-libgomp +%defattr(644,root,root,755) +%{gcclibdir}/libgomp.dll.a +%{gcclibdir}/libgomp.la +%{gcclibdir}/libgomp.spec + +%files -n crossmingw32-libgomp-static +%defattr(644,root,root,755) +%{gcclibdir}/libgomp.a + +%files -n crossmingw32-libgomp-dll +%defattr(644,root,root,755) +%{_dlldir}/libgomp-1.dll +%endif + %files c++ %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/%{target}-g++ %attr(755,root,root) %{arch}/bin/%{target}-c++ %attr(755,root,root) %{arch}/bin/%{target}-g++ -%attr(755,root,root) %{arch}/bin/c++ -%attr(755,root,root) %{arch}/bin/g++ %attr(755,root,root) %{gcclibdir}/cc1plus %{gcclibdir}/libstdc++.dll.a %{gcclibdir}/libstdc++.la %{gcclibdir}/libsupc++.la %{gcclibdir}/libsupc++.a -%{gcclibdir}/crtbegin.o -%{gcclibdir}/crtend.o -%{gcclibdir}/crtfastmath.o %{gcclibdir}/include/c++ %{_mandir}/man1/%{target}-g++.1* @@ -452,17 +583,19 @@ rm -rf $RPM_BUILD_ROOT %files -n crossmingw32-libobjc-dll %defattr(644,root,root,755) -%{_dlldir}/libobjc-2.dll +%{_dlldir}/libobjc-4.dll %files fortran %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/%{target}-gfortran %attr(755,root,root) %{arch}/bin/%{target}-gfortran -%attr(755,root,root) %{arch}/bin/gfortran %attr(755,root,root) %{gcclibdir}/f951 %{gcclibdir}/finclude +%{gcclibdir}/libcaf_single.a +%{gcclibdir}/libcaf_single.la %{gcclibdir}/libgfortran.dll.a %{gcclibdir}/libgfortran.la +%{gcclibdir}/libgfortran.spec %{gcclibdir}/libgfortranbegin.a %{gcclibdir}/libgfortranbegin.la %{_mandir}/man1/%{target}-gfortran.1* @@ -475,6 +608,19 @@ rm -rf $RPM_BUILD_ROOT %defattr(644,root,root,755) %{_dlldir}/libgfortran-3.dll +%files -n crossmingw32-libquadmath +%defattr(644,root,root,755) +%{gcclibdir}/libquadmath.dll.a +%{gcclibdir}/libquadmath.la + +%files -n crossmingw32-libquadmath-static +%defattr(644,root,root,755) +%{gcclibdir}/libquadmath.a + +%files -n crossmingw32-libquadmath-dll +%defattr(644,root,root,755) +%{_dlldir}/libquadmath-0.dll + %files java %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/%{target}-gcj