From 83afd97633b7074b258b2d691ca36cc67ef1e543 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C5=81ukasz=20Krotowski?= Date: Wed, 29 Sep 2010 22:05:46 +0000 Subject: [PATCH] - up to 4.5.1 (with branch diff like in regular gcc.spec) - languages other than c, c++ disabled for now Changed files: crossmingw32-gcc.spec -> 1.79 --- crossmingw32-gcc.spec | 195 +++++++++++++++++++----------------------- 1 file changed, 86 insertions(+), 109 deletions(-) diff --git a/crossmingw32-gcc.spec b/crossmingw32-gcc.spec index 165fe19..3708fb2 100644 --- a/crossmingw32-gcc.spec +++ b/crossmingw32-gcc.spec @@ -1,4 +1,8 @@ # +# TODO: +# - restore languages other than c, c++ +# - openmp +# # Conditional build: %bcond_with bootstrap # bootstrap build (using binary w32api/mingw) # @@ -9,28 +13,30 @@ 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.1.2 -Release: 2 +Version: 4.5.1 +Release: 1 Epoch: 1 License: GPL v2+ Group: Development/Languages Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/gcc-%{version}.tar.bz2 -# Source0-md5: a4a3eb15c96030906d8494959eeda23c +# Source0-md5: 48231a8e33ed6e058a341c53b819de1a %define apiver 3.10 Source1: http://dl.sourceforge.net/mingw/w32api-%{apiver}.tar.gz # Source1-md5: 7067a6b3ac9d94bb753f9f6f37e2033c %define runver 3.13 Source2: http://dl.sourceforge.net/mingw/mingw-runtime-%{runver}.tar.gz # Source2-md5: 22179021f41d5eee76447b78fb94a3fb -Patch0: gcc-4.1-nodebug.patch -Patch1: %{name}-noioctl.patch -Patch2: gcc-4.1-texinfo.patch -Patch3: gcc-4.1-pr29826.patch +# 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 +Patch0: %{name}-buildsystem1.patch +Patch1: %{name}-buildsystem2.patch +Patch2: %{name}-lfs.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: bison BuildRequires: crossmingw32-binutils >= 2.15.91.0.2-2 BuildRequires: flex +BuildRequires: libmpc-devel %if %{without bootstrap} BuildRequires: crossmingw32-runtime >= 3.5 BuildRequires: crossmingw32-w32api >= 3.1 @@ -42,7 +48,6 @@ Requires: gcc-dirs BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define target i386-mingw32 -%define target_platform i386-pc-mingw32 %define arch %{_prefix}/%{target} %define gccarch %{_libdir}/gcc/%{target} %define gcclib %{gccarch}/%{version} @@ -98,6 +103,8 @@ z bibliotek w formacie COFF. Ten pakiet zawiera g++ generujące kod pod Win32 oraz bibliotekę libstdc++. +# no obj-c, fortran, java for the moment +%if 0 # does this even work? %package objc Summary: Mingw32 binary utility development utilities - objc @@ -174,165 +181,134 @@ libstdc++ - wszystkie generujące kod dla platformy i386-mingw32, oraz z bibliotek w formacie COFF. Ten pakiet zawiera kompilator Javy generujący kod pod Win32. +%endif %prep %setup -q -n gcc-%{version} +%patch100 -p0 +%patch0 -p1 +%patch2 -p1 + %if %{with bootstrap} mkdir winsup tar xzf %{SOURCE1} -C winsup tar xzf %{SOURCE2} -C winsup %endif -%{!?debug:%patch0 -p1} -%patch1 -p1 -%patch2 -p1 -cd gcc -%patch3 -p0 + +# override snapshot version. +echo %{version} > gcc/BASE-VER +echo "release" > gcc/DEV-PHASE %build %if %{with bootstrap} for tool in as ar dlltool ld nm ranlib strip ; do ln -sf %{arch}/bin/$tool winsup/bin/$tool done -build_tooldir=`pwd`/winsup -%else -build_tooldir=%{arch} %endif -cp /usr/share/automake/config.sub . -cp /usr/share/automake/config.sub boehm-gc -# avoid autoconf call, breaks build - -rm -rf obj-%{target_platform} -install -d obj-%{target_platform} -cd obj-%{target_platform} +rm -rf builddir && install -d builddir && cd builddir -# note: alpha's -mieee and sparc's -mtune=* are not valid for target's g++ +CC="%{__cc}" \ CFLAGS="%{rpmcflags}" \ -%ifarch alpha -CXXFLAGS="`echo '%{rpmcflags}' | sed -e 's/ \?-mieee\>//'`" \ -%else -%ifarch sparc sparc64 sparcv9 -CXXFLAGS="`echo '%{rpmcflags}' | sed -e 's/ \?-mtune[=0-9a-z]*//'`" \ -%else -CXXFLAGS="%{rpmcflags}" \ -%endif -%endif -LDFLAGS="%{rpmldflags}" \ +CXXFLAGS="%{rpmcxxflags}" \ TEXCONFIG=false \ ../configure \ - --prefix=%{_prefix} \ + --prefix=%{arch} \ --infodir=%{_infodir} \ --mandir=%{_mandir} \ - --bindir=%{arch}/bin \ - --libdir=%{_libdir} \ - --libexecdir=%{_libexecdir} \ - --includedir=%{arch}/include \ - --disable-shared \ + --with-headers=%{arch}/include \ + --with-libs=%{arch}/lib \ + --with-build-time-tools=%{arch}/bin \ + --with-dwarf2 \ + --with-gnu-as \ + --with-gnu-ld \ + --with-mangler-in-ld \ + --with-long-double-128 \ --enable-threads \ - --enable-languages="c,c++,fortran,java,objc" \ + --enable-languages="c,c++" \ --enable-c99 \ --enable-long-long \ + --enable-fully-dynamic-string \ + --enable-libstdcxx-allocator=new \ + --enable-version-specific-runtime-libs \ + --enable-shared \ --disable-nls \ - --with-gnu-as \ - --with-gnu-ld \ - --with-mangler-in-ld \ - --with-gxx-include-dir=%{arch}/include/g++ \ - --build=%{_target_platform} \ - --host=%{_target_platform} \ + --disable-symvers \ + --disable-sjlj-exceptions \ + --disable-win32-registry \ + --disable-multilib \ + --disable-libssp \ --target=%{target} -%{__make} all - -# spec files for msvcrt*.dll configurations -cd gcc -for n in msvcrt msvcrt20 msvcrt40; do - sed "s/crtdll/$n/g" specs.$n -done +cd .. +%{__make} -C builddir all-host +patch -p1 <%{PATCH1} +%{__make} -C builddir %install rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT{%{_bindir},%{_datadir}} -cd obj-%{target_platform} - -%{__make} install \ +%{__make} -C builddir install \ DESTDIR=$RPM_BUILD_ROOT -cd gcc -install specs.msvcrt specs.msvcrt20 specs.msvcrt40 $RPM_BUILD_ROOT%{gcclib} -cd ../.. - -mv -f $RPM_BUILD_ROOT%{arch}/bin/%{target}-* $RPM_BUILD_ROOT%{_bindir} - -# already in arch/lib, shouldn't be here -rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a - -# include/ contains install-tools/include/* and headers that were fixed up -# by fixincludes, we don't want former -gccdir=$RPM_BUILD_ROOT%{gcclib} -mkdir $gccdir/tmp -# we have to save these however -mv -f $gccdir/include/syslimits.h $gccdir/tmp -rm -rf $gccdir/include -mv -f $gccdir/tmp $gccdir/include -cp -f $gccdir/install-tools/include/*.h $gccdir/include -# but we don't want anything more from install-tools -rm -rf $gccdir/install-tools - %if 0%{!?debug:1} -%{target}-strip -g -R.note -R.comment $RPM_BUILD_ROOT%{gcclib}/libgcc.a -%{target}-strip -g -R.note -R.comment $RPM_BUILD_ROOT%{gcclib}/libgcov.a %{target}-strip -g -R.note -R.comment $RPM_BUILD_ROOT%{arch}/lib/lib*.a %endif # restore hardlinks -ln -f $RPM_BUILD_ROOT%{_bindir}/%{target}-{g++,c++} -ln -f $RPM_BUILD_ROOT%{arch}/bin/{g++,c++} +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 + +install -d $RPM_BUILD_ROOT%{_libdir} +install -d $RPM_BUILD_ROOT%{_libdir}/gcc -# the same... make hardlink -ln -f $RPM_BUILD_ROOT%{arch}/bin/gcc $RPM_BUILD_ROOT%{_bindir}/%{target}-gcc +cp -r $RPM_BUILD_ROOT%{arch}/libexec/gcc/%{target} $RPM_BUILD_ROOT%{_libdir}/gcc +cp -r $RPM_BUILD_ROOT%{arch}/lib/gcc/%{target} $RPM_BUILD_ROOT%{_libdir}/gcc +rm -rf $RPM_BUILD_ROOT%{_libdir}/gcc/%{target}/%{version}/install-tools +rm -rf $RPM_BUILD_ROOT%{arch}/libexec +rm -rf $RPM_BUILD_ROOT%{arch}/lib/gcc +mv -f $RPM_BUILD_ROOT%{_libdir}/gcc/%{target}/%{version}/cc1 $RPM_BUILD_ROOT%{arch}/bin/cc1 +mv -f $RPM_BUILD_ROOT%{_libdir}/gcc/%{target}/%{version}/cc1plus $RPM_BUILD_ROOT%{arch}/bin/cc1plus +mv -f $RPM_BUILD_ROOT%{_libdir}/gcc/%{target}/%{version}/collect2 $RPM_BUILD_ROOT%{arch}/bin/collect2 + +install builddir/i386-mingw32/libgcc/shlib/libgcc_s_dw2-1.dll $RPM_BUILD_ROOT%{arch}/bin %clean rm -rf $RPM_BUILD_ROOT %files %defattr(644,root,root,755) -%attr(755,root,root) %{_bindir}/%{target}-gcc* +%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/gcc -%{arch}/lib/libiberty.a - -%dir %{gccarch} -%dir %{gcclib} -%attr(755,root,root) %{gcclib}/cc1 -%attr(755,root,root) %{gcclib}/collect2 -%{gcclib}/libgcc.a -%{gcclib}/libgcov.a -%{gcclib}/specs* -%{gcclib}/include +%attr(755,root,root) %{arch}/bin/%{target}-gcc* +%attr(755,root,root) %{arch}/bin/%{target}-cpp +%attr(755,root,root) %{arch}/bin/%{target}-gcov +%attr(755,root,root) %{arch}/bin/cc1 +%attr(755,root,root) %{arch}/bin/collect2 +%{arch}/bin/*.dll + +%{_libdir}/gcc/%{target} +%{arch}/%{_lib}/libiberty.a %{_mandir}/man1/%{target}-cpp.1* %{_mandir}/man1/%{target}-gcc.1* %{_mandir}/man1/%{target}-gcov.1* -%{arch}/lib/libssp.a -%{arch}/lib/libssp.la -%{arch}/lib/libssp_nonshared.a -%{arch}/lib/libssp_nonshared.la - %files c++ %defattr(644,root,root,755) -%attr(755,root,root) %{_bindir}/%{target}-[cg]++ -%attr(755,root,root) %{arch}/bin/[cg]++ -%attr(755,root,root) %{gcclib}/cc1plus -%{arch}/lib/libstdc++.a -%{arch}/lib/libstdc++.la -%{arch}/lib/libsupc++.a -%{arch}/lib/libsupc++.la -%{arch}/include/g++ +%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/cc1plus + %{_mandir}/man1/%{target}-g++.1* +# no obj-c, fortran, java for the moment +%if 0 %files objc %defattr(644,root,root,755) %attr(755,root,root) %{gcclib}/cc1obj @@ -370,3 +346,4 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/%{target}-fastjar.1* %{_mandir}/man1/%{target}-jcf-dump.1* %{_mandir}/man1/%{target}-jv-scan.1* +%endif -- 2.43.0