X-Git-Url: http://git.pld-linux.org/?p=packages%2Fcrossmingw32-gcc.git;a=blobdiff_plain;f=crossmingw32-gcc.spec;h=800df65e54817b33470598878f4506e1f8cae2ae;hp=b2df370b033eb42a2db1a99a427dfc5c7e905505;hb=HEAD;hpb=8f1d5c0ccf0ab89ea30e3b27050c9b43176a0ab4 diff --git a/crossmingw32-gcc.spec b/crossmingw32-gcc.spec index b2df370..172b049 100644 --- a/crossmingw32-gcc.spec +++ b/crossmingw32-gcc.spec @@ -1,11 +1,15 @@ # -# TODO: -# - restore languages other than c, c++ -# - openmp -# # Conditional build: -%bcond_with bootstrap # bootstrap build (using binary w32api/mingwrt) +%bcond_with bootstrap # bootstrap build (using binary w32api/mingwrt, only C/C++, no gomp) +%bcond_without pthreads # POSIX threads support (needed for GOMP and C++ 11 thread/mutex support) +%bcond_without gomp # OpenMP libraries # +%if %{with bootstrap} +%undefine with_pthreads +%endif +%if %{without pthreads} +%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 @@ -13,47 +17,68 @@ 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.1 +Version: 10.5.0 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: 48231a8e33ed6e058a341c53b819de1a -%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_1_release svn://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch > gcc-branch.diff -Patch100: gcc-branch.diff +Source0: https://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-%{version}.tar.xz +# Source0-md5: c7d1958570fbd1cd859b015774b9987a +%define w32api_ver 5.4.2 +#Source1Download: https://osdn.net/projects/mingw/releases/ +Source1: https://osdn.net/projects/mingw/downloads/74926/w32api-%{w32api_ver}-mingw32-dev.tar.xz +# Source1-md5: 88b0dc6185079e60d83bdbaec92028b8 +%define mingw32_ver 5.4.2 +#Source2Download: https://osdn.net/projects/mingw/releases/ +Source2: https://osdn.net/projects/mingw/downloads/74925/mingwrt-%{mingw32_ver}-mingw32-dev.tar.xz +# Source2-md5: d8dceb05b85602eec82eac4e11d5c027 +Source3: gcc-optimize-la.pl +#Patch100: gcc-branch.diff Patch0: %{name}-buildsystem1.patch Patch1: %{name}-buildsystem2.patch Patch2: %{name}-lfs.patch -BuildRequires: autoconf -BuildRequires: automake +Patch3: gcc-mingw32.patch +Patch4: gcc-build-libvtv.patch +Patch5: gcc-pthreads-w32.patch +URL: http://gcc.gnu.org/ +BuildRequires: autoconf >= 2.64 +BuildRequires: automake >= 1:1.11.1 BuildRequires: bison -BuildRequires: crossmingw32-binutils >= 2.15.91.0.2-2 -BuildRequires: flex -BuildRequires: libmpc-devel +BuildRequires: crossmingw32-binutils >= 2.30 +%{?with_pthreads:BuildRequires: crossmingw32-pthreads-w32} %if %{without bootstrap} BuildRequires: crossmingw32-runtime >= 3.5 -BuildRequires: crossmingw32-w32api >= 3.1 +BuildRequires: crossmingw32-w32api >= 1:5.4.2-3 %endif -BuildRequires: mpfr-devel -BuildRequires: texinfo >= 4.2 -%if %{with booststrap} +BuildRequires: flex >= 2.5.4 +BuildRequires: gettext-tools >= 0.14.5 +BuildRequires: gmp-devel >= 4.3.2 +BuildRequires: isl-devel >= 0.15 +BuildRequires: libmpc-devel >= 0.8.1 +BuildRequires: libstdc++-devel +BuildRequires: mpfr-devel >= 3.1.0 +BuildRequires: perl-tools-pod BuildRequires: tar >= 1:1.22 +BuildRequires: texinfo >= 4.7 BuildRequires: xz -%endif -Requires: crossmingw32-binutils >= 2.15.91.0.2-2 +BuildRequires: zlib-devel +BuildConflicts: pdksh < 5.2.14-50 +Requires: crossmingw32-binutils >= 2.30 Requires: gcc-dirs +Requires: gmp >= 4.3.2 +Requires: isl >= 0.15 +Requires: libmpc >= 0.8.1 +Requires: mpfr >= 3.1.0 +# java support dropped from gcc 7+ +Obsoletes: crossmingw32-java < 1:7 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define target i386-mingw32 %define sysprefix /usr -%define arch %{sysprefix}/%{target} +%define archprefix %{sysprefix}/%{target} +%define archbindir %{archprefix}/bin +%define archincludedir %{archprefix}/include +%define archlibdir %{archprefix}/lib %define gccarchdir %{_libdir}/gcc/%{target} %define gcclibdir %{gccarchdir}/%{version} %define _dlldir /usr/share/wine/windows/system @@ -62,6 +87,13 @@ 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} +# -fPIC is not valid for target platform +%define filterout_c -fPIC + %description crossmingw32 is a complete cross-compiling development system for building stand-alone Microsoft Windows applications under Linux using @@ -96,6 +128,136 @@ libgcc DLL library for Windows. %description -n crossmingw32-libgcc-dll -l pl.UTF-8 Biblioteka DLL libgcc dla Windows. +%package -n crossmingw32-libatomic +Summary: The GNU Atomic library - cross MinGW32 version +Summary(pl.UTF-8): Biblioteka GNU Atomic - 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-libatomic +This package contains cross MinGW32 version of the GNU Atomic library +which is a GCC support library for atomic operations not supported by +hardware. + +%description -n crossmingw32-libatomic -l pl.UTF-8 +Ten pakiet zawiera wersję skrośną MinGW32 biblioteki GNU Atomic, +będącej biblioteką GCC, wspierającej operacje atomowe na sprzęcie ich +nie obsługującym. + +%package -n crossmingw32-libatomic-static +Summary: The GNU Atomic static library - cross MinGW32 version +Summary(pl.UTF-8): Statyczna biblioteka GNU Atomic - wersja skrośna MinGW32 +License: GPL v3+ with GCC Runtime Library Exception v3.1 +Group: Development/Libraries +Requires: crossmingw32-libatomic = %{epoch}:%{version}-%{release} + +%description -n crossmingw32-libatomic-static +The GNU Atomic static library - cross MinGW32 version. + +%description -n crossmingw32-libatomic-static -l pl.UTF-8 +Statyczna biblioteka GNU Atomic - wersja skrośna MinGW32. + +%package -n crossmingw32-libatomic-dll +Summary: DLL GNU Atomic library for Windows +Summary(pl.UTF-8): Biblioteka DLL GNU Atomic dla Windows +License: GPL v3+ with GCC Runtime Library Exception v3.1 +Group: Applications/Emulators +Requires: wine + +%description -n crossmingw32-libatomic-dll +DLL GNU Atomic library for Windows. + +%description -n crossmingw32-libatomic-dll -l pl.UTF-8 +Biblioteka DLL GNU Atomic 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: Applications/Emulators +Requires: crossmingw32-libgcc-dll = %{epoch}:%{version}-%{release} +Requires: crossmingw32-pthreads-w32-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 -n crossmingw32-libvtv +Summary: The Virtual Table Verification library - cross MinGW32 version +Summary(pl.UTF-8): Biblioteka Virtual Table Verification do weryfikacji tablicy wirtualnej - wersja skrośna MinGW32 +License: GPL v3+ with GCC Runtime Library Exception v3.1 +Group: Development/Libraries +URL: https://gcc.gnu.org/wiki/vtv +Requires: %{name} = %{epoch}:%{version}-%{release} + +%description -n crossmingw32-libvtv +This package contains cross MinGW32 version of the Virtual Table +Verification library which is used for -fvtable-verify=... +instrumented programs. + +%description -n crossmingw32-libvtv -l pl.UTF-8 +Ten pakiet zawiera wersję skrośną MinGW32 biblioteki Virtual Table +Verification, służącej do weryfikacji tablicy wirtualnej w programach +kompilowanych z opcją -fvtable-verify=.... + +%package -n crossmingw32-libvtv-static +Summary: The Virtual Table Verification static library - cross MinGW32 version +Summary(pl.UTF-8): Statyczna biblioteka Virtual Table Verification - wersja skrośna MinGW32 +License: GPL v3+ with GCC Runtime Library Exception v3.1 +Group: Development/Libraries +URL: https://gcc.gnu.org/wiki/vtv +Requires: crossmingw32-libvtv = %{epoch}:%{version}-%{release} + +%description -n crossmingw32-libvtv-static +The Virtual Table Verification static library - cross MinGW32 version. + +%description -n crossmingw32-libvtv-static -l pl.UTF-8 +Statyczna biblioteka Virtual Table Verification - wersja skrośna +MinGW32. + +%package -n crossmingw32-libvtv-dll +Summary: DLL Virtual Table Verification libraries for Windows +Summary(pl.UTF-8): Biblioteki DLL Virtual Table Verification dla Windows +License: GPL v3+ with GCC Runtime Library Exception v3.1 +Group: Applications/Emulators +URL: https://gcc.gnu.org/wiki/vtv +Requires: crossmingw32-libgcc-dll = %{epoch}:%{version}-%{release} + +%description -n crossmingw32-libvtv-dll +DLL Virtual Table Verification libraries for Windows. + +%description -n crossmingw32-libvtv-dll -l pl.UTF-8 +Biblioteki DLL Virtual Table Verification dla Windows. + %package c++ Summary: MinGW32 binary utility development utilities - g++ Summary(pl.UTF-8): Zestaw narzędzi MinGW32 - g++ @@ -170,6 +332,30 @@ z bibliotek w formacie COFF. Ten pakiet zawiera kompilator objc generujący kod pod Win32. +%package objc++ +Summary: MinGW32 binary utility development utilities - objc++ +Summary(pl.UTF-8): Zestaw narzędzi MinGW32 - objc++ +Group: Development/Languages +Requires: %{name}-objc = %{epoch}:%{version}-%{release} + +%description objc++ +crossmingw32 is a complete cross-compiling development system for +building stand-alone Microsoft Windows applications under Linux using +the MinGW32 build libraries. This includes a binutils, gcc with g++ +and objc, and libstdc++, all cross targeted to i386-mingw32, along +with supporting Win32 libraries in 'coff' format from free sources. + +This package contains Objective C++ support. + +%description objc++ -l pl.UTF-8 +crossmingw32 jest kompletnym systemem do kompilacji skrośnej, +pozwalającym budować aplikacje MS Windows pod Linuksem używając +bibliotek MinGW32. System składa się z binutils, gcc z g++ i objc, +libstdc++ - wszystkie generujące kod dla platformy i386-mingw32, oraz +z bibliotek w formacie COFF. + +Ten pakiet zawiera obsługę języka Objective C++. + %package -n crossmingw32-libobjc-static Summary: Static Objective C library - cross MinGW32 version Summary(pl.UTF-8): Statyczna biblioteka Objective C - wersja skrośna MinGW32 @@ -195,13 +381,13 @@ libobjc DLL library for Windows. %description -n crossmingw32-libobjc-dll -l pl.UTF-8 Biblioteka DLL libobjc dla Windows. -# does this even work? %package fortran Summary: MinGW32 binary utility development utilities - Fortran Summary(pl.UTF-8): Zestaw narzędzi MinGW32 - Fortran Group: Development/Languages Requires: %{name} = %{epoch}:%{version}-%{release} -Obsoletes: crossmingw32-gcc-g77 +Requires: crossmingw32-libquadmath = %{epoch}:%{version}-%{release} +Obsoletes: crossmingw32-gcc-g77 < 1:4 %description fortran crossmingw32 is a complete cross-compiling development system for @@ -221,42 +407,90 @@ z bibliotek w formacie COFF. Ten pakiet zawiera kompilator Fortranu generujący kod pod Win32. -# does this even work? -%package java -Summary: MinGW32 binary utility development utilities - Java -Summary(pl.UTF-8): Zestaw narzędzi MinGW32 - Java -Group: Development/Languages +%package -n crossmingw32-libgfortran-static +Summary: Static Fortran library - cross MinGW32 version +Summary(pl.UTF-8): Statyczna biblioteka Fortranu - wersja skrośna MinGW32 +Group: Development/Libraries +Requires: %{name}-fortran = %{epoch}:%{version}-%{release} + +%description -n crossmingw32-libgfortran-static +Static Fortran library - cross MinGW32 version. + +%description -n crossmingw32-libgfortran-static -l pl.UTF-8 +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: crossmingw32-libquadmath-dll + +%description -n crossmingw32-libgfortran-dll +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 java -crossmingw32 is a complete cross-compiling development system for -building stand-alone Microsoft Windows applications under Linux using -the MinGW32 build libraries. This includes a binutils, gcc with g++ -and objc, and libstdc++, all cross targeted to i386-mingw32, along -with supporting Win32 libraries in 'coff' format from free sources. +%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. -This package contains cross targeted Java compiler. +%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. -%description java -l pl.UTF-8 -crossmingw32 jest kompletnym systemem do kompilacji skrośnej, -pozwalającym budować aplikacje MS Windows pod Linuksem używając -bibliotek MinGW32. System składa się z binutils, gcc z g++ i objc, -libstdc++ - wszystkie generujące kod dla platformy i386-mingw32, oraz -z bibliotek w formacie COFF. +%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. -Ten pakiet zawiera kompilator Javy generujący kod pod Win32. +%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. %prep %setup -q -n gcc-%{version} -%patch100 -p0 +#patch100 -p0 %patch0 -p1 %patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 %if %{with bootstrap} -# note: "winsup" dirs below are special, handled by gcc's configure +# note: "winsup" dirs are special, handled by gcc's configure install -d winsup/{mingw,w32api} tar xf %{SOURCE1} -C winsup/w32api tar xf %{SOURCE2} -C winsup/mingw +# required by _mingw.h +touch winsup/mingw/include/features.h %endif # override snapshot version. @@ -264,51 +498,68 @@ echo %{version} > gcc/BASE-VER echo "release" > gcc/DEV-PHASE %build +cd libvtv +%{__aclocal} -I .. -I ../config +%{__autoconf} +%{__automake} +cd .. + rm -rf builddir && install -d builddir && cd builddir %if %{with bootstrap} install -d %{target}/winsup -# sysroot/%{target}/lib ln -sf ../../../winsup/mingw/lib %{target}/winsup/mingw ln -sf ../../../winsup/w32api %{target}/winsup/w32api WINSUPDIR=$(cd ..; pwd)/winsup %endif +# note: libbacktrace requires at least i486 now CC="%{__cc}" \ CFLAGS="%{rpmcflags}" \ CXXFLAGS="%{rpmcxxflags}" \ TEXCONFIG=false \ +CFLAGS_FOR_TARGET="-O2 -march=i486" \ +CXXFLAGS_FOR_TARGET="-O2 -march=i486" \ ../configure \ --prefix=%{sysprefix} \ - --bindir=%{arch}/bin \ + --bindir=%{archbindir} \ --libdir=%{_libdir} \ - --includedir=%{arch}/include \ + --includedir=%{archincludedir} \ --libexecdir=%{_libdir} \ --infodir=%{_infodir} \ --mandir=%{_mandir} \ - %{!?with_bootstrap:--with-headers=%{arch}/include} \ - --with-libs=%{!?with_bootstrap:%{arch}/lib}%{?with_bootstrap:${WINSUPDIR}/mingw/lib} \ - --with-build-time-tools=%{arch}/bin \ + --with-bugurl="http://bugs.pld-linux.org" \ + --with-build-time-tools=%{archbindir} \ + %{!?with_bootstrap:--with-headers=%{archincludedir}} \ + --with-libs=%{!?with_bootstrap:%{archlibdir}}%{?with_bootstrap:${WINSUPDIR}/mingw/lib} \ + --with-demangler-in-ld \ --with-dwarf2 \ --with-gnu-as \ --with-gnu-ld \ - --with-mangler-in-ld \ --with-long-double-128 \ - --enable-threads \ - --enable-languages="c,c++,objc" \ + --with-pkgversion="PLD-Linux" \ --enable-c99 \ - --enable-long-long \ --enable-fully-dynamic-string \ + --disable-isl-version-check \ + --enable-languages="c,c++%{!?with_bootstrap:,fortran,objc,obj-c++}" \ + %{?with_bootstrap:--disable-libatomic} \ + --disable-libcc1 \ + --enable-libgomp%{!?with_gomp:=no} \ + %{?with_bootstrap:--disable-libquadmath} \ + --disable-libssp \ --enable-libstdcxx-allocator=new \ - --enable-version-specific-runtime-libs \ - --enable-shared \ + %{?with_bootstrap:--disable-libvtv} \ + --enable-linker-build-id \ + --enable-long-long \ + --enable-lto \ + --disable-multilib \ --disable-nls \ - --disable-symvers \ + --enable-shared \ --disable-sjlj-exceptions \ + --disable-symvers \ + --enable-threads%{?with_pthreads:=posix} \ + --disable-werror \ --disable-win32-registry \ - --disable-multilib \ - --disable-libssp \ --target=%{target} -# ,fortran,java cd .. %{__make} -C builddir all-host @@ -322,22 +573,23 @@ 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 +%{__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 -# restore hardlinks -ln -f $RPM_BUILD_ROOT%{arch}/bin/%{target}-gcc $RPM_BUILD_ROOT%{_bindir}/%{target}-gcc -ln -f $RPM_BUILD_ROOT%{arch}/bin/%{target}-g++ $RPM_BUILD_ROOT%{_bindir}/%{target}-g++ -ln -f $RPM_BUILD_ROOT%{arch}/bin/%{target}-cpp $RPM_BUILD_ROOT%{_bindir}/%{target}-cpp -ln -f $RPM_BUILD_ROOT%{arch}/bin/%{target}-gcov $RPM_BUILD_ROOT%{_bindir}/%{target}-gcov +# these must be symlinks: gcclibdir is calculated relatively to real binary path +ln -sf %{archbindir}/%{target}-gcc $RPM_BUILD_ROOT%{_bindir}/%{target}-gcc +ln -sf %{archbindir}/%{target}-g++ $RPM_BUILD_ROOT%{_bindir}/%{target}-g++ +ln -sf %{archbindir}/%{target}-cpp $RPM_BUILD_ROOT%{_bindir}/%{target}-cpp +ln -sf %{archbindir}/%{target}-gcov $RPM_BUILD_ROOT%{_bindir}/%{target}-gcov +ln -sf %{archbindir}/%{target}-gcov-dump $RPM_BUILD_ROOT%{_bindir}/%{target}-gcov-dump +ln -sf %{archbindir}/%{target}-gcov-tool $RPM_BUILD_ROOT%{_bindir}/%{target}-gcov-tool +ln -sf %{archbindir}/%{target}-gfortran $RPM_BUILD_ROOT%{_bindir}/%{target}-gfortran +ln -sf %{archbindir}/%{target}-lto-dump $RPM_BUILD_ROOT%{_bindir}/%{target}-lto-dump # DLLs install -d $RPM_BUILD_ROOT%{_dlldir} -mv -f $RPM_BUILD_ROOT%{arch}/bin/*.dll $RPM_BUILD_ROOT%{_dlldir} +%{__mv} $RPM_BUILD_ROOT%{archlibdir}/*.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} @@ -345,10 +597,30 @@ 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%{archlibdir}/lib*.a +%{target}-strip -g -R.comment -R.note $RPM_BUILD_ROOT%{gcclibdir}/lib*.a %endif +# avoid -L poisoning in *.la +%if %{without bootstrap} +for f in libatomic.la libgfortran.la libobjc.la libquadmath.la %{?with_gomp:libgomp.la} ; do + file="$RPM_BUILD_ROOT%{archlibdir}/$f" + %{__perl} %{SOURCE3} "$file" %{gcclibdir} >"${file}.fixed" + %{__mv} "${file}.fixed" "$file" +done +for f in libcaf_single.la ; do + file="$RPM_BUILD_ROOT%{gcclibdir}/$f" + %{__perl} %{SOURCE3} "$file" %{gcclibdir} >"${file}.fixed" + %{__mv} "${file}.fixed" "$file" +done +%endif + +# for pretty-printers see native gcc +%{__rm} $RPM_BUILD_ROOT%{archlibdir}/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 @@ -362,104 +634,172 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_bindir}/%{target}-gcc %attr(755,root,root) %{_bindir}/%{target}-cpp %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}-cpp -%attr(755,root,root) %{arch}/bin/%{target}-gcov -%attr(755,root,root) %{arch}/bin/gcc -%{arch}/lib/libiberty.a +%attr(755,root,root) %{_bindir}/%{target}-gcov-dump +%attr(755,root,root) %{_bindir}/%{target}-gcov-tool +%attr(755,root,root) %{_bindir}/%{target}-lto-dump +%attr(755,root,root) %{archbindir}/%{target}-cpp +%attr(755,root,root) %{archbindir}/%{target}-gcc +%attr(755,root,root) %{archbindir}/%{target}-gcc-%{version} +%attr(755,root,root) %{archbindir}/%{target}-gcc-ar +%attr(755,root,root) %{archbindir}/%{target}-gcc-nm +%attr(755,root,root) %{archbindir}/%{target}-gcc-ranlib +%attr(755,root,root) %{archbindir}/%{target}-gcov +%attr(755,root,root) %{archbindir}/%{target}-gcov-dump +%attr(755,root,root) %{archbindir}/%{target}-gcov-tool +%attr(755,root,root) %{archbindir}/%{target}-lto-dump +%{archlibdir}/libgcc_s.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* %{_mandir}/man1/%{target}-gcc.1* %{_mandir}/man1/%{target}-gcov.1* +%{_mandir}/man1/%{target}-gcov-dump.1* +%{_mandir}/man1/%{target}-gcov-tool.1* +%{_mandir}/man1/%{target}-lto-dump.1* %files -n crossmingw32-libgcc-dll %defattr(644,root,root,755) %{_dlldir}/libgcc_s_dw2-1.dll +%if %{without bootstrap} +%files -n crossmingw32-libatomic +%defattr(644,root,root,755) +%{archlibdir}/libatomic.dll.a +%{archlibdir}/libatomic.la + +%files -n crossmingw32-libatomic-static +%defattr(644,root,root,755) +%{archlibdir}/libatomic.a + +%files -n crossmingw32-libatomic-dll +%defattr(644,root,root,755) +%{_dlldir}/libatomic-1.dll +%endif + +%if %{with gomp} +%files -n crossmingw32-libgomp +%defattr(644,root,root,755) +%{archlibdir}/libgomp.dll.a +%{archlibdir}/libgomp.la +%{archlibdir}/libgomp.spec + +%files -n crossmingw32-libgomp-static +%defattr(644,root,root,755) +%{archlibdir}/libgomp.a + +%files -n crossmingw32-libgomp-dll +%defattr(644,root,root,755) +%{_dlldir}/libgomp-1.dll +%endif + +%if %{without bootstrap} +%files -n crossmingw32-libvtv +%defattr(644,root,root,755) +%{archlibdir}/libvtv.dll.a +%{archlibdir}/libvtv.la +%{archlibdir}/libvtv_stubs.dll.a +%{archlibdir}/libvtv_stubs.la + +%files -n crossmingw32-libvtv-static +%defattr(644,root,root,755) +%{archlibdir}/libvtv.a +%{archlibdir}/libvtv_stubs.a + +%files -n crossmingw32-libvtv-dll +%defattr(644,root,root,755) +%{_dlldir}/libvtv-0.dll +%{_dlldir}/libvtv_stubs-0.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) %{archbindir}/%{target}-c++ +%attr(755,root,root) %{archbindir}/%{target}-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++ +%{archlibdir}/libstdc++.dll.a +%{archlibdir}/libstdc++.la +%{archlibdir}/libstdc++fs.a +%{archlibdir}/libstdc++fs.la +%{archlibdir}/libsupc++.la +%{archlibdir}/libsupc++.a +%{archincludedir}/c++ %{_mandir}/man1/%{target}-g++.1* %files -n crossmingw32-libstdc++-static %defattr(644,root,root,755) -%{gcclibdir}/libstdc++.a +%{archlibdir}/libstdc++.a %files -n crossmingw32-libstdc++-dll %defattr(644,root,root,755) %{_dlldir}/libstdc++-6.dll -# no obj-c, fortran, java for the moment +%if %{without bootstrap} %files objc %defattr(644,root,root,755) +%doc libobjc/README %attr(755,root,root) %{gcclibdir}/cc1obj -%{gcclibdir}/libobjc.dll.a -%{gcclibdir}/libobjc.la +%{archlibdir}/libobjc.dll.a +%{archlibdir}/libobjc.la %{gcclibdir}/include/objc +%files objc++ +%defattr(644,root,root,755) +%doc gcc/objcp/ChangeLog +%attr(755,root,root) %{gcclibdir}/cc1objplus + %files -n crossmingw32-libobjc-static %defattr(644,root,root,755) -%{gcclibdir}/libobjc.a +%{archlibdir}/libobjc.a %files -n crossmingw32-libobjc-dll %defattr(644,root,root,755) -%{_dlldir}/libobjc-2.dll +%{_dlldir}/libobjc-4.dll -%if 0 %files fortran %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/%{target}-gfortran -%attr(755,root,root) %{arch}/bin/gfortran -%attr(755,root,root) %{gcclib}/f951 -%{arch}/lib/libgfortran.a -%{arch}/lib/libgfortran.la -%{arch}/lib/libgfortranbegin.a -%{arch}/lib/libgfortranbegin.la +%attr(755,root,root) %{archbindir}/%{target}-gfortran +%attr(755,root,root) %{gcclibdir}/f951 +%{archlibdir}/libgfortran.dll.a +%{archlibdir}/libgfortran.la +%{archlibdir}/libgfortran.spec +%{gcclibdir}/finclude +%{gcclibdir}/libcaf_single.a +%{gcclibdir}/libcaf_single.la %{_mandir}/man1/%{target}-gfortran.1* -%files java +%files -n crossmingw32-libgfortran-static +%defattr(644,root,root,755) +%{archlibdir}/libgfortran.a + +%files -n crossmingw32-libgfortran-dll +%defattr(644,root,root,755) +%{_dlldir}/libgfortran-5.dll + +%files -n crossmingw32-libquadmath +%defattr(644,root,root,755) +%{archlibdir}/libquadmath.dll.a +%{archlibdir}/libquadmath.la + +%files -n crossmingw32-libquadmath-static +%defattr(644,root,root,755) +%{archlibdir}/libquadmath.a + +%files -n crossmingw32-libquadmath-dll %defattr(644,root,root,755) -%attr(755,root,root) %{_bindir}/%{target}-gcj -%attr(755,root,root) %{_bindir}/%{target}-gcjh -%attr(755,root,root) %{_bindir}/%{target}-gjnih -%attr(755,root,root) %{_bindir}/%{target}-grepjar -%attr(755,root,root) %{_bindir}/%{target}-fastjar -%attr(755,root,root) %{_bindir}/%{target}-jcf-dump -%attr(755,root,root) %{_bindir}/%{target}-jv-scan -#%attr(755,root,root) %{arch}/bin/grepjar -#%attr(755,root,root) %{arch}/bin/jar -%attr(755,root,root) %{gcclib}/jc1 -%attr(755,root,root) %{gcclib}/jvgenmain -%{_mandir}/man1/%{target}-gcj.1* -%{_mandir}/man1/%{target}-gcjh.1* -%{_mandir}/man1/%{target}-gjnih.1* -%{_mandir}/man1/%{target}-grepjar.1* -%{_mandir}/man1/%{target}-fastjar.1* -%{_mandir}/man1/%{target}-jcf-dump.1* -%{_mandir}/man1/%{target}-jv-scan.1* +%{_dlldir}/libquadmath-0.dll %endif