From 14b9b67e5ed901b62e384f99f076419fb96778ed Mon Sep 17 00:00:00 2001 From: Jakub Bogusz Date: Sun, 18 Dec 2016 14:53:26 +0100 Subject: [PATCH] - updated to 5.4.0 (with C++14 support) - enabled objc++, updated some configure options - removed obsolete isl0.15 patches (upstream supports isl up to 0.17.x) - added mingw32 patch for libgfortran (chmod and umask require on mingw32) --- crossmingw32-gcc.spec | 227 ++++++++++++++++++++++++++++++++++------ gcc-isl0.15-1.patch | 237 ------------------------------------------ gcc-isl0.15-2.patch | 86 --------------- gcc-mingw32.patch | 12 +++ gcc-optimize-la.pl | 2 +- 5 files changed, 207 insertions(+), 357 deletions(-) delete mode 100644 gcc-isl0.15-1.patch delete mode 100644 gcc-isl0.15-2.patch create mode 100644 gcc-mingw32.patch diff --git a/crossmingw32-gcc.spec b/crossmingw32-gcc.spec index 2e9a342..800df65 100644 --- a/crossmingw32-gcc.spec +++ b/crossmingw32-gcc.spec @@ -13,50 +13,54 @@ 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.9.3 -Release: 3 +Version: 5.4.0 +Release: 1 Epoch: 1 License: GPL v3+ Group: Development/Languages Source0: https://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-%{version}.tar.bz2 -# Source0-md5: 6f831b4d251872736e8e9cc09746f327 +# Source0-md5: 4c626ac2a83ef30dfb9260e6f59c2b30 %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 +# svn diff -x --ignore-eol-style --force svn://gcc.gnu.org/svn/gcc/tags/gcc_5_4_0_release svn://gcc.gnu.org/svn/gcc/branches/gcc-5-branch > gcc-branch.diff Patch100: gcc-branch.diff -# Patch100-md5: 253cbf4cc2f71d9c9362f4a3be25bb17 +# Patch100-md5: 8211f0f6f0a2179e51b4ac42f91bd44d Patch0: %{name}-buildsystem1.patch Patch1: %{name}-buildsystem2.patch Patch2: %{name}-lfs.patch -Patch12: gcc-isl0.15-1.patch -Patch13: gcc-isl0.15-2.patch +Patch3: gcc-mingw32.patch URL: http://gcc.gnu.org/ BuildRequires: autoconf >= 2.64 -BuildRequires: automake >= 1:1.9.3 +BuildRequires: automake >= 1:1.11.1 BuildRequires: bison -BuildRequires: crossmingw32-binutils >= 2.15.91.0.2-2 +BuildRequires: crossmingw32-binutils >= 2.23 %{?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: flex >= 2.5.4 +BuildRequires: gettext-tools >= 0.14.5 +BuildRequires: gmp-devel >= 4.3.2 +BuildRequires: isl-devel >= 0.14 +BuildRequires: libmpc-devel >= 0.8.1 +BuildRequires: mpfr-devel >= 2.4.2 BuildRequires: perl-tools-pod -BuildRequires: texinfo >= 4.2 +BuildRequires: texinfo >= 4.7 +BuildRequires: zlib-devel %if %{with booststrap} BuildRequires: tar >= 1:1.22 BuildRequires: xz %endif -Requires: crossmingw32-binutils >= 2.15.91.0.2-2 +BuildConflicts: pdksh < 5.2.14-50 +Requires: crossmingw32-binutils >= 2.23 Requires: gcc-dirs +Requires: gmp >= 4.3.2 +Requires: isl >= 0.14 +Requires: libmpc >= 0.8.1 +Requires: mpfr >= 2.4.2 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define target i386-mingw32 @@ -111,6 +115,49 @@ 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 +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 @@ -141,7 +188,7 @@ Statyczna biblioteka GNU OpenMP - wersja skrośna MinGW32. 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 +Group: Applications/Emulators Requires: crossmingw32-libgcc-dll = %{epoch}:%{version}-%{release} Requires: crossmingw32-pthreads-w32-dll @@ -151,6 +198,53 @@ 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++ @@ -225,6 +319,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 @@ -373,8 +491,7 @@ Ten pakiet zawiera kompilator Javy generujący kod pod Win32. %patch100 -p0 %patch0 -p1 %patch2 -p1 -%patch12 -p1 -%patch13 -p1 +%patch3 -p1 %if %{with bootstrap} # note: "winsup" dir is special, handled by gcc's configure @@ -410,28 +527,30 @@ TEXCONFIG=false \ --with-build-time-tools=%{arch}/bin \ %{!?with_bootstrap:--with-headers=%{arch}/include} \ --with-libs=%{!?with_bootstrap:%{arch}/lib}%{?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 \ - --with-cloog \ - --with-ppl \ + --enable-c99 \ + --enable-fully-dynamic-string \ --disable-isl-version-check \ + --enable-languages="c,c++,fortran,java,objc,obj-c++" \ --enable-shared \ --enable-threads \ - --enable-languages="c,c++,fortran,java,objc" \ - --enable-c99 \ - --enable-fully-dynamic-string \ - --enable-libgomp \ + --disable-libcc1 \ + --enable-libgomp%{!?with_gomp:=no} \ + --disable-libssp \ --enable-libstdcxx-allocator=new \ + --enable-linker-build-id \ --enable-long-long \ - --enable-version-specific-runtime-libs \ - --disable-libssp \ + --enable-lto \ --disable-multilib \ --disable-nls \ --disable-sjlj-exceptions \ --disable-symvers \ + --enable-version-specific-runtime-libs \ + --disable-werror \ --disable-win32-registry \ --target=%{target} @@ -447,7 +566,7 @@ install -d $RPM_BUILD_ROOT%{_bindir} %{__make} -C builddir install \ DESTDIR=$RPM_BUILD_ROOT -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 @@ -456,14 +575,15 @@ ln -sf %{arch}/bin/%{target}-gcc $RPM_BUILD_ROOT%{_bindir}/%{target}-gcc ln -sf %{arch}/bin/%{target}-g++ $RPM_BUILD_ROOT%{_bindir}/%{target}-g++ ln -sf %{arch}/bin/%{target}-cpp $RPM_BUILD_ROOT%{_bindir}/%{target}-cpp ln -sf %{arch}/bin/%{target}-gcov $RPM_BUILD_ROOT%{_bindir}/%{target}-gcov +ln -sf %{arch}/bin/%{target}-gcov-tool $RPM_BUILD_ROOT%{_bindir}/%{target}-gcov-tool ln -sf %{arch}/bin/%{target}-gcj $RPM_BUILD_ROOT%{_bindir}/%{target}-gcj ln -sf %{arch}/bin/%{target}-jcf-dump $RPM_BUILD_ROOT%{_bindir}/%{target}-jcf-dump ln -sf %{arch}/bin/%{target}-gfortran $RPM_BUILD_ROOT%{_bindir}/%{target}-gfortran # DLLs install -d $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} +%{__mv} $RPM_BUILD_ROOT%{gccarchdir}/*.dll $RPM_BUILD_ROOT%{_dlldir} +%{__mv} $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} @@ -502,6 +622,7 @@ 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) %{_bindir}/%{target}-gcov-tool %attr(755,root,root) %{arch}/bin/%{target}-gcc %attr(755,root,root) %{arch}/bin/%{target}-gcc-%{version} %attr(755,root,root) %{arch}/bin/%{target}-gcc-ar @@ -509,6 +630,7 @@ rm -rf $RPM_BUILD_ROOT %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/%{target}-gcov-tool %dir %{gccarchdir} %dir %{gcclibdir} %attr(755,root,root) %{gcclibdir}/cc1 @@ -533,11 +655,26 @@ rm -rf $RPM_BUILD_ROOT %defattr(644,root,root,755) %{_dlldir}/libgcc_s_dw2-1.dll +%files -n crossmingw32-libatomic +%defattr(644,root,root,755) +%{gcclibdir}/libatomic.dll.a +%{gcclibdir}/libatomic.la + +%files -n crossmingw32-libatomic-static +%defattr(644,root,root,755) +%{gcclibdir}/libatomic.a + +%files -n crossmingw32-libatomic-dll +%defattr(644,root,root,755) +%{_dlldir}/libatomic-1.dll + %if %{with gomp} %files -n crossmingw32-libgomp %defattr(644,root,root,755) %{gcclibdir}/libgomp.dll.a %{gcclibdir}/libgomp.la +%{gcclibdir}/libgomp-plugin-host_nonshm.dll.a +%{gcclibdir}/libgomp-plugin-host_nonshm.la %{gcclibdir}/libgomp.spec %files -n crossmingw32-libgomp-static @@ -547,8 +684,26 @@ rm -rf $RPM_BUILD_ROOT %files -n crossmingw32-libgomp-dll %defattr(644,root,root,755) %{_dlldir}/libgomp-1.dll +%{_dlldir}/libgomp-plugin-host_nonshm-1.dll %endif +%files -n crossmingw32-libvtv +%defattr(644,root,root,755) +%{gcclibdir}/libvtv.dll.a +%{gcclibdir}/libvtv.la +%{gcclibdir}/libvtv_stubs.dll.a +%{gcclibdir}/libvtv_stubs.la + +%files -n crossmingw32-libvtv-static +%defattr(644,root,root,755) +%{gcclibdir}/libvtv.a +%{gcclibdir}/libvtv_stubs.a + +%files -n crossmingw32-libvtv-dll +%defattr(644,root,root,755) +%{_dlldir}/libvtv-0.dll +%{_dlldir}/libvtv_stubs-0.dll + %files c++ %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/%{target}-g++ @@ -572,11 +727,17 @@ rm -rf $RPM_BUILD_ROOT %files objc %defattr(644,root,root,755) +%doc libobjc/README %attr(755,root,root) %{gcclibdir}/cc1obj %{gcclibdir}/libobjc.dll.a %{gcclibdir}/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 diff --git a/gcc-isl0.15-1.patch b/gcc-isl0.15-1.patch deleted file mode 100644 index 4cdc746..0000000 --- a/gcc-isl0.15-1.patch +++ /dev/null @@ -1,237 +0,0 @@ -List-Id: -List-Archive: -From: Mike Frysinger -To: gcc-patches at gcc dot gnu dot org -Subject: [PATCH] gcc: fix building w/isl-0.15 -Date: Tue, 14 Jul 2015 10:45:12 -0400 -Message-Id: <1436885112-2174-1-git-send-email-vapier@gentoo.org> - ---- - gcc/config.in | 6 ++++++ - gcc/configure | 31 +++++++++++++++++++++++++++++++ - gcc/configure.ac | 14 ++++++++++++++ - gcc/graphite-dependences.c | 14 +++++++------- - gcc/graphite-optimize-isl.c | 8 ++++++-- - gcc/graphite-poly.h | 5 +++++ - 6 files changed, 69 insertions(+), 9 deletions(-) - -diff --git a/gcc/config.in b/gcc/config.in -index b031a62..23e1757 100644 ---- a/gcc/config.in -+++ b/gcc/config.in -@@ -1326,6 +1326,12 @@ - #endif - - -+/* Define if isl_options_set_schedule_serialize_sccs exists. */ -+#ifndef USED_FOR_TARGET -+#undef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS -+#endif -+ -+ - /* Define if isl_schedule_constraints_compute_schedule exists. */ - #ifndef USED_FOR_TARGET - #undef HAVE_ISL_SCHED_CONSTRAINTS_COMPUTE_SCHEDULE -diff --git a/gcc/configure b/gcc/configure -index 9561e5c..6e81298 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -27947,6 +27947,8 @@ - - # Check whether isl_schedule_constraints_compute_schedule is available; - # it's new in ISL-0.13. -+ # Check whether isl_options_set_schedule_serialize_sccs is available; -+ # it's new in ISL-0.15. - saved_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $ISLINC" - saved_LIBS="$LIBS" -@@ -27975,6 +27977,29 @@ - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_has_isl_schedule_constraints_compute_schedule" >&5 - $as_echo "$ac_has_isl_schedule_constraints_compute_schedule" >&6; } - -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for isl_options_set_schedule_serialize_sccs" >&5 -+$as_echo_n "checking Checking for isl_options_set_schedule_serialize_sccs... " >&6; } -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+#include -+int -+main () -+{ -+isl_options_set_schedule_serialize_sccs (NULL, 0); -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_cxx_try_link "$LINENO"; then : -+ ac_has_isl_options_set_schedule_serialize_sccs=yes -+else -+ ac_has_isl_options_set_schedule_serialize_sccs=no -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_has_isl_options_set_schedule_serialize_sccs" >&5 -+$as_echo "$ac_has_isl_options_set_schedule_serialize_sccs" >&6; } -+ - LIBS="$saved_LIBS" - CFLAGS="$saved_CFLAGS" - -@@ -27983,6 +28008,12 @@ - $as_echo "#define HAVE_ISL_SCHED_CONSTRAINTS_COMPUTE_SCHEDULE 1" >>confdefs.h - - fi -+ -+ if test x"$ac_has_isl_options_set_schedule_serialize_sccs" = x"yes"; then -+ -+$as_echo "#define HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS 1" >>confdefs.h -+ -+ fi - fi - - -diff --git a/gcc/configure.ac b/gcc/configure.ac -index cb14639..7fb964a 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -5535,6 +5535,8 @@ - - # Check whether isl_schedule_constraints_compute_schedule is available; - # it's new in ISL-0.13. -+ # Check whether isl_options_set_schedule_serialize_sccs is available; -+ # it's new in ISL-0.15. - saved_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $ISLINC" - saved_LIBS="$LIBS" -@@ -5547,6 +5549,13 @@ - [ac_has_isl_schedule_constraints_compute_schedule=no]) - AC_MSG_RESULT($ac_has_isl_schedule_constraints_compute_schedule) - -+ AC_MSG_CHECKING([Checking for isl_options_set_schedule_serialize_sccs]) -+ AC_TRY_LINK([#include ], -+ [isl_options_set_schedule_serialize_sccs (NULL, 0);], -+ [ac_has_isl_options_set_schedule_serialize_sccs=yes], -+ [ac_has_isl_options_set_schedule_serialize_sccs=no]) -+ AC_MSG_RESULT($ac_has_isl_options_set_schedule_serialize_sccs) -+ - LIBS="$saved_LIBS" - CFLAGS="$saved_CFLAGS" - -@@ -5554,6 +5563,11 @@ - AC_DEFINE(HAVE_ISL_SCHED_CONSTRAINTS_COMPUTE_SCHEDULE, 1, - [Define if isl_schedule_constraints_compute_schedule exists.]) - fi -+ -+ if test x"$ac_has_isl_options_set_schedule_serialize_sccs" = x"yes"; then -+ AC_DEFINE(HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS, 1, -+ [Define if isl_options_set_schedule_serialize_sccs exists.]) -+ fi - fi - - -diff --git a/gcc/graphite-dependences.c b/gcc/graphite-dependences.c -index 50fe73e..9a0986d 100644 ---- a/gcc/graphite-dependences.c -+++ b/gcc/graphite-dependences.c -@@ -205,7 +205,7 @@ scop_get_transformed_schedule (scop_p scop, vec pbbs) - /* Helper function used on each MAP of a isl_union_map. Computes the - maximal output dimension. */ - --static int -+static isl_stat - max_number_of_out_dimensions (__isl_take isl_map *map, void *user) - { - int global_max = *((int *) user); -@@ -217,7 +217,7 @@ max_number_of_out_dimensions (__isl_take isl_map *map, void *user) - - isl_map_free (map); - isl_space_free (space); -- return 0; -+ return isl_stat_ok; - } - - /* Extends the output dimension of MAP to MAX dimensions. */ -@@ -241,12 +241,12 @@ struct extend_schedule_str { - - /* Helper function for extend_schedule. */ - --static int -+static isl_stat - extend_schedule_1 (__isl_take isl_map *map, void *user) - { - struct extend_schedule_str *str = (struct extend_schedule_str *) user; - str->umap = isl_union_map_add_map (str->umap, extend_map (map, str->max)); -- return 0; -+ return isl_stat_ok; - } - - /* Return a relation that has uniform output dimensions. */ -@@ -255,16 +255,16 @@ __isl_give isl_union_map * - extend_schedule (__isl_take isl_union_map *x) - { - int max = 0; -- int res; -+ isl_stat res; - struct extend_schedule_str str; - - res = isl_union_map_foreach_map (x, max_number_of_out_dimensions, (void *) &max); -- gcc_assert (res == 0); -+ gcc_assert (res == isl_stat_ok); - - str.max = max; - str.umap = isl_union_map_empty (isl_union_map_get_space (x)); - res = isl_union_map_foreach_map (x, extend_schedule_1, (void *) &str); -- gcc_assert (res == 0); -+ gcc_assert (res == isl_stat_ok); - - isl_union_map_free (x); - return str.umap; -diff --git a/gcc/graphite-optimize-isl.c b/gcc/graphite-optimize-isl.c -index f490401..388e25c 100644 ---- a/gcc/graphite-optimize-isl.c -+++ b/gcc/graphite-optimize-isl.c -@@ -506,13 +506,13 @@ getScheduleMap (isl_schedule *Schedule, isl_union_map **map_sepcl) - return ScheduleMap; - } - --static int -+static isl_stat - getSingleMap (__isl_take isl_map *map, void *user) - { - isl_map **singleMap = (isl_map **) user; - *singleMap = map; - -- return 0; -+ return isl_stat_ok; - } - - static void -@@ -584,7 +584,11 @@ optimize_isl (scop_p scop) - - isl_options_set_schedule_max_constant_term (scop->ctx, CONSTANT_BOUND); - isl_options_set_schedule_maximize_band_depth (scop->ctx, 1); -+#ifdef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS -+ isl_options_set_schedule_serialize_sccs (scop->ctx, 1); -+#else - isl_options_set_schedule_fuse (scop->ctx, ISL_SCHEDULE_FUSE_MIN); -+#endif - isl_options_set_on_error (scop->ctx, ISL_ON_ERROR_CONTINUE); - - #ifdef HAVE_ISL_SCHED_CONSTRAINTS_COMPUTE_SCHEDULE -diff --git a/gcc/graphite-poly.h b/gcc/graphite-poly.h -index 7ffd18e..7022a1d 100644 ---- a/gcc/graphite-poly.h -+++ b/gcc/graphite-poly.h -@@ -24,6 +24,11 @@ along with GCC; see the file COPYING3. If not see - - #include "sese.h" - -+#ifndef HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS -+# define isl_stat int -+# define isl_stat_ok 0 -+#endif -+ - typedef struct poly_dr *poly_dr_p; - - typedef struct poly_bb *poly_bb_p; --- -2.4.4 - diff --git a/gcc-isl0.15-2.patch b/gcc-isl0.15-2.patch deleted file mode 100644 index a12a08f..0000000 --- a/gcc-isl0.15-2.patch +++ /dev/null @@ -1,86 +0,0 @@ -List-Id: -List-Archive: -From: Bernhard Reutner-Fischer -To: gcc-patches at gcc dot gnu dot org -Subject: [PATCH] gcc/: Fix building with isl-0.15.0; includes -Date: Fri, 17 Jul 2015 13:10:26 +0200 -Message-Id: <1437131426-27008-1-git-send-email-rep.dot.nop@gmail.com> -In-Reply-To: <1436885112-2174-1-git-send-email-vapier at gentoo dot org> -References: <1436885112-2174-1-git-send-email-vapier@gentoo.org> - -In addition to Mike's "[PATCH] gcc: fix building w/isl-0.15" in -https://gcc.gnu.org/ml/gcc-patches/2015-07/msg01162.html -I seem to also need a couple of more includes for isl-0.15.0: - -2015-07-15 Bernhard Reutner-Fischer - - * graphite-blocking.c, graphite-dependences.c, - graphite-interchange.c, graphite-isl-ast-to-gimple.c, - graphite-optimize-isl.c, graphite-poly.c, - graphite-scop-detection.c, graphite-sese-to-poly.c, - graphite.c: Add missing isl includes. ---- - gcc/graphite-blocking.c | 1 + - gcc/graphite-dependences.c | 1 + - gcc/graphite-interchange.c | 1 + - gcc/graphite-isl-ast-to-gimple.c | 2 ++ - gcc/graphite-optimize-isl.c | 2 ++ - gcc/graphite-poly.c | 1 + - gcc/graphite-scop-detection.c | 1 + - gcc/graphite-sese-to-poly.c | 1 + - gcc/graphite.c | 1 + - 9 files changed, 11 insertions(+) - -diff --git a/gcc/graphite-interchange.c b/gcc/graphite-interchange.c -index aee51a8..bcf7f3b 100644 ---- a/gcc/graphite-interchange.c -+++ b/gcc/graphite-interchange.c -@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. - #include "config.h" - - #ifdef HAVE_cloog -+#include - #include - #include - #include -diff --git a/gcc/graphite-optimize-isl.c b/gcc/graphite-optimize-isl.c -index 388e25c..2b55783 100644 ---- a/gcc/graphite-optimize-isl.c -+++ b/gcc/graphite-optimize-isl.c -@@ -21,7 +21,9 @@ along with GCC; see the file COPYING3. - #include "config.h" - - #ifdef HAVE_cloog -+#include - #include -+#include - #include - #include - #include -diff --git a/gcc/graphite-scop-detection.c b/gcc/graphite-scop-detection.c -index 47e0da0..22fdde3 100644 ---- a/gcc/graphite-scop-detection.c -+++ b/gcc/graphite-scop-detection.c -@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. - #include "config.h" - - #ifdef HAVE_cloog -+#include - #include - #include - #include -diff --git a/gcc/graphite.c b/gcc/graphite.c -index a81ef6a..32f405a 100644 ---- a/gcc/graphite.c -+++ b/gcc/graphite.c -@@ -35,6 +35,7 @@ along with GCC; see the file COPYING3. - #include "config.h" - - #ifdef HAVE_cloog -+#include - #include - #include - #include --- -1.7.10.4 - diff --git a/gcc-mingw32.patch b/gcc-mingw32.patch new file mode 100644 index 0000000..40d2adb --- /dev/null +++ b/gcc-mingw32.patch @@ -0,0 +1,12 @@ +--- gcc-5.4.0/libgfortran/intrinsics/chmod.c.orig 2016-12-18 10:38:13.034904609 +0100 ++++ gcc-5.4.0/libgfortran/intrinsics/chmod.c 2016-12-18 10:38:15.398237920 +0100 +@@ -30,6 +30,9 @@ + #include /* For memcpy. */ + #include /* For free. */ + #include /* For stat, chmod and umask. */ ++#ifdef __MINGW32__ ++#include ++#endif + + + /* INTEGER FUNCTION CHMOD (NAME, MODE) diff --git a/gcc-optimize-la.pl b/gcc-optimize-la.pl index bd41d9c..39c4eac 100644 --- a/gcc-optimize-la.pl +++ b/gcc-optimize-la.pl @@ -18,7 +18,7 @@ foreach (@lines) { if (/(^dependency_libs='(.*)')[\ \t]*$/) { - my $trimmed = trim($2); + my $trimmed = trim($2); $trimmed =~ y/'//d; @libs = split(/[\ \t\n]+/, $trimmed); @L = grep(/^-L.*gcc\/.*\/\d\.\d\.\d(\/(32|64|x32|nof))*$/, @libs); -- 2.44.0