3 %bcond_with bootstrap # bootstrap build (only C compiler with static runtime)
5 Summary: Cross Mingw64 GNU binary utility development utilities - gcc
6 Summary(es.UTF-8): Utilitarios para desarrollo de binarios de la GNU - Mingw64 gcc
7 Summary(fr.UTF-8): Utilitaires de développement binaire de GNU - Mingw64 gcc
8 Summary(pl.UTF-8): Skrośne narzędzia programistyczne GNU dla Mingw64 - gcc
9 Summary(pt_BR.UTF-8): Utilitários para desenvolvimento de binários da GNU - Mingw64 gcc
10 Summary(tr.UTF-8): GNU geliştirme araçları - Mingw64 gcc
11 Name: crossmingw64-gcc
16 Group: Development/Languages
17 Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/gcc-%{version}.tar.bz2
18 # Source0-md5: cc308a0891e778cfda7a151ab8a6e762
19 # svn co https://mingw-w64.svn.sourceforge.net/svnroot/mingw-w64/stable/v2.x/mingw-w64-crt mingw64-crt
21 Source1: mingw64-crt.tar.xz
22 # Source1-md5: bf9051e7e4deb445e9e8877ca68211e1
23 Patch0: gcc-branch.diff
24 # Patch0-md5: 2add58e2b9d9874ba62e05ca9b6b513f
25 Patch1: gcc-mingw-dirs.patch
26 URL: http://mingw-w64.sourceforge.net/
27 BuildRequires: autoconf
28 BuildRequires: automake
30 BuildRequires: crossmingw64-binutils >= 2.22.51.0.1
31 %{!?with_bootstrap:BuildRequires: crossmingw64-gcc}
32 BuildRequires: crossmingw64-headers
34 BuildRequires: gmp-devel >= 4.1
35 BuildRequires: libmpc-devel
36 BuildRequires: mpfr-devel >= 2.3.0
37 BuildRequires: subversion >= 1.7
38 BuildRequires: texinfo >= 4.2
39 Requires: crossmingw64-binutils
40 Requires: crossmingw64-headers
41 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
43 %define target x86_64-w64-mingw32
44 %define arch %{_prefix}/%{target}
45 %define gccarch %{_libdir}/gcc/%{target}
46 %define gcclib %{gccarch}/%{version}
48 %define _noautostrip .*/lib.*\\.a
50 # workaround bootstrap bug: http://gcc.gnu.org/bugzilla/PR25672
51 %define filterout -march=i486 -march=i686 -mtune=pentium4
54 crossmingw64 is a complete cross-compiling development system for
55 building stand-alone Microsoft Windows applications under Linux using
56 the Mingw64 build libraries. This includes a binutils, gcc with g++
57 and libstdc++, all cross targeted to x86_64-pc-mingw32.
59 This package contains cross targeted gcc.
62 Summary: Mingw64 binary utility development utilities - g++
63 Summary(pl.UTF-8): Zestaw narzędzi mingw64 - g++
64 Group: Development/Languages
65 Requires: %{name} = %{epoch}:%{version}-%{release}
68 crossmingw64 is a complete cross-compiling development system for
69 building stand-alone Microsoft Windows applications under Linux using
70 the Mingw64 build libraries. This includes a binutils, gcc with g++
71 and libstdc++, all cross targeted to x86_64-pc-mingw32.
73 This package contains cross targeted g++ and libstdc++.
76 %setup -q -n gcc-%{version} -a 1
80 # override snapshot version.
81 echo %{version} > gcc/BASE-VER
82 echo "release" > gcc/DEV-PHASE
84 if [ "`svnversion -n mingw64-crt`" != "%{_rev}" ]; then
89 rm -rf BUILDDIR && install -d BUILDDIR/%{target} && cd BUILDDIR
91 # setup system headers for local build.
92 cp -ar %{arch}/include %{target}/include
94 CFLAGS="%{rpmcflags}" \
95 CXXFLAGS="%{rpmcflags}" \
96 LDFLAGS="%{rpmldflags}" \
99 --enable-checking=release \
100 --prefix=%{_prefix} \
101 --infodir=%{_infodir} \
102 --mandir=%{_mandir} \
103 --libdir=%{_libdir} \
104 --libexecdir=%{_libexecdir} \
105 --includedir=%{arch}/include \
108 --with-sysroot=%{arch} \
109 --%{?with_bootstrap:dis}%{!?with_bootstrap:en}able-shared \
110 --disable-win32-registry \
111 --enable-threads=win32 \
113 --enable-sjlj-exceptions \
114 --enable-languages="c%{!?with_bootstrap:,c++}" \
117 --disable-libmudflap \
118 --disable-libquadmath \
125 --enable-decimal-float=yes \
127 --with-mangler-in-ld \
128 --with-gxx-include-dir=%{arch}/include/c++/%{version} \
129 --enable-fully-dynamic-string \
130 --enable-libstdcxx-allocator=new \
131 --enable-symvers=gnu-versioned-namespace \
132 --disable-libstdcxx-pch \
133 --enable-__cxa_atexit \
134 --with-pkgversion="PLD-Linux" \
135 --with-bugurl="http://bugs.pld-linux.org" \
136 --build=%{_target_platform} \
137 --host=%{_target_platform} \
144 CC="$PWD/../BUILDDIR/gcc/gcc-cross -B$PWD/../BUILDDIR/gcc/" \
147 --prefix=%{_prefix} \
148 --disable-lib32 --enable-lib64
154 rm -rf $RPM_BUILD_ROOT
155 install -d $RPM_BUILD_ROOT
159 DESTDIR=$RPM_BUILD_ROOT
161 install gcc/specs $RPM_BUILD_ROOT%{gcclib}
165 gccdir=$RPM_BUILD_ROOT%{gcclib}
166 mv $gccdir/include-fixed/{limits,syslimits}.h $gccdir/include
167 rm -r $gccdir/include-fixed
168 rm -r $gccdir/install-tools
170 %{__make} -C mingw64-crt install \
171 DESTDIR=$RPM_BUILD_ROOT
174 %{target}-strip -g -R.note -R.comment $RPM_BUILD_ROOT%{gcclib}/libgcc.a
175 %{target}-strip -g -R.note -R.comment $RPM_BUILD_ROOT%{gcclib}/libgcov.a
176 find $RPM_BUILD_ROOT%{arch}/lib -type f -name '*.a' -o -name '*.o' \
177 -exec %{target}-strip -g -R.note -R.comment "{}" ";"
181 rm -rf $RPM_BUILD_ROOT
184 %defattr(644,root,root,755)
185 %attr(755,root,root) %{_bindir}/%{target}-gcc*
186 %attr(755,root,root) %{_bindir}/%{target}-cpp
187 %attr(755,root,root) %{_bindir}/%{target}-gcov
190 %dir %{gcclib}/include
191 %{gcclib}/include/ammintrin.h
192 %{gcclib}/include/avx2intrin.h
193 %{gcclib}/include/avxintrin.h
194 %{gcclib}/include/bmi2intrin.h
195 %{gcclib}/include/bmiintrin.h
196 %{gcclib}/include/bmmintrin.h
197 %{gcclib}/include/cpuid.h
198 %{gcclib}/include/cross-stdarg.h
199 %{gcclib}/include/emmintrin.h
200 %{gcclib}/include/f16cintrin.h
201 %{gcclib}/include/float.h
202 %{gcclib}/include/fma4intrin.h
203 %{gcclib}/include/fmaintrin.h
204 %{gcclib}/include/ia32intrin.h
205 %{gcclib}/include/immintrin.h
206 %{gcclib}/include/iso646.h
207 %{gcclib}/include/limits.h
208 %{gcclib}/include/lwpintrin.h
209 %{gcclib}/include/lzcntintrin.h
210 %{gcclib}/include/mm3dnow.h
211 %{gcclib}/include/mm_malloc.h
212 %{gcclib}/include/mmintrin.h
213 %{gcclib}/include/nmmintrin.h
214 %{gcclib}/include/pmmintrin.h
215 %{gcclib}/include/popcntintrin.h
216 %{gcclib}/include/smmintrin.h
217 %{gcclib}/include/tbmintrin.h
218 %{gcclib}/include/stdalign.h
219 %{gcclib}/include/stdarg.h
220 %{gcclib}/include/stdbool.h
221 %{gcclib}/include/stddef.h
222 %{gcclib}/include/stdfix.h
223 %{gcclib}/include/stdint-gcc.h
224 %{gcclib}/include/stdint.h
225 %{gcclib}/include/stdnoreturn.h
226 %{gcclib}/include/syslimits.h
227 %{gcclib}/include/tgmath.h
228 %{gcclib}/include/tmmintrin.h
229 %{gcclib}/include/unwind.h
230 %{gcclib}/include/varargs.h
231 %{gcclib}/include/wmmintrin.h
232 %{gcclib}/include/x86intrin.h
233 %{gcclib}/include/xmmintrin.h
234 %{gcclib}/include/xopintrin.h
235 %attr(755,root,root) %{gcclib}/cc1
236 %attr(755,root,root) %{gcclib}/collect2
237 %attr(755,root,root) %{gcclib}/lto-wrapper
240 %if %{without bootstrap}
241 %{arch}/lib/libgcc_s_sjlj-1.dll
242 %{gcclib}/libgcc_eh.a
246 %{_mandir}/man1/%{target}-cpp.1*
247 %{_mandir}/man1/%{target}-gcc.1*
248 %{_mandir}/man1/%{target}-gcov.1*
250 %if %{without bootstrap}
251 %exclude %{arch}/include/c++
252 %exclude %{arch}/lib/libstdc++.a
253 %exclude %{arch}/lib/libstdc++.dll.a
254 %exclude %{arch}/lib/libsupc++.a
258 %if %{without bootstrap}
260 %defattr(644,root,root,755)
261 %attr(755,root,root) %{_bindir}/%{target}-[cg]++
262 %attr(755,root,root) %{gcclib}/cc1plus
263 %{arch}/lib/libstdc++-7.dll
264 %{arch}/lib/libstdc++.a
265 %{arch}/lib/libstdc++.dll.a
266 %{arch}/lib/libstdc++.la
267 %{arch}/lib/libsupc++.a
268 %{arch}/lib/libsupc++.la
270 %{_mandir}/man1/%{target}-g++.1*