public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/gcc] rhel-f41-base: 9.0.1-0.3
@ 2026-06-29 12:28 Jakub Jelinek
0 siblings, 0 replies; 3+ messages in thread
From: Jakub Jelinek @ 2026-06-29 12:28 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/gcc
Branch : rhel-f41-base
Commit : fe09f8496b3fb8c0c7706c6ee556a03ca6b21d35
Author : Jakub Jelinek <jakub@redhat.com>
Date : 2019-02-03T11:59:20+01:00
Stats : +1/-1 in 1 file(s)
URL : https://src.fedoraproject.org/rpms/gcc/c/fe09f8496b3fb8c0c7706c6ee556a03ca6b21d35?branch=rhel-f41-base
Log:
9.0.1-0.3
---
diff --git a/gcc.spec b/gcc.spec
index 7b2a1ce..99378ca 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -2951,7 +2951,7 @@ end
%endif
%changelog
-* Sun Jan 3 2019 Jakub Jelinek <jakub@redhat.com> 9.0.1-0.3
+* Sun Feb 3 2019 Jakub Jelinek <jakub@redhat.com> 9.0.1-0.3
- update from trunk
- PRs c++/80864, c++/86943, c++/87175, c++/88325, c++/88752, c++/88761,
c++/88983, c++/88988, c++/89083, c++/89105, c++/89119, c/88956,
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [rpms/gcc] rhel-f41-base: 9.0.1-0.3
@ 2026-06-29 12:28 Jakub Jelinek
0 siblings, 0 replies; 3+ messages in thread
From: Jakub Jelinek @ 2026-06-29 12:28 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/gcc
Branch : rhel-f41-base
Commit : 16bcddd9d4ccdfdd482dc4411b1af0a9adefe9cc
Author : Jakub Jelinek <jakub@redhat.com>
Date : 2019-02-03T11:56:05+01:00
Stats : +20/-6 in 3 file(s)
URL : https://src.fedoraproject.org/rpms/gcc/c/16bcddd9d4ccdfdd482dc4411b1af0a9adefe9cc?branch=rhel-f41-base
Log:
9.0.1-0.3
---
diff --git a/.gitignore b/.gitignore
index 65881c6..84695d8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -61,3 +61,4 @@
/gcc-9.0.0-20190121.tar.xz
/gcc-9.0.1-20190123.tar.xz
/gcc-9.0.1-20190129.tar.xz
+/gcc-9.0.1-20190203.tar.xz
diff --git a/gcc.spec b/gcc.spec
index cae4de7..7b2a1ce 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,10 +1,10 @@
-%global DATE 20190129
+%global DATE 20190203
%global SVNREV 268371
%global gcc_version 9.0.1
%global gcc_major 9
# Note, gcc_release must be integer, if you want to add suffixes to
# %%{release}, append them after %%{gcc_release} on Release: line.
-%global gcc_release 0.2
+%global gcc_release 0.3
%global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f
%global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24
%global _unpackaged_files_terminate_build 0
@@ -101,7 +101,7 @@
Summary: Various compilers (C, C++, Objective-C, ...)
Name: gcc
Version: %{gcc_version}
-Release: %{gcc_release}%{?dist}.1
+Release: %{gcc_release}%{?dist}
# libgcc, libgfortran, libgomp, libstdc++ and crtstuff have
# GCC Runtime Exception.
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
@@ -2951,8 +2951,21 @@ end
%endif
%changelog
-* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 9.0.1-0.2.1
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+* Sun Jan 3 2019 Jakub Jelinek <jakub@redhat.com> 9.0.1-0.3
+- update from trunk
+ - PRs c++/80864, c++/86943, c++/87175, c++/88325, c++/88752, c++/88761,
+ c++/88983, c++/88988, c++/89083, c++/89105, c++/89119, c/88956,
+ c/89061, c/89122, fortran/52564, fortran/52884, fortran/57048,
+ fortran/81344, fortran/83246, fortran/88298, fortran/88393,
+ fortran/88669, fortran/88685, fortran/88980, fortran/89084, hsa/87863,
+ libbacktrace/89136, libfortran/78314, libfortran/88678,
+ libstdc++/88170, libstdc++/89117, middle-end/87887, middle-end/88597,
+ middle-end/89137, other/89106, rtl-optimization/87246,
+ rtl-optimization/88593, rtl-optimization/89115, sanitizer/89124,
+ target/89071, testsuite/87451, testsuite/88920, testsuite/89110,
+ tree-optimization/85497, tree-optimization/88107,
+ tree-optimization/88932, tree-optimization/89111,
+ tree-optimization/89135, tree-optimization/89143
* Tue Jan 29 2019 Jakub Jelinek <jakub@redhat.com> 9.0.1-0.2
- update from trunk
diff --git a/sources b/sources
index 5c8e034..c984ae5 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (gcc-9.0.1-20190129.tar.xz) = 541c90431c4a30df62ceb3552693a450f6a95bc6244f5e1c13ca3f4eb3b5837e19731f9b2cbe83892c6d4ef37192b3309e8d248940931507040350e8450d98e3
+SHA512 (gcc-9.0.1-20190203.tar.xz) = e82e8f94fde788c57a688db80b7d763cf636621f588bea3ba807118c6fde0177262f72b150f918dcd892fec614400da5fecb15f432ae67cd0333aaca5d6640c9
SHA512 (nvptx-newlib-aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24.tar.xz) = 94f7089365296f7dfa485107b4143bebc850a81586f3460fd896bbbb6ba099a00217d4042133424fd2183b352132f4fd367e6a60599bdae2a26dfd48a77d0e04
SHA512 (nvptx-tools-c28050f60193b3b95a18866a96f03334e874e78f.tar.xz) = a688cb12cf805950a5abbb13b52f45c81dbee98e310b7ed57ae20e76dbfa5964a16270148374a6426d177db71909d28360490f091c86a5d19d4faa5127beeee1
^ permalink raw reply related [flat|nested] 3+ messages in thread* [rpms/gcc] rhel-f41-base: 9.0.1-0.3
@ 2026-06-29 12:28 Jakub Jelinek
0 siblings, 0 replies; 3+ messages in thread
From: Jakub Jelinek @ 2026-06-29 12:28 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/gcc
Branch : rhel-f41-base
Commit : 3694befabb21253ecad9638a716af14de71e285b
Author : Jakub Jelinek <jakub@redhat.com>
Date : 2019-01-19T16:14:16+01:00
Stats : +1702/-2357 in 32 file(s)
URL : https://src.fedoraproject.org/rpms/gcc/c/3694befabb21253ecad9638a716af14de71e285b?branch=rhel-f41-base
Log:
9.0.1-0.3
---
diff --git a/.gitignore b/.gitignore
index 18ec708..23e1e70 100644
--- a/.gitignore
+++ b/.gitignore
@@ -57,3 +57,4 @@
/gcc-8.2.1-20181105.tar.xz
/gcc-8.2.1-20181215.tar.xz
/gcc-8.2.1-20190109.tar.xz
+/gcc-9.0.0-20190119.tar.xz
diff --git a/gcc.spec b/gcc.spec
index e0c4f1f..a8fdfb2 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,10 +1,10 @@
-%global DATE 20190109
-%global SVNREV 267776
-%global gcc_version 8.2.1
-%global gcc_major 8
+%global DATE 20190119
+%global SVNREV 268094
+%global gcc_version 9.0.0
+%global gcc_major 9
# Note, gcc_release must be integer, if you want to add suffixes to
# %%{release}, append them after %%{gcc_release} on Release: line.
-%global gcc_release 7
+%global gcc_release 0.3
%global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f
%global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24
%global _unpackaged_files_terminate_build 0
@@ -20,6 +20,7 @@
%global build_ada 0
%global build_objc 0
%global build_go 0
+%global build_d 0
%else
%ifarch %{ix86} x86_64 ia64 ppc %{power64} alpha s390x %{arm} aarch64
%global build_ada 1
@@ -32,6 +33,11 @@
%else
%global build_go 0
%endif
+%ifarch %{ix86} x86_64 %{arm} %{mips}
+%global build_d 1
+%else
+%global build_d 0
+%endif
%endif
%ifarch %{ix86} x86_64 ia64 ppc64le
%global build_libquadmath 1
@@ -68,15 +74,6 @@
%else
%global build_libitm 0
%endif
-%if 0%{?rhel} > 7
-%global build_libmpx 0
-%else
-%ifarch %{ix86} x86_64
-%global build_libmpx 1
-%else
-%global build_libmpx 0
-%endif
-%endif
%global build_isl 1
%global build_libstdcxx_docs 1
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips}
@@ -111,7 +108,7 @@ License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2
Group: Development/Languages
# The source for this package was pulled from upstream's vcs. Use the
# following commands to generate the tarball:
-# svn export svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-8-branch@%%{SVNREV} gcc-%%{version}-%%{DATE}
+# svn export svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-9-branch@%%{SVNREV} gcc-%%{version}-%%{DATE}
# tar cf - gcc-%%{version}-%%{DATE} | xz -9e > gcc-%%{version}-%%{DATE}.tar.xz
Source0: gcc-%{version}-%{DATE}.tar.xz
# The source for nvptx-tools package was pulled from upstream's vcs. Use the
@@ -239,6 +236,8 @@ Obsoletes: gcc-java < %{version}-%{release}
%ifarch %{ix86} x86_64
Obsoletes: libcilkrts
Obsoletes: libcilkrts-static
+Obsoletes: libmpx
+Obsoletes: libmpx-static
%endif
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
@@ -246,19 +245,22 @@ AutoReq: true
Provides: bundled(libiberty)
Provides: gcc(major) = %{gcc_major}
-Patch0: gcc8-hack.patch
-Patch2: gcc8-i386-libgomp.patch
-Patch3: gcc8-sparc-config-detection.patch
-Patch4: gcc8-libgomp-omp_h-multilib.patch
-Patch5: gcc8-libtool-no-rpath.patch
-Patch6: gcc8-isl-dl.patch
-Patch7: gcc8-libstdc++-docs.patch
-Patch8: gcc8-no-add-needed.patch
-Patch9: gcc8-foffload-default.patch
-Patch10: gcc8-Wno-format-security.patch
-Patch11: gcc8-rh1512529-aarch64.patch
-Patch12: gcc8-mcet.patch
-Patch13: gcc8-rh1574936.patch
+Patch0: gcc9-hack.patch
+Patch1: gcc9-i386-libgomp.patch
+Patch2: gcc9-sparc-config-detection.patch
+Patch3: gcc9-libgomp-omp_h-multilib.patch
+Patch4: gcc9-libtool-no-rpath.patch
+Patch5: gcc9-isl-dl.patch
+Patch6: gcc9-libstdc++-docs.patch
+Patch7: gcc9-no-add-needed.patch
+Patch8: gcc9-foffload-default.patch
+Patch9: gcc9-Wno-format-security.patch
+Patch10: gcc9-rh1574936.patch
+Patch11: gcc9-d-shared-libphobos.patch
+Patch12: gcc9-pr88714.patch
+Patch13: gcc9-pr88901.patch
+Patch14: gcc9-pr88044.patch
+Patch15: gcc9-utf-array-test.patch
Patch1000: nvptx-tools-no-ptxas.patch
Patch1001: nvptx-tools-build.patch
@@ -285,7 +287,7 @@ Patch1002: nvptx-tools-glibc.patch
%if %{build_go}
# Avoid stripping these libraries and binaries.
%global __os_install_post \
-chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.13.* \
+chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.14.* \
chmod 644 %{buildroot}%{_prefix}/bin/go.gcc \
chmod 644 %{buildroot}%{_prefix}/bin/gofmt.gcc \
chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cgo \
@@ -293,7 +295,7 @@ chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/test2json \
chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/vet \
%__os_install_post \
-chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgo.so.13.* \
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgo.so.14.* \
chmod 755 %{buildroot}%{_prefix}/bin/go.gcc \
chmod 755 %{buildroot}%{_prefix}/bin/gofmt.gcc \
chmod 755 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cgo \
@@ -304,11 +306,11 @@ chmod 755 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
%endif
%description
-The gcc package contains the GNU Compiler Collection version 8.
+The gcc package contains the GNU Compiler Collection version 9.
You'll need this package in order to compile C code.
%package -n libgcc
-Summary: GCC version 8 shared support library
+Summary: GCC version 9 shared support library
Group: System Environment/Libraries
Autoreq: false
%if !%{build_ada}
@@ -448,6 +450,37 @@ Requires: libquadmath-static = %{version}-%{release}
%description -n libgfortran-static
This package contains static Fortran libraries.
+%package gdc
+Summary: D support
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libgphobos = %{version}-%{release}
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Autoreq: true
+
+%description gdc
+The gcc-gdc package provides support for compiling D
+programs with the GNU Compiler Collection.
+
+%package -n libgphobos
+Summary: D runtime
+Group: System Environment/Libraries
+Autoreq: true
+
+%description -n libgphobos
+This package contains D shared library which is needed to run
+D dynamically linked programs.
+
+%package -n libgphobos-static
+Summary: Static D libraries
+Group: Development/Libraries
+Requires: libghobos = %{version}-%{release}
+Requires: gcc-gdc = %{version}-%{release}
+
+%description -n libgphobos-static
+This package contains static D libraries.
+
%package -n libgomp
Summary: GCC OpenMP v4.5 shared support library
Group: System Environment/Libraries
@@ -647,24 +680,6 @@ Requires: liblsan = %{version}-%{release}
%description -n liblsan-static
This package contains Leak Sanitizer static runtime library.
-%package -n libmpx
-Summary: The Memory Protection Extensions runtime libraries
-Group: System Environment/Libraries
-Requires(post): /sbin/install-info
-Requires(preun): /sbin/install-info
-
-%description -n libmpx
-This package contains the Memory Protection Extensions runtime libraries
-which is used for -fcheck-pointer-bounds -mmpx instrumented programs.
-
-%package -n libmpx-static
-Summary: The Memory Protection Extensions static libraries
-Group: Development/Libraries
-Requires: libmpx = %{version}-%{release}
-
-%description -n libmpx-static
-This package contains the Memory Protection Extensions static runtime libraries.
-
%package -n cpp
Summary: The C Preprocessor
Group: Development/Languages
@@ -807,26 +822,27 @@ to NVidia PTX capable devices if available.
%prep
%setup -q -n gcc-%{version}-%{DATE} -a 1 -a 2
%patch0 -p0 -b .hack~
-%patch2 -p0 -b .i386-libgomp~
-%patch3 -p0 -b .sparc-config-detection~
-%patch4 -p0 -b .libgomp-omp_h-multilib~
-%patch5 -p0 -b .libtool-no-rpath~
+%patch1 -p0 -b .i386-libgomp~
+%patch2 -p0 -b .sparc-config-detection~
+%patch3 -p0 -b .libgomp-omp_h-multilib~
+%patch4 -p0 -b .libtool-no-rpath~
%if %{build_isl}
-%patch6 -p0 -b .isl-dl~
+%patch5 -p0 -b .isl-dl~
%endif
%if %{build_libstdcxx_docs}
-%patch7 -p0 -b .libstdc++-docs~
-%endif
-%patch8 -p0 -b .no-add-needed~
-%patch9 -p0 -b .foffload-default~
-%patch10 -p0 -b .Wno-format-security~
-%patch11 -p0 -b .rh1512529-aarch64~
-%if 0%{?fedora} == 28
-%patch12 -p0 -b .mcet~
+%patch6 -p0 -b .libstdc++-docs~
%endif
+%patch7 -p0 -b .no-add-needed~
+%patch8 -p0 -b .foffload-default~
+%patch9 -p0 -b .Wno-format-security~
%if 0%{?fedora} >= 29 || 0%{?rhel} > 7
-%patch13 -p0 -b .rh1574936~
+%patch10 -p0 -b .rh1574936~
%endif
+%patch11 -p0 -b .d-shared-libphobos~
+%patch12 -p0 -b .pr88714~
+%patch13 -p0 -b .pr88901~
+%patch14 -p0 -b .pr88044~
+%patch15 -p0 -b .utf-array-test~
cd nvptx-tools-%{nvptx_tools_gitrev}
%patch1000 -p1 -b .nvptx-tools-no-ptxas~
@@ -838,8 +854,6 @@ echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE
cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h
-echo 'TM_H += $(srcdir)/config/rs6000/rs6000-modes.h' >> gcc/config/rs6000/t-rs6000
-
./contrib/gcc_update --touch
LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi
@@ -934,6 +948,7 @@ cd obj-%{gcc_target_platform}
enablelgo=
enablelada=
enablelobjc=
+enableld=
%if %{build_objc}
enablelobjc=,objc,obj-c++
%endif
@@ -943,6 +958,9 @@ enablelada=,ada
%if %{build_go}
enablelgo=,go
%endif
+%if %{build_d}
+enableld=,d
+%endif
CONFIGURE_OPTS="\
--prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
--with-bugurl=http://bugzilla.redhat.com/bugzilla \
@@ -966,11 +984,6 @@ CONFIGURE_OPTS="\
%else
--without-isl \
%endif
-%if %{build_libmpx}
- --enable-libmpx \
-%else
- --disable-libmpx \
-%endif
%if %{build_offload_nvptx}
--enable-offload-targets=nvptx-none \
--without-cuda-driver \
@@ -1067,7 +1080,7 @@ CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \
| sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \
XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
../configure --enable-bootstrap \
- --enable-languages=c,c++,fortran${enablelobjc}${enablelada}${enablelgo},lto \
+ --enable-languages=c,c++,fortran${enablelobjc}${enablelada}${enablelgo}${enableld},lto \
$CONFIGURE_OPTS
%ifarch sparc sparcv9 sparc64
@@ -1119,11 +1132,11 @@ cd ../..
# Copy various doc files here and there
cd ..
-mkdir -p rpm.doc/gfortran rpm.doc/objc
+mkdir -p rpm.doc/gfortran rpm.doc/objc rpm.doc/gdc rpm.doc/libphobos
mkdir -p rpm.doc/go rpm.doc/libgo rpm.doc/libquadmath rpm.doc/libitm
-mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/ada,gcc/jit,libstdc++-v3,libobjc,libgomp,libcc1,libatomic,libsanitizer,libmpx}
+mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/ada,gcc/jit,libstdc++-v3,libobjc,libgomp,libcc1,libatomic,libsanitizer}
-for i in {gcc,gcc/cp,gcc/ada,gcc/jit,libstdc++-v3,libobjc,libgomp,libcc1,libatomic,libsanitizer,libmpx}/ChangeLog*; do
+for i in {gcc,gcc/cp,gcc/ada,gcc/jit,libstdc++-v3,libobjc,libgomp,libcc1,libatomic,libsanitizer}/ChangeLog*; do
cp -p $i rpm.doc/changelogs/$i
done
@@ -1138,6 +1151,15 @@ done)
cp -p $i ../rpm.doc/objc/$i.libobjc
done)
%endif
+%if %{build_d}
+(cd gcc/d; for i in ChangeLog*; do
+ cp -p $i ../../rpm.doc/gdc/$i.gdc
+done)
+(cd libphobos; for i in ChangeLog*; do
+ cp -p $i ../rpm.doc/libphobos/$i.libphobos
+done
+cp -a src/LICENSE*.txt libdruntime/LICENSE ../rpm.doc/libphobos/)
+%endif
%if %{build_libquadmath}
(cd libquadmath; for i in ChangeLog* COPYING.LIB; do
cp -p $i ../rpm.doc/libquadmath/$i.libquadmath
@@ -1303,15 +1325,15 @@ fi
find %{buildroot} -name \*.la | xargs rm -f
mv %{buildroot}%{_prefix}/%{_lib}/libgfortran.spec $FULLPATH/
+%if %{build_d}
+mv %{buildroot}%{_prefix}/%{_lib}/libgphobos.spec $FULLPATH/
+%endif
%if %{build_libitm}
mv %{buildroot}%{_prefix}/%{_lib}/libitm.spec $FULLPATH/
%endif
%if %{build_libasan}
mv %{buildroot}%{_prefix}/%{_lib}/libsanitizer.spec $FULLPATH/
%endif
-%if %{build_libmpx}
-mv %{buildroot}%{_prefix}/%{_lib}/libmpx.spec $FULLPATH/
-%endif
mkdir -p %{buildroot}/%{_lib}
mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_major}-%{DATE}.so.1
@@ -1395,11 +1417,15 @@ ln -sf ../../../libstdc++.so.6.*[0-9] libstdc++.so
ln -sf ../../../libgfortran.so.5.* libgfortran.so
ln -sf ../../../libgomp.so.1.* libgomp.so
%if %{build_go}
-ln -sf ../../../libgo.so.13.* libgo.so
+ln -sf ../../../libgo.so.14.* libgo.so
%endif
%if %{build_libquadmath}
ln -sf ../../../libquadmath.so.0.* libquadmath.so
%endif
+%if %{build_d}
+ln -sf ../../../libgdruntime.so.76.* libgdruntime.so
+ln -sf ../../../libgphobos.so.76.* libgphobos.so
+%endif
%if %{build_libitm}
ln -sf ../../../libitm.so.1.* libitm.so
%endif
@@ -1413,10 +1439,6 @@ mv ../../../libasan_preinit.o libasan_preinit.o
%if %{build_libubsan}
ln -sf ../../../libubsan.so.1.* libubsan.so
%endif
-%if %{build_libmpx}
-ln -sf ../../../libmpx.so.2.* libmpx.so
-ln -sf ../../../libmpxwrappers.so.2.* libmpxwrappers.so
-%endif
else
%if %{build_objc}
ln -sf ../../../../%{_lib}/libobjc.so.4 libobjc.so
@@ -1425,11 +1447,15 @@ ln -sf ../../../../%{_lib}/libstdc++.so.6.*[0-9] libstdc++.so
ln -sf ../../../../%{_lib}/libgfortran.so.5.* libgfortran.so
ln -sf ../../../../%{_lib}/libgomp.so.1.* libgomp.so
%if %{build_go}
-ln -sf ../../../../%{_lib}/libgo.so.13.* libgo.so
+ln -sf ../../../../%{_lib}/libgo.so.14.* libgo.so
%endif
%if %{build_libquadmath}
ln -sf ../../../../%{_lib}/libquadmath.so.0.* libquadmath.so
%endif
+%if %{build_d}
+ln -sf ../../../../%{_lib}/libgdruntime.so.76.* libgdruntime.so
+ln -sf ../../../../%{_lib}/libgphobos.so.76.* libgphobos.so
+%endif
%if %{build_libitm}
ln -sf ../../../../%{_lib}/libitm.so.1.* libitm.so
%endif
@@ -1443,10 +1469,6 @@ mv ../../../../%{_lib}/libasan_preinit.o libasan_preinit.o
%if %{build_libubsan}
ln -sf ../../../../%{_lib}/libubsan.so.1.* libubsan.so
%endif
-%if %{build_libmpx}
-ln -sf ../../../../%{_lib}/libmpx.so.2.* libmpx.so
-ln -sf ../../../../%{_lib}/libmpxwrappers.so.2.* libmpxwrappers.so
-%endif
%if %{build_libtsan}
rm -f libtsan.so
echo 'INPUT ( %{_prefix}/%{_lib}/'`echo ../../../../%{_lib}/libtsan.so.0.* | sed 's,^.*libt,libt,'`' )' > libtsan.so
@@ -1469,6 +1491,10 @@ mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.*a .
%if %{build_libquadmath}
mv -f %{buildroot}%{_prefix}/%{_lib}/libquadmath.*a $FULLLPATH/
%endif
+%if %{build_d}
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgdruntime.*a $FULLLPATH/
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgphobos.*a $FULLLPATH/
+%endif
%if %{build_libitm}
mv -f %{buildroot}%{_prefix}/%{_lib}/libitm.*a $FULLLPATH/
%endif
@@ -1481,10 +1507,6 @@ mv -f %{buildroot}%{_prefix}/%{_lib}/libasan.*a $FULLLPATH/
%if %{build_libubsan}
mv -f %{buildroot}%{_prefix}/%{_lib}/libubsan.*a $FULLLPATH/
%endif
-%if %{build_libmpx}
-mv -f %{buildroot}%{_prefix}/%{_lib}/libmpx.*a $FULLLPATH/
-mv -f %{buildroot}%{_prefix}/%{_lib}/libmpxwrappers.*a $FULLLPATH/
-%endif
%if %{build_libtsan}
mv -f %{buildroot}%{_prefix}/%{_lib}/libtsan.*a $FULLPATH/
%endif
@@ -1509,28 +1531,28 @@ mv -f $FULLPATH/ada{include,lib} $FULLLPATH/
pushd $FULLLPATH/adalib
if [ "%{_lib}" = "lib" ]; then
ln -sf ../../../../../libgnarl-*.so libgnarl.so
-ln -sf ../../../../../libgnarl-*.so libgnarl-8.so
+ln -sf ../../../../../libgnarl-*.so libgnarl-9.so
ln -sf ../../../../../libgnat-*.so libgnat.so
-ln -sf ../../../../../libgnat-*.so libgnat-8.so
+ln -sf ../../../../../libgnat-*.so libgnat-9.so
else
ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl.so
-ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl-8.so
+ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl-9.so
ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat.so
-ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat-8.so
+ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat-9.so
fi
popd
else
pushd $FULLPATH/adalib
if [ "%{_lib}" = "lib" ]; then
ln -sf ../../../../libgnarl-*.so libgnarl.so
-ln -sf ../../../../libgnarl-*.so libgnarl-8.so
+ln -sf ../../../../libgnarl-*.so libgnarl-9.so
ln -sf ../../../../libgnat-*.so libgnat.so
-ln -sf ../../../../libgnat-*.so libgnat-8.so
+ln -sf ../../../../libgnat-*.so libgnat-9.so
else
ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl.so
-ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-8.so
+ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-9.so
ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat.so
-ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-8.so
+ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-9.so
fi
popd
fi
@@ -1545,14 +1567,21 @@ ln -sf ../`echo ../../../../lib/libgfortran.so.5.* | sed s~/lib/~/lib64/~` 64/li
ln -sf ../`echo ../../../../lib/libgomp.so.1.* | sed s~/lib/~/lib64/~` 64/libgomp.so
%if %{build_go}
rm -f libgo.so
-echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgo.so.13.* | sed 's,^.*libg,libg,'`' )' > libgo.so
-echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgo.so.13.* | sed 's,^.*libg,libg,'`' )' > 64/libgo.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgo.so.14.* | sed 's,^.*libg,libg,'`' )' > libgo.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgo.so.14.* | sed 's,^.*libg,libg,'`' )' > 64/libgo.so
%endif
%if %{build_libquadmath}
rm -f libquadmath.so
echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libquadmath.so.0.* | sed 's,^.*libq,libq,'`' )' > libquadmath.so
echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libquadmath.so.0.* | sed 's,^.*libq,libq,'`' )' > 64/libquadmath.so
%endif
+%if %{build_d}
+rm -f libgdruntime.so libgphobos.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgdruntime.so.76.* | sed 's,^.*libg,libg,'`' )' > libgdruntime.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgdruntime.so.76.* | sed 's,^.*libg,libg,'`' )' > 64/libgdruntime.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgphobos.so.76.* | sed 's,^.*libg,libg,'`' )' > libgphobos.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgphobos.so.76.* | sed 's,^.*libg,libg,'`' )' > 64/libgphobos.so
+%endif
%if %{build_libitm}
rm -f libitm.so
echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libitm.so.1.* | sed 's,^.*libi,libi,'`' )' > libitm.so
@@ -1574,14 +1603,6 @@ rm -f libubsan.so
echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libubsan.so.1.* | sed 's,^.*libu,libu,'`' )' > libubsan.so
echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libubsan.so.1.* | sed 's,^.*libu,libu,'`' )' > 64/libubsan.so
%endif
-%if %{build_libmpx}
-rm -f libmpx.so
-echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libmpx.so.2.* | sed 's,^.*libm,libm,'`' )' > libmpx.so
-echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libmpx.so.2.* | sed 's,^.*libm,libm,'`' )' > 64/libmpx.so
-rm -f libmpxwrappers.so
-echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libmpxwrappers.so.2.* | sed 's,^.*libm,libm,'`' )' > libmpxwrappers.so
-echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libmpxwrappers.so.2.* | sed 's,^.*libm,libm,'`' )' > 64/libmpxwrappers.so
-%endif
ln -sf lib32/libgfortran.a libgfortran.a
ln -sf ../lib64/libgfortran.a 64/libgfortran.a
%if %{build_objc}
@@ -1598,6 +1619,12 @@ ln -sf ../lib64/libsupc++.a 64/libsupc++.a
ln -sf lib32/libquadmath.a libquadmath.a
ln -sf ../lib64/libquadmath.a 64/libquadmath.a
%endif
+%if %{build_d}
+ln -sf lib32/libgdruntime.a libgdruntime.a
+ln -sf ../lib64/libgdruntime.a 64/libgdruntime.a
+ln -sf lib32/libgphobos.a libgphobos.a
+ln -sf ../lib64/libgphobos.a 64/libgphobos.a
+%endif
%if %{build_libitm}
ln -sf lib32/libitm.a libitm.a
ln -sf ../lib64/libitm.a 64/libitm.a
@@ -1614,12 +1641,6 @@ ln -sf ../lib64/libasan.a 64/libasan.a
ln -sf lib32/libubsan.a libubsan.a
ln -sf ../lib64/libubsan.a 64/libubsan.a
%endif
-%if %{build_libmpx}
-ln -sf lib32/libmpx.a libmpx.a
-ln -sf ../lib64/libmpx.a 64/libmpx.a
-ln -sf lib32/libmpxwrappers.a libmpxwrappers.a
-ln -sf ../lib64/libmpxwrappers.a 64/libmpxwrappers.a
-%endif
%if %{build_go}
ln -sf lib32/libgo.a libgo.a
ln -sf ../lib64/libgo.a 64/libgo.a
@@ -1645,14 +1666,21 @@ ln -sf ../`echo ../../../../lib64/libgfortran.so.5.* | sed s~/../lib64/~/~` 32/l
ln -sf ../`echo ../../../../lib64/libgomp.so.1.* | sed s~/../lib64/~/~` 32/libgomp.so
%if %{build_go}
rm -f libgo.so
-echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgo.so.13.* | sed 's,^.*libg,libg,'`' )' > libgo.so
-echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgo.so.13.* | sed 's,^.*libg,libg,'`' )' > 32/libgo.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgo.so.14.* | sed 's,^.*libg,libg,'`' )' > libgo.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgo.so.14.* | sed 's,^.*libg,libg,'`' )' > 32/libgo.so
%endif
%if %{build_libquadmath}
rm -f libquadmath.so
echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libquadmath.so.0.* | sed 's,^.*libq,libq,'`' )' > libquadmath.so
echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libquadmath.so.0.* | sed 's,^.*libq,libq,'`' )' > 32/libquadmath.so
%endif
+%if %{build_d}
+rm -f libgdruntime.so libgphobos.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgdruntime.so.76.* | sed 's,^.*libg,libg,'`' )' > libgdruntime.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgdruntime.so.76.* | sed 's,^.*libg,libg,'`' )' > 32/libgdruntime.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgphobos.so.76.* | sed 's,^.*libg,libg,'`' )' > libgphobos.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgphobos.so.76.* | sed 's,^.*libg,libg,'`' )' > 32/libgphobos.so
+%endif
%if %{build_libitm}
rm -f libitm.so
echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libitm.so.1.* | sed 's,^.*libi,libi,'`' )' > libitm.so
@@ -1674,14 +1702,6 @@ rm -f libubsan.so
echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libubsan.so.1.* | sed 's,^.*libu,libu,'`' )' > libubsan.so
echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libubsan.so.1.* | sed 's,^.*libu,libu,'`' )' > 32/libubsan.so
%endif
-%if %{build_libmpx}
-rm -f libmpx.so
-echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libmpx.so.2.* | sed 's,^.*libm,libm,'`' )' > libmpx.so
-echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmpx.so.2.* | sed 's,^.*libm,libm,'`' )' > 32/libmpx.so
-rm -f libmpxwrappers.so
-echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libmpxwrappers.so.2.* | sed 's,^.*libm,libm,'`' )' > libmpxwrappers.so
-echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmpxwrappers.so.2.* | sed 's,^.*libm,libm,'`' )' > 32/libmpxwrappers.so
-%endif
%if %{build_objc}
mv -f %{buildroot}%{_prefix}/lib/libobjc.*a 32/
%endif
@@ -1700,6 +1720,12 @@ ln -sf lib64/libsupc++.a libsupc++.a
ln -sf ../lib32/libquadmath.a 32/libquadmath.a
ln -sf lib64/libquadmath.a libquadmath.a
%endif
+%if %{build_d}
+ln -sf ../lib32/libgdruntime.a 32/libgdruntime.a
+ln -sf lib64/libgdruntime.a libgdruntime.a
+ln -sf ../lib32/libgphobos.a 32/libgphobos.a
+ln -sf lib64/libgphobos.a libgphobos.a
+%endif
%if %{build_libitm}
ln -sf ../lib32/libitm.a 32/libitm.a
ln -sf lib64/libitm.a libitm.a
@@ -1716,12 +1742,6 @@ ln -sf lib64/libasan.a libasan.a
ln -sf ../lib32/libubsan.a 32/libubsan.a
ln -sf lib64/libubsan.a libubsan.a
%endif
-%if %{build_libmpx}
-ln -sf ../lib32/libmpx.a 32/libmpx.a
-ln -sf lib64/libmpx.a libmpx.a
-ln -sf ../lib32/libmpxwrappers.a 32/libmpxwrappers.a
-ln -sf lib64/libmpxwrappers.a libmpxwrappers.a
-%endif
%if %{build_go}
ln -sf ../lib32/libgo.a 32/libgo.a
ln -sf lib64/libgo.a libgo.a
@@ -1745,6 +1765,10 @@ ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libsup
%if %{build_libquadmath}
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libquadmath.a 32/libquadmath.a
%endif
+%if %{build_d}
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgdruntime.a 32/libgdruntime.a
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgphobos.a 32/libgphobos.a
+%endif
%if %{build_libitm}
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libitm.a 32/libitm.a
%endif
@@ -1757,10 +1781,6 @@ ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libasa
%if %{build_libubsan}
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libubsan.a 32/libubsan.a
%endif
-%if %{build_libmpx}
-ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libmpx.a 32/libmpx.a
-ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libmpxwrappers.a 32/libmpxwrappers.a
-%endif
%if %{build_go}
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgo.a 32/libgo.a
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgobegin.a 32/libgobegin.a
@@ -1786,8 +1806,7 @@ for d in . $FULLLSUBDIR; do
-o -name libgo.a -o -name libgobegin.a \
-o -name libgolibbegin.a -o -name libgomp.a \
-o -name libitm.a -o -name liblsan.a \
- -o -name libmpx.a -o -name libmpxwrappers.a \
- -o -name libobjc.a \
+ -o -name libobjc.a -o -name libgdruntime.a -o -name libgphobos.a \
-o -name libquadmath.a -o -name libstdc++.a \
-o -name libstdc++fs.a -o -name libsupc++.a \
-o -name libtsan.a -o -name libubsan.a \) -a -type f`; do
@@ -1799,10 +1818,10 @@ done
# Strip debug info from Fortran/ObjC/Java static libraries
strip -g `find . \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \
-o -name libgcc.a -o -name libgcov.a -o -name libquadmath.a \
+ -o -name libgdruntime.a -o -name libgphobos.a \
-o -name libitm.a -o -name libgo.a -o -name libcaf\*.a \
-o -name libatomic.a -o -name libasan.a -o -name libtsan.a \
- -o -name libubsan.a -o -name liblsan.a \
- -o -name libmpx.a -o -name libmpxwrappers.a -o -name libcc1.a \) \
+ -o -name libubsan.a -o -name liblsan.a -o -name libcc1.a \) \
-a -type f`
popd
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.5.*
@@ -1811,6 +1830,10 @@ chmod 755 %{buildroot}%{_prefix}/%{_lib}/libcc1.so.0.*
%if %{build_libquadmath}
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libquadmath.so.0.*
%endif
+%if %{build_d}
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgdruntime.so.76.*
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgphobos.so.76.*
+%endif
%if %{build_libitm}
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libitm.so.1.*
%endif
@@ -1823,10 +1846,6 @@ chmod 755 %{buildroot}%{_prefix}/%{_lib}/libasan.so.5.*
%if %{build_libubsan}
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libubsan.so.1.*
%endif
-%if %{build_libmpx}
-chmod 755 %{buildroot}%{_prefix}/%{_lib}/libmpx.so.2.*
-chmod 755 %{buildroot}%{_prefix}/%{_lib}/libmpxwrappers.so.2.*
-%endif
%if %{build_libtsan}
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libtsan.so.0.*
%endif
@@ -1835,7 +1854,7 @@ chmod 755 %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.*
%endif
%if %{build_go}
# Avoid stripping these libraries and binaries.
-chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.13.*
+chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.14.*
chmod 644 %{buildroot}%{_prefix}/bin/go.gcc
chmod 644 %{buildroot}%{_prefix}/bin/gofmt.gcc
chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cgo
@@ -1899,13 +1918,13 @@ rm -f $FULLEPATH/install-tools/{mkheaders,fixincl}
rm -f %{buildroot}%{_prefix}/lib/{32,64}/libiberty.a
rm -f %{buildroot}%{_prefix}/%{_lib}/libssp*
rm -f %{buildroot}%{_prefix}/%{_lib}/libvtv* || :
-rm -f %{buildroot}%{_prefix}/bin/gappletviewer || :
rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gfortran || :
rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gccgo || :
rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gcj || :
rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc-ar || :
rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc-nm || :
rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc-ranlib || :
+rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gdc || :
%ifarch %{multilib_64_archs}
# Remove libraries for the other arch on multilib arches
@@ -1991,6 +2010,18 @@ if [ $1 = 0 -a -f %{_infodir}/gfortran.info.gz ]; then
--info-dir=%{_infodir} %{_infodir}/gfortran.info.gz || :
fi
+%post gdc
+if [ -f %{_infodir}/gdc.info.gz ]; then
+ /sbin/install-info \
+ --info-dir=%{_infodir} %{_infodir}/gdc.info.gz || :
+fi
+
+%preun gdc
+if [ $1 = 0 -a -f %{_infodir}/gdc.info.gz ]; then
+ /sbin/install-info --delete \
+ --info-dir=%{_infodir} %{_infodir}/gdc.info.gz || :
+fi
+
%post gnat
if [ -f %{_infodir}/gnat_rm.info.gz ]; then
/sbin/install-info \
@@ -2056,6 +2087,10 @@ end
%postun -n libgfortran -p /sbin/ldconfig
+%post -n libgphobos -p /sbin/ldconfig
+
+%postun -n libgphobos -p /sbin/ldconfig
+
%post -n libgnat -p /sbin/ldconfig
%postun -n libgnat -p /sbin/ldconfig
@@ -2145,10 +2180,6 @@ fi
%postun -n liblsan -p /sbin/ldconfig
-%post -n libmpx -p /sbin/ldconfig
-
-%postun -n libmpx -p /sbin/ldconfig
-
%post -n libgo -p /sbin/ldconfig
%postun -n libgo -p /sbin/ldconfig
@@ -2286,6 +2317,8 @@ fi
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pconfigintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/wbnoinvdintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/movdirintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/waitpkgintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cldemoteintrin.h
%endif
%ifarch ia64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ia64intrin.h
@@ -2293,7 +2326,6 @@ fi
%ifarch ppc ppc64 ppc64le ppc64p7
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ppc-asm.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/altivec.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/paired.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ppu_intrinsics.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/si2vmx.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/spu2vmx.h
@@ -2307,6 +2339,9 @@ fi
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/emmintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mmintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/x86intrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pmmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tmmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/smmintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amo.h
%endif
%ifarch %{arm}
@@ -2331,9 +2366,6 @@ fi
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmxlintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vecintrin.h
%endif
-%if %{build_libmpx}
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libmpx.spec
-%endif
%if %{build_libasan}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sanitizer
%endif
@@ -2382,12 +2414,6 @@ fi
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libubsan.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libubsan.so
%endif
-%if %{build_libmpx}
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libmpx.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libmpx.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libmpxwrappers.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libmpxwrappers.so
-%endif
%endif
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32
@@ -2419,12 +2445,6 @@ fi
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libubsan.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libubsan.so
%endif
-%if %{build_libmpx}
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libmpx.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libmpx.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libmpxwrappers.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libmpxwrappers.so
-%endif
%endif
%ifarch sparcv9 sparc64 ppc ppc64 ppc64p7
%if %{build_libquadmath}
@@ -2448,12 +2468,6 @@ fi
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.so
%endif
-%if %{build_libmpx}
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libmpx.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libmpx.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libmpxwrappers.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libmpxwrappers.so
-%endif
%else
%if %{build_libatomic}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.so
@@ -2465,10 +2479,6 @@ fi
%if %{build_libubsan}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.so
%endif
-%if %{build_libmpx}
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libmpx.so
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libmpxwrappers.so
-%endif
%endif
%if %{build_libtsan}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.so
@@ -2641,7 +2651,9 @@ fi
%dir %{_prefix}/libexec/gcc
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ISO_Fortran_binding.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib.f90
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib.mod
@@ -2696,6 +2708,68 @@ fi
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.a
%endif
+%if %{build_d}
+%files gdc
+%{_prefix}/bin/gdc
+%{_mandir}/man1/gdc.1*
+%{_infodir}/gdc*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/d
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/d21
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgphobos.spec
+%ifarch sparcv9 sparc64 ppc ppc64 ppc64p7
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgdruntime.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgphobos.a
+%endif
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgdruntime.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgphobos.so
+%ifarch sparcv9 ppc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgdruntime.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgphobos.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgdruntime.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgphobos.so
+%endif
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgdruntime.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgphobos.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgdruntime.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgphobos.so
+%endif
+%doc rpm.doc/gdc/*
+
+%files -n libgphobos
+%{_prefix}/%{_lib}/libgdruntime.so.76*
+%{_prefix}/%{_lib}/libgphobos.so.76*
+%doc rpm.doc/libphobos/*
+
+%files -n libgphobos-static
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
+%ifarch sparcv9 ppc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libgdruntime.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libgphobos.a
+%endif
+%ifarch sparc64 ppc64 ppc64p7
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libgdruntime.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libgphobos.a
+%endif
+%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgdruntime.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgphobos.a
+%endif
+%endif
+
%if %{build_ada}
%files gnat
%{_prefix}/bin/gnat
@@ -2949,32 +3023,6 @@ fi
%license libsanitizer/LICENSE.TXT
%endif
-%if %{build_libmpx}
-%files -n libmpx
-%{_prefix}/%{_lib}/libmpx.so.2*
-%{_prefix}/%{_lib}/libmpxwrappers.so.2*
-
-%files -n libmpx-static
-%dir %{_prefix}/lib/gcc
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
-%ifarch sparcv9 ppc
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libmpx.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libmpxwrappers.a
-%endif
-%ifarch sparc64 ppc64 ppc64p7
-%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libmpx.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libmpxwrappers.a
-%endif
-%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libmpx.a
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libmpxwrappers.a
-%endif
-%doc rpm.doc/changelogs/libmpx/ChangeLog*
-%endif
-
%if %{build_go}
%files go
%ghost %{_prefix}/bin/go
@@ -3021,7 +3069,7 @@ fi
%doc rpm.doc/go/*
%files -n libgo
-%attr(755,root,root) %{_prefix}/%{_lib}/libgo.so.13*
+%attr(755,root,root) %{_prefix}/%{_lib}/libgo.so.14*
%doc rpm.doc/libgo/*
%files -n libgo-devel
@@ -3128,512 +3176,39 @@ fi
%endif
%changelog
-* Wed Jan 9 2019 Jakub Jelinek <jakub@redhat.com> 8.2.1-7
-- update from the 8 branch
- - PRs c++/60994, c++/82294, c++/86669, c++/86900, c++/87380, c++/87436,
- c++/87506, c++/87539, c++/87934, c++/88103, c++/88122, c++/88180,
- c++/88181, c++/88215, c++/88410, debug/85550, debug/87039,
- debug/88644, fortran/77325, fortran/77703, fortran/85544,
- fortran/85798, fortran/87359, fortran/88116, fortran/88138,
- fortran/88169, fortran/88377, fortran/88463, fortran/88467,
- inline-asm/55681, ipa/88561, libstdc++/64883, libstdc++/87855,
- lto/86517, lto/88130, lto/88185, middle-end/82564, middle-end/85594,
- middle-end/88553, rtl-optimization/87475, rtl-optimization/88018,
- rtl-optimization/88253, rtl-optimization/88416,
- rtl-optimization/88470, rtl-optimization/88563, sanitizer/88426,
- target/60563, target/78444, target/81210, target/81693, target/84010,
- target/85593, target/85644, target/86832, target/87598, target/88213,
- target/88234, target/88343, target/88418, target/88522, target/88541,
- target/88594, target/88620, testsuite/67974, tree-optimization/68356,
- tree-optimization/71109, tree-optimization/85794,
- tree-optimization/87320, tree-optimization/87360,
- tree-optimization/87895, tree-optimization/87898,
- tree-optimization/88071
-- include forgotten ppc* intrinsic headers
-
-* Sat Dec 15 2018 Jakub Jelinek <jakub@redhat.com> 8.2.1-6
-- update from the 8 branch
- - PRs c++/86246, c++/87531, c++/87989, c++/88120, debug/87462, debug/88006,
- fortran/87922, fortran/88025, fortran/88048, fortran/88073,
- fortran/88143, fortran/88155, fortran/88205, fortran/88206,
- fortran/88228, fortran/88249, fortran/88269, fortran/97922,
- gcov-profile/88045, libfortran/78351, libfortran/88137,
- libstdc++/70694, libstdc++/87520, libstdc++/88199, lto/88077,
- middle-end/58372, rtl-optimization/85925, rtl-optimization/88001,
- target/81685, target/85968, target/87496, target/87853, target/87867,
- target/87928, target/88051, target/88224, testsuite/78544,
- tree-optimization/79351, tree-optimization/87288,
- tree-optimization/88229
-
-* Mon Nov 5 2018 Jakub Jelinek <jakub@redhat.com> 8.2.1-5
-- update from the 8 branch
- - PRs ada/81878, bootstrap/81033, c++/86288, debug/86687, debug/87362,
- debug/87428, fortran/87597, fortran/87725, libstdc++/70966,
- libstdc++/77854, libstdc++/78595, libstdc++/86751, libstdc++/87061,
- libstdc++/87641, libstdc++/87704, libstdc++/87749, libstdc++/87809,
- libstdc++/87822, middle-end/63155, middle-end/85488, middle-end/87087,
- middle-end/87610, middle-end/87623, middle-end/87645,
- middle-end/87647, middle-end/87649, other/86198, sanitizer/87837,
- target/52795, target/81733, target/85669, target/87511,
- tree-optimization/63155, tree-optimization/87465,
- tree-optimization/87473, tree-optimization/87665,
- tree-optimization/87700, tree-optimization/87745
- - fix store merging regression (PR tree-optimization/87859, #1645400)
-
-* Thu Oct 11 2018 Jakub Jelinek <jakub@redhat.com> 8.2.1-4
-- update from the 8 branch
- - PRs bootstrap/87225, c++/84940, c++/85070, c++/86881, c++/87093,
- c++/87137, c++/87185, c++/87582, fortran/83999, fortran/85395,
- fortran/85954, fortran/86111, fortran/86116, fortran/86372,
- fortran/86830, fortran/87277, fortran/87284, gcov-profile/85871,
- gcov-profile/86109, libstdc++/87278, libstdc++/87538,
- middle-end/87188, middle-end/87248, other/87353,
- rtl-optimization/86771, rtl-optimization/86882, sanitizer/85774,
- target/82699, target/85666, target/86731, target/86989, target/87033,
- target/87224, target/87370, target/87414, target/87467, target/87517,
- target/87522, target/87550, tree-optimization/86844
-
-* Wed Sep 5 2018 Jakub Jelinek <jakub@redhat.com> 8.2.1-3
-- update from the 8 branch
- - PRs c++/86190, c++/86706, c++/86728, c++/86738, c++/86763, c++/86767,
- c++/86836, c++/87095, c++/87122, c++/87155, fortran/86328,
- fortran/86760, fortran/86837, fortran/86906, gcov-profile/86817,
- libfortran/86704, libstdc++/60555, libstdc++/84535, libstdc++/86597,
- libstdc++/86861, libstdc++/86874, libstdc++/87116, lto/86456,
- middle-end/86505, middle-end/86705, middle-end/87024,
- middle-end/87099, middle-end/87138, other/86992,
- rtl-optimization/87065, sanitizer/86022, target/86386, target/86640,
- target/86662, target/86820, target/87014, target/87198,
- testsuite/86153, tree-optimization/80925, tree-optimization/85859,
- tree-optimization/86816, tree-optimization/86835,
- tree-optimization/86871, tree-optimization/86914,
- tree-optimization/86927, tree-optimization/86945,
- tree-optimization/87074
-
-* Wed Aug 1 2018 Jakub Jelinek <jakub@redhat.com> 8.2.1-2
-- update from the 8 branch
- - PRs bootstrap/86724, c/85704, c/86617, libstdc++/84654, libstdc++/85672,
- libstdc++/86734, sanitizer/86759, target/86511, target/86612,
- target/86651
-
-* Thu Jul 26 2018 Jakub Jelinek <jakub@redhat.com> 8.2.1-1
-- update from the 8 branch
- - GCC 8.2 release
- - PRs c++/3698, c++/86208, c++/86374, c++/86480, c/86453, debug/86452,
- debug/86457, fortran/83183, fortran/83184, fortran/86325,
- fortran/86417, fortran/86421, middle-end/85602, middle-end/85974,
- middle-end/86076, middle-end/86202, middle-end/86539,
- middle-end/86542, middle-end/86627, middle-end/86660, target/84829,
- target/86414, tree-optimization/85935, tree-optimization/86274,
- tree-optimization/86514
-- add annobin notes to crt*.o and libgcc (#1574936)
-- drop -mcet option alias hack for f29+
-
-* Thu Jul 12 2018 Jakub Jelinek <jakub@redhat.com> 8.1.1-5
-- update from the 8 branch
- - PRs c++/86320, c++/86378, c++/86398, c++/86400, debug/86064,
- fortran/82865, fortran/82969, fortran/86242, hsa/86371,
- libstdc++/83982, libstdc++/84087, libstdc++/85098, libstdc++/85671,
- libstdc++/86127, libstdc++/86272, libstdc++/86292, libstdc++/86398,
- sanitizer/86406, target/85904, target/86285, tree-optimization/86492
-
-* Fri Jun 29 2018 Jakub Jelinek <jakub@redhat.com> 8.1.1-4
-- make sure rs6000-modes.h is installed for plugins (#1596407)
-
-* Tue Jun 26 2018 Jakub Jelinek <jakub@redhat.com> 8.1.1-3
-- update from the 8 branch
- - PRs c++/86182, c++/86219, c++/86291, fortran/82972, fortran/83088,
- fortran/83118, fortran/85851, libgcc/86213, libstdc++/81092,
- libstdc++/86112, libstdc++/86138, rtl-optimization/85645,
- target/85358, target/85657, target/85994, target/86197, target/86222,
- target/86314, tree-optimization/85989
-
-* Wed Jun 20 2018 Jakub Jelinek <jakub@redhat.com> 8.1.1-2
-- update from the 8 branch
- - PRs ada/85540, ada/85635, bootstrap/85921, c++/61806, c++/80485,
- c++/81060, c++/81420, c++/85305, c++/85618, c++/85634, c++/85646,
- c++/85659, c++/85662, c++/85695, c++/85706, c++/85710, c++/85731,
- c++/85739, c++/85761, c++/85764, c++/85765, c++/85782, c++/85792,
- c++/85807, c++/85815, c++/85842, c++/85847, c++/85864, c++/85866,
- c++/85873, c++/85912, c++/85952, c++/85963, c++/85976, c++/86025,
- c++/86060, c++/86094, c++/86147, c++/86200, c++/86210, c/82063,
- c/85623, c/85696, c/86093, debug/86194, fortran/38351, fortran/44491,
- fortran/49636, fortran/63514, fortran/66694, fortran/68846,
- fortran/70864, fortran/70870, fortran/78278, fortran/78571,
- fortran/80657, fortran/82275, fortran/82617, fortran/82923,
- fortran/85138, fortran/85507, fortran/85521, fortran/85542,
- fortran/85543, fortran/85631, fortran/85641, fortran/85687,
- fortran/85701, fortran/85702, fortran/85703, fortran/85742,
- fortran/85779, fortran/85780, fortran/85786, fortran/85816,
- fortran/85895, fortran/85975, fortran/85981, fortran/85996,
- fortran/86045, fortran/86051, fortran/86059, fortran/86110, go/85630,
- ipa/85655, libgfortran/85840, libgfortran/85906, libgfortran/86070,
- libstdc++/67554, libstdc++/82644, libstdc++/82966, libstdc++/83891,
- libstdc++/84159, libstdc++/85632, libstdc++/85642, libstdc++/85812,
- libstdc++/85818, libstdc++/85930, libstdc++/85951, libstdc++/86008,
- libstdc++/86169, middle-end/85567, middle-end/85588, middle-end/85627,
- middle-end/85643, middle-end/85874, middle-end/85878,
- middle-end/86095, middle-end/86122, middle-end/86123,
- middle-end/86139, other/77609, rtl-optimization/85638,
- rtl-optimization/86108, sanitizer/85556, sanitizer/85835,
- sanitizer/86012, target/63177, target/81497, target/85345,
- target/85591, target/85606, target/85658, target/85683, target/85684,
- target/85698, target/85733, target/85755, target/85756, target/85829,
- target/85900, target/85903, target/85945, target/85950, target/85984,
- target/86003, target/86048, testsuite/85586, tree-optimization/85597,
- tree-optimization/85615, tree-optimization/85712,
- tree-optimization/85793, tree-optimization/85814,
- tree-optimization/85822, tree-optimization/85863,
- tree-optimization/85934, tree-optimization/85964,
- tree-optimization/86038, tree-optimization/86114,
- tree-optimization/86231
-
-* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> 8.1.1-1.1
-- rebuilt for Python 3.7
-
-* Wed May 2 2018 Jakub Jelinek <jakub@redhat.com> 8.1.1-1
-- update from the 8 branch
- - GCC 8.1 release
- - PRs c++/85545, c++/85553, c++/85580, c++/85587, ipa/85549, libgcc/85532,
- target/85473, target/85519, tree-optimization/85529,
- tree-optimization/85586, web/85578
-
-* Wed Apr 25 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.23
-- update from the trunk and 8 branch
- - GCC 8.1 rc1
- - PR bootstrap/85490, c++/49171, c++/85437, fortran/85520, target/85512
-- include movdirintrin.h header on x86 (#1571808)
-
-* Tue Apr 24 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.22
-- update from the trunk
- - PRs c++/69560, c++/70808, c++/80290, c++/84463, c++/84611, c++/84630,
- c++/85032, c++/85039, c++/85112, c++/85258, c++/85356, c++/85385,
- c++/85462, c++/85464, c++/85470, c/85365, debug/83157, debug/84637,
- debug/85302, fortran/81773, fortran/83606, fortran/85387, ipa/84149,
- ipa/85329, ipa/85391, ipa/85421, jit/85384, libgcc/85334,
- libgcc/85379, libgomp/85463, libstdc++/84442, libstdc++/85442,
- lto/71991, lto/81968, lto/85339, lto/85371, lto/85391, lto/85405,
- middle-end/81657, middle-end/84955, middle-end/85414,
- middle-end/85455, middle-end/85475, middle-end/85496, objc/85476,
- rtl-optimization/79916, rtl-optimization/83852,
- rtl-optimization/84566, rtl-optimization/84659,
- rtl-optimization/85342, rtl-optimization/85354,
- rtl-optimization/85376, rtl-optimization/85393,
- rtl-optimization/85423, rtl-optimization/85431, sanitizer/85230,
- sanitizer/85389, target/81084, target/83402, target/83660,
- target/84301, target/84331, target/85080, target/85238, target/85261,
- target/85281, target/85287, target/85291, target/85293, target/85296,
- target/85321, target/85328, target/85347, target/85388, target/85397,
- target/85403, target/85404, target/85417, target/85424, target/85430,
- target/85445, target/85456, target/85469, target/85485, target/85489,
- target/85491, target/85503, target/85508, target/85511,
- testsuite/85326, testsuite/85346, testsuite/85483,
- tree-optimization/82965, tree-optimization/83991,
- tree-optimization/84737, tree-optimization/85331,
- tree-optimization/85446, tree-optimization/85467,
- tree-optimization/85478
-- temporarily readd -mcet as alias to -mshstk
-
-* Tue Apr 10 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.21
-- update from the trunk
- - PRs c++/24314, c++/64095, c++/65923, c++/80026, c++/80956, c++/82152,
- c++/83808, c++/84221, c++/84269, c++/84606, c++/84632, c++/84665,
- c++/84768, c++/84791, c++/84792, c++/84936, c++/84938, c++/84943,
- c++/84968, c++/84973, c++/84979, c++/85006, c++/85021, c++/85027,
- c++/85028, c++/85049, c++/85060, c++/85061, c++/85062, c++/85067,
- c++/85068, c++/85076, c++/85077, c++/85092, c++/85093, c++/85108,
- c++/85110, c++/85113, c++/85118, c++/85133, c++/85134, c++/85135,
- c++/85136, c++/85140, c++/85141, c++/85146, c++/85147, c++/85148,
- c++/85149, c++/85194, c++/85200, c++/85208, c++/85209, c++/85210,
- c++/85214, c++/85215, c++/85227, c++/85228, c++/85240, c++/85242,
- c++/85256, c++/85262, c++/85264, c++/85277, c++/85279, c++/85285,
- c++/85312, c/85094, debug/65821, debug/85252, fortran/42651,
- fortran/51260, fortran/66709, fortran/69497, fortran/70068,
- fortran/83064, fortran/84924, fortran/85083, fortran/85084,
- fortran/85102, fortran/85111, fortran/85130, fortran/85313, gas/22318,
- inline-asm/84985, inline-asm/85172, ipa/84947, libfortran/85166,
- libfortran/85253, libstdc++/85183, libstdc++/85222, lto/84995,
- lto/85078, lto/85176, lto/85248, middle-end/82976, middle-end/84067,
- middle-end/85090, middle-end/85180, middle-end/85195,
- middle-end/85244, other/84819, other/85161, rtl-optimization/80463,
- rtl-optimization/83480, rtl-optimization/83530,
- rtl-optimization/83913, rtl-optimization/83962,
- rtl-optimization/83972, rtl-optimization/84058,
- rtl-optimization/84872, rtl-optimization/84878,
- rtl-optimization/85167, sanitizer/85081, sanitizer/85174,
- sanitizer/85213, target/80546, target/81863, target/83009,
- target/83315, target/83822, target/84041, target/84413, target/84912,
- target/84914, target/85044, target/85056, target/85073, target/85095,
- target/85100, target/85126, target/85169, target/85173, target/85177,
- target/85193, target/85196, target/85203, target/85204, target/85255,
- testsuite/82847, testsuite/83462, testsuite/84004, testsuite/85066,
- testsuite/85154, testsuite/85189, testsuite/85190, testsuite/85191,
- tree-optimization/80021, tree-optimization/82004,
- tree-optimization/84005, tree-optimization/84818,
- tree-optimization/85063, tree-optimization/85082,
- tree-optimization/85156, tree-optimization/85168,
- tree-optimization/85257, tree-optimization/85284,
- tree-optimization/85286
-- fix combine ICE with -g (PR rtl-optimization/85300)
-
-* Sat Mar 24 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.20
-- update from the trunk
- - PRs ada/85007, ada/85036, bootstrap/84856, c++/71251, c++/71638,
- c++/71834, c++/71965, c++/78489, c++/81311, c++/84610, c++/84642,
- c++/84729, c++/84789, c++/84804, c++/84812, c++/84835, c++/84836,
- c++/84850, c++/84854, c++/84892, c++/84925, c++/84927, c++/84937,
- c++/84942, c++/84961, c++/84962, c++/84970, c++/84972, c++/84978,
- c++/84994, c++/85008, c++/85015, c++/85033, c++/85045, c/80778,
- c/84953, c/84999, debug/84875, debug/85020, fortran/65453,
- fortran/77414, fortran/79929, fortran/84615, fortran/84922,
- fortran/84931, fortran/84957, fortran/85001, inline-asm/84941,
- inline-asm/85022, inline-asm/85030, inline-asm/85034, ipa/84825,
- ipa/84963, libstdc++/77691, libstdc++/84998, rtl-optimization/84635,
- rtl-optimization/84643, rtl-optimization/84989, sanitizer/78651,
- sanitizer/84761, sanitizer/85018, sanitizer/85029, target/81647,
- target/82518, target/82989, target/83789, target/84760, target/84826,
- target/84838, target/84845, target/84945, target/84952, target/84954,
- target/84986, target/84988, target/84990, target/85025, target/85026,
- tree-optimization/83126, tree-optimization/84811,
- tree-optimization/84859, tree-optimization/84913,
- tree-optimization/84929, tree-optimization/84933,
- tree-optimization/84946, tree-optimization/84956,
- tree-optimization/84960, tree-optimization/84969,
- tree-optimization/84982
- - fix std::less etc. (#1559171, PR libstdc++/85040)
-
-* Sat Mar 17 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.19
-- update from the trunk
- - PRs ada/82813, c++/79085, c++/79937, c++/80227, c++/81236, c++/82336,
- c++/82410, c++/82565, c++/83911, c++/83916, c++/83937, c++/84222,
- c++/84720, c++/84798, c++/84801, c++/84820, c++/84839, c++/84843,
- c++/84874, c++/84906, c/46921, c/84852, c/84853, c/84873, c/84909,
- c/84910, fortran/61775, fortran/69395, fortran/78741, ipa/84658,
- ipa/84722, ipa/84805, ipa/84833, libgfortran/84880, libstdc++/78420,
- libstdc++/83662, libstdc++/84773, lto/84805, middle-end/84831,
- middle-end/84834, sanitizer/83392, target/68256, target/78090,
- target/83451, target/84574, target/84711, target/84743, target/84827,
- target/84828, target/84844, target/84860, target/84876, target/84899,
- target/84902, tree-optimization/84725, tree-optimization/84830,
- tree-optimization/84841
-
-* Mon Mar 12 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.18
-- update from the trunk
- - PRs c++/84355, c++/84802, c++/84813, debug/58150, fortran/83939,
- fortran/84546, rtl-optimization/84780, tree-optimization/83456,
- tree-optimization/84777, tree-optimization/84803
-- add pconfigintrin.h and wbnoinvdintrin.h headers (#1554279)
-- fix -march=knl from emitting AVX512VL instructions (PR target/84786)
-- fix C++ constexpr RANGE_EXPR splitting (PR c++/84808)
-
-* Sat Mar 10 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.17
-- update from the trunk
- - PRs c++/61135, c++/61358, c++/67370, c++/70468, c++/71169, c++/71464,
- c++/71546, c++/71569, c++/71784, c++/71832, c++/79410, c++/80598,
- c++/81812, c++/82022, c++/83503, c++/83692, c++/83871, c++/84015,
- c++/84076, c++/84171, c++/84231, c++/84294, c++/84325, c++/84424,
- c++/84426, c++/84434, c++/84441, c++/84447, c++/84489, c++/84492,
- c++/84493, c++/84497, c++/84520, c++/84533, c++/84537, c++/84540,
- c++/84551, c++/84556, c++/84557, c++/84558, c++/84559, c++/84560,
- c++/84578, c++/84582, c++/84590, c++/84593, c++/84596, c++/84602,
- c++/84609, c++/84618, c++/84639, c++/84662, c++/84663, c++/84664,
- c++/84684, c++/84686, c++/84694, c++/84702, c++/84704, c++/84707,
- c++/84708, c++/84724, c++/84726, c++/84733, c++/84752, c++/84767,
- c++/84770, c++/84785, c/84721, debug/83917, debug/84404, debug/84408,
- debug/84456, debug/84545, debug/84620, debug/84645, fortran/30792,
- fortran/32957, fortran/51434, fortran/56667, fortran/59781,
- fortran/64107, fortran/64124, fortran/66128, fortran/70409,
- fortran/71085, fortran/78238, fortran/80965, fortran/83148,
- fortran/83149, fortran/83633, fortran/83901, fortran/84219,
- fortran/84346, fortran/84506, fortran/84509, fortran/84511,
- fortran/84519, fortran/84523, fortran/84538, fortran/84565,
- fortran/84697, fortran/84734, gcov-profile/84548, gcov-profile/84735,
- inline-asm/84625, inline-asm/84683, inline-asm/84742, ipa/83983,
- ipa/84628, jit/64089, jit/84288, libstdc++/84532, libstdc++/84601,
- libstdc++/84671, libstdc++/84769, middle-end/84552, middle-end/84607,
- middle-end/84723, preprocessor/84517, rtl-optimization/81611,
- rtl-optimization/83327, rtl-optimization/83496,
- rtl-optimization/84528, rtl-optimization/84682, sanitizer/70875,
- sanitizer/82484, target/52991, target/56540, target/81572,
- target/82005, target/82411, target/82851, target/83193, target/83335,
- target/83399, target/83712, target/83969, target/84039, target/84176,
- target/84264, target/84277, target/84521, target/84524, target/84530,
- target/84534, target/84564, target/84575, target/84614, target/84700,
- target/84710, target/84748, target/84763, target/84772, target/84807,
- testsuite/80551, testsuite/84597, testsuite/84617, translation/84207,
- tree-optimization/83519, tree-optimization/84114,
- tree-optimization/84178, tree-optimization/84427,
- tree-optimization/84466, tree-optimization/84468,
- tree-optimization/84480, tree-optimization/84486,
- tree-optimization/84512, tree-optimization/84526,
- tree-optimization/84584, tree-optimization/84634,
- tree-optimization/84650, tree-optimization/84670,
- tree-optimization/84687, tree-optimization/84739,
- tree-optimization/84740, tree-optimization/84746,
- tree-optimization/84775
-- for f29+ require binutils >= 2.30 (#1552529)
-
-* Thu Feb 22 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.16
-- update from the trunk
- - PRs c++/77655, c++/84454, c++/84496, c/84229, target/84502
- - fix store-merging (#1547495, PR tree-optimization/84503)
-
-* Tue Feb 20 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.15
-- update from the trunk
- - PRs c++/84348, c++/84429, c++/84430, c++/84444, c++/84445, c++/84446,
- c++/84448, c++/84449, c++/84455, c++/84488, c/81272, c/84310,
- driver/83193, fortran/35339, fortran/48890, fortran/83823,
- middle-end/79257, middle-end/82004, middle-end/82123,
- middle-end/84095, middle-end/84406, other/80589, sanitizer/82183,
- target/79747, target/84148, target/84460, tree-optimization/81592,
- tree-optimization/82491, tree-optimization/84419,
- tree-optimization/84452
-- fix strlen value range computation (#1546964, PR tree-optimization/84478)
-
-* Sun Feb 18 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.14
-- update from the trunk
- - PRs ada/84277, bootstrap/82939, bootstrap/84405, c++/79064, c++/79626,
- c++/81853, c++/82468, c++/82664, c++/82764, c++/83227, c++/83835,
- c++/83990, c++/84045, c++/84080, c++/84151, c++/84192, c++/84263,
- c++/84281, c++/84314, c++/84330, c++/84333, c++/84338, c++/84341,
- c++/84350, c++/84364, c++/84368, c++/84375, c++/84376, c++/84420,
- c++/84421, c/82210, c/84108, c/84305, debug/84319, debug/84342,
- fortran/35299, fortran/54223, fortran/68746, fortran/80945,
- fortran/84074, fortran/84270, fortran/84273, fortran/84276,
- fortran/84313, fortran/84354, fortran/84381, fortran/84385,
- fortran/84389, fortran/84409, fortran/84418, ipa/84425,
- libgfortran/84389, libgfortran/84412, libstdc++/81797,
- middle-end/83665, middle-end/84309, other/82368, preprocessor/83063,
- preprocessor/83708, rtl-optimization/70023, rtl-optimization/81443,
- rtl-optimization/83723, rtl-optimization/84169, sanitizer/84307,
- sanitizer/84340, target/79242, target/81535, target/82862,
- target/83758, target/83760, target/83831, target/83984, target/84220,
- target/84239, target/84266, target/84272, target/84279, target/84335,
- target/84336, target/84359, target/84365, target/84370, target/84372,
- tree-optimization/83698, tree-optimization/84016,
- tree-optimization/84190, tree-optimization/84321,
- tree-optimization/84334, tree-optimization/84339,
- tree-optimization/84357, tree-optimization/84383,
- tree-optimization/84399, tree-optimization/84417
-
-* Sat Feb 10 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.13
-- update from the trunk
- - PRs c++/77522, c++/80567, c++/81610, c++/81917, c++/83204, c++/83659,
- c++/83806, c++/84082, c++/84182, c++/84296, c/84293, fortran/56691,
- fortran/68560, fortran/82049, fortran/82994, lto/84212, lto/84213,
- middle-end/84237, rtl-optimization/57193, rtl-optimization/83459,
- rtl-optimization/84068, rtl-optimization/84308, sanitizer/84285,
- target/81143, target/83008, target/83926, target/84113, target/84226,
- target/84300, target/PR84295, tree-optimization/84037,
- tree-optimization/84136, tree-optimization/84224,
- tree-optimization/84232, tree-optimization/84233,
- tree-optimization/84238, tree-optimization/84265,
- tree-optimization/84278
-- temporarily revert LVU stuff, until it settles down
-
-* Wed Feb 7 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.12
-- update from the trunk
- - PRs c++/71662, c++/82782, c++/83796, c++/84059, c++/84125, c++/84126,
- c++/84160, c++/84181, c/81779, fortran/83344, fortran/83705,
- fortran/83975, fortran/84094, fortran/84115, fortran/84141,
- fortran/84155, gcov-profile/83879, gcov-profile/84137, libgomp/84217,
- lto/81004, middle-end/79966, rtl-optimization/84123,
- rtl-optimization/84157, target/56010, target/79975, target/82641,
- target/83370, target/83743, target/84066, target/84089, target/84145,
- target/84154, target/84209, target/84243, target/84248, tearget/83845,
- testsuite/52641, testsuite/83846, testsuite/84243,
- tree-optimization/81635, tree-optimization/81661,
- tree-optimization/83369, tree-optimization/84117,
- tree-optimization/84204, tree-optimization/84205,
- tree-optimization/84223, tree-optimization/84225,
- tree-optimization/84228,
- - fix dom2 floating point miscompilation (#1542124,
- PR tree-optimization/84235)
-- fix go provides/requires (#1541639)
-- fix var-tracking ICE on aarch64 (#1541670, PR debug/84252)
-
-* Tue Feb 6 2018 Florian Weimer <fweimer@redhat.com> - 8.0.1-0.11
-- use generic tuning for armhfp
-
-* Mon Feb 5 2018 Richard W.M. Jones <rjones@redhat.com> 8.0.1-0.10
-- disable multilib on riscv64.
-
-* Thu Feb 1 2018 Jeff Law <law@redhat.com> 8.0.1-0.9
-- fix -fstack-clash-protection codegen issue on 32 bit x86
- (#1540221, PR target/84128)
-
-* Wed Jan 31 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.8
-- update from the trunk
- - PRs c++/83993, c++/84092, c++/84138, c/84100, fortran/84088,
- fortran/84116, fortran/84134, lto/84105, preprocessor/69869,
- rtl-optimization/84071, target/82444, target/83618, target/84064,
- tree-optimization/64946, tree-optimization/84132
-- fix ICE with CET and -g (PR target/84146)
-
-* Tue Jan 30 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.7
-- update from the trunk
- - PRs bootstrap/80867, bootstrap/84017, c++/68810, c++/83924, c++/83942,
- c++/83996, c++/84091, c++/84098, c/83966, fortran/84073,
- fortran/84133, ipa/81360, ipa/83179, libgomp/84096, libstdc++/83658,
- lto/83954, rtl-optimization/83986, target/40411, target/58684,
- target/83828, target/84112, testsuite/81010, tree-optimization/81611,
- tree-optimization/83008, tree-optimization/84057,
- tree-optimization/84086, tree-optimization/84111
-- fix fortran debuginfo (PR debug/84131)
-
-* Sat Jan 27 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.6
-- update from the trunk
- - PRs c++/82249, c++/82514, c++/83921, c++/83947, c++/83956, c++/83974,
- c++/84031, c++/84036, c/83989, diagnostic/84034, fortran/37577,
- fortran/83866, fortran/83898, fortran/83998, fortran/84065, jit/81672,
- jit/82846, libstdc++/81076, middle-end/83055, middle-end/83977,
- middle-end/84000, middle-end/84040, other/68239,
- rtl-optimization/83985, rtl-optimization/84003, sanitizer/83987,
- target/68467, target/81352, target/81550, target/81763, target/83013,
- target/83589, target/83905, target/83994, target/84014, target/84028,
- target/84033, testsuite/83889, tree-optimization/81082,
- tree-optimization/82819, tree-optimization/83176,
- tree-optimization/83979
-
-* Tue Jan 23 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.5
-- update from the trunk
- - PRs c++/81933, c++/82882, c++/83720, c++/83895, c++/83918, c++/83958,
- c++/83978, c++/83988, fortran/78534, fortran/83704, lto/81440,
- lto/83452, target/80870, target/83862, target/83946, testsuite/77734,
- testsuite/83888, tree-optimization/69452, tree-optimization/82604,
- tree-optimization/83081, tree-optimization/83510,
- tree-optimization/83940, tree-optimization/83957,
- tree-optimization/83963, tree-optimization/83965
-- fix strlen pass ICE (PR tree-optimization/83896)
-
-* Sat Jan 20 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.4
-- update from the trunk
- - PRs c++/78344, c++/81013, c++/81054, c++/81167, c++/82461, c++/83160,
- c++/83287, c++/83824, c++/83897, c++/83919, c/61240, debug/81570,
- debug/83728, fortran/80768, fortran/83864, fortran/83874,
- fortran/83900, ipa/82256, ipa/83051, ipa/83619, middle-end/83945,
- middle_end/79538, other/70268, rtl-optimization/83147,
- sanitizer/81715, sanitizer/82825, target/65578, target/83790,
- target/83920, target/83930, testsuite/83882, testsuite/83883,
- testsuite/83934, tree-optimization/83887, tree-optimization/83914,
- tree-optimization/83922
-- aarch64 -fstack-clash-protection support
-
-* Wed Jan 17 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.3
-- update from the trunk
- - PRs c++/72801, c++/81067, c++/81843, c++/83714, c++/83739, c++/83799,
- c++/83814, c++/83902, lto/83121, middle-end/83884,
- rtl-optimization/80481, rtl-optimization/83771, target/79041,
- target/82964, target/83546, testsuite/77734, tree-optimization/81184
-
-* Tue Jan 16 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.2
-- update from the trunk
- - PRs c++/83588, c++/83817, c++/83825, c/83844, fortran/54613,
- fortran/82257, libgomp/83590, libstdc++/83833, libstdc++/83834,
- middle-end/83837, rtl-optimization/83213, rtl-optimization/86620,
- target/83839, target/83858, testsuite/82132, testsuite/83869,
- tree-optimization/83843, tree-optimization/83847,
- tree-optimization/83857, tree-optimization/83867
-
-* Mon Jan 15 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.1
+* Sat Jan 19 2019 Jakub Jelinek <jakub@redhat.com> 9.0.1-0.3
+- update from trunk
+ - PRs c++/86205, c++/86740, c++/86926, c++/88699, c++/88875, c/88664,
+ fortran/88871, fortran/88898, fortran/88902, libbacktrace/88890,
+ libstdc++/87514, libstdc++/87520, libstdc++/88782, middle-end/88273,
+ middle-end/88587, target/85596, target/88799, target/88892,
+ tree-optimization/88800, tree-optimization/88903
+- fix transfer_intrinsic_3.f90 miscompilation on ppc64le and s390x
+ (PR tree-optimization/88044)
+- fix -fsanitize=pointer-{compare,subtract} in C++ templates
+ (PR sanitizer/88901)
+- add Obsoletes for libmpx and libmpx-static
+
+* Thu Jan 17 2019 Jakub Jelinek <jakub@redhat.com> 9.0.1-0.2
+- update from trunk
+ - PRs c++/78244, c++/86610, c++/86648, c++/87768, c++/87882, c++/88114,
+ c++/88146, c++/88312, c++/88613, c++/88692, c++/88795, c++/88825,
+ c++/88830, c++/88866, c/51628, d/87824, debug/88046, fortran/35031,
+ fortran/43136, fortran/57992, fortran/59345, fortran/61765,
+ fortran/81849, fortran/88803, gcov-profile/88263, inline-asm/52813,
+ ipa/88788, libbacktrace/82857, libfortran/88776, libfortran/88807,
+ libstdc++/83306, libstdc++/88738, libstdc++/88802, libstdc++/88811,
+ libstdc++/88881, libstdc++/88884, lto/86736, lto/88733,
+ middle-end/85956, middle-end/88703, rtl-optimization/87305,
+ rtl-optimization/88796, rtl-optimization/88870, target/80547,
+ target/85381, target/85486, target/88614, target/86891, target/87306,
+ target/88489, target/88638, target/88682, target/88777, target/88794,
+ target/88850, target/88851, target/88861, tree-optimization/86214,
+ tree-optimization/88693, tree-optimization/88775,
+ tree-optimization/88855
+- fix arm bootstrap failure (PR bootstrap/88714)
+- fix <arm_neon.h> on aarch64 and arm (PR target/88734)
+- default to -shared-libphobos for gdc
+
+* Fri Jan 11 2019 Jakub Jelinek <jakub@redhat.com> 9.0.1-0.1
- new package
diff --git a/gcc8-Wno-format-security.patch b/gcc8-Wno-format-security.patch
deleted file mode 100644
index cb21e5d..0000000
--- a/gcc8-Wno-format-security.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-2017-02-25 Jakub Jelinek <jakub@redhat.com>
-
- * configure.ac: When adding -Wno-format, also add -Wno-format-security.
- * configure: Regenerated.
-
---- gcc/configure.ac.jj 2017-02-13 12:20:53.000000000 +0100
-+++ gcc/configure.ac 2017-02-25 12:42:32.859175403 +0100
-@@ -481,7 +481,7 @@ AC_ARG_ENABLE(build-format-warnings,
- AS_HELP_STRING([--disable-build-format-warnings],[don't use -Wformat while building GCC]),
- [],[enable_build_format_warnings=yes])
- AS_IF([test $enable_build_format_warnings = no],
-- [wf_opt=-Wno-format],[wf_opt=])
-+ [wf_opt="-Wno-format -Wno-format-security"],[wf_opt=])
- ACX_PROG_CXX_WARNING_OPTS(
- m4_quote(m4_do([-W -Wall -Wno-narrowing -Wwrite-strings ],
- [-Wcast-qual $wf_opt])), [loose_warn])
---- gcc/configure.jj 2017-02-13 12:20:52.000000000 +0100
-+++ gcc/configure 2017-02-25 12:42:50.041946391 +0100
-@@ -6647,7 +6647,7 @@ else
- fi
-
- if test $enable_build_format_warnings = no; then :
-- wf_opt=-Wno-format
-+ wf_opt="-Wno-format -Wno-format-security"
- else
- wf_opt=
- fi
diff --git a/gcc8-foffload-default.patch b/gcc8-foffload-default.patch
deleted file mode 100644
index 771e1e0..0000000
--- a/gcc8-foffload-default.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-2017-01-20 Jakub Jelinek <jakub@redhat.com>
-
- * gcc.c (offload_targets_default): New variable.
- (process_command): Set it if -foffload is defaulted.
- (driver::maybe_putenv_OFFLOAD_TARGETS): Add OFFLOAD_TARGET_DEFAULT=1
- into environment if -foffload has been defaulted.
- * lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define.
- (compile_images_for_offload_targets): If OFFLOAD_TARGET_DEFAULT
- is in the environment, don't fail if corresponding mkoffload
- can't be found. Free and clear offload_names if no valid offload
- is found.
-libgomp/
- * target.c (gomp_load_plugin_for_device): If a plugin can't be
- dlopened, assume it has no devices silently.
-
---- gcc/gcc.c.jj 2017-01-17 10:28:40.000000000 +0100
-+++ gcc/gcc.c 2017-01-20 16:26:29.649962902 +0100
-@@ -290,6 +290,10 @@ static const char *spec_host_machine = D
-
- static char *offload_targets = NULL;
-
-+/* Set to true if -foffload has not been used and offload_targets
-+ is set to the configured in default. */
-+static bool offload_targets_default;
-+
- /* Nonzero if cross-compiling.
- When -b is used, the value comes from the `specs' file. */
-
-@@ -4457,7 +4461,10 @@ process_command (unsigned int decoded_op
- /* If the user didn't specify any, default to all configured offload
- targets. */
- if (ENABLE_OFFLOADING && offload_targets == NULL)
-- handle_foffload_option (OFFLOAD_TARGETS);
-+ {
-+ handle_foffload_option (OFFLOAD_TARGETS);
-+ offload_targets_default = true;
-+ }
-
- if (output_file
- && strcmp (output_file, "-") != 0
-@@ -7693,6 +7700,8 @@ driver::maybe_putenv_OFFLOAD_TARGETS ()
- obstack_grow (&collect_obstack, offload_targets,
- strlen (offload_targets) + 1);
- xputenv (XOBFINISH (&collect_obstack, char *));
-+ if (offload_targets_default)
-+ xputenv ("OFFLOAD_TARGET_DEFAULT=1");
- }
-
- free (offload_targets);
---- gcc/lto-wrapper.c.jj 2017-01-01 12:45:34.000000000 +0100
-+++ gcc/lto-wrapper.c 2017-01-20 16:34:18.294016997 +0100
-@@ -52,6 +52,7 @@ along with GCC; see the file COPYING3.
- /* Environment variable, used for passing the names of offload targets from GCC
- driver to lto-wrapper. */
- #define OFFLOAD_TARGET_NAMES_ENV "OFFLOAD_TARGET_NAMES"
-+#define OFFLOAD_TARGET_DEFAULT_ENV "OFFLOAD_TARGET_DEFAULT"
-
- enum lto_mode_d {
- LTO_MODE_NONE, /* Not doing LTO. */
-@@ -790,8 +791,10 @@ compile_images_for_offload_targets (unsi
- if (!target_names)
- return;
- unsigned num_targets = parse_env_var (target_names, &names, NULL);
-+ const char *target_names_default = getenv (OFFLOAD_TARGET_DEFAULT_ENV);
-
- int next_name_entry = 0;
-+ bool hsa_seen = false;
- const char *compiler_path = getenv ("COMPILER_PATH");
- if (!compiler_path)
- goto out;
-@@ -804,18 +807,32 @@ compile_images_for_offload_targets (unsi
- /* HSA does not use LTO-like streaming and a different compiler, skip
- it. */
- if (strcmp (names[i], "hsa") == 0)
-- continue;
-+ {
-+ hsa_seen = true;
-+ continue;
-+ }
-
- offload_names[next_name_entry]
- = compile_offload_image (names[i], compiler_path, in_argc, in_argv,
- compiler_opts, compiler_opt_count,
- linker_opts, linker_opt_count);
- if (!offload_names[next_name_entry])
-- fatal_error (input_location,
-- "problem with building target image for %s\n", names[i]);
-+ {
-+ if (target_names_default != NULL)
-+ continue;
-+ fatal_error (input_location,
-+ "problem with building target image for %s\n",
-+ names[i]);
-+ }
- next_name_entry++;
- }
-
-+ if (next_name_entry == 0 && !hsa_seen)
-+ {
-+ free (offload_names);
-+ offload_names = NULL;
-+ }
-+
- out:
- free_array_of_ptrs ((void **) names, num_targets);
- }
---- libgomp/target.c.jj 2017-01-01 12:45:52.000000000 +0100
-+++ libgomp/target.c 2017-01-20 20:12:13.756710875 +0100
-@@ -2356,7 +2356,7 @@ gomp_load_plugin_for_device (struct gomp
-
- void *plugin_handle = dlopen (plugin_name, RTLD_LAZY);
- if (!plugin_handle)
-- goto dl_fail;
-+ return 0;
-
- /* Check if all required functions are available in the plugin and store
- their handlers. None of the symbols can legitimately be NULL,
diff --git a/gcc8-hack.patch b/gcc8-hack.patch
deleted file mode 100644
index 515173f..0000000
--- a/gcc8-hack.patch
+++ /dev/null
@@ -1,124 +0,0 @@
---- libada/Makefile.in.jj 2009-01-14 12:07:35.000000000 +0100
-+++ libada/Makefile.in 2009-01-15 14:25:33.000000000 +0100
-@@ -66,18 +66,40 @@ libsubdir := $(libdir)/gcc/$(target_nonc
- ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(MULTISUBDIR))
- ADA_RTS_SUBDIR=./rts$(subst /,_,$(MULTISUBDIR))
-
-+DEFAULTMULTIFLAGS :=
-+ifeq ($(MULTISUBDIR),)
-+targ:=$(subst -, ,$(target))
-+arch:=$(word 1,$(targ))
-+ifeq ($(words $(targ)),2)
-+osys:=$(word 2,$(targ))
-+else
-+osys:=$(word 3,$(targ))
-+endif
-+ifeq ($(strip $(filter-out i%86 x86_64 powerpc% ppc% s390% sparc% linux%, $(arch) $(osys))),)
-+ifeq ($(shell $(CC) $(CFLAGS) -print-multi-os-directory),../lib64)
-+DEFAULTMULTIFLAGS := -m64
-+else
-+ifeq ($(strip $(filter-out s390%, $(arch))),)
-+DEFAULTMULTIFLAGS := -m31
-+else
-+DEFAULTMULTIFLAGS := -m32
-+endif
-+endif
-+endif
-+endif
-+
- # exeext should not be used because it's the *host* exeext. We're building
- # a *target* library, aren't we?!? Likewise for CC. Still, provide bogus
- # definitions just in case something slips through the safety net provided
- # by recursive make invocations in gcc/ada/Makefile.in
- LIBADA_FLAGS_TO_PASS = \
- "MAKEOVERRIDES=" \
-- "LDFLAGS=$(LDFLAGS)" \
-+ "LDFLAGS=$(LDFLAGS) $(DEFAULTMULTIFLAGS)" \
- "LN_S=$(LN_S)" \
- "SHELL=$(SHELL)" \
-- "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \
-- "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \
-- "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \
-+ "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \
-+ "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \
-+ "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \
- "PICFLAG_FOR_TARGET=$(PICFLAG)" \
- "THREAD_KIND=$(THREAD_KIND)" \
- "TRACE=$(TRACE)" \
-@@ -88,7 +110,7 @@ LIBADA_FLAGS_TO_PASS = \
- "exeext=.exeext.should.not.be.used " \
- 'CC=the.host.compiler.should.not.be.needed' \
- "GCC_FOR_TARGET=$(CC)" \
-- "CFLAGS=$(CFLAGS)"
-+ "CFLAGS=$(CFLAGS) $(DEFAULTMULTIFLAGS)"
-
- # Rules to build gnatlib.
- .PHONY: gnatlib gnatlib-plain gnatlib-sjlj gnatlib-zcx gnatlib-shared osconstool
---- config-ml.in.jj 2010-06-30 09:50:44.000000000 +0200
-+++ config-ml.in 2010-07-02 21:24:17.994211151 +0200
-@@ -511,6 +511,8 @@ multi-do:
- ADAFLAGS="$(ADAFLAGS) $${flags}" \
- prefix="$(prefix)" \
- exec_prefix="$(exec_prefix)" \
-+ mandir="$(mandir)" \
-+ infodir="$(infodir)" \
- GOCFLAGS="$(GOCFLAGS) $${flags}" \
- CXXFLAGS="$(CXXFLAGS) $${flags}" \
- LIBCFLAGS="$(LIBCFLAGS) $${flags}" \
---- libcpp/macro.c.jj 2015-01-14 11:01:34.000000000 +0100
-+++ libcpp/macro.c 2015-01-14 14:22:19.286949884 +0100
-@@ -2947,8 +2947,6 @@ create_iso_definition (cpp_reader *pfile
- cpp_token *token;
- const cpp_token *ctoken;
- bool following_paste_op = false;
-- const char *paste_op_error_msg =
-- N_("'##' cannot appear at either end of a macro expansion");
- unsigned int num_extra_tokens = 0;
-
- /* Get the first token of the expansion (or the '(' of a
-@@ -3059,7 +3057,8 @@ create_iso_definition (cpp_reader *pfile
- function-like macros, but not at the end. */
- if (following_paste_op)
- {
-- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
-+ cpp_error (pfile, CPP_DL_ERROR,
-+ "'##' cannot appear at either end of a macro expansion");
- return false;
- }
- break;
-@@ -3072,7 +3071,8 @@ create_iso_definition (cpp_reader *pfile
- function-like macros, but not at the beginning. */
- if (macro->count == 1)
- {
-- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
-+ cpp_error (pfile, CPP_DL_ERROR,
-+ "'##' cannot appear at either end of a macro expansion");
- return false;
- }
-
---- libcpp/expr.c.jj 2015-01-14 11:01:34.000000000 +0100
-+++ libcpp/expr.c 2015-01-14 14:35:52.851002344 +0100
-@@ -672,16 +672,17 @@ cpp_classify_number (cpp_reader *pfile,
- if ((result & CPP_N_WIDTH) == CPP_N_LARGE
- && CPP_OPTION (pfile, cpp_warn_long_long))
- {
-- const char *message = CPP_OPTION (pfile, cplusplus)
-- ? N_("use of C++11 long long integer constant")
-- : N_("use of C99 long long integer constant");
--
- if (CPP_OPTION (pfile, c99))
- cpp_warning_with_line (pfile, CPP_W_LONG_LONG, virtual_location,
-- 0, message);
-+ 0, CPP_OPTION (pfile, cplusplus)
-+ ? N_("use of C++11 long long integer constant")
-+ : N_("use of C99 long long integer constant"));
- else
- cpp_pedwarning_with_line (pfile, CPP_W_LONG_LONG,
-- virtual_location, 0, message);
-+ virtual_location, 0,
-+ CPP_OPTION (pfile, cplusplus)
-+ ? N_("use of C++11 long long integer constant")
-+ : N_("use of C99 long long integer constant"));
- }
-
- result |= CPP_N_INTEGER;
diff --git a/gcc8-i386-libgomp.patch b/gcc8-i386-libgomp.patch
deleted file mode 100644
index 520561e..0000000
--- a/gcc8-i386-libgomp.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- libgomp/configure.tgt.jj 2008-01-10 20:53:48.000000000 +0100
-+++ libgomp/configure.tgt 2008-03-27 12:44:51.000000000 +0100
-@@ -67,7 +67,7 @@ if test $enable_linux_futex = yes; then
- ;;
- *)
- if test -z "$with_arch"; then
-- XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
-+ XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
- fi
- esac
- ;;
diff --git a/gcc8-isl-dl.patch b/gcc8-isl-dl.patch
deleted file mode 100644
index 46d3b0d..0000000
--- a/gcc8-isl-dl.patch
+++ /dev/null
@@ -1,715 +0,0 @@
---- gcc/Makefile.in.jj 2015-06-06 10:00:25.000000000 +0200
-+++ gcc/Makefile.in 2015-11-04 14:56:02.643536437 +0100
-@@ -1046,7 +1046,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
- # and the system's installed libraries.
- LIBS = @LIBS@ libcommon.a $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBBACKTRACE) \
- $(LIBIBERTY) $(LIBDECNUMBER) $(HOST_LIBS)
--BACKENDLIBS = $(ISLLIBS) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
-+BACKENDLIBS = $(if $(ISLLIBS),-ldl) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
- $(ZLIB)
- # Any system libraries needed just for GNAT.
- SYSLIBS = @GNAT_LIBEXC@
-@@ -2196,6 +2196,15 @@ $(out_object_file): $(out_file)
- $(common_out_object_file): $(common_out_file)
- $(COMPILE) $<
- $(POSTCOMPILE)
-+
-+graphite%.o : \
-+ ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
-+graphite.o : \
-+ ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
-+graphite%.o : \
-+ ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS))
-+graphite.o : \
-+ ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS))
- #\f
- # Generate header and source files from the machine description,
- # and compile them.
---- gcc/graphite.h.jj 2016-01-27 12:44:06.000000000 +0100
-+++ gcc/graphite.h 2016-01-27 13:26:38.309876856 +0100
-@@ -39,6 +39,590 @@ along with GCC; see the file COPYING3.
- #include <isl/schedule_node.h>
- #include <isl/id.h>
- #include <isl/space.h>
-+#include <isl/version.h>
-+#include <dlfcn.h>
-+
-+#define DYNSYMS \
-+ DYNSYM (isl_aff_add_coefficient_si); \
-+ DYNSYM (isl_aff_free); \
-+ DYNSYM (isl_aff_get_space); \
-+ DYNSYM (isl_aff_set_coefficient_si); \
-+ DYNSYM (isl_aff_set_constant_si); \
-+ DYNSYM (isl_aff_zero_on_domain); \
-+ DYNSYM (isl_band_free); \
-+ DYNSYM (isl_band_get_children); \
-+ DYNSYM (isl_band_get_partial_schedule); \
-+ DYNSYM (isl_band_has_children); \
-+ DYNSYM (isl_band_list_free); \
-+ DYNSYM (isl_band_list_get_band); \
-+ DYNSYM (isl_band_list_get_ctx); \
-+ DYNSYM (isl_band_list_n_band); \
-+ DYNSYM (isl_band_n_member); \
-+ DYNSYM (isl_basic_map_add_constraint); \
-+ DYNSYM (isl_basic_map_project_out); \
-+ DYNSYM (isl_basic_map_universe); \
-+ DYNSYM (isl_constraint_set_coefficient_si); \
-+ DYNSYM (isl_constraint_set_constant_si); \
-+ DYNSYM (isl_ctx_alloc); \
-+ DYNSYM (isl_ctx_free); \
-+ DYNSYM (isl_equality_alloc); \
-+ DYNSYM (isl_id_alloc); \
-+ DYNSYM (isl_id_copy); \
-+ DYNSYM (isl_id_free); \
-+ DYNSYM (isl_inequality_alloc); \
-+ DYNSYM (isl_local_space_copy); \
-+ DYNSYM (isl_local_space_free); \
-+ DYNSYM (isl_local_space_from_space); \
-+ DYNSYM (isl_local_space_range); \
-+ DYNSYM (isl_map_add_constraint); \
-+ DYNSYM (isl_map_add_dims); \
-+ DYNSYM (isl_map_align_params); \
-+ DYNSYM (isl_map_apply_range); \
-+ DYNSYM (isl_map_copy); \
-+ DYNSYM (isl_map_dim); \
-+ DYNSYM (isl_map_dump); \
-+ DYNSYM (isl_map_equate); \
-+ DYNSYM (isl_map_fix_si); \
-+ DYNSYM (isl_map_flat_product); \
-+ DYNSYM (isl_map_flat_range_product); \
-+ DYNSYM (isl_map_free); \
-+ DYNSYM (isl_map_from_basic_map); \
-+ DYNSYM (isl_map_from_pw_aff); \
-+ DYNSYM (isl_map_from_union_map); \
-+ DYNSYM (isl_map_get_ctx); \
-+ DYNSYM (isl_map_get_space); \
-+ DYNSYM (isl_map_get_tuple_id); \
-+ DYNSYM (isl_map_insert_dims); \
-+ DYNSYM (isl_map_intersect); \
-+ DYNSYM (isl_map_intersect_domain); \
-+ DYNSYM (isl_map_intersect_range); \
-+ DYNSYM (isl_map_is_empty); \
-+ DYNSYM (isl_map_lex_ge); \
-+ DYNSYM (isl_map_lex_le); \
-+ DYNSYM (isl_map_n_out); \
-+ DYNSYM (isl_map_range); \
-+ DYNSYM (isl_map_set_tuple_id); \
-+ DYNSYM (isl_map_universe); \
-+ DYNSYM (isl_options_set_on_error); \
-+ DYNSYM (isl_options_set_schedule_serialize_sccs); \
-+ DYNSYM (isl_printer_set_yaml_style); \
-+ DYNSYM (isl_options_set_schedule_max_constant_term); \
-+ DYNSYM (isl_options_set_schedule_maximize_band_depth); \
-+ DYNSYM (isl_printer_free); \
-+ DYNSYM (isl_printer_print_aff); \
-+ DYNSYM (isl_printer_print_constraint); \
-+ DYNSYM (isl_printer_print_map); \
-+ DYNSYM (isl_printer_print_set); \
-+ DYNSYM (isl_printer_to_file); \
-+ DYNSYM (isl_pw_aff_add); \
-+ DYNSYM (isl_pw_aff_alloc); \
-+ DYNSYM (isl_pw_aff_copy); \
-+ DYNSYM (isl_pw_aff_eq_set); \
-+ DYNSYM (isl_pw_aff_free); \
-+ DYNSYM (isl_pw_aff_from_aff); \
-+ DYNSYM (isl_pw_aff_ge_set); \
-+ DYNSYM (isl_pw_aff_gt_set); \
-+ DYNSYM (isl_pw_aff_is_cst); \
-+ DYNSYM (isl_pw_aff_le_set); \
-+ DYNSYM (isl_pw_aff_lt_set); \
-+ DYNSYM (isl_pw_aff_mul); \
-+ DYNSYM (isl_pw_aff_ne_set); \
-+ DYNSYM (isl_pw_aff_nonneg_set); \
-+ DYNSYM (isl_pw_aff_set_tuple_id); \
-+ DYNSYM (isl_pw_aff_sub); \
-+ DYNSYM (isl_pw_aff_zero_set); \
-+ DYNSYM (isl_schedule_free); \
-+ DYNSYM (isl_schedule_get_band_forest); \
-+ DYNSYM (isl_set_add_constraint); \
-+ DYNSYM (isl_set_add_dims); \
-+ DYNSYM (isl_set_apply); \
-+ DYNSYM (isl_set_coalesce); \
-+ DYNSYM (isl_set_copy); \
-+ DYNSYM (isl_set_dim); \
-+ DYNSYM (isl_set_fix_si); \
-+ DYNSYM (isl_set_free); \
-+ DYNSYM (isl_set_get_space); \
-+ DYNSYM (isl_set_get_tuple_id); \
-+ DYNSYM (isl_set_intersect); \
-+ DYNSYM (isl_set_is_empty); \
-+ DYNSYM (isl_set_n_dim); \
-+ DYNSYM (isl_set_nat_universe); \
-+ DYNSYM (isl_set_project_out); \
-+ DYNSYM (isl_set_set_tuple_id); \
-+ DYNSYM (isl_set_universe); \
-+ DYNSYM (isl_space_add_dims); \
-+ DYNSYM (isl_space_alloc); \
-+ DYNSYM (isl_space_copy); \
-+ DYNSYM (isl_space_dim); \
-+ DYNSYM (isl_space_domain); \
-+ DYNSYM (isl_space_find_dim_by_id); \
-+ DYNSYM (isl_space_free); \
-+ DYNSYM (isl_space_from_domain); \
-+ DYNSYM (isl_space_get_tuple_id); \
-+ DYNSYM (isl_space_params_alloc); \
-+ DYNSYM (isl_space_range); \
-+ DYNSYM (isl_space_set_alloc); \
-+ DYNSYM (isl_space_set_dim_id); \
-+ DYNSYM (isl_space_set_tuple_id); \
-+ DYNSYM (isl_union_map_add_map); \
-+ DYNSYM (isl_union_map_align_params); \
-+ DYNSYM (isl_union_map_apply_domain); \
-+ DYNSYM (isl_union_map_apply_range); \
-+ DYNSYM (isl_union_map_compute_flow); \
-+ DYNSYM (isl_union_map_copy); \
-+ DYNSYM (isl_union_map_empty); \
-+ DYNSYM (isl_union_map_flat_range_product); \
-+ DYNSYM (isl_union_map_foreach_map); \
-+ DYNSYM (isl_union_map_free); \
-+ DYNSYM (isl_union_map_from_map); \
-+ DYNSYM (isl_union_map_get_ctx); \
-+ DYNSYM (isl_union_map_get_space); \
-+ DYNSYM (isl_union_map_gist_domain); \
-+ DYNSYM (isl_union_map_gist_range); \
-+ DYNSYM (isl_union_map_intersect_domain); \
-+ DYNSYM (isl_union_map_is_empty); \
-+ DYNSYM (isl_union_map_subtract); \
-+ DYNSYM (isl_union_map_union); \
-+ DYNSYM (isl_union_set_add_set); \
-+ DYNSYM (isl_union_set_compute_schedule); \
-+ DYNSYM (isl_union_set_copy); \
-+ DYNSYM (isl_union_set_empty); \
-+ DYNSYM (isl_union_set_from_set); \
-+ DYNSYM (isl_aff_add_constant_val); \
-+ DYNSYM (isl_aff_get_coefficient_val); \
-+ DYNSYM (isl_aff_get_ctx); \
-+ DYNSYM (isl_aff_mod_val); \
-+ DYNSYM (isl_ast_build_ast_from_schedule); \
-+ DYNSYM (isl_ast_build_free); \
-+ DYNSYM (isl_ast_build_from_context); \
-+ DYNSYM (isl_ast_build_get_ctx); \
-+ DYNSYM (isl_ast_build_get_schedule); \
-+ DYNSYM (isl_ast_build_get_schedule_space); \
-+ DYNSYM (isl_ast_build_set_before_each_for); \
-+ DYNSYM (isl_ast_build_set_options); \
-+ DYNSYM (isl_ast_expr_free); \
-+ DYNSYM (isl_ast_expr_from_val); \
-+ DYNSYM (isl_ast_expr_get_ctx); \
-+ DYNSYM (isl_ast_expr_get_id); \
-+ DYNSYM (isl_ast_expr_get_op_arg); \
-+ DYNSYM (isl_ast_expr_get_op_n_arg); \
-+ DYNSYM (isl_ast_expr_get_op_type); \
-+ DYNSYM (isl_ast_expr_get_type); \
-+ DYNSYM (isl_ast_expr_get_val); \
-+ DYNSYM (isl_ast_expr_sub); \
-+ DYNSYM (isl_ast_node_block_get_children); \
-+ DYNSYM (isl_ast_node_for_get_body); \
-+ DYNSYM (isl_ast_node_for_get_cond); \
-+ DYNSYM (isl_ast_node_for_get_inc); \
-+ DYNSYM (isl_ast_node_for_get_init); \
-+ DYNSYM (isl_ast_node_for_get_iterator); \
-+ DYNSYM (isl_ast_node_free); \
-+ DYNSYM (isl_ast_node_get_annotation); \
-+ DYNSYM (isl_ast_node_get_type); \
-+ DYNSYM (isl_ast_node_if_get_cond); \
-+ DYNSYM (isl_ast_node_if_get_else); \
-+ DYNSYM (isl_ast_node_if_get_then); \
-+ DYNSYM (isl_ast_node_list_free); \
-+ DYNSYM (isl_ast_node_list_get_ast_node); \
-+ DYNSYM (isl_ast_node_list_n_ast_node); \
-+ DYNSYM (isl_ast_node_user_get_expr); \
-+ DYNSYM (isl_constraint_set_coefficient_val); \
-+ DYNSYM (isl_constraint_set_constant_val); \
-+ DYNSYM (isl_id_get_user); \
-+ DYNSYM (isl_local_space_get_ctx); \
-+ DYNSYM (isl_map_fix_val); \
-+ DYNSYM (isl_options_set_ast_build_atomic_upper_bound); \
-+ DYNSYM (isl_printer_print_ast_node); \
-+ DYNSYM (isl_printer_print_str); \
-+ DYNSYM (isl_printer_set_output_format); \
-+ DYNSYM (isl_pw_aff_mod_val); \
-+ DYNSYM (isl_schedule_constraints_compute_schedule); \
-+ DYNSYM (isl_schedule_constraints_on_domain); \
-+ DYNSYM (isl_schedule_constraints_set_coincidence); \
-+ DYNSYM (isl_schedule_constraints_set_proximity); \
-+ DYNSYM (isl_schedule_constraints_set_validity); \
-+ DYNSYM (isl_set_get_dim_id); \
-+ DYNSYM (isl_set_max_val); \
-+ DYNSYM (isl_set_min_val); \
-+ DYNSYM (isl_set_params); \
-+ DYNSYM (isl_space_align_params); \
-+ DYNSYM (isl_space_map_from_domain_and_range); \
-+ DYNSYM (isl_space_set_tuple_name); \
-+ DYNSYM (isl_space_wrap); \
-+ DYNSYM (isl_union_map_from_domain_and_range); \
-+ DYNSYM (isl_union_map_range); \
-+ DYNSYM (isl_union_set_union); \
-+ DYNSYM (isl_union_set_universe); \
-+ DYNSYM (isl_val_2exp); \
-+ DYNSYM (isl_val_add_ui); \
-+ DYNSYM (isl_val_copy); \
-+ DYNSYM (isl_val_free); \
-+ DYNSYM (isl_val_int_from_si); \
-+ DYNSYM (isl_val_int_from_ui); \
-+ DYNSYM (isl_val_mul); \
-+ DYNSYM (isl_val_neg); \
-+ DYNSYM (isl_val_sub); \
-+ DYNSYM (isl_printer_print_union_map); \
-+ DYNSYM (isl_pw_aff_get_ctx); \
-+ DYNSYM (isl_val_is_int); \
-+ DYNSYM (isl_ctx_get_max_operations); \
-+ DYNSYM (isl_ctx_set_max_operations); \
-+ DYNSYM (isl_ctx_last_error); \
-+ DYNSYM (isl_ctx_reset_operations); \
-+ DYNSYM (isl_map_coalesce); \
-+ DYNSYM (isl_printer_print_schedule); \
-+ DYNSYM (isl_set_set_dim_id); \
-+ DYNSYM (isl_union_map_coalesce); \
-+ DYNSYM (isl_multi_val_set_val); \
-+ DYNSYM (isl_multi_val_zero); \
-+ DYNSYM (isl_options_set_schedule_max_coefficient); \
-+ DYNSYM (isl_options_set_tile_scale_tile_loops); \
-+ DYNSYM (isl_schedule_copy); \
-+ DYNSYM (isl_schedule_get_map); \
-+ DYNSYM (isl_schedule_map_schedule_node_bottom_up); \
-+ DYNSYM (isl_schedule_node_band_get_permutable); \
-+ DYNSYM (isl_schedule_node_band_get_space); \
-+ DYNSYM (isl_schedule_node_band_tile); \
-+ DYNSYM (isl_schedule_node_child); \
-+ DYNSYM (isl_schedule_node_free); \
-+ DYNSYM (isl_schedule_node_get_child); \
-+ DYNSYM (isl_schedule_node_get_ctx); \
-+ DYNSYM (isl_schedule_node_get_type); \
-+ DYNSYM (isl_schedule_node_n_children); \
-+ DYNSYM (isl_union_map_is_equal); \
-+ DYNSYM (isl_union_access_info_compute_flow); \
-+ DYNSYM (isl_union_access_info_from_sink); \
-+ DYNSYM (isl_union_access_info_set_may_source); \
-+ DYNSYM (isl_union_access_info_set_must_source); \
-+ DYNSYM (isl_union_access_info_set_schedule); \
-+ DYNSYM (isl_union_flow_free); \
-+ DYNSYM (isl_union_flow_get_may_dependence); \
-+ DYNSYM (isl_union_flow_get_must_dependence); \
-+ DYNSYM (isl_aff_var_on_domain); \
-+ DYNSYM (isl_multi_aff_from_aff); \
-+ DYNSYM (isl_schedule_get_ctx); \
-+ DYNSYM (isl_multi_aff_set_tuple_id); \
-+ DYNSYM (isl_multi_aff_dim); \
-+ DYNSYM (isl_schedule_get_domain); \
-+ DYNSYM (isl_union_set_is_empty); \
-+ DYNSYM (isl_union_set_get_space); \
-+ DYNSYM (isl_union_pw_multi_aff_empty); \
-+ DYNSYM (isl_union_set_foreach_set); \
-+ DYNSYM (isl_union_set_free); \
-+ DYNSYM (isl_multi_union_pw_aff_from_union_pw_multi_aff); \
-+ DYNSYM (isl_multi_union_pw_aff_apply_multi_aff); \
-+ DYNSYM (isl_schedule_insert_partial_schedule); \
-+ DYNSYM (isl_union_pw_multi_aff_free); \
-+ DYNSYM (isl_pw_multi_aff_project_out_map); \
-+ DYNSYM (isl_union_pw_multi_aff_add_pw_multi_aff); \
-+ DYNSYM (isl_schedule_from_domain); \
-+ DYNSYM (isl_schedule_sequence); \
-+ DYNSYM (isl_ast_build_node_from_schedule); \
-+ DYNSYM (isl_ast_node_mark_get_node); \
-+ DYNSYM (isl_schedule_node_band_member_get_ast_loop_type); \
-+ DYNSYM (isl_schedule_node_band_member_set_ast_loop_type); \
-+ DYNSYM (isl_val_n_abs_num_chunks); \
-+ DYNSYM (isl_val_get_abs_num_chunks); \
-+ DYNSYM (isl_val_int_from_chunks); \
-+ DYNSYM (isl_val_is_neg); \
-+ DYNSYM (isl_version); \
-+ DYNSYM (isl_options_get_on_error); \
-+ DYNSYM (isl_ctx_reset_error);
-+
-+extern struct isl_pointers_s__
-+{
-+ bool inited;
-+ void *h;
-+#define DYNSYM(x) __typeof (x) *p_##x
-+ DYNSYMS
-+#undef DYNSYM
-+} isl_pointers__;
-+
-+#define isl_aff_add_coefficient_si (*isl_pointers__.p_isl_aff_add_coefficient_si)
-+#define isl_aff_free (*isl_pointers__.p_isl_aff_free)
-+#define isl_aff_get_space (*isl_pointers__.p_isl_aff_get_space)
-+#define isl_aff_set_coefficient_si (*isl_pointers__.p_isl_aff_set_coefficient_si)
-+#define isl_aff_set_constant_si (*isl_pointers__.p_isl_aff_set_constant_si)
-+#define isl_aff_zero_on_domain (*isl_pointers__.p_isl_aff_zero_on_domain)
-+#define isl_band_free (*isl_pointers__.p_isl_band_free)
-+#define isl_band_get_children (*isl_pointers__.p_isl_band_get_children)
-+#define isl_band_get_partial_schedule (*isl_pointers__.p_isl_band_get_partial_schedule)
-+#define isl_band_has_children (*isl_pointers__.p_isl_band_has_children)
-+#define isl_band_list_free (*isl_pointers__.p_isl_band_list_free)
-+#define isl_band_list_get_band (*isl_pointers__.p_isl_band_list_get_band)
-+#define isl_band_list_get_ctx (*isl_pointers__.p_isl_band_list_get_ctx)
-+#define isl_band_list_n_band (*isl_pointers__.p_isl_band_list_n_band)
-+#define isl_band_n_member (*isl_pointers__.p_isl_band_n_member)
-+#define isl_basic_map_add_constraint (*isl_pointers__.p_isl_basic_map_add_constraint)
-+#define isl_basic_map_project_out (*isl_pointers__.p_isl_basic_map_project_out)
-+#define isl_basic_map_universe (*isl_pointers__.p_isl_basic_map_universe)
-+#define isl_constraint_set_coefficient_si (*isl_pointers__.p_isl_constraint_set_coefficient_si)
-+#define isl_constraint_set_constant_si (*isl_pointers__.p_isl_constraint_set_constant_si)
-+#define isl_ctx_alloc (*isl_pointers__.p_isl_ctx_alloc)
-+#define isl_ctx_free (*isl_pointers__.p_isl_ctx_free)
-+#define isl_equality_alloc (*isl_pointers__.p_isl_equality_alloc)
-+#define isl_id_alloc (*isl_pointers__.p_isl_id_alloc)
-+#define isl_id_copy (*isl_pointers__.p_isl_id_copy)
-+#define isl_id_free (*isl_pointers__.p_isl_id_free)
-+#define isl_inequality_alloc (*isl_pointers__.p_isl_inequality_alloc)
-+#define isl_local_space_copy (*isl_pointers__.p_isl_local_space_copy)
-+#define isl_local_space_free (*isl_pointers__.p_isl_local_space_free)
-+#define isl_local_space_from_space (*isl_pointers__.p_isl_local_space_from_space)
-+#define isl_local_space_range (*isl_pointers__.p_isl_local_space_range)
-+#define isl_map_add_constraint (*isl_pointers__.p_isl_map_add_constraint)
-+#define isl_map_add_dims (*isl_pointers__.p_isl_map_add_dims)
-+#define isl_map_align_params (*isl_pointers__.p_isl_map_align_params)
-+#define isl_map_apply_range (*isl_pointers__.p_isl_map_apply_range)
-+#define isl_map_copy (*isl_pointers__.p_isl_map_copy)
-+#define isl_map_dim (*isl_pointers__.p_isl_map_dim)
-+#define isl_map_dump (*isl_pointers__.p_isl_map_dump)
-+#define isl_map_equate (*isl_pointers__.p_isl_map_equate)
-+#define isl_map_fix_si (*isl_pointers__.p_isl_map_fix_si)
-+#define isl_map_flat_product (*isl_pointers__.p_isl_map_flat_product)
-+#define isl_map_flat_range_product (*isl_pointers__.p_isl_map_flat_range_product)
-+#define isl_map_free (*isl_pointers__.p_isl_map_free)
-+#define isl_map_from_basic_map (*isl_pointers__.p_isl_map_from_basic_map)
-+#define isl_map_from_pw_aff (*isl_pointers__.p_isl_map_from_pw_aff)
-+#define isl_map_from_union_map (*isl_pointers__.p_isl_map_from_union_map)
-+#define isl_map_get_ctx (*isl_pointers__.p_isl_map_get_ctx)
-+#define isl_map_get_space (*isl_pointers__.p_isl_map_get_space)
-+#define isl_map_get_tuple_id (*isl_pointers__.p_isl_map_get_tuple_id)
-+#define isl_map_insert_dims (*isl_pointers__.p_isl_map_insert_dims)
-+#define isl_map_intersect (*isl_pointers__.p_isl_map_intersect)
-+#define isl_map_intersect_domain (*isl_pointers__.p_isl_map_intersect_domain)
-+#define isl_map_intersect_range (*isl_pointers__.p_isl_map_intersect_range)
-+#define isl_map_is_empty (*isl_pointers__.p_isl_map_is_empty)
-+#define isl_map_lex_ge (*isl_pointers__.p_isl_map_lex_ge)
-+#define isl_map_lex_le (*isl_pointers__.p_isl_map_lex_le)
-+#define isl_map_n_out (*isl_pointers__.p_isl_map_n_out)
-+#define isl_map_range (*isl_pointers__.p_isl_map_range)
-+#define isl_map_set_tuple_id (*isl_pointers__.p_isl_map_set_tuple_id)
-+#define isl_map_universe (*isl_pointers__.p_isl_map_universe)
-+#define isl_options_set_on_error (*isl_pointers__.p_isl_options_set_on_error)
-+#define isl_options_set_schedule_serialize_sccs (*isl_pointers__.p_isl_options_set_schedule_serialize_sccs)
-+#define isl_printer_set_yaml_style (*isl_pointers__.p_isl_printer_set_yaml_style)
-+#define isl_options_set_schedule_max_constant_term (*isl_pointers__.p_isl_options_set_schedule_max_constant_term)
-+#define isl_options_set_schedule_maximize_band_depth (*isl_pointers__.p_isl_options_set_schedule_maximize_band_depth)
-+#define isl_printer_free (*isl_pointers__.p_isl_printer_free)
-+#define isl_printer_print_aff (*isl_pointers__.p_isl_printer_print_aff)
-+#define isl_printer_print_constraint (*isl_pointers__.p_isl_printer_print_constraint)
-+#define isl_printer_print_map (*isl_pointers__.p_isl_printer_print_map)
-+#define isl_printer_print_set (*isl_pointers__.p_isl_printer_print_set)
-+#define isl_printer_to_file (*isl_pointers__.p_isl_printer_to_file)
-+#define isl_pw_aff_add (*isl_pointers__.p_isl_pw_aff_add)
-+#define isl_pw_aff_alloc (*isl_pointers__.p_isl_pw_aff_alloc)
-+#define isl_pw_aff_copy (*isl_pointers__.p_isl_pw_aff_copy)
-+#define isl_pw_aff_eq_set (*isl_pointers__.p_isl_pw_aff_eq_set)
-+#define isl_pw_aff_free (*isl_pointers__.p_isl_pw_aff_free)
-+#define isl_pw_aff_from_aff (*isl_pointers__.p_isl_pw_aff_from_aff)
-+#define isl_pw_aff_ge_set (*isl_pointers__.p_isl_pw_aff_ge_set)
-+#define isl_pw_aff_gt_set (*isl_pointers__.p_isl_pw_aff_gt_set)
-+#define isl_pw_aff_is_cst (*isl_pointers__.p_isl_pw_aff_is_cst)
-+#define isl_pw_aff_le_set (*isl_pointers__.p_isl_pw_aff_le_set)
-+#define isl_pw_aff_lt_set (*isl_pointers__.p_isl_pw_aff_lt_set)
-+#define isl_pw_aff_mul (*isl_pointers__.p_isl_pw_aff_mul)
-+#define isl_pw_aff_ne_set (*isl_pointers__.p_isl_pw_aff_ne_set)
-+#define isl_pw_aff_nonneg_set (*isl_pointers__.p_isl_pw_aff_nonneg_set)
-+#define isl_pw_aff_set_tuple_id (*isl_pointers__.p_isl_pw_aff_set_tuple_id)
-+#define isl_pw_aff_sub (*isl_pointers__.p_isl_pw_aff_sub)
-+#define isl_pw_aff_zero_set (*isl_pointers__.p_isl_pw_aff_zero_set)
-+#define isl_schedule_free (*isl_pointers__.p_isl_schedule_free)
-+#define isl_schedule_get_band_forest (*isl_pointers__.p_isl_schedule_get_band_forest)
-+#define isl_set_add_constraint (*isl_pointers__.p_isl_set_add_constraint)
-+#define isl_set_add_dims (*isl_pointers__.p_isl_set_add_dims)
-+#define isl_set_apply (*isl_pointers__.p_isl_set_apply)
-+#define isl_set_coalesce (*isl_pointers__.p_isl_set_coalesce)
-+#define isl_set_copy (*isl_pointers__.p_isl_set_copy)
-+#define isl_set_dim (*isl_pointers__.p_isl_set_dim)
-+#define isl_set_fix_si (*isl_pointers__.p_isl_set_fix_si)
-+#define isl_set_free (*isl_pointers__.p_isl_set_free)
-+#define isl_set_get_space (*isl_pointers__.p_isl_set_get_space)
-+#define isl_set_get_tuple_id (*isl_pointers__.p_isl_set_get_tuple_id)
-+#define isl_set_intersect (*isl_pointers__.p_isl_set_intersect)
-+#define isl_set_is_empty (*isl_pointers__.p_isl_set_is_empty)
-+#define isl_set_n_dim (*isl_pointers__.p_isl_set_n_dim)
-+#define isl_set_nat_universe (*isl_pointers__.p_isl_set_nat_universe)
-+#define isl_set_project_out (*isl_pointers__.p_isl_set_project_out)
-+#define isl_set_set_tuple_id (*isl_pointers__.p_isl_set_set_tuple_id)
-+#define isl_set_universe (*isl_pointers__.p_isl_set_universe)
-+#define isl_space_add_dims (*isl_pointers__.p_isl_space_add_dims)
-+#define isl_space_alloc (*isl_pointers__.p_isl_space_alloc)
-+#define isl_space_copy (*isl_pointers__.p_isl_space_copy)
-+#define isl_space_dim (*isl_pointers__.p_isl_space_dim)
-+#define isl_space_domain (*isl_pointers__.p_isl_space_domain)
-+#define isl_space_find_dim_by_id (*isl_pointers__.p_isl_space_find_dim_by_id)
-+#define isl_space_free (*isl_pointers__.p_isl_space_free)
-+#define isl_space_from_domain (*isl_pointers__.p_isl_space_from_domain)
-+#define isl_space_get_tuple_id (*isl_pointers__.p_isl_space_get_tuple_id)
-+#define isl_space_params_alloc (*isl_pointers__.p_isl_space_params_alloc)
-+#define isl_space_range (*isl_pointers__.p_isl_space_range)
-+#define isl_space_set_alloc (*isl_pointers__.p_isl_space_set_alloc)
-+#define isl_space_set_dim_id (*isl_pointers__.p_isl_space_set_dim_id)
-+#define isl_space_set_tuple_id (*isl_pointers__.p_isl_space_set_tuple_id)
-+#define isl_union_map_add_map (*isl_pointers__.p_isl_union_map_add_map)
-+#define isl_union_map_align_params (*isl_pointers__.p_isl_union_map_align_params)
-+#define isl_union_map_apply_domain (*isl_pointers__.p_isl_union_map_apply_domain)
-+#define isl_union_map_apply_range (*isl_pointers__.p_isl_union_map_apply_range)
-+#define isl_union_map_compute_flow (*isl_pointers__.p_isl_union_map_compute_flow)
-+#define isl_union_map_copy (*isl_pointers__.p_isl_union_map_copy)
-+#define isl_union_map_empty (*isl_pointers__.p_isl_union_map_empty)
-+#define isl_union_map_flat_range_product (*isl_pointers__.p_isl_union_map_flat_range_product)
-+#define isl_union_map_foreach_map (*isl_pointers__.p_isl_union_map_foreach_map)
-+#define isl_union_map_free (*isl_pointers__.p_isl_union_map_free)
-+#define isl_union_map_from_map (*isl_pointers__.p_isl_union_map_from_map)
-+#define isl_union_map_get_ctx (*isl_pointers__.p_isl_union_map_get_ctx)
-+#define isl_union_map_get_space (*isl_pointers__.p_isl_union_map_get_space)
-+#define isl_union_map_gist_domain (*isl_pointers__.p_isl_union_map_gist_domain)
-+#define isl_union_map_gist_range (*isl_pointers__.p_isl_union_map_gist_range)
-+#define isl_union_map_intersect_domain (*isl_pointers__.p_isl_union_map_intersect_domain)
-+#define isl_union_map_is_empty (*isl_pointers__.p_isl_union_map_is_empty)
-+#define isl_union_map_subtract (*isl_pointers__.p_isl_union_map_subtract)
-+#define isl_union_map_union (*isl_pointers__.p_isl_union_map_union)
-+#define isl_union_set_add_set (*isl_pointers__.p_isl_union_set_add_set)
-+#define isl_union_set_compute_schedule (*isl_pointers__.p_isl_union_set_compute_schedule)
-+#define isl_union_set_copy (*isl_pointers__.p_isl_union_set_copy)
-+#define isl_union_set_empty (*isl_pointers__.p_isl_union_set_empty)
-+#define isl_union_set_from_set (*isl_pointers__.p_isl_union_set_from_set)
-+#define isl_aff_add_constant_val (*isl_pointers__.p_isl_aff_add_constant_val)
-+#define isl_aff_get_coefficient_val (*isl_pointers__.p_isl_aff_get_coefficient_val)
-+#define isl_aff_get_ctx (*isl_pointers__.p_isl_aff_get_ctx)
-+#define isl_aff_mod_val (*isl_pointers__.p_isl_aff_mod_val)
-+#define isl_ast_build_ast_from_schedule (*isl_pointers__.p_isl_ast_build_ast_from_schedule)
-+#define isl_ast_build_free (*isl_pointers__.p_isl_ast_build_free)
-+#define isl_ast_build_from_context (*isl_pointers__.p_isl_ast_build_from_context)
-+#define isl_ast_build_get_ctx (*isl_pointers__.p_isl_ast_build_get_ctx)
-+#define isl_ast_build_get_schedule (*isl_pointers__.p_isl_ast_build_get_schedule)
-+#define isl_ast_build_get_schedule_space (*isl_pointers__.p_isl_ast_build_get_schedule_space)
-+#define isl_ast_build_set_before_each_for (*isl_pointers__.p_isl_ast_build_set_before_each_for)
-+#define isl_ast_build_set_options (*isl_pointers__.p_isl_ast_build_set_options)
-+#define isl_ast_expr_free (*isl_pointers__.p_isl_ast_expr_free)
-+#define isl_ast_expr_from_val (*isl_pointers__.p_isl_ast_expr_from_val)
-+#define isl_ast_expr_get_ctx (*isl_pointers__.p_isl_ast_expr_get_ctx)
-+#define isl_ast_expr_get_id (*isl_pointers__.p_isl_ast_expr_get_id)
-+#define isl_ast_expr_get_op_arg (*isl_pointers__.p_isl_ast_expr_get_op_arg)
-+#define isl_ast_expr_get_op_n_arg (*isl_pointers__.p_isl_ast_expr_get_op_n_arg)
-+#define isl_ast_expr_get_op_type (*isl_pointers__.p_isl_ast_expr_get_op_type)
-+#define isl_ast_expr_get_type (*isl_pointers__.p_isl_ast_expr_get_type)
-+#define isl_ast_expr_get_val (*isl_pointers__.p_isl_ast_expr_get_val)
-+#define isl_ast_expr_sub (*isl_pointers__.p_isl_ast_expr_sub)
-+#define isl_ast_node_block_get_children (*isl_pointers__.p_isl_ast_node_block_get_children)
-+#define isl_ast_node_for_get_body (*isl_pointers__.p_isl_ast_node_for_get_body)
-+#define isl_ast_node_for_get_cond (*isl_pointers__.p_isl_ast_node_for_get_cond)
-+#define isl_ast_node_for_get_inc (*isl_pointers__.p_isl_ast_node_for_get_inc)
-+#define isl_ast_node_for_get_init (*isl_pointers__.p_isl_ast_node_for_get_init)
-+#define isl_ast_node_for_get_iterator (*isl_pointers__.p_isl_ast_node_for_get_iterator)
-+#define isl_ast_node_free (*isl_pointers__.p_isl_ast_node_free)
-+#define isl_ast_node_get_annotation (*isl_pointers__.p_isl_ast_node_get_annotation)
-+#define isl_ast_node_get_type (*isl_pointers__.p_isl_ast_node_get_type)
-+#define isl_ast_node_if_get_cond (*isl_pointers__.p_isl_ast_node_if_get_cond)
-+#define isl_ast_node_if_get_else (*isl_pointers__.p_isl_ast_node_if_get_else)
-+#define isl_ast_node_if_get_then (*isl_pointers__.p_isl_ast_node_if_get_then)
-+#define isl_ast_node_list_free (*isl_pointers__.p_isl_ast_node_list_free)
-+#define isl_ast_node_list_get_ast_node (*isl_pointers__.p_isl_ast_node_list_get_ast_node)
-+#define isl_ast_node_list_n_ast_node (*isl_pointers__.p_isl_ast_node_list_n_ast_node)
-+#define isl_ast_node_user_get_expr (*isl_pointers__.p_isl_ast_node_user_get_expr)
-+#define isl_constraint_set_coefficient_val (*isl_pointers__.p_isl_constraint_set_coefficient_val)
-+#define isl_constraint_set_constant_val (*isl_pointers__.p_isl_constraint_set_constant_val)
-+#define isl_id_get_user (*isl_pointers__.p_isl_id_get_user)
-+#define isl_local_space_get_ctx (*isl_pointers__.p_isl_local_space_get_ctx)
-+#define isl_map_fix_val (*isl_pointers__.p_isl_map_fix_val)
-+#define isl_options_set_ast_build_atomic_upper_bound (*isl_pointers__.p_isl_options_set_ast_build_atomic_upper_bound)
-+#define isl_printer_print_ast_node (*isl_pointers__.p_isl_printer_print_ast_node)
-+#define isl_printer_print_str (*isl_pointers__.p_isl_printer_print_str)
-+#define isl_printer_set_output_format (*isl_pointers__.p_isl_printer_set_output_format)
-+#define isl_pw_aff_mod_val (*isl_pointers__.p_isl_pw_aff_mod_val)
-+#define isl_schedule_constraints_compute_schedule (*isl_pointers__.p_isl_schedule_constraints_compute_schedule)
-+#define isl_schedule_constraints_on_domain (*isl_pointers__.p_isl_schedule_constraints_on_domain)
-+#define isl_schedule_constraints_set_coincidence (*isl_pointers__.p_isl_schedule_constraints_set_coincidence)
-+#define isl_schedule_constraints_set_proximity (*isl_pointers__.p_isl_schedule_constraints_set_proximity)
-+#define isl_schedule_constraints_set_validity (*isl_pointers__.p_isl_schedule_constraints_set_validity)
-+#define isl_set_get_dim_id (*isl_pointers__.p_isl_set_get_dim_id)
-+#define isl_set_max_val (*isl_pointers__.p_isl_set_max_val)
-+#define isl_set_min_val (*isl_pointers__.p_isl_set_min_val)
-+#define isl_set_params (*isl_pointers__.p_isl_set_params)
-+#define isl_space_align_params (*isl_pointers__.p_isl_space_align_params)
-+#define isl_space_map_from_domain_and_range (*isl_pointers__.p_isl_space_map_from_domain_and_range)
-+#define isl_space_set_tuple_name (*isl_pointers__.p_isl_space_set_tuple_name)
-+#define isl_space_wrap (*isl_pointers__.p_isl_space_wrap)
-+#define isl_union_map_from_domain_and_range (*isl_pointers__.p_isl_union_map_from_domain_and_range)
-+#define isl_union_map_range (*isl_pointers__.p_isl_union_map_range)
-+#define isl_union_set_union (*isl_pointers__.p_isl_union_set_union)
-+#define isl_union_set_universe (*isl_pointers__.p_isl_union_set_universe)
-+#define isl_val_2exp (*isl_pointers__.p_isl_val_2exp)
-+#define isl_val_add_ui (*isl_pointers__.p_isl_val_add_ui)
-+#define isl_val_copy (*isl_pointers__.p_isl_val_copy)
-+#define isl_val_free (*isl_pointers__.p_isl_val_free)
-+#define isl_val_int_from_si (*isl_pointers__.p_isl_val_int_from_si)
-+#define isl_val_int_from_ui (*isl_pointers__.p_isl_val_int_from_ui)
-+#define isl_val_mul (*isl_pointers__.p_isl_val_mul)
-+#define isl_val_neg (*isl_pointers__.p_isl_val_neg)
-+#define isl_val_sub (*isl_pointers__.p_isl_val_sub)
-+#define isl_printer_print_union_map (*isl_pointers__.p_isl_printer_print_union_map)
-+#define isl_pw_aff_get_ctx (*isl_pointers__.p_isl_pw_aff_get_ctx)
-+#define isl_val_is_int (*isl_pointers__.p_isl_val_is_int)
-+#define isl_ctx_get_max_operations (*isl_pointers__.p_isl_ctx_get_max_operations)
-+#define isl_ctx_set_max_operations (*isl_pointers__.p_isl_ctx_set_max_operations)
-+#define isl_ctx_last_error (*isl_pointers__.p_isl_ctx_last_error)
-+#define isl_ctx_reset_operations (*isl_pointers__.p_isl_ctx_reset_operations)
-+#define isl_map_coalesce (*isl_pointers__.p_isl_map_coalesce)
-+#define isl_printer_print_schedule (*isl_pointers__.p_isl_printer_print_schedule)
-+#define isl_set_set_dim_id (*isl_pointers__.p_isl_set_set_dim_id)
-+#define isl_union_map_coalesce (*isl_pointers__.p_isl_union_map_coalesce)
-+#define isl_multi_val_set_val (*isl_pointers__.p_isl_multi_val_set_val)
-+#define isl_multi_val_zero (*isl_pointers__.p_isl_multi_val_zero)
-+#define isl_options_set_schedule_max_coefficient (*isl_pointers__.p_isl_options_set_schedule_max_coefficient)
-+#define isl_options_set_tile_scale_tile_loops (*isl_pointers__.p_isl_options_set_tile_scale_tile_loops)
-+#define isl_schedule_copy (*isl_pointers__.p_isl_schedule_copy)
-+#define isl_schedule_get_map (*isl_pointers__.p_isl_schedule_get_map)
-+#define isl_schedule_map_schedule_node_bottom_up (*isl_pointers__.p_isl_schedule_map_schedule_node_bottom_up)
-+#define isl_schedule_node_band_get_permutable (*isl_pointers__.p_isl_schedule_node_band_get_permutable)
-+#define isl_schedule_node_band_get_space (*isl_pointers__.p_isl_schedule_node_band_get_space)
-+#define isl_schedule_node_band_tile (*isl_pointers__.p_isl_schedule_node_band_tile)
-+#define isl_schedule_node_child (*isl_pointers__.p_isl_schedule_node_child)
-+#define isl_schedule_node_free (*isl_pointers__.p_isl_schedule_node_free)
-+#define isl_schedule_node_get_child (*isl_pointers__.p_isl_schedule_node_get_child)
-+#define isl_schedule_node_get_ctx (*isl_pointers__.p_isl_schedule_node_get_ctx)
-+#define isl_schedule_node_get_type (*isl_pointers__.p_isl_schedule_node_get_type)
-+#define isl_schedule_node_n_children (*isl_pointers__.p_isl_schedule_node_n_children)
-+#define isl_union_map_is_equal (*isl_pointers__.p_isl_union_map_is_equal)
-+#define isl_union_access_info_compute_flow (*isl_pointers__.p_isl_union_access_info_compute_flow)
-+#define isl_union_access_info_from_sink (*isl_pointers__.p_isl_union_access_info_from_sink)
-+#define isl_union_access_info_set_may_source (*isl_pointers__.p_isl_union_access_info_set_may_source)
-+#define isl_union_access_info_set_must_source (*isl_pointers__.p_isl_union_access_info_set_must_source)
-+#define isl_union_access_info_set_schedule (*isl_pointers__.p_isl_union_access_info_set_schedule)
-+#define isl_union_flow_free (*isl_pointers__.p_isl_union_flow_free)
-+#define isl_union_flow_get_may_dependence (*isl_pointers__.p_isl_union_flow_get_may_dependence)
-+#define isl_union_flow_get_must_dependence (*isl_pointers__.p_isl_union_flow_get_must_dependence)
-+#define isl_aff_var_on_domain (*isl_pointers__.p_isl_aff_var_on_domain)
-+#define isl_multi_aff_from_aff (*isl_pointers__.p_isl_multi_aff_from_aff)
-+#define isl_schedule_get_ctx (*isl_pointers__.p_isl_schedule_get_ctx)
-+#define isl_multi_aff_set_tuple_id (*isl_pointers__.p_isl_multi_aff_set_tuple_id)
-+#define isl_multi_aff_dim (*isl_pointers__.p_isl_multi_aff_dim)
-+#define isl_schedule_get_domain (*isl_pointers__.p_isl_schedule_get_domain)
-+#define isl_union_set_is_empty (*isl_pointers__.p_isl_union_set_is_empty)
-+#define isl_union_set_get_space (*isl_pointers__.p_isl_union_set_get_space)
-+#define isl_union_pw_multi_aff_empty (*isl_pointers__.p_isl_union_pw_multi_aff_empty)
-+#define isl_union_set_foreach_set (*isl_pointers__.p_isl_union_set_foreach_set)
-+#define isl_union_set_free (*isl_pointers__.p_isl_union_set_free)
-+#define isl_multi_union_pw_aff_from_union_pw_multi_aff (*isl_pointers__.p_isl_multi_union_pw_aff_from_union_pw_multi_aff)
-+#define isl_multi_union_pw_aff_apply_multi_aff (*isl_pointers__.p_isl_multi_union_pw_aff_apply_multi_aff)
-+#define isl_schedule_insert_partial_schedule (*isl_pointers__.p_isl_schedule_insert_partial_schedule)
-+#define isl_union_pw_multi_aff_free (*isl_pointers__.p_isl_union_pw_multi_aff_free)
-+#define isl_pw_multi_aff_project_out_map (*isl_pointers__.p_isl_pw_multi_aff_project_out_map)
-+#define isl_union_pw_multi_aff_add_pw_multi_aff (*isl_pointers__.p_isl_union_pw_multi_aff_add_pw_multi_aff)
-+#define isl_schedule_from_domain (*isl_pointers__.p_isl_schedule_from_domain)
-+#define isl_schedule_sequence (*isl_pointers__.p_isl_schedule_sequence)
-+#define isl_ast_build_node_from_schedule (*isl_pointers__.p_isl_ast_build_node_from_schedule)
-+#define isl_ast_node_mark_get_node (*isl_pointers__.p_isl_ast_node_mark_get_node)
-+#define isl_schedule_node_band_member_get_ast_loop_type (*isl_pointers__.p_isl_schedule_node_band_member_get_ast_loop_type)
-+#define isl_schedule_node_band_member_set_ast_loop_type (*isl_pointers__.p_isl_schedule_node_band_member_set_ast_loop_type)
-+#define isl_val_n_abs_num_chunks (*isl_pointers__.p_isl_val_n_abs_num_chunks)
-+#define isl_val_get_abs_num_chunks (*isl_pointers__.p_isl_val_get_abs_num_chunks)
-+#define isl_val_int_from_chunks (*isl_pointers__.p_isl_val_int_from_chunks)
-+#define isl_val_is_neg (*isl_pointers__.p_isl_val_is_neg)
-+#define isl_version (*isl_pointers__.p_isl_version)
-+#define isl_options_get_on_error (*isl_pointers__.p_isl_options_get_on_error)
-+#define isl_ctx_reset_error (*isl_pointers__.p_isl_ctx_reset_error)
-
- typedef struct poly_dr *poly_dr_p;
-
-@@ -461,5 +1045,6 @@ extern void build_scops (vec<scop_p> *);
- extern void dot_all_sese (FILE *, vec<sese_l> &);
- extern void dot_sese (sese_l &);
- extern void dot_cfg ();
-+extern const char *get_isl_version (bool);
-
- #endif
---- gcc/graphite.c.jj 2015-11-04 14:15:32.000000000 +0100
-+++ gcc/graphite.c 2015-11-04 14:56:02.645536409 +0100
-@@ -60,6 +60,35 @@ along with GCC; see the file COPYING3.
- #include "tree-into-ssa.h"
- #include "graphite.h"
-
-+__typeof (isl_pointers__) isl_pointers__;
-+
-+static bool
-+init_isl_pointers (void)
-+{
-+ void *h;
-+
-+ if (isl_pointers__.inited)
-+ return isl_pointers__.h != NULL;
-+ h = dlopen ("libisl.so.15", RTLD_LAZY);
-+ isl_pointers__.h = h;
-+ if (h == NULL)
-+ return false;
-+#define DYNSYM(x) \
-+ do \
-+ { \
-+ union { __typeof (isl_pointers__.p_##x) p; void *q; } u; \
-+ u.q = dlsym (h, #x); \
-+ if (u.q == NULL) \
-+ return false; \
-+ isl_pointers__.p_##x = u.p; \
-+ } \
-+ while (0)
-+ DYNSYMS
-+#undef DYNSYM
-+ isl_pointers__.inited = true;
-+ return true;
-+}
-+
- /* Print global statistics to FILE. */
-
- static void
-@@ -365,6 +394,15 @@ graphite_transform_loops (void)
- if (parallelized_function_p (cfun->decl))
- return;
-
-+ if (number_of_loops (cfun) <= 1)
-+ return;
-+
-+ if (!init_isl_pointers ())
-+ {
-+ sorry ("Graphite loop optimizations cannot be used");
-+ return;
-+ }
-+
- calculate_dominance_info (CDI_DOMINATORS);
-
- /* We rely on post-dominators during merging of SESE regions so those
-@@ -455,6 +493,14 @@ graphite_transform_loops (void)
- }
- }
-
-+const char *
-+get_isl_version (bool force)
-+{
-+ if (force)
-+ init_isl_pointers ();
-+ return (isl_pointers__.inited && isl_version) ? isl_version () : "none";
-+}
-+
- #else /* If isl is not available: #ifndef HAVE_isl. */
-
- static void
---- gcc/toplev.c.jj 2017-02-19 13:02:31.000000000 +0100
-+++ gcc/toplev.c 2017-02-19 16:50:25.536301350 +0100
-@@ -94,6 +94,7 @@ along with GCC; see the file COPYING3.
-
- #ifdef HAVE_isl
- #include <isl/version.h>
-+extern const char *get_isl_version (bool);
- #endif
-
- static void general_init (const char *, bool);
-@@ -683,7 +684,7 @@ print_version (FILE *file, const char *i
- #ifndef HAVE_isl
- "none"
- #else
-- isl_version ()
-+ get_isl_version (*indent == 0)
- #endif
- );
- if (strcmp (GCC_GMP_STRINGIFY_VERSION, gmp_version))
diff --git a/gcc8-libgomp-omp_h-multilib.patch b/gcc8-libgomp-omp_h-multilib.patch
deleted file mode 100644
index d0e98d1..0000000
--- a/gcc8-libgomp-omp_h-multilib.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-2008-06-09 Jakub Jelinek <jakub@redhat.com>
-
- * omp.h.in (omp_nest_lock_t): Fix up for Linux multilibs.
-
---- libgomp/omp.h.in.jj 2008-06-09 13:34:05.000000000 +0200
-+++ libgomp/omp.h.in 2008-06-09 13:34:48.000000000 +0200
-@@ -42,8 +42,8 @@ typedef struct
-
- typedef struct
- {
-- unsigned char _x[@OMP_NEST_LOCK_SIZE@]
-- __attribute__((__aligned__(@OMP_NEST_LOCK_ALIGN@)));
-+ unsigned char _x[8 + sizeof (void *)]
-+ __attribute__((__aligned__(sizeof (void *))));
- } omp_nest_lock_t;
- #endif
-
diff --git a/gcc8-libstdc++-docs.patch b/gcc8-libstdc++-docs.patch
deleted file mode 100644
index e73a92b..0000000
--- a/gcc8-libstdc++-docs.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- libstdc++-v3/doc/html/index.html.jj 2011-01-03 12:53:21.282829010 +0100
-+++ libstdc++-v3/doc/html/index.html 2011-01-04 18:06:28.999851145 +0100
-@@ -5,6 +5,8 @@
- <a class="link" href="https://www.fsf.org" target="_top">FSF
- </a>
- </p><p>
-+ Release 8.2.1
-+ </p><p>
- Permission is granted to copy, distribute and/or modify this
- document under the terms of the GNU Free Documentation
- License, Version 1.2 or any later version published by the
---- libstdc++-v3/doc/html/api.html.jj 2011-01-03 12:53:21.000000000 +0100
-+++ libstdc++-v3/doc/html/api.html 2011-01-04 18:12:01.672757784 +0100
-@@ -20,7 +20,9 @@
- member functions for the library classes, finding out what is in a
- particular include file, looking at inheritance diagrams, etc.
- </p><p>
-- The API documentation, rendered into HTML, can be viewed online
-+ The API documentation, rendered into HTML, can be viewed locally
-+ <a class="link" href="api/index.html" target="_top">for the 8.2.1 release</a>,
-+ online
- <a class="link" href="http://gcc.gnu.org/onlinedocs/" target="_top">for each GCC release</a>
- and
- <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html" target="_top">
diff --git a/gcc8-libtool-no-rpath.patch b/gcc8-libtool-no-rpath.patch
deleted file mode 100644
index 466c661..0000000
--- a/gcc8-libtool-no-rpath.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-libtool sucks.
---- ltmain.sh.jj 2007-12-07 14:53:21.000000000 +0100
-+++ ltmain.sh 2008-09-05 21:51:48.000000000 +0200
-@@ -5394,6 +5394,7 @@ EOF
- rpath="$finalize_rpath"
- test "$mode" != relink && rpath="$compile_rpath$rpath"
- for libdir in $rpath; do
-+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
-@@ -6071,6 +6072,7 @@ EOF
- rpath=
- hardcode_libdirs=
- for libdir in $compile_rpath $finalize_rpath; do
-+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
-@@ -6120,6 +6122,7 @@ EOF
- rpath=
- hardcode_libdirs=
- for libdir in $finalize_rpath; do
-+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
diff --git a/gcc8-mcet.patch b/gcc8-mcet.patch
deleted file mode 100644
index 6fb78ca..0000000
--- a/gcc8-mcet.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-2018-04-24 Jakub Jelinek <jakub@redhat.com>
-
- * config/i386/i386.opt (mcet): Remporarily re-add as alias to -mshstk.
-
---- gcc/config/i386/i386.opt (revision 259613)
-+++ gcc/config/i386/i386.opt (revision 259612)
-@@ -1006,6 +1006,10 @@ mgeneral-regs-only
- Target Report RejectNegative Mask(GENERAL_REGS_ONLY) Var(ix86_target_flags) Save
- Generate code which uses only the general registers.
-
-+mcet
-+Target Undocumented Alias(mshstk)
-+;; Deprecated
-+
- mshstk
- Target Report Mask(ISA_SHSTK) Var(ix86_isa_flags) Save
- Enable shadow stack built-in functions from Control-flow Enforcement
diff --git a/gcc8-no-add-needed.patch b/gcc8-no-add-needed.patch
deleted file mode 100644
index aa2f52d..0000000
--- a/gcc8-no-add-needed.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-2010-02-08 Roland McGrath <roland@redhat.com>
-
- * config/rs6000/sysv4.h (LINK_EH_SPEC): Pass --no-add-needed to the
- linker.
- * config/gnu-user.h (LINK_EH_SPEC): Likewise.
- * config/alpha/elf.h (LINK_EH_SPEC): Likewise.
- * config/ia64/linux.h (LINK_EH_SPEC): Likewise.
-
---- gcc/config/alpha/elf.h.jj 2011-01-03 12:52:31.118056764 +0100
-+++ gcc/config/alpha/elf.h 2011-01-04 18:14:10.931874160 +0100
-@@ -168,5 +168,5 @@ extern int alpha_this_gpdisp_sequence_nu
- I imagine that other systems will catch up. In the meantime, it
- doesn't harm to make sure that the data exists to be used later. */
- #if defined(HAVE_LD_EH_FRAME_HDR)
--#define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
-+#define LINK_EH_SPEC "--no-add-needed %{!static|static-pie:--eh-frame-hdr} "
- #endif
---- gcc/config/ia64/linux.h.jj 2011-01-03 13:02:11.462994522 +0100
-+++ gcc/config/ia64/linux.h 2011-01-04 18:14:10.931874160 +0100
-@@ -76,7 +76,7 @@ do { \
- Signalize that because we have fde-glibc, we don't need all C shared libs
- linked against -lgcc_s. */
- #undef LINK_EH_SPEC
--#define LINK_EH_SPEC ""
-+#define LINK_EH_SPEC "--no-add-needed "
-
- #undef TARGET_INIT_LIBFUNCS
- #define TARGET_INIT_LIBFUNCS ia64_soft_fp_init_libfuncs
---- gcc/config/gnu-user.h.jj 2011-01-03 12:53:03.739057299 +0100
-+++ gcc/config/gnu-user.h 2011-01-04 18:14:10.932814884 +0100
-@@ -133,7 +133,7 @@ see the files COPYING3 and COPYING.RUNTI
- #define LIB_SPEC GNU_USER_TARGET_LIB_SPEC
-
- #if defined(HAVE_LD_EH_FRAME_HDR)
--#define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
-+#define LINK_EH_SPEC "--no-add-needed %{!static|static-pie:--eh-frame-hdr} "
- #endif
-
- #undef LINK_GCC_C_SEQUENCE_SPEC
---- gcc/config/rs6000/sysv4.h.jj 2011-01-03 13:02:18.255994215 +0100
-+++ gcc/config/rs6000/sysv4.h 2011-01-04 18:14:10.933888871 +0100
-@@ -816,7 +816,7 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEF
- -dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}"
-
- #if defined(HAVE_LD_EH_FRAME_HDR)
--# define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
-+# define LINK_EH_SPEC "--no-add-needed %{!static|static-pie:--eh-frame-hdr} "
- #endif
-
- #define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \
diff --git a/gcc8-rh1512529-aarch64.patch b/gcc8-rh1512529-aarch64.patch
deleted file mode 100644
index 4030027..0000000
--- a/gcc8-rh1512529-aarch64.patch
+++ /dev/null
@@ -1,445 +0,0 @@
---- gcc/config/aarch64/aarch64.c
-+++ gcc/config/aarch64/aarch64.c
-@@ -3799,7 +3799,14 @@ aarch64_output_probe_stack_range (rtx reg1, rtx reg2)
- output_asm_insn ("sub\t%0, %0, %1", xops);
-
- /* Probe at TEST_ADDR. */
-- output_asm_insn ("str\txzr, [%0]", xops);
-+ if (flag_stack_clash_protection)
-+ {
-+ gcc_assert (xops[0] == stack_pointer_rtx);
-+ xops[1] = GEN_INT (PROBE_INTERVAL - 8);
-+ output_asm_insn ("str\txzr, [%0, %1]", xops);
-+ }
-+ else
-+ output_asm_insn ("str\txzr, [%0]", xops);
-
- /* Test if TEST_ADDR == LAST_ADDR. */
- xops[1] = reg2;
-@@ -4589,6 +4596,133 @@ aarch64_set_handled_components (sbitmap components)
- cfun->machine->reg_is_wrapped_separately[regno] = true;
- }
-
-+/* Allocate POLY_SIZE bytes of stack space using TEMP1 and TEMP2 as scratch
-+ registers. */
-+
-+static void
-+aarch64_allocate_and_probe_stack_space (rtx temp1, rtx temp2,
-+ poly_int64 poly_size)
-+{
-+ HOST_WIDE_INT size;
-+ if (!poly_size.is_constant (&size))
-+ {
-+ sorry ("stack probes for SVE frames");
-+ return;
-+ }
-+
-+ HOST_WIDE_INT probe_interval
-+ = 1 << PARAM_VALUE (PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL);
-+ HOST_WIDE_INT guard_size
-+ = 1 << PARAM_VALUE (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE);
-+ HOST_WIDE_INT guard_used_by_caller = 1024;
-+
-+ /* SIZE should be large enough to require probing here. ie, it
-+ must be larger than GUARD_SIZE - GUARD_USED_BY_CALLER.
-+
-+ We can allocate GUARD_SIZE - GUARD_USED_BY_CALLER as a single chunk
-+ without any probing. */
-+ gcc_assert (size >= guard_size - guard_used_by_caller);
-+ aarch64_sub_sp (temp1, temp2, guard_size - guard_used_by_caller, true);
-+ HOST_WIDE_INT orig_size = size;
-+ size -= (guard_size - guard_used_by_caller);
-+
-+ HOST_WIDE_INT rounded_size = size & -probe_interval;
-+ HOST_WIDE_INT residual = size - rounded_size;
-+
-+ /* We can handle a small number of allocations/probes inline. Otherwise
-+ punt to a loop. */
-+ if (rounded_size && rounded_size <= 4 * probe_interval)
-+ {
-+ /* We don't use aarch64_sub_sp here because we don't want to
-+ repeatedly load TEMP1. */
-+ rtx step = GEN_INT (-probe_interval);
-+ if (probe_interval > ARITH_FACTOR)
-+ {
-+ emit_move_insn (temp1, step);
-+ step = temp1;
-+ }
-+
-+ for (HOST_WIDE_INT i = 0; i < rounded_size; i += probe_interval)
-+ {
-+ rtx_insn *insn = emit_insn (gen_add2_insn (stack_pointer_rtx, step));
-+ add_reg_note (insn, REG_STACK_CHECK, const0_rtx);
-+
-+ if (probe_interval > ARITH_FACTOR)
-+ {
-+ RTX_FRAME_RELATED_P (insn) = 1;
-+ rtx adj = plus_constant (Pmode, stack_pointer_rtx, -probe_interval);
-+ add_reg_note (insn, REG_CFA_ADJUST_CFA,
-+ gen_rtx_SET (stack_pointer_rtx, adj));
-+ }
-+
-+ emit_stack_probe (plus_constant (Pmode, stack_pointer_rtx,
-+ (probe_interval
-+ - GET_MODE_SIZE (word_mode))));
-+ emit_insn (gen_blockage ());
-+ }
-+ dump_stack_clash_frame_info (PROBE_INLINE, size != rounded_size);
-+ }
-+ else if (rounded_size)
-+ {
-+ /* Compute the ending address. */
-+ unsigned int scratchreg = REGNO (temp1);
-+ emit_move_insn (temp1, GEN_INT (-rounded_size));
-+ rtx_insn *insn
-+ = emit_insn (gen_add3_insn (temp1, stack_pointer_rtx, temp1));
-+
-+ /* For the initial allocation, we don't have a frame pointer
-+ set up, so we always need CFI notes. If we're doing the
-+ final allocation, then we may have a frame pointer, in which
-+ case it is the CFA, otherwise we need CFI notes.
-+
-+ We can determine which allocation we are doing by looking at
-+ the temporary register. IP0 is the initial allocation, IP1
-+ is the final allocation. */
-+ if (scratchreg == IP0_REGNUM || !frame_pointer_needed)
-+ {
-+ /* We want the CFA independent of the stack pointer for the
-+ duration of the loop. */
-+ add_reg_note (insn, REG_CFA_DEF_CFA,
-+ plus_constant (Pmode, temp1,
-+ (rounded_size + (orig_size - size))));
-+ RTX_FRAME_RELATED_P (insn) = 1;
-+ }
-+
-+ /* This allocates and probes the stack.
-+
-+ It also probes at a 4k interval regardless of the value of
-+ PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL. */
-+ insn = emit_insn (gen_probe_stack_range (stack_pointer_rtx,
-+ stack_pointer_rtx, temp1));
-+
-+ /* Now reset the CFA register if needed. */
-+ if (scratchreg == IP0_REGNUM || !frame_pointer_needed)
-+ {
-+ add_reg_note (insn, REG_CFA_DEF_CFA,
-+ plus_constant (Pmode, stack_pointer_rtx,
-+ (rounded_size + (orig_size - size))));
-+ RTX_FRAME_RELATED_P (insn) = 1;
-+ }
-+
-+ emit_insn (gen_blockage ());
-+ dump_stack_clash_frame_info (PROBE_LOOP, size != rounded_size);
-+ }
-+ else
-+ dump_stack_clash_frame_info (PROBE_INLINE, size != rounded_size);
-+
-+ /* Handle any residuals.
-+ Note that any residual must be probed. */
-+ if (residual)
-+ {
-+ aarch64_sub_sp (temp1, temp2, residual, true);
-+ add_reg_note (get_last_insn (), REG_STACK_CHECK, const0_rtx);
-+ emit_stack_probe (plus_constant (Pmode, stack_pointer_rtx,
-+ (residual - GET_MODE_SIZE (word_mode))));
-+ emit_insn (gen_blockage ());
-+ }
-+ return;
-+}
-+
- /* Add a REG_CFA_EXPRESSION note to INSN to say that register REG
- is saved at BASE + OFFSET. */
-
-@@ -4686,7 +4820,54 @@ aarch64_expand_prologue (void)
- rtx ip0_rtx = gen_rtx_REG (Pmode, IP0_REGNUM);
- rtx ip1_rtx = gen_rtx_REG (Pmode, IP1_REGNUM);
-
-- aarch64_sub_sp (ip0_rtx, ip1_rtx, initial_adjust, true);
-+ /* We do not fully protect aarch64 against stack clash style attacks
-+ as doing so would be prohibitively expensive with less utility over
-+ time as newer compilers are deployed.
-+
-+ We assume the guard is at least 64k. Furthermore, we assume that
-+ the caller has not pushed the stack pointer more than 1k into
-+ the guard. A caller that pushes the stack pointer than 1k into
-+ the guard is considered invalid.
-+
-+ Note that the caller's ability to push the stack pointer into the
-+ guard is a function of the number and size of outgoing arguments and/or
-+ dynamic stack allocations due to the mandatory save of the link register
-+ in the caller's frame.
-+
-+ With those assumptions the callee can allocate up to 63k of stack
-+ space without probing.
-+
-+ When probing is needed, we emit a probe at the start of the prologue
-+ and every PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL bytes thereafter.
-+
-+ We have to track how much space has been allocated, but we do not
-+ track stores into the stack as implicit probes except for the
-+ fp/lr store. */
-+ HOST_WIDE_INT guard_size
-+ = 1 << PARAM_VALUE (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE);
-+ HOST_WIDE_INT guard_used_by_caller = 1024;
-+ if (flag_stack_clash_protection)
-+ {
-+ if (known_eq (frame_size, 0))
-+ dump_stack_clash_frame_info (NO_PROBE_NO_FRAME, false);
-+ else if (known_lt (initial_adjust, guard_size - guard_used_by_caller)
-+ && known_lt (final_adjust, guard_size - guard_used_by_caller))
-+ dump_stack_clash_frame_info (NO_PROBE_SMALL_FRAME, true);
-+ }
-+
-+ /* In theory we should never have both an initial adjustment
-+ and a callee save adjustment. Verify that is the case since the
-+ code below does not handle it for -fstack-clash-protection. */
-+ gcc_assert (known_eq (initial_adjust, 0) || callee_adjust == 0);
-+
-+ /* Only probe if the initial adjustment is larger than the guard
-+ less the amount of the guard reserved for use by the caller's
-+ outgoing args. */
-+ if (flag_stack_clash_protection
-+ && maybe_ge (initial_adjust, guard_size - guard_used_by_caller))
-+ aarch64_allocate_and_probe_stack_space (ip0_rtx, ip1_rtx, initial_adjust);
-+ else
-+ aarch64_sub_sp (ip0_rtx, ip1_rtx, initial_adjust, true);
-
- if (callee_adjust != 0)
- aarch64_push_regs (reg1, reg2, callee_adjust);
-@@ -4742,7 +4923,31 @@ aarch64_expand_prologue (void)
- callee_adjust != 0 || emit_frame_chain);
- aarch64_save_callee_saves (DFmode, callee_offset, V0_REGNUM, V31_REGNUM,
- callee_adjust != 0 || emit_frame_chain);
-- aarch64_sub_sp (ip1_rtx, ip0_rtx, final_adjust, !frame_pointer_needed);
-+
-+ /* We may need to probe the final adjustment as well. */
-+ if (flag_stack_clash_protection && maybe_ne (final_adjust, 0))
-+ {
-+ /* First probe if the final adjustment is larger than the guard size
-+ less the amount of the guard reserved for use by the caller's
-+ outgoing args. */
-+ if (maybe_ge (final_adjust, guard_size - guard_used_by_caller))
-+ aarch64_allocate_and_probe_stack_space (ip1_rtx, ip0_rtx,
-+ final_adjust);
-+ else
-+ aarch64_sub_sp (ip1_rtx, ip0_rtx, final_adjust, !frame_pointer_needed);
-+
-+ /* We must also probe if the final adjustment is larger than the guard
-+ that is assumed used by the caller. This may be sub-optimal. */
-+ if (maybe_ge (final_adjust, guard_used_by_caller))
-+ {
-+ if (dump_file)
-+ fprintf (dump_file,
-+ "Stack clash aarch64 large outgoing arg, probing\n");
-+ emit_stack_probe (stack_pointer_rtx);
-+ }
-+ }
-+ else
-+ aarch64_sub_sp (ip1_rtx, ip0_rtx, final_adjust, !frame_pointer_needed);
- }
-
- /* Return TRUE if we can use a simple_return insn.
-@@ -10476,6 +10681,12 @@ aarch64_override_options_internal (struct gcc_options *opts)
- && opts->x_optimize >= aarch64_tune_params.prefetch->default_opt_level)
- opts->x_flag_prefetch_loop_arrays = 1;
-
-+ /* We assume the guard page is 64k. */
-+ maybe_set_param_value (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE,
-+ 16,
-+ opts->x_param_values,
-+ global_options_set.x_param_values);
-+
- aarch64_override_options_after_change_1 (opts);
- }
-
-@@ -17161,6 +17372,28 @@ aarch64_sched_can_speculate_insn (rtx_insn *insn)
- }
- }
-
-+/* It has been decided that to allow up to 1kb of outgoing argument
-+ space to be allocated w/o probing. If more than 1kb of outgoing
-+ argment space is allocated, then it must be probed and the last
-+ probe must occur no more than 1kbyte away from the end of the
-+ allocated space.
-+
-+ This implies that the residual part of an alloca allocation may
-+ need probing in cases where the generic code might not otherwise
-+ think a probe is needed.
-+
-+ This target hook returns TRUE when allocating RESIDUAL bytes of
-+ alloca space requires an additional probe, otherwise FALSE is
-+ returned. */
-+
-+static bool
-+aarch64_stack_clash_protection_final_dynamic_probe (rtx residual)
-+{
-+ return (residual == CONST0_RTX (Pmode)
-+ || GET_CODE (residual) != CONST_INT
-+ || INTVAL (residual) >= 1024);
-+}
-+
- /* Implement TARGET_COMPUTE_PRESSURE_CLASSES. */
-
- static int
-@@ -17669,6 +17902,10 @@ aarch64_libgcc_floating_mode_supported_p
- #undef TARGET_CONSTANT_ALIGNMENT
- #define TARGET_CONSTANT_ALIGNMENT aarch64_constant_alignment
-
-+#undef TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE
-+#define TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE \
-+ aarch64_stack_clash_protection_final_dynamic_probe
-+
- #undef TARGET_COMPUTE_PRESSURE_CLASSES
- #define TARGET_COMPUTE_PRESSURE_CLASSES aarch64_compute_pressure_classes
-
---- gcc/config/aarch64/aarch64.md
-+++ gcc/config/aarch64/aarch64.md
-@@ -5812,7 +5812,7 @@
- )
-
- (define_insn "probe_stack_range"
-- [(set (match_operand:DI 0 "register_operand" "=r")
-+ [(set (match_operand:DI 0 "register_operand" "=rk")
- (unspec_volatile:DI [(match_operand:DI 1 "register_operand" "0")
- (match_operand:DI 2 "register_operand" "r")]
- UNSPECV_PROBE_STACK_RANGE))]
---- gcc/testsuite/gcc.target/aarch64/stack-check-12.c
-+++ gcc/testsuite/gcc.target/aarch64/stack-check-12.c
-@@ -0,0 +1,20 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=12" } */
-+/* { dg-require-effective-target supports_stack_clash_protection } */
-+
-+extern void arf (unsigned long int *, unsigned long int *);
-+void
-+frob ()
-+{
-+ unsigned long int num[1000];
-+ unsigned long int den[1000];
-+ arf (den, num);
-+}
-+
-+/* This verifies that the scheduler did not break the dependencies
-+ by adjusting the offsets within the probe and that the scheduler
-+ did not reorder around the stack probes. */
-+/* { dg-final { scan-assembler-times "sub\\tsp, sp, #4096\\n\\tstr\\txzr, .sp, 4088." 3 } } */
-+
-+
-+
---- gcc/testsuite/gcc.target/aarch64/stack-check-13.c
-+++ gcc/testsuite/gcc.target/aarch64/stack-check-13.c
-@@ -0,0 +1,28 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=12" } */
-+/* { dg-require-effective-target supports_stack_clash_protection } */
-+
-+#define ARG32(X) X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
-+#define ARG192(X) ARG32(X),ARG32(X),ARG32(X),ARG32(X),ARG32(X),ARG32(X)
-+void out1(ARG192(__int128));
-+int t1(int);
-+
-+int t3(int x)
-+{
-+ if (x < 1000)
-+ return t1 (x) + 1;
-+
-+ out1 (ARG192(1));
-+ return 0;
-+}
-+
-+
-+
-+/* This test creates a large (> 1k) outgoing argument area that needs
-+ to be probed. We don't test the exact size of the space or the
-+ exact offset to make the test a little less sensitive to trivial
-+ output changes. */
-+/* { dg-final { scan-assembler-times "sub\\tsp, sp, #....\\n\\tstr\\txzr, \\\[sp" 1 } } */
-+
-+
-+
---- gcc/testsuite/gcc.target/aarch64/stack-check-14.c
-+++ gcc/testsuite/gcc.target/aarch64/stack-check-14.c
-@@ -0,0 +1,25 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=12" } */
-+/* { dg-require-effective-target supports_stack_clash_protection } */
-+
-+int t1(int);
-+
-+int t2(int x)
-+{
-+ char *p = __builtin_alloca (4050);
-+ x = t1 (x);
-+ return p[x];
-+}
-+
-+
-+/* This test has a constant sized alloca that is smaller than the
-+ probe interval. But it actually requires two probes instead
-+ of one because of the optimistic assumptions we made in the
-+ aarch64 prologue code WRT probing state.
-+
-+ The form can change quite a bit so we just check for two
-+ probes without looking at the actual address. */
-+/* { dg-final { scan-assembler-times "str\\txzr," 2 } } */
-+
-+
-+
---- gcc/testsuite/gcc.target/aarch64/stack-check-15.c
-+++ gcc/testsuite/gcc.target/aarch64/stack-check-15.c
-@@ -0,0 +1,24 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=12" } */
-+/* { dg-require-effective-target supports_stack_clash_protection } */
-+
-+int t1(int);
-+
-+int t2(int x)
-+{
-+ char *p = __builtin_alloca (x);
-+ x = t1 (x);
-+ return p[x];
-+}
-+
-+
-+/* This test has a variable sized alloca. It requires 3 probes.
-+ One in the loop, one for the residual and at the end of the
-+ alloca area.
-+
-+ The form can change quite a bit so we just check for two
-+ probes without looking at the actual address. */
-+/* { dg-final { scan-assembler-times "str\\txzr," 3 } } */
-+
-+
-+
---- gcc/testsuite/lib/target-supports.exp
-+++ gcc/testsuite/lib/target-supports.exp
-@@ -9201,14 +9201,9 @@ proc check_effective_target_autoincdec { } {
- #
- proc check_effective_target_supports_stack_clash_protection { } {
-
-- # Temporary until the target bits are fully ACK'd.
--# if { [istarget aarch*-*-*] } {
--# return 1
--# }
--
- if { [istarget x86_64-*-*] || [istarget i?86-*-*]
- || [istarget powerpc*-*-*] || [istarget rs6000*-*-*]
-- || [istarget s390*-*-*] } {
-+ || [istarget aarch64*-**] || [istarget s390*-*-*] } {
- return 1
- }
- return 0
-@@ -9217,9 +9212,9 @@ proc check_effective_target_supports_stack_clash_protection { } {
- # Return 1 if the target creates a frame pointer for non-leaf functions
- # Note we ignore cases where we apply tail call optimization here.
- proc check_effective_target_frame_pointer_for_non_leaf { } {
-- if { [istarget aarch*-*-*] } {
-- return 1
-- }
-+# if { [istarget aarch*-*-*] } {
-+# return 1
-+# }
-
- # Solaris/x86 defaults to -fno-omit-frame-pointer.
- if { [istarget i?86-*-solaris*] || [istarget x86_64-*-solaris*] } {
diff --git a/gcc8-rh1574936.patch b/gcc8-rh1574936.patch
deleted file mode 100644
index 32db990..0000000
--- a/gcc8-rh1574936.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-crt files and statically linked libgcc objects cause false positives
-in annobin coverage, so we add the assembler flag to generate notes
-for them.
-
-The patch also adds notes to libgcc_s.so, but this is harmless because
-these notes only confer that there is no other annobin markup.
-
-2018-07-25 Florian Weimer <fweimer@redhat.com>
-
- * Makefile.in (LIBGCC2_CFLAGS, CRTSTUFF_CFLAGS): Add
- -Wa,--generate-missing-build-notes=yes.
-
---- libgcc/Makefile.in 2018-01-13 13:05:41.000000000 +0100
-+++ libgcc/Makefile.in 2018-07-25 13:15:02.036226940 +0200
-@@ -244,6 +244,7 @@
- LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(HOST_LIBGCC2_CFLAGS) \
- $(LIBGCC2_DEBUG_CFLAGS) -DIN_LIBGCC2 \
- -fbuilding-libgcc -fno-stack-protector \
-+ -Wa,--generate-missing-build-notes=yes \
- $(INHIBIT_LIBC_CFLAGS)
-
- # Additional options to use when compiling libgcc2.a.
-@@ -297,6 +298,7 @@
- $(NO_PIE_CFLAGS) -finhibit-size-directive -fno-inline -fno-exceptions \
- -fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \
- -fbuilding-libgcc -fno-stack-protector $(FORCE_EXPLICIT_EH_REGISTRY) \
-+ -Wa,--generate-missing-build-notes=yes \
- $(INHIBIT_LIBC_CFLAGS)
-
- # Extra flags to use when compiling crt{begin,end}.o.
-
diff --git a/gcc8-sparc-config-detection.patch b/gcc8-sparc-config-detection.patch
deleted file mode 100644
index bb06b35..0000000
--- a/gcc8-sparc-config-detection.patch
+++ /dev/null
@@ -1,40 +0,0 @@
---- gcc/config.gcc.jj 2008-04-24 15:42:46.000000000 -0500
-+++ gcc/config.gcc 2008-04-24 15:44:51.000000000 -0500
-@@ -2790,7 +2790,7 @@ sparc-*-rtems*)
- tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
- tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
- ;;
--sparc-*-linux*)
-+sparc-*-linux* | sparcv9-*-linux*)
- tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
- extra_options="${extra_options} sparc/long-double-switch.opt"
- case ${target} in
-@@ -2844,7 +2844,7 @@ sparc64-*-rtems*)
- extra_options="${extra_options}"
- tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
- ;;
--sparc64-*-linux*)
-+sparc64*-*-linux*)
- tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default64.h sparc/linux64.h sparc/tso.h"
- extra_options="${extra_options} sparc/long-double-switch.opt"
- tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
---- libgcc/config.host.jj 2008-04-24 15:46:19.000000000 -0500
-+++ libgcc/config.host 2008-04-24 15:46:49.000000000 -0500
-@@ -1002,7 +1002,7 @@ sparc-*-elf*)
- tmake_file="${tmake_file} t-fdpbit t-crtfm"
- extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
- ;;
--sparc-*-linux*) # SPARC's running GNU/Linux, libc6
-+sparc-*-linux* | sparcv9-*-linux*) # SPARC's running GNU/Linux, libc6
- tmake_file="${tmake_file} t-crtfm"
- if test "${host_address}" = 64; then
- tmake_file="$tmake_file sparc/t-linux64"
-@@ -1050,7 +1050,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*
- tmake_file="$tmake_file t-crtfm"
- extra_parts="$extra_parts crtfastmath.o"
- ;;
--sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux
-+sparc64*-*-linux*) # 64-bit SPARC's running GNU/Linux
- extra_parts="$extra_parts crtfastmath.o"
- tmake_file="${tmake_file} t-crtfm sparc/t-linux"
- if test "${host_address}" = 64; then
diff --git a/gcc9-Wno-format-security.patch b/gcc9-Wno-format-security.patch
new file mode 100644
index 0000000..cb21e5d
--- /dev/null
+++ b/gcc9-Wno-format-security.patch
@@ -0,0 +1,27 @@
+2017-02-25 Jakub Jelinek <jakub@redhat.com>
+
+ * configure.ac: When adding -Wno-format, also add -Wno-format-security.
+ * configure: Regenerated.
+
+--- gcc/configure.ac.jj 2017-02-13 12:20:53.000000000 +0100
++++ gcc/configure.ac 2017-02-25 12:42:32.859175403 +0100
+@@ -481,7 +481,7 @@ AC_ARG_ENABLE(build-format-warnings,
+ AS_HELP_STRING([--disable-build-format-warnings],[don't use -Wformat while building GCC]),
+ [],[enable_build_format_warnings=yes])
+ AS_IF([test $enable_build_format_warnings = no],
+- [wf_opt=-Wno-format],[wf_opt=])
++ [wf_opt="-Wno-format -Wno-format-security"],[wf_opt=])
+ ACX_PROG_CXX_WARNING_OPTS(
+ m4_quote(m4_do([-W -Wall -Wno-narrowing -Wwrite-strings ],
+ [-Wcast-qual $wf_opt])), [loose_warn])
+--- gcc/configure.jj 2017-02-13 12:20:52.000000000 +0100
++++ gcc/configure 2017-02-25 12:42:50.041946391 +0100
+@@ -6647,7 +6647,7 @@ else
+ fi
+
+ if test $enable_build_format_warnings = no; then :
+- wf_opt=-Wno-format
++ wf_opt="-Wno-format -Wno-format-security"
+ else
+ wf_opt=
+ fi
diff --git a/gcc9-d-shared-libphobos.patch b/gcc9-d-shared-libphobos.patch
new file mode 100644
index 0000000..392d631
--- /dev/null
+++ b/gcc9-d-shared-libphobos.patch
@@ -0,0 +1,20 @@
+2019-01-17 Jakub Jelinek <jakub@redhat.com>
+
+ * d-spec.cc (lang_specific_driver): Make -shared-libphobos
+ the default rather than -static-libphobos.
+
+--- gcc/d/d-spec.cc.jj 2019-01-01 12:37:49.502444257 +0100
++++ gcc/d/d-spec.cc 2019-01-17 17:09:45.364949246 +0100
+@@ -405,9 +405,9 @@ lang_specific_driver (cl_decoded_option
+ /* Add `-lgphobos' if we haven't already done so. */
+ if (phobos_library != PHOBOS_NOLINK && need_phobos)
+ {
+- /* Default to static linking. */
+- if (phobos_library != PHOBOS_DYNAMIC)
+- phobos_library = PHOBOS_STATIC;
++ /* Default to shared linking. */
++ if (phobos_library != PHOBOS_STATIC)
++ phobos_library = PHOBOS_DYNAMIC;
+
+ #ifdef HAVE_LD_STATIC_DYNAMIC
+ if (phobos_library == PHOBOS_DYNAMIC && static_link)
diff --git a/gcc9-foffload-default.patch b/gcc9-foffload-default.patch
new file mode 100644
index 0000000..2ecd537
--- /dev/null
+++ b/gcc9-foffload-default.patch
@@ -0,0 +1,122 @@
+2019-01-17 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc.c (offload_targets_default): New variable.
+ (process_command): Set it if -foffload is defaulted.
+ (driver::maybe_putenv_OFFLOAD_TARGETS): Add OFFLOAD_TARGET_DEFAULT=1
+ into environment if -foffload has been defaulted.
+ * lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define.
+ (compile_offload_image): If OFFLOAD_TARGET_DEFAULT
+ is in the environment, don't fail if corresponding mkoffload
+ can't be found.
+ (compile_images_for_offload_targets): Likewise. Free and clear
+ offload_names if no valid offload is found.
+libgomp/
+ * target.c (gomp_load_plugin_for_device): If a plugin can't be
+ dlopened, assume it has no devices silently.
+
+--- gcc/gcc.c.jj 2017-01-17 10:28:40.000000000 +0100
++++ gcc/gcc.c 2017-01-20 16:26:29.649962902 +0100
+@@ -290,6 +290,10 @@ static const char *spec_host_machine = D
+
+ static char *offload_targets = NULL;
+
++/* Set to true if -foffload has not been used and offload_targets
++ is set to the configured in default. */
++static bool offload_targets_default;
++
+ /* Nonzero if cross-compiling.
+ When -b is used, the value comes from the `specs' file. */
+
+@@ -4457,7 +4461,10 @@ process_command (unsigned int decoded_op
+ /* If the user didn't specify any, default to all configured offload
+ targets. */
+ if (ENABLE_OFFLOADING && offload_targets == NULL)
+- handle_foffload_option (OFFLOAD_TARGETS);
++ {
++ handle_foffload_option (OFFLOAD_TARGETS);
++ offload_targets_default = true;
++ }
+
+ if (output_file
+ && strcmp (output_file, "-") != 0
+@@ -7693,6 +7700,8 @@ driver::maybe_putenv_OFFLOAD_TARGETS ()
+ obstack_grow (&collect_obstack, offload_targets,
+ strlen (offload_targets) + 1);
+ xputenv (XOBFINISH (&collect_obstack, char *));
++ if (offload_targets_default)
++ xputenv ("OFFLOAD_TARGET_DEFAULT=1");
+ }
+
+ free (offload_targets);
+--- gcc/lto-wrapper.c.jj 2017-01-01 12:45:34.000000000 +0100
++++ gcc/lto-wrapper.c 2017-01-20 16:34:18.294016997 +0100
+@@ -52,6 +52,7 @@ along with GCC; see the file COPYING3.
+ /* Environment variable, used for passing the names of offload targets from GCC
+ driver to lto-wrapper. */
+ #define OFFLOAD_TARGET_NAMES_ENV "OFFLOAD_TARGET_NAMES"
++#define OFFLOAD_TARGET_DEFAULT_ENV "OFFLOAD_TARGET_DEFAULT"
+
+ enum lto_mode_d {
+ LTO_MODE_NONE, /* Not doing LTO. */
+@@ -820,6 +821,12 @@ compile_offload_image (const char *targe
+ break;
+ }
+
++ if (!compiler && getenv (OFFLOAD_TARGET_DEFAULT_ENV))
++ {
++ free_array_of_ptrs ((void **) paths, n_paths);
++ return NULL;
++ }
++
+ if (!compiler)
+ fatal_error (input_location,
+ "could not find %s in %s (consider using '-B')\n", suffix + 1,
+@@ -883,6 +890,7 @@ compile_images_for_offload_targets (unsi
+ unsigned num_targets = parse_env_var (target_names, &names, NULL);
+
+ int next_name_entry = 0;
++ bool hsa_seen = false;
+ const char *compiler_path = getenv ("COMPILER_PATH");
+ if (!compiler_path)
+ goto out;
+@@ -895,18 +903,26 @@ compile_images_for_offload_targets (unsi
+ /* HSA does not use LTO-like streaming and a different compiler, skip
+ it. */
+ if (strcmp (names[i], "hsa") == 0)
+- continue;
++ {
++ hsa_seen = true;
++ continue;
++ }
+
+ offload_names[next_name_entry]
+ = compile_offload_image (names[i], compiler_path, in_argc, in_argv,
+ compiler_opts, compiler_opt_count,
+ linker_opts, linker_opt_count);
+ if (!offload_names[next_name_entry])
+- fatal_error (input_location,
+- "problem with building target image for %s\n", names[i]);
++ continue;
+ next_name_entry++;
+ }
+
++ if (next_name_entry == 0 && !hsa_seen)
++ {
++ free (offload_names);
++ offload_names = NULL;
++ }
++
+ out:
+ free_array_of_ptrs ((void **) names, num_targets);
+ }
+--- libgomp/target.c.jj 2017-01-01 12:45:52.000000000 +0100
++++ libgomp/target.c 2017-01-20 20:12:13.756710875 +0100
+@@ -2356,7 +2356,7 @@ gomp_load_plugin_for_device (struct gomp
+
+ void *plugin_handle = dlopen (plugin_name, RTLD_LAZY);
+ if (!plugin_handle)
+- goto dl_fail;
++ return 0;
+
+ /* Check if all required functions are available in the plugin and store
+ their handlers. None of the symbols can legitimately be NULL,
diff --git a/gcc9-hack.patch b/gcc9-hack.patch
new file mode 100644
index 0000000..ba80c24
--- /dev/null
+++ b/gcc9-hack.patch
@@ -0,0 +1,126 @@
+--- libada/Makefile.in.jj 2019-01-09 13:01:18.015608205 +0100
++++ libada/Makefile.in 2019-01-11 18:16:23.441726931 +0100
+@@ -71,18 +71,40 @@ version := $(shell @get_gcc_base_ver@ $(
+ libsubdir := $(libdir)/gcc/$(target_noncanonical)/$(version)$(MULTISUBDIR)
+ ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(MULTISUBDIR))
+
++DEFAULTMULTIFLAGS :=
++ifeq ($(MULTISUBDIR),)
++targ:=$(subst -, ,$(target))
++arch:=$(word 1,$(targ))
++ifeq ($(words $(targ)),2)
++osys:=$(word 2,$(targ))
++else
++osys:=$(word 3,$(targ))
++endif
++ifeq ($(strip $(filter-out i%86 x86_64 powerpc% ppc% s390% sparc% linux%, $(arch) $(osys))),)
++ifeq ($(shell $(CC) $(CFLAGS) -print-multi-os-directory),../lib64)
++DEFAULTMULTIFLAGS := -m64
++else
++ifeq ($(strip $(filter-out s390%, $(arch))),)
++DEFAULTMULTIFLAGS := -m31
++else
++DEFAULTMULTIFLAGS := -m32
++endif
++endif
++endif
++endif
++
+ # exeext should not be used because it's the *host* exeext. We're building
+ # a *target* library, aren't we?!? Likewise for CC. Still, provide bogus
+ # definitions just in case something slips through the safety net provided
+ # by recursive make invocations in gcc/ada/Makefile.in
+ LIBADA_FLAGS_TO_PASS = \
+ "MAKEOVERRIDES=" \
+- "LDFLAGS=$(LDFLAGS)" \
++ "LDFLAGS=$(LDFLAGS) $(DEFAULTMULTIFLAGS)" \
+ "LN_S=$(LN_S)" \
+ "SHELL=$(SHELL)" \
+- "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \
+- "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \
+- "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \
++ "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \
++ "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \
++ "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \
+ "PICFLAG_FOR_TARGET=$(PICFLAG)" \
+ "THREAD_KIND=$(THREAD_KIND)" \
+ "TRACE=$(TRACE)" \
+@@ -93,7 +115,7 @@ LIBADA_FLAGS_TO_PASS = \
+ "exeext=.exeext.should.not.be.used " \
+ 'CC=the.host.compiler.should.not.be.needed' \
+ "GCC_FOR_TARGET=$(CC)" \
+- "CFLAGS=$(CFLAGS)"
++ "CFLAGS=$(CFLAGS) $(DEFAULTMULTIFLAGS)"
+
+ .PHONY: libada gnatlib gnatlib-shared gnatlib-sjlj gnatlib-zcx osconstool
+
+--- config-ml.in.jj 2019-01-09 12:50:16.646501448 +0100
++++ config-ml.in 2019-01-11 18:16:23.442726914 +0100
+@@ -511,6 +511,8 @@ multi-do:
+ ADAFLAGS="$(ADAFLAGS) $${flags}" \
+ prefix="$(prefix)" \
+ exec_prefix="$(exec_prefix)" \
++ mandir="$(mandir)" \
++ infodir="$(infodir)" \
+ GOCFLAGS="$(GOCFLAGS) $${flags}" \
+ GDCFLAGS="$(GDCFLAGS) $${flags}" \
+ CXXFLAGS="$(CXXFLAGS) $${flags}" \
+--- libcpp/macro.c.jj 2019-01-09 13:01:21.420552123 +0100
++++ libcpp/macro.c 2019-01-11 18:18:17.736876285 +0100
+@@ -3256,8 +3256,6 @@ static cpp_macro *
+ create_iso_definition (cpp_reader *pfile)
+ {
+ bool following_paste_op = false;
+- const char *paste_op_error_msg =
+- N_("'##' cannot appear at either end of a macro expansion");
+ unsigned int num_extra_tokens = 0;
+ unsigned nparms = 0;
+ cpp_hashnode **params = NULL;
+@@ -3382,7 +3380,9 @@ create_iso_definition (cpp_reader *pfile
+ function-like macros, but not at the end. */
+ if (following_paste_op)
+ {
+- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
++ cpp_error (pfile, CPP_DL_ERROR,
++ "'##' cannot appear at either end of a macro "
++ "expansion");
+ goto out;
+ }
+ if (!vaopt_tracker.completed ())
+@@ -3397,7 +3397,9 @@ create_iso_definition (cpp_reader *pfile
+ function-like macros, but not at the beginning. */
+ if (macro->count == 1)
+ {
+- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
++ cpp_error (pfile, CPP_DL_ERROR,
++ "'##' cannot appear at either end of a macro "
++ "expansion");
+ goto out;
+ }
+
+--- libcpp/expr.c.jj 2019-01-09 13:01:22.415535734 +0100
++++ libcpp/expr.c 2019-01-11 18:16:23.444726882 +0100
+@@ -788,16 +788,17 @@ cpp_classify_number (cpp_reader *pfile,
+ if ((result & CPP_N_WIDTH) == CPP_N_LARGE
+ && CPP_OPTION (pfile, cpp_warn_long_long))
+ {
+- const char *message = CPP_OPTION (pfile, cplusplus)
+- ? N_("use of C++11 long long integer constant")
+- : N_("use of C99 long long integer constant");
+-
+ if (CPP_OPTION (pfile, c99))
+ cpp_warning_with_line (pfile, CPP_W_LONG_LONG, virtual_location,
+- 0, message);
++ 0, CPP_OPTION (pfile, cplusplus)
++ ? N_("use of C++11 long long integer constant")
++ : N_("use of C99 long long integer constant"));
+ else
+ cpp_pedwarning_with_line (pfile, CPP_W_LONG_LONG,
+- virtual_location, 0, message);
++ virtual_location, 0,
++ CPP_OPTION (pfile, cplusplus)
++ ? N_("use of C++11 long long integer constant")
++ : N_("use of C99 long long integer constant"));
+ }
+
+ result |= CPP_N_INTEGER;
diff --git a/gcc9-i386-libgomp.patch b/gcc9-i386-libgomp.patch
new file mode 100644
index 0000000..520561e
--- /dev/null
+++ b/gcc9-i386-libgomp.patch
@@ -0,0 +1,11 @@
+--- libgomp/configure.tgt.jj 2008-01-10 20:53:48.000000000 +0100
++++ libgomp/configure.tgt 2008-03-27 12:44:51.000000000 +0100
+@@ -67,7 +67,7 @@ if test $enable_linux_futex = yes; then
+ ;;
+ *)
+ if test -z "$with_arch"; then
+- XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
++ XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
+ fi
+ esac
+ ;;
diff --git a/gcc9-isl-dl.patch b/gcc9-isl-dl.patch
new file mode 100644
index 0000000..46d3b0d
--- /dev/null
+++ b/gcc9-isl-dl.patch
@@ -0,0 +1,715 @@
+--- gcc/Makefile.in.jj 2015-06-06 10:00:25.000000000 +0200
++++ gcc/Makefile.in 2015-11-04 14:56:02.643536437 +0100
+@@ -1046,7 +1046,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
+ # and the system's installed libraries.
+ LIBS = @LIBS@ libcommon.a $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBBACKTRACE) \
+ $(LIBIBERTY) $(LIBDECNUMBER) $(HOST_LIBS)
+-BACKENDLIBS = $(ISLLIBS) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
++BACKENDLIBS = $(if $(ISLLIBS),-ldl) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
+ $(ZLIB)
+ # Any system libraries needed just for GNAT.
+ SYSLIBS = @GNAT_LIBEXC@
+@@ -2196,6 +2196,15 @@ $(out_object_file): $(out_file)
+ $(common_out_object_file): $(common_out_file)
+ $(COMPILE) $<
+ $(POSTCOMPILE)
++
++graphite%.o : \
++ ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
++graphite.o : \
++ ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
++graphite%.o : \
++ ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS))
++graphite.o : \
++ ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS))
+ #\f
+ # Generate header and source files from the machine description,
+ # and compile them.
+--- gcc/graphite.h.jj 2016-01-27 12:44:06.000000000 +0100
++++ gcc/graphite.h 2016-01-27 13:26:38.309876856 +0100
+@@ -39,6 +39,590 @@ along with GCC; see the file COPYING3.
+ #include <isl/schedule_node.h>
+ #include <isl/id.h>
+ #include <isl/space.h>
++#include <isl/version.h>
++#include <dlfcn.h>
++
++#define DYNSYMS \
++ DYNSYM (isl_aff_add_coefficient_si); \
++ DYNSYM (isl_aff_free); \
++ DYNSYM (isl_aff_get_space); \
++ DYNSYM (isl_aff_set_coefficient_si); \
++ DYNSYM (isl_aff_set_constant_si); \
++ DYNSYM (isl_aff_zero_on_domain); \
++ DYNSYM (isl_band_free); \
++ DYNSYM (isl_band_get_children); \
++ DYNSYM (isl_band_get_partial_schedule); \
++ DYNSYM (isl_band_has_children); \
++ DYNSYM (isl_band_list_free); \
++ DYNSYM (isl_band_list_get_band); \
++ DYNSYM (isl_band_list_get_ctx); \
++ DYNSYM (isl_band_list_n_band); \
++ DYNSYM (isl_band_n_member); \
++ DYNSYM (isl_basic_map_add_constraint); \
++ DYNSYM (isl_basic_map_project_out); \
++ DYNSYM (isl_basic_map_universe); \
++ DYNSYM (isl_constraint_set_coefficient_si); \
++ DYNSYM (isl_constraint_set_constant_si); \
++ DYNSYM (isl_ctx_alloc); \
++ DYNSYM (isl_ctx_free); \
++ DYNSYM (isl_equality_alloc); \
++ DYNSYM (isl_id_alloc); \
++ DYNSYM (isl_id_copy); \
++ DYNSYM (isl_id_free); \
++ DYNSYM (isl_inequality_alloc); \
++ DYNSYM (isl_local_space_copy); \
++ DYNSYM (isl_local_space_free); \
++ DYNSYM (isl_local_space_from_space); \
++ DYNSYM (isl_local_space_range); \
++ DYNSYM (isl_map_add_constraint); \
++ DYNSYM (isl_map_add_dims); \
++ DYNSYM (isl_map_align_params); \
++ DYNSYM (isl_map_apply_range); \
++ DYNSYM (isl_map_copy); \
++ DYNSYM (isl_map_dim); \
++ DYNSYM (isl_map_dump); \
++ DYNSYM (isl_map_equate); \
++ DYNSYM (isl_map_fix_si); \
++ DYNSYM (isl_map_flat_product); \
++ DYNSYM (isl_map_flat_range_product); \
++ DYNSYM (isl_map_free); \
++ DYNSYM (isl_map_from_basic_map); \
++ DYNSYM (isl_map_from_pw_aff); \
++ DYNSYM (isl_map_from_union_map); \
++ DYNSYM (isl_map_get_ctx); \
++ DYNSYM (isl_map_get_space); \
++ DYNSYM (isl_map_get_tuple_id); \
++ DYNSYM (isl_map_insert_dims); \
++ DYNSYM (isl_map_intersect); \
++ DYNSYM (isl_map_intersect_domain); \
++ DYNSYM (isl_map_intersect_range); \
++ DYNSYM (isl_map_is_empty); \
++ DYNSYM (isl_map_lex_ge); \
++ DYNSYM (isl_map_lex_le); \
++ DYNSYM (isl_map_n_out); \
++ DYNSYM (isl_map_range); \
++ DYNSYM (isl_map_set_tuple_id); \
++ DYNSYM (isl_map_universe); \
++ DYNSYM (isl_options_set_on_error); \
++ DYNSYM (isl_options_set_schedule_serialize_sccs); \
++ DYNSYM (isl_printer_set_yaml_style); \
++ DYNSYM (isl_options_set_schedule_max_constant_term); \
++ DYNSYM (isl_options_set_schedule_maximize_band_depth); \
++ DYNSYM (isl_printer_free); \
++ DYNSYM (isl_printer_print_aff); \
++ DYNSYM (isl_printer_print_constraint); \
++ DYNSYM (isl_printer_print_map); \
++ DYNSYM (isl_printer_print_set); \
++ DYNSYM (isl_printer_to_file); \
++ DYNSYM (isl_pw_aff_add); \
++ DYNSYM (isl_pw_aff_alloc); \
++ DYNSYM (isl_pw_aff_copy); \
++ DYNSYM (isl_pw_aff_eq_set); \
++ DYNSYM (isl_pw_aff_free); \
++ DYNSYM (isl_pw_aff_from_aff); \
++ DYNSYM (isl_pw_aff_ge_set); \
++ DYNSYM (isl_pw_aff_gt_set); \
++ DYNSYM (isl_pw_aff_is_cst); \
++ DYNSYM (isl_pw_aff_le_set); \
++ DYNSYM (isl_pw_aff_lt_set); \
++ DYNSYM (isl_pw_aff_mul); \
++ DYNSYM (isl_pw_aff_ne_set); \
++ DYNSYM (isl_pw_aff_nonneg_set); \
++ DYNSYM (isl_pw_aff_set_tuple_id); \
++ DYNSYM (isl_pw_aff_sub); \
++ DYNSYM (isl_pw_aff_zero_set); \
++ DYNSYM (isl_schedule_free); \
++ DYNSYM (isl_schedule_get_band_forest); \
++ DYNSYM (isl_set_add_constraint); \
++ DYNSYM (isl_set_add_dims); \
++ DYNSYM (isl_set_apply); \
++ DYNSYM (isl_set_coalesce); \
++ DYNSYM (isl_set_copy); \
++ DYNSYM (isl_set_dim); \
++ DYNSYM (isl_set_fix_si); \
++ DYNSYM (isl_set_free); \
++ DYNSYM (isl_set_get_space); \
++ DYNSYM (isl_set_get_tuple_id); \
++ DYNSYM (isl_set_intersect); \
++ DYNSYM (isl_set_is_empty); \
++ DYNSYM (isl_set_n_dim); \
++ DYNSYM (isl_set_nat_universe); \
++ DYNSYM (isl_set_project_out); \
++ DYNSYM (isl_set_set_tuple_id); \
++ DYNSYM (isl_set_universe); \
++ DYNSYM (isl_space_add_dims); \
++ DYNSYM (isl_space_alloc); \
++ DYNSYM (isl_space_copy); \
++ DYNSYM (isl_space_dim); \
++ DYNSYM (isl_space_domain); \
++ DYNSYM (isl_space_find_dim_by_id); \
++ DYNSYM (isl_space_free); \
++ DYNSYM (isl_space_from_domain); \
++ DYNSYM (isl_space_get_tuple_id); \
++ DYNSYM (isl_space_params_alloc); \
++ DYNSYM (isl_space_range); \
++ DYNSYM (isl_space_set_alloc); \
++ DYNSYM (isl_space_set_dim_id); \
++ DYNSYM (isl_space_set_tuple_id); \
++ DYNSYM (isl_union_map_add_map); \
++ DYNSYM (isl_union_map_align_params); \
++ DYNSYM (isl_union_map_apply_domain); \
++ DYNSYM (isl_union_map_apply_range); \
++ DYNSYM (isl_union_map_compute_flow); \
++ DYNSYM (isl_union_map_copy); \
++ DYNSYM (isl_union_map_empty); \
++ DYNSYM (isl_union_map_flat_range_product); \
++ DYNSYM (isl_union_map_foreach_map); \
++ DYNSYM (isl_union_map_free); \
++ DYNSYM (isl_union_map_from_map); \
++ DYNSYM (isl_union_map_get_ctx); \
++ DYNSYM (isl_union_map_get_space); \
++ DYNSYM (isl_union_map_gist_domain); \
++ DYNSYM (isl_union_map_gist_range); \
++ DYNSYM (isl_union_map_intersect_domain); \
++ DYNSYM (isl_union_map_is_empty); \
++ DYNSYM (isl_union_map_subtract); \
++ DYNSYM (isl_union_map_union); \
++ DYNSYM (isl_union_set_add_set); \
++ DYNSYM (isl_union_set_compute_schedule); \
++ DYNSYM (isl_union_set_copy); \
++ DYNSYM (isl_union_set_empty); \
++ DYNSYM (isl_union_set_from_set); \
++ DYNSYM (isl_aff_add_constant_val); \
++ DYNSYM (isl_aff_get_coefficient_val); \
++ DYNSYM (isl_aff_get_ctx); \
++ DYNSYM (isl_aff_mod_val); \
++ DYNSYM (isl_ast_build_ast_from_schedule); \
++ DYNSYM (isl_ast_build_free); \
++ DYNSYM (isl_ast_build_from_context); \
++ DYNSYM (isl_ast_build_get_ctx); \
++ DYNSYM (isl_ast_build_get_schedule); \
++ DYNSYM (isl_ast_build_get_schedule_space); \
++ DYNSYM (isl_ast_build_set_before_each_for); \
++ DYNSYM (isl_ast_build_set_options); \
++ DYNSYM (isl_ast_expr_free); \
++ DYNSYM (isl_ast_expr_from_val); \
++ DYNSYM (isl_ast_expr_get_ctx); \
++ DYNSYM (isl_ast_expr_get_id); \
++ DYNSYM (isl_ast_expr_get_op_arg); \
++ DYNSYM (isl_ast_expr_get_op_n_arg); \
++ DYNSYM (isl_ast_expr_get_op_type); \
++ DYNSYM (isl_ast_expr_get_type); \
++ DYNSYM (isl_ast_expr_get_val); \
++ DYNSYM (isl_ast_expr_sub); \
++ DYNSYM (isl_ast_node_block_get_children); \
++ DYNSYM (isl_ast_node_for_get_body); \
++ DYNSYM (isl_ast_node_for_get_cond); \
++ DYNSYM (isl_ast_node_for_get_inc); \
++ DYNSYM (isl_ast_node_for_get_init); \
++ DYNSYM (isl_ast_node_for_get_iterator); \
++ DYNSYM (isl_ast_node_free); \
++ DYNSYM (isl_ast_node_get_annotation); \
++ DYNSYM (isl_ast_node_get_type); \
++ DYNSYM (isl_ast_node_if_get_cond); \
++ DYNSYM (isl_ast_node_if_get_else); \
++ DYNSYM (isl_ast_node_if_get_then); \
++ DYNSYM (isl_ast_node_list_free); \
++ DYNSYM (isl_ast_node_list_get_ast_node); \
++ DYNSYM (isl_ast_node_list_n_ast_node); \
++ DYNSYM (isl_ast_node_user_get_expr); \
++ DYNSYM (isl_constraint_set_coefficient_val); \
++ DYNSYM (isl_constraint_set_constant_val); \
++ DYNSYM (isl_id_get_user); \
++ DYNSYM (isl_local_space_get_ctx); \
++ DYNSYM (isl_map_fix_val); \
++ DYNSYM (isl_options_set_ast_build_atomic_upper_bound); \
++ DYNSYM (isl_printer_print_ast_node); \
++ DYNSYM (isl_printer_print_str); \
++ DYNSYM (isl_printer_set_output_format); \
++ DYNSYM (isl_pw_aff_mod_val); \
++ DYNSYM (isl_schedule_constraints_compute_schedule); \
++ DYNSYM (isl_schedule_constraints_on_domain); \
++ DYNSYM (isl_schedule_constraints_set_coincidence); \
++ DYNSYM (isl_schedule_constraints_set_proximity); \
++ DYNSYM (isl_schedule_constraints_set_validity); \
++ DYNSYM (isl_set_get_dim_id); \
++ DYNSYM (isl_set_max_val); \
++ DYNSYM (isl_set_min_val); \
++ DYNSYM (isl_set_params); \
++ DYNSYM (isl_space_align_params); \
++ DYNSYM (isl_space_map_from_domain_and_range); \
++ DYNSYM (isl_space_set_tuple_name); \
++ DYNSYM (isl_space_wrap); \
++ DYNSYM (isl_union_map_from_domain_and_range); \
++ DYNSYM (isl_union_map_range); \
++ DYNSYM (isl_union_set_union); \
++ DYNSYM (isl_union_set_universe); \
++ DYNSYM (isl_val_2exp); \
++ DYNSYM (isl_val_add_ui); \
++ DYNSYM (isl_val_copy); \
++ DYNSYM (isl_val_free); \
++ DYNSYM (isl_val_int_from_si); \
++ DYNSYM (isl_val_int_from_ui); \
++ DYNSYM (isl_val_mul); \
++ DYNSYM (isl_val_neg); \
++ DYNSYM (isl_val_sub); \
++ DYNSYM (isl_printer_print_union_map); \
++ DYNSYM (isl_pw_aff_get_ctx); \
++ DYNSYM (isl_val_is_int); \
++ DYNSYM (isl_ctx_get_max_operations); \
++ DYNSYM (isl_ctx_set_max_operations); \
++ DYNSYM (isl_ctx_last_error); \
++ DYNSYM (isl_ctx_reset_operations); \
++ DYNSYM (isl_map_coalesce); \
++ DYNSYM (isl_printer_print_schedule); \
++ DYNSYM (isl_set_set_dim_id); \
++ DYNSYM (isl_union_map_coalesce); \
++ DYNSYM (isl_multi_val_set_val); \
++ DYNSYM (isl_multi_val_zero); \
++ DYNSYM (isl_options_set_schedule_max_coefficient); \
++ DYNSYM (isl_options_set_tile_scale_tile_loops); \
++ DYNSYM (isl_schedule_copy); \
++ DYNSYM (isl_schedule_get_map); \
++ DYNSYM (isl_schedule_map_schedule_node_bottom_up); \
++ DYNSYM (isl_schedule_node_band_get_permutable); \
++ DYNSYM (isl_schedule_node_band_get_space); \
++ DYNSYM (isl_schedule_node_band_tile); \
++ DYNSYM (isl_schedule_node_child); \
++ DYNSYM (isl_schedule_node_free); \
++ DYNSYM (isl_schedule_node_get_child); \
++ DYNSYM (isl_schedule_node_get_ctx); \
++ DYNSYM (isl_schedule_node_get_type); \
++ DYNSYM (isl_schedule_node_n_children); \
++ DYNSYM (isl_union_map_is_equal); \
++ DYNSYM (isl_union_access_info_compute_flow); \
++ DYNSYM (isl_union_access_info_from_sink); \
++ DYNSYM (isl_union_access_info_set_may_source); \
++ DYNSYM (isl_union_access_info_set_must_source); \
++ DYNSYM (isl_union_access_info_set_schedule); \
++ DYNSYM (isl_union_flow_free); \
++ DYNSYM (isl_union_flow_get_may_dependence); \
++ DYNSYM (isl_union_flow_get_must_dependence); \
++ DYNSYM (isl_aff_var_on_domain); \
++ DYNSYM (isl_multi_aff_from_aff); \
++ DYNSYM (isl_schedule_get_ctx); \
++ DYNSYM (isl_multi_aff_set_tuple_id); \
++ DYNSYM (isl_multi_aff_dim); \
++ DYNSYM (isl_schedule_get_domain); \
++ DYNSYM (isl_union_set_is_empty); \
++ DYNSYM (isl_union_set_get_space); \
++ DYNSYM (isl_union_pw_multi_aff_empty); \
++ DYNSYM (isl_union_set_foreach_set); \
++ DYNSYM (isl_union_set_free); \
++ DYNSYM (isl_multi_union_pw_aff_from_union_pw_multi_aff); \
++ DYNSYM (isl_multi_union_pw_aff_apply_multi_aff); \
++ DYNSYM (isl_schedule_insert_partial_schedule); \
++ DYNSYM (isl_union_pw_multi_aff_free); \
++ DYNSYM (isl_pw_multi_aff_project_out_map); \
++ DYNSYM (isl_union_pw_multi_aff_add_pw_multi_aff); \
++ DYNSYM (isl_schedule_from_domain); \
++ DYNSYM (isl_schedule_sequence); \
++ DYNSYM (isl_ast_build_node_from_schedule); \
++ DYNSYM (isl_ast_node_mark_get_node); \
++ DYNSYM (isl_schedule_node_band_member_get_ast_loop_type); \
++ DYNSYM (isl_schedule_node_band_member_set_ast_loop_type); \
++ DYNSYM (isl_val_n_abs_num_chunks); \
++ DYNSYM (isl_val_get_abs_num_chunks); \
++ DYNSYM (isl_val_int_from_chunks); \
++ DYNSYM (isl_val_is_neg); \
++ DYNSYM (isl_version); \
++ DYNSYM (isl_options_get_on_error); \
++ DYNSYM (isl_ctx_reset_error);
++
++extern struct isl_pointers_s__
++{
++ bool inited;
++ void *h;
++#define DYNSYM(x) __typeof (x) *p_##x
++ DYNSYMS
++#undef DYNSYM
++} isl_pointers__;
++
++#define isl_aff_add_coefficient_si (*isl_pointers__.p_isl_aff_add_coefficient_si)
++#define isl_aff_free (*isl_pointers__.p_isl_aff_free)
++#define isl_aff_get_space (*isl_pointers__.p_isl_aff_get_space)
++#define isl_aff_set_coefficient_si (*isl_pointers__.p_isl_aff_set_coefficient_si)
++#define isl_aff_set_constant_si (*isl_pointers__.p_isl_aff_set_constant_si)
++#define isl_aff_zero_on_domain (*isl_pointers__.p_isl_aff_zero_on_domain)
++#define isl_band_free (*isl_pointers__.p_isl_band_free)
++#define isl_band_get_children (*isl_pointers__.p_isl_band_get_children)
++#define isl_band_get_partial_schedule (*isl_pointers__.p_isl_band_get_partial_schedule)
++#define isl_band_has_children (*isl_pointers__.p_isl_band_has_children)
++#define isl_band_list_free (*isl_pointers__.p_isl_band_list_free)
++#define isl_band_list_get_band (*isl_pointers__.p_isl_band_list_get_band)
++#define isl_band_list_get_ctx (*isl_pointers__.p_isl_band_list_get_ctx)
++#define isl_band_list_n_band (*isl_pointers__.p_isl_band_list_n_band)
++#define isl_band_n_member (*isl_pointers__.p_isl_band_n_member)
++#define isl_basic_map_add_constraint (*isl_pointers__.p_isl_basic_map_add_constraint)
++#define isl_basic_map_project_out (*isl_pointers__.p_isl_basic_map_project_out)
++#define isl_basic_map_universe (*isl_pointers__.p_isl_basic_map_universe)
++#define isl_constraint_set_coefficient_si (*isl_pointers__.p_isl_constraint_set_coefficient_si)
++#define isl_constraint_set_constant_si (*isl_pointers__.p_isl_constraint_set_constant_si)
++#define isl_ctx_alloc (*isl_pointers__.p_isl_ctx_alloc)
++#define isl_ctx_free (*isl_pointers__.p_isl_ctx_free)
++#define isl_equality_alloc (*isl_pointers__.p_isl_equality_alloc)
++#define isl_id_alloc (*isl_pointers__.p_isl_id_alloc)
++#define isl_id_copy (*isl_pointers__.p_isl_id_copy)
++#define isl_id_free (*isl_pointers__.p_isl_id_free)
++#define isl_inequality_alloc (*isl_pointers__.p_isl_inequality_alloc)
++#define isl_local_space_copy (*isl_pointers__.p_isl_local_space_copy)
++#define isl_local_space_free (*isl_pointers__.p_isl_local_space_free)
++#define isl_local_space_from_space (*isl_pointers__.p_isl_local_space_from_space)
++#define isl_local_space_range (*isl_pointers__.p_isl_local_space_range)
++#define isl_map_add_constraint (*isl_pointers__.p_isl_map_add_constraint)
++#define isl_map_add_dims (*isl_pointers__.p_isl_map_add_dims)
++#define isl_map_align_params (*isl_pointers__.p_isl_map_align_params)
++#define isl_map_apply_range (*isl_pointers__.p_isl_map_apply_range)
++#define isl_map_copy (*isl_pointers__.p_isl_map_copy)
++#define isl_map_dim (*isl_pointers__.p_isl_map_dim)
++#define isl_map_dump (*isl_pointers__.p_isl_map_dump)
++#define isl_map_equate (*isl_pointers__.p_isl_map_equate)
++#define isl_map_fix_si (*isl_pointers__.p_isl_map_fix_si)
++#define isl_map_flat_product (*isl_pointers__.p_isl_map_flat_product)
++#define isl_map_flat_range_product (*isl_pointers__.p_isl_map_flat_range_product)
++#define isl_map_free (*isl_pointers__.p_isl_map_free)
++#define isl_map_from_basic_map (*isl_pointers__.p_isl_map_from_basic_map)
++#define isl_map_from_pw_aff (*isl_pointers__.p_isl_map_from_pw_aff)
++#define isl_map_from_union_map (*isl_pointers__.p_isl_map_from_union_map)
++#define isl_map_get_ctx (*isl_pointers__.p_isl_map_get_ctx)
++#define isl_map_get_space (*isl_pointers__.p_isl_map_get_space)
++#define isl_map_get_tuple_id (*isl_pointers__.p_isl_map_get_tuple_id)
++#define isl_map_insert_dims (*isl_pointers__.p_isl_map_insert_dims)
++#define isl_map_intersect (*isl_pointers__.p_isl_map_intersect)
++#define isl_map_intersect_domain (*isl_pointers__.p_isl_map_intersect_domain)
++#define isl_map_intersect_range (*isl_pointers__.p_isl_map_intersect_range)
++#define isl_map_is_empty (*isl_pointers__.p_isl_map_is_empty)
++#define isl_map_lex_ge (*isl_pointers__.p_isl_map_lex_ge)
++#define isl_map_lex_le (*isl_pointers__.p_isl_map_lex_le)
++#define isl_map_n_out (*isl_pointers__.p_isl_map_n_out)
++#define isl_map_range (*isl_pointers__.p_isl_map_range)
++#define isl_map_set_tuple_id (*isl_pointers__.p_isl_map_set_tuple_id)
++#define isl_map_universe (*isl_pointers__.p_isl_map_universe)
++#define isl_options_set_on_error (*isl_pointers__.p_isl_options_set_on_error)
++#define isl_options_set_schedule_serialize_sccs (*isl_pointers__.p_isl_options_set_schedule_serialize_sccs)
++#define isl_printer_set_yaml_style (*isl_pointers__.p_isl_printer_set_yaml_style)
++#define isl_options_set_schedule_max_constant_term (*isl_pointers__.p_isl_options_set_schedule_max_constant_term)
++#define isl_options_set_schedule_maximize_band_depth (*isl_pointers__.p_isl_options_set_schedule_maximize_band_depth)
++#define isl_printer_free (*isl_pointers__.p_isl_printer_free)
++#define isl_printer_print_aff (*isl_pointers__.p_isl_printer_print_aff)
++#define isl_printer_print_constraint (*isl_pointers__.p_isl_printer_print_constraint)
++#define isl_printer_print_map (*isl_pointers__.p_isl_printer_print_map)
++#define isl_printer_print_set (*isl_pointers__.p_isl_printer_print_set)
++#define isl_printer_to_file (*isl_pointers__.p_isl_printer_to_file)
++#define isl_pw_aff_add (*isl_pointers__.p_isl_pw_aff_add)
++#define isl_pw_aff_alloc (*isl_pointers__.p_isl_pw_aff_alloc)
++#define isl_pw_aff_copy (*isl_pointers__.p_isl_pw_aff_copy)
++#define isl_pw_aff_eq_set (*isl_pointers__.p_isl_pw_aff_eq_set)
++#define isl_pw_aff_free (*isl_pointers__.p_isl_pw_aff_free)
++#define isl_pw_aff_from_aff (*isl_pointers__.p_isl_pw_aff_from_aff)
++#define isl_pw_aff_ge_set (*isl_pointers__.p_isl_pw_aff_ge_set)
++#define isl_pw_aff_gt_set (*isl_pointers__.p_isl_pw_aff_gt_set)
++#define isl_pw_aff_is_cst (*isl_pointers__.p_isl_pw_aff_is_cst)
++#define isl_pw_aff_le_set (*isl_pointers__.p_isl_pw_aff_le_set)
++#define isl_pw_aff_lt_set (*isl_pointers__.p_isl_pw_aff_lt_set)
++#define isl_pw_aff_mul (*isl_pointers__.p_isl_pw_aff_mul)
++#define isl_pw_aff_ne_set (*isl_pointers__.p_isl_pw_aff_ne_set)
++#define isl_pw_aff_nonneg_set (*isl_pointers__.p_isl_pw_aff_nonneg_set)
++#define isl_pw_aff_set_tuple_id (*isl_pointers__.p_isl_pw_aff_set_tuple_id)
++#define isl_pw_aff_sub (*isl_pointers__.p_isl_pw_aff_sub)
++#define isl_pw_aff_zero_set (*isl_pointers__.p_isl_pw_aff_zero_set)
++#define isl_schedule_free (*isl_pointers__.p_isl_schedule_free)
++#define isl_schedule_get_band_forest (*isl_pointers__.p_isl_schedule_get_band_forest)
++#define isl_set_add_constraint (*isl_pointers__.p_isl_set_add_constraint)
++#define isl_set_add_dims (*isl_pointers__.p_isl_set_add_dims)
++#define isl_set_apply (*isl_pointers__.p_isl_set_apply)
++#define isl_set_coalesce (*isl_pointers__.p_isl_set_coalesce)
++#define isl_set_copy (*isl_pointers__.p_isl_set_copy)
++#define isl_set_dim (*isl_pointers__.p_isl_set_dim)
++#define isl_set_fix_si (*isl_pointers__.p_isl_set_fix_si)
++#define isl_set_free (*isl_pointers__.p_isl_set_free)
++#define isl_set_get_space (*isl_pointers__.p_isl_set_get_space)
++#define isl_set_get_tuple_id (*isl_pointers__.p_isl_set_get_tuple_id)
++#define isl_set_intersect (*isl_pointers__.p_isl_set_intersect)
++#define isl_set_is_empty (*isl_pointers__.p_isl_set_is_empty)
++#define isl_set_n_dim (*isl_pointers__.p_isl_set_n_dim)
++#define isl_set_nat_universe (*isl_pointers__.p_isl_set_nat_universe)
++#define isl_set_project_out (*isl_pointers__.p_isl_set_project_out)
++#define isl_set_set_tuple_id (*isl_pointers__.p_isl_set_set_tuple_id)
++#define isl_set_universe (*isl_pointers__.p_isl_set_universe)
++#define isl_space_add_dims (*isl_pointers__.p_isl_space_add_dims)
++#define isl_space_alloc (*isl_pointers__.p_isl_space_alloc)
++#define isl_space_copy (*isl_pointers__.p_isl_space_copy)
++#define isl_space_dim (*isl_pointers__.p_isl_space_dim)
++#define isl_space_domain (*isl_pointers__.p_isl_space_domain)
++#define isl_space_find_dim_by_id (*isl_pointers__.p_isl_space_find_dim_by_id)
++#define isl_space_free (*isl_pointers__.p_isl_space_free)
++#define isl_space_from_domain (*isl_pointers__.p_isl_space_from_domain)
++#define isl_space_get_tuple_id (*isl_pointers__.p_isl_space_get_tuple_id)
++#define isl_space_params_alloc (*isl_pointers__.p_isl_space_params_alloc)
++#define isl_space_range (*isl_pointers__.p_isl_space_range)
++#define isl_space_set_alloc (*isl_pointers__.p_isl_space_set_alloc)
++#define isl_space_set_dim_id (*isl_pointers__.p_isl_space_set_dim_id)
++#define isl_space_set_tuple_id (*isl_pointers__.p_isl_space_set_tuple_id)
++#define isl_union_map_add_map (*isl_pointers__.p_isl_union_map_add_map)
++#define isl_union_map_align_params (*isl_pointers__.p_isl_union_map_align_params)
++#define isl_union_map_apply_domain (*isl_pointers__.p_isl_union_map_apply_domain)
++#define isl_union_map_apply_range (*isl_pointers__.p_isl_union_map_apply_range)
++#define isl_union_map_compute_flow (*isl_pointers__.p_isl_union_map_compute_flow)
++#define isl_union_map_copy (*isl_pointers__.p_isl_union_map_copy)
++#define isl_union_map_empty (*isl_pointers__.p_isl_union_map_empty)
++#define isl_union_map_flat_range_product (*isl_pointers__.p_isl_union_map_flat_range_product)
++#define isl_union_map_foreach_map (*isl_pointers__.p_isl_union_map_foreach_map)
++#define isl_union_map_free (*isl_pointers__.p_isl_union_map_free)
++#define isl_union_map_from_map (*isl_pointers__.p_isl_union_map_from_map)
++#define isl_union_map_get_ctx (*isl_pointers__.p_isl_union_map_get_ctx)
++#define isl_union_map_get_space (*isl_pointers__.p_isl_union_map_get_space)
++#define isl_union_map_gist_domain (*isl_pointers__.p_isl_union_map_gist_domain)
++#define isl_union_map_gist_range (*isl_pointers__.p_isl_union_map_gist_range)
++#define isl_union_map_intersect_domain (*isl_pointers__.p_isl_union_map_intersect_domain)
++#define isl_union_map_is_empty (*isl_pointers__.p_isl_union_map_is_empty)
++#define isl_union_map_subtract (*isl_pointers__.p_isl_union_map_subtract)
++#define isl_union_map_union (*isl_pointers__.p_isl_union_map_union)
++#define isl_union_set_add_set (*isl_pointers__.p_isl_union_set_add_set)
++#define isl_union_set_compute_schedule (*isl_pointers__.p_isl_union_set_compute_schedule)
++#define isl_union_set_copy (*isl_pointers__.p_isl_union_set_copy)
++#define isl_union_set_empty (*isl_pointers__.p_isl_union_set_empty)
++#define isl_union_set_from_set (*isl_pointers__.p_isl_union_set_from_set)
++#define isl_aff_add_constant_val (*isl_pointers__.p_isl_aff_add_constant_val)
++#define isl_aff_get_coefficient_val (*isl_pointers__.p_isl_aff_get_coefficient_val)
++#define isl_aff_get_ctx (*isl_pointers__.p_isl_aff_get_ctx)
++#define isl_aff_mod_val (*isl_pointers__.p_isl_aff_mod_val)
++#define isl_ast_build_ast_from_schedule (*isl_pointers__.p_isl_ast_build_ast_from_schedule)
++#define isl_ast_build_free (*isl_pointers__.p_isl_ast_build_free)
++#define isl_ast_build_from_context (*isl_pointers__.p_isl_ast_build_from_context)
++#define isl_ast_build_get_ctx (*isl_pointers__.p_isl_ast_build_get_ctx)
++#define isl_ast_build_get_schedule (*isl_pointers__.p_isl_ast_build_get_schedule)
++#define isl_ast_build_get_schedule_space (*isl_pointers__.p_isl_ast_build_get_schedule_space)
++#define isl_ast_build_set_before_each_for (*isl_pointers__.p_isl_ast_build_set_before_each_for)
++#define isl_ast_build_set_options (*isl_pointers__.p_isl_ast_build_set_options)
++#define isl_ast_expr_free (*isl_pointers__.p_isl_ast_expr_free)
++#define isl_ast_expr_from_val (*isl_pointers__.p_isl_ast_expr_from_val)
++#define isl_ast_expr_get_ctx (*isl_pointers__.p_isl_ast_expr_get_ctx)
++#define isl_ast_expr_get_id (*isl_pointers__.p_isl_ast_expr_get_id)
++#define isl_ast_expr_get_op_arg (*isl_pointers__.p_isl_ast_expr_get_op_arg)
++#define isl_ast_expr_get_op_n_arg (*isl_pointers__.p_isl_ast_expr_get_op_n_arg)
++#define isl_ast_expr_get_op_type (*isl_pointers__.p_isl_ast_expr_get_op_type)
++#define isl_ast_expr_get_type (*isl_pointers__.p_isl_ast_expr_get_type)
++#define isl_ast_expr_get_val (*isl_pointers__.p_isl_ast_expr_get_val)
++#define isl_ast_expr_sub (*isl_pointers__.p_isl_ast_expr_sub)
++#define isl_ast_node_block_get_children (*isl_pointers__.p_isl_ast_node_block_get_children)
++#define isl_ast_node_for_get_body (*isl_pointers__.p_isl_ast_node_for_get_body)
++#define isl_ast_node_for_get_cond (*isl_pointers__.p_isl_ast_node_for_get_cond)
++#define isl_ast_node_for_get_inc (*isl_pointers__.p_isl_ast_node_for_get_inc)
++#define isl_ast_node_for_get_init (*isl_pointers__.p_isl_ast_node_for_get_init)
++#define isl_ast_node_for_get_iterator (*isl_pointers__.p_isl_ast_node_for_get_iterator)
++#define isl_ast_node_free (*isl_pointers__.p_isl_ast_node_free)
++#define isl_ast_node_get_annotation (*isl_pointers__.p_isl_ast_node_get_annotation)
++#define isl_ast_node_get_type (*isl_pointers__.p_isl_ast_node_get_type)
++#define isl_ast_node_if_get_cond (*isl_pointers__.p_isl_ast_node_if_get_cond)
++#define isl_ast_node_if_get_else (*isl_pointers__.p_isl_ast_node_if_get_else)
++#define isl_ast_node_if_get_then (*isl_pointers__.p_isl_ast_node_if_get_then)
++#define isl_ast_node_list_free (*isl_pointers__.p_isl_ast_node_list_free)
++#define isl_ast_node_list_get_ast_node (*isl_pointers__.p_isl_ast_node_list_get_ast_node)
++#define isl_ast_node_list_n_ast_node (*isl_pointers__.p_isl_ast_node_list_n_ast_node)
++#define isl_ast_node_user_get_expr (*isl_pointers__.p_isl_ast_node_user_get_expr)
++#define isl_constraint_set_coefficient_val (*isl_pointers__.p_isl_constraint_set_coefficient_val)
++#define isl_constraint_set_constant_val (*isl_pointers__.p_isl_constraint_set_constant_val)
++#define isl_id_get_user (*isl_pointers__.p_isl_id_get_user)
++#define isl_local_space_get_ctx (*isl_pointers__.p_isl_local_space_get_ctx)
++#define isl_map_fix_val (*isl_pointers__.p_isl_map_fix_val)
++#define isl_options_set_ast_build_atomic_upper_bound (*isl_pointers__.p_isl_options_set_ast_build_atomic_upper_bound)
++#define isl_printer_print_ast_node (*isl_pointers__.p_isl_printer_print_ast_node)
++#define isl_printer_print_str (*isl_pointers__.p_isl_printer_print_str)
++#define isl_printer_set_output_format (*isl_pointers__.p_isl_printer_set_output_format)
++#define isl_pw_aff_mod_val (*isl_pointers__.p_isl_pw_aff_mod_val)
++#define isl_schedule_constraints_compute_schedule (*isl_pointers__.p_isl_schedule_constraints_compute_schedule)
++#define isl_schedule_constraints_on_domain (*isl_pointers__.p_isl_schedule_constraints_on_domain)
++#define isl_schedule_constraints_set_coincidence (*isl_pointers__.p_isl_schedule_constraints_set_coincidence)
++#define isl_schedule_constraints_set_proximity (*isl_pointers__.p_isl_schedule_constraints_set_proximity)
++#define isl_schedule_constraints_set_validity (*isl_pointers__.p_isl_schedule_constraints_set_validity)
++#define isl_set_get_dim_id (*isl_pointers__.p_isl_set_get_dim_id)
++#define isl_set_max_val (*isl_pointers__.p_isl_set_max_val)
++#define isl_set_min_val (*isl_pointers__.p_isl_set_min_val)
++#define isl_set_params (*isl_pointers__.p_isl_set_params)
++#define isl_space_align_params (*isl_pointers__.p_isl_space_align_params)
++#define isl_space_map_from_domain_and_range (*isl_pointers__.p_isl_space_map_from_domain_and_range)
++#define isl_space_set_tuple_name (*isl_pointers__.p_isl_space_set_tuple_name)
++#define isl_space_wrap (*isl_pointers__.p_isl_space_wrap)
++#define isl_union_map_from_domain_and_range (*isl_pointers__.p_isl_union_map_from_domain_and_range)
++#define isl_union_map_range (*isl_pointers__.p_isl_union_map_range)
++#define isl_union_set_union (*isl_pointers__.p_isl_union_set_union)
++#define isl_union_set_universe (*isl_pointers__.p_isl_union_set_universe)
++#define isl_val_2exp (*isl_pointers__.p_isl_val_2exp)
++#define isl_val_add_ui (*isl_pointers__.p_isl_val_add_ui)
++#define isl_val_copy (*isl_pointers__.p_isl_val_copy)
++#define isl_val_free (*isl_pointers__.p_isl_val_free)
++#define isl_val_int_from_si (*isl_pointers__.p_isl_val_int_from_si)
++#define isl_val_int_from_ui (*isl_pointers__.p_isl_val_int_from_ui)
++#define isl_val_mul (*isl_pointers__.p_isl_val_mul)
++#define isl_val_neg (*isl_pointers__.p_isl_val_neg)
++#define isl_val_sub (*isl_pointers__.p_isl_val_sub)
++#define isl_printer_print_union_map (*isl_pointers__.p_isl_printer_print_union_map)
++#define isl_pw_aff_get_ctx (*isl_pointers__.p_isl_pw_aff_get_ctx)
++#define isl_val_is_int (*isl_pointers__.p_isl_val_is_int)
++#define isl_ctx_get_max_operations (*isl_pointers__.p_isl_ctx_get_max_operations)
++#define isl_ctx_set_max_operations (*isl_pointers__.p_isl_ctx_set_max_operations)
++#define isl_ctx_last_error (*isl_pointers__.p_isl_ctx_last_error)
++#define isl_ctx_reset_operations (*isl_pointers__.p_isl_ctx_reset_operations)
++#define isl_map_coalesce (*isl_pointers__.p_isl_map_coalesce)
++#define isl_printer_print_schedule (*isl_pointers__.p_isl_printer_print_schedule)
++#define isl_set_set_dim_id (*isl_pointers__.p_isl_set_set_dim_id)
++#define isl_union_map_coalesce (*isl_pointers__.p_isl_union_map_coalesce)
++#define isl_multi_val_set_val (*isl_pointers__.p_isl_multi_val_set_val)
++#define isl_multi_val_zero (*isl_pointers__.p_isl_multi_val_zero)
++#define isl_options_set_schedule_max_coefficient (*isl_pointers__.p_isl_options_set_schedule_max_coefficient)
++#define isl_options_set_tile_scale_tile_loops (*isl_pointers__.p_isl_options_set_tile_scale_tile_loops)
++#define isl_schedule_copy (*isl_pointers__.p_isl_schedule_copy)
++#define isl_schedule_get_map (*isl_pointers__.p_isl_schedule_get_map)
++#define isl_schedule_map_schedule_node_bottom_up (*isl_pointers__.p_isl_schedule_map_schedule_node_bottom_up)
++#define isl_schedule_node_band_get_permutable (*isl_pointers__.p_isl_schedule_node_band_get_permutable)
++#define isl_schedule_node_band_get_space (*isl_pointers__.p_isl_schedule_node_band_get_space)
++#define isl_schedule_node_band_tile (*isl_pointers__.p_isl_schedule_node_band_tile)
++#define isl_schedule_node_child (*isl_pointers__.p_isl_schedule_node_child)
++#define isl_schedule_node_free (*isl_pointers__.p_isl_schedule_node_free)
++#define isl_schedule_node_get_child (*isl_pointers__.p_isl_schedule_node_get_child)
++#define isl_schedule_node_get_ctx (*isl_pointers__.p_isl_schedule_node_get_ctx)
++#define isl_schedule_node_get_type (*isl_pointers__.p_isl_schedule_node_get_type)
++#define isl_schedule_node_n_children (*isl_pointers__.p_isl_schedule_node_n_children)
++#define isl_union_map_is_equal (*isl_pointers__.p_isl_union_map_is_equal)
++#define isl_union_access_info_compute_flow (*isl_pointers__.p_isl_union_access_info_compute_flow)
++#define isl_union_access_info_from_sink (*isl_pointers__.p_isl_union_access_info_from_sink)
++#define isl_union_access_info_set_may_source (*isl_pointers__.p_isl_union_access_info_set_may_source)
++#define isl_union_access_info_set_must_source (*isl_pointers__.p_isl_union_access_info_set_must_source)
++#define isl_union_access_info_set_schedule (*isl_pointers__.p_isl_union_access_info_set_schedule)
++#define isl_union_flow_free (*isl_pointers__.p_isl_union_flow_free)
++#define isl_union_flow_get_may_dependence (*isl_pointers__.p_isl_union_flow_get_may_dependence)
++#define isl_union_flow_get_must_dependence (*isl_pointers__.p_isl_union_flow_get_must_dependence)
++#define isl_aff_var_on_domain (*isl_pointers__.p_isl_aff_var_on_domain)
++#define isl_multi_aff_from_aff (*isl_pointers__.p_isl_multi_aff_from_aff)
++#define isl_schedule_get_ctx (*isl_pointers__.p_isl_schedule_get_ctx)
++#define isl_multi_aff_set_tuple_id (*isl_pointers__.p_isl_multi_aff_set_tuple_id)
++#define isl_multi_aff_dim (*isl_pointers__.p_isl_multi_aff_dim)
++#define isl_schedule_get_domain (*isl_pointers__.p_isl_schedule_get_domain)
++#define isl_union_set_is_empty (*isl_pointers__.p_isl_union_set_is_empty)
++#define isl_union_set_get_space (*isl_pointers__.p_isl_union_set_get_space)
++#define isl_union_pw_multi_aff_empty (*isl_pointers__.p_isl_union_pw_multi_aff_empty)
++#define isl_union_set_foreach_set (*isl_pointers__.p_isl_union_set_foreach_set)
++#define isl_union_set_free (*isl_pointers__.p_isl_union_set_free)
++#define isl_multi_union_pw_aff_from_union_pw_multi_aff (*isl_pointers__.p_isl_multi_union_pw_aff_from_union_pw_multi_aff)
++#define isl_multi_union_pw_aff_apply_multi_aff (*isl_pointers__.p_isl_multi_union_pw_aff_apply_multi_aff)
++#define isl_schedule_insert_partial_schedule (*isl_pointers__.p_isl_schedule_insert_partial_schedule)
++#define isl_union_pw_multi_aff_free (*isl_pointers__.p_isl_union_pw_multi_aff_free)
++#define isl_pw_multi_aff_project_out_map (*isl_pointers__.p_isl_pw_multi_aff_project_out_map)
++#define isl_union_pw_multi_aff_add_pw_multi_aff (*isl_pointers__.p_isl_union_pw_multi_aff_add_pw_multi_aff)
++#define isl_schedule_from_domain (*isl_pointers__.p_isl_schedule_from_domain)
++#define isl_schedule_sequence (*isl_pointers__.p_isl_schedule_sequence)
++#define isl_ast_build_node_from_schedule (*isl_pointers__.p_isl_ast_build_node_from_schedule)
++#define isl_ast_node_mark_get_node (*isl_pointers__.p_isl_ast_node_mark_get_node)
++#define isl_schedule_node_band_member_get_ast_loop_type (*isl_pointers__.p_isl_schedule_node_band_member_get_ast_loop_type)
++#define isl_schedule_node_band_member_set_ast_loop_type (*isl_pointers__.p_isl_schedule_node_band_member_set_ast_loop_type)
++#define isl_val_n_abs_num_chunks (*isl_pointers__.p_isl_val_n_abs_num_chunks)
++#define isl_val_get_abs_num_chunks (*isl_pointers__.p_isl_val_get_abs_num_chunks)
++#define isl_val_int_from_chunks (*isl_pointers__.p_isl_val_int_from_chunks)
++#define isl_val_is_neg (*isl_pointers__.p_isl_val_is_neg)
++#define isl_version (*isl_pointers__.p_isl_version)
++#define isl_options_get_on_error (*isl_pointers__.p_isl_options_get_on_error)
++#define isl_ctx_reset_error (*isl_pointers__.p_isl_ctx_reset_error)
+
+ typedef struct poly_dr *poly_dr_p;
+
+@@ -461,5 +1045,6 @@ extern void build_scops (vec<scop_p> *);
+ extern void dot_all_sese (FILE *, vec<sese_l> &);
+ extern void dot_sese (sese_l &);
+ extern void dot_cfg ();
++extern const char *get_isl_version (bool);
+
+ #endif
+--- gcc/graphite.c.jj 2015-11-04 14:15:32.000000000 +0100
++++ gcc/graphite.c 2015-11-04 14:56:02.645536409 +0100
+@@ -60,6 +60,35 @@ along with GCC; see the file COPYING3.
+ #include "tree-into-ssa.h"
+ #include "graphite.h"
+
++__typeof (isl_pointers__) isl_pointers__;
++
++static bool
++init_isl_pointers (void)
++{
++ void *h;
++
++ if (isl_pointers__.inited)
++ return isl_pointers__.h != NULL;
++ h = dlopen ("libisl.so.15", RTLD_LAZY);
++ isl_pointers__.h = h;
++ if (h == NULL)
++ return false;
++#define DYNSYM(x) \
++ do \
++ { \
++ union { __typeof (isl_pointers__.p_##x) p; void *q; } u; \
++ u.q = dlsym (h, #x); \
++ if (u.q == NULL) \
++ return false; \
++ isl_pointers__.p_##x = u.p; \
++ } \
++ while (0)
++ DYNSYMS
++#undef DYNSYM
++ isl_pointers__.inited = true;
++ return true;
++}
++
+ /* Print global statistics to FILE. */
+
+ static void
+@@ -365,6 +394,15 @@ graphite_transform_loops (void)
+ if (parallelized_function_p (cfun->decl))
+ return;
+
++ if (number_of_loops (cfun) <= 1)
++ return;
++
++ if (!init_isl_pointers ())
++ {
++ sorry ("Graphite loop optimizations cannot be used");
++ return;
++ }
++
+ calculate_dominance_info (CDI_DOMINATORS);
+
+ /* We rely on post-dominators during merging of SESE regions so those
+@@ -455,6 +493,14 @@ graphite_transform_loops (void)
+ }
+ }
+
++const char *
++get_isl_version (bool force)
++{
++ if (force)
++ init_isl_pointers ();
++ return (isl_pointers__.inited && isl_version) ? isl_version () : "none";
++}
++
+ #else /* If isl is not available: #ifndef HAVE_isl. */
+
+ static void
+--- gcc/toplev.c.jj 2017-02-19 13:02:31.000000000 +0100
++++ gcc/toplev.c 2017-02-19 16:50:25.536301350 +0100
+@@ -94,6 +94,7 @@ along with GCC; see the file COPYING3.
+
+ #ifdef HAVE_isl
+ #include <isl/version.h>
++extern const char *get_isl_version (bool);
+ #endif
+
+ static void general_init (const char *, bool);
+@@ -683,7 +684,7 @@ print_version (FILE *file, const char *i
+ #ifndef HAVE_isl
+ "none"
+ #else
+- isl_version ()
++ get_isl_version (*indent == 0)
+ #endif
+ );
+ if (strcmp (GCC_GMP_STRINGIFY_VERSION, gmp_version))
diff --git a/gcc9-libgomp-omp_h-multilib.patch b/gcc9-libgomp-omp_h-multilib.patch
new file mode 100644
index 0000000..d0e98d1
--- /dev/null
+++ b/gcc9-libgomp-omp_h-multilib.patch
@@ -0,0 +1,17 @@
+2008-06-09 Jakub Jelinek <jakub@redhat.com>
+
+ * omp.h.in (omp_nest_lock_t): Fix up for Linux multilibs.
+
+--- libgomp/omp.h.in.jj 2008-06-09 13:34:05.000000000 +0200
++++ libgomp/omp.h.in 2008-06-09 13:34:48.000000000 +0200
+@@ -42,8 +42,8 @@ typedef struct
+
+ typedef struct
+ {
+- unsigned char _x[@OMP_NEST_LOCK_SIZE@]
+- __attribute__((__aligned__(@OMP_NEST_LOCK_ALIGN@)));
++ unsigned char _x[8 + sizeof (void *)]
++ __attribute__((__aligned__(sizeof (void *))));
+ } omp_nest_lock_t;
+ #endif
+
diff --git a/gcc9-libstdc++-docs.patch b/gcc9-libstdc++-docs.patch
new file mode 100644
index 0000000..282206a
--- /dev/null
+++ b/gcc9-libstdc++-docs.patch
@@ -0,0 +1,24 @@
+--- libstdc++-v3/doc/html/index.html.jj 2011-01-03 12:53:21.282829010 +0100
++++ libstdc++-v3/doc/html/index.html 2011-01-04 18:06:28.999851145 +0100
+@@ -5,6 +5,8 @@
+ <a class="link" href="https://www.fsf.org" target="_top">FSF
+ </a>
+ </p><p>
++ Release 9.0.0
++ </p><p>
+ Permission is granted to copy, distribute and/or modify this
+ document under the terms of the GNU Free Documentation
+ License, Version 1.2 or any later version published by the
+--- libstdc++-v3/doc/html/api.html.jj 2011-01-03 12:53:21.000000000 +0100
++++ libstdc++-v3/doc/html/api.html 2011-01-04 18:12:01.672757784 +0100
+@@ -20,7 +20,9 @@
+ member functions for the library classes, finding out what is in a
+ particular include file, looking at inheritance diagrams, etc.
+ </p><p>
+- The API documentation, rendered into HTML, can be viewed online
++ The API documentation, rendered into HTML, can be viewed locally
++ <a class="link" href="api/index.html" target="_top">for the 9.0.0 release</a>,
++ online
+ <a class="link" href="http://gcc.gnu.org/onlinedocs/" target="_top">for each GCC release</a>
+ and
+ <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html" target="_top">
diff --git a/gcc9-libtool-no-rpath.patch b/gcc9-libtool-no-rpath.patch
new file mode 100644
index 0000000..466c661
--- /dev/null
+++ b/gcc9-libtool-no-rpath.patch
@@ -0,0 +1,27 @@
+libtool sucks.
+--- ltmain.sh.jj 2007-12-07 14:53:21.000000000 +0100
++++ ltmain.sh 2008-09-05 21:51:48.000000000 +0200
+@@ -5394,6 +5394,7 @@ EOF
+ rpath="$finalize_rpath"
+ test "$mode" != relink && rpath="$compile_rpath$rpath"
+ for libdir in $rpath; do
++ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+@@ -6071,6 +6072,7 @@ EOF
+ rpath=
+ hardcode_libdirs=
+ for libdir in $compile_rpath $finalize_rpath; do
++ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+@@ -6120,6 +6122,7 @@ EOF
+ rpath=
+ hardcode_libdirs=
+ for libdir in $finalize_rpath; do
++ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
diff --git a/gcc9-no-add-needed.patch b/gcc9-no-add-needed.patch
new file mode 100644
index 0000000..5817299
--- /dev/null
+++ b/gcc9-no-add-needed.patch
@@ -0,0 +1,37 @@
+2010-02-08 Roland McGrath <roland@redhat.com>
+
+ * config/gnu-user.h (LINK_EH_SPEC): Pass --no-add-needed to the linker.
+ * config/alpha/elf.h (LINK_EH_SPEC): Likewise.
+ * config/ia64/linux.h (LINK_EH_SPEC): Likewise.
+
+--- gcc/config/alpha/elf.h.jj 2011-01-03 12:52:31.118056764 +0100
++++ gcc/config/alpha/elf.h 2011-01-04 18:14:10.931874160 +0100
+@@ -168,5 +168,5 @@ extern int alpha_this_gpdisp_sequence_nu
+ I imagine that other systems will catch up. In the meantime, it
+ doesn't harm to make sure that the data exists to be used later. */
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-#define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
++#define LINK_EH_SPEC "--no-add-needed %{!static|static-pie:--eh-frame-hdr} "
+ #endif
+--- gcc/config/ia64/linux.h.jj 2011-01-03 13:02:11.462994522 +0100
++++ gcc/config/ia64/linux.h 2011-01-04 18:14:10.931874160 +0100
+@@ -76,7 +76,7 @@ do { \
+ Signalize that because we have fde-glibc, we don't need all C shared libs
+ linked against -lgcc_s. */
+ #undef LINK_EH_SPEC
+-#define LINK_EH_SPEC ""
++#define LINK_EH_SPEC "--no-add-needed "
+
+ #undef TARGET_INIT_LIBFUNCS
+ #define TARGET_INIT_LIBFUNCS ia64_soft_fp_init_libfuncs
+--- gcc/config/gnu-user.h.jj 2011-01-03 12:53:03.739057299 +0100
++++ gcc/config/gnu-user.h 2011-01-04 18:14:10.932814884 +0100
+@@ -106,7 +106,7 @@ see the files COPYING3 and COPYING.RUNTI
+ #define LIB_SPEC GNU_USER_TARGET_LIB_SPEC
+
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-#define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
++#define LINK_EH_SPEC "--no-add-needed %{!static|static-pie:--eh-frame-hdr} "
+ #endif
+
+ #define GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC \
diff --git a/gcc9-pr88044.patch b/gcc9-pr88044.patch
new file mode 100644
index 0000000..67be8f0
--- /dev/null
+++ b/gcc9-pr88044.patch
@@ -0,0 +1,18 @@
+2019-01-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/88044
+ * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
+ is false in the first iteration, but !every_iteration, return false
+ instead of true with niter->niter zero.
+
+--- gcc/tree-ssa-loop-niter.c.jj 2019-01-10 11:43:02.254577008 +0100
++++ gcc/tree-ssa-loop-niter.c 2019-01-18 19:51:00.245504728 +0100
+@@ -1824,6 +1824,8 @@ number_of_iterations_cond (struct loop *
+ tree tem = fold_binary (code, boolean_type_node, iv0->base, iv1->base);
+ if (tem && integer_zerop (tem))
+ {
++ if (!every_iteration)
++ return false;
+ niter->niter = build_int_cst (unsigned_type_for (type), 0);
+ niter->max = 0;
+ return true;
diff --git a/gcc9-pr88714.patch b/gcc9-pr88714.patch
new file mode 100644
index 0000000..3a02e7e
--- /dev/null
+++ b/gcc9-pr88714.patch
@@ -0,0 +1,122 @@
+2019-01-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/88714
+ * config/arm/ldrdstrd.md: If alias sets on the SImode MEMs are
+ different, clear alias set on the DImode MEM. Clear MEM_EXPR.
+
+ * gcc.c-torture/execute/pr88714.c: New test.
+
+--- gcc/config/arm/ldrdstrd.md.jj 2019-01-16 09:35:03.851334889 +0100
++++ gcc/config/arm/ldrdstrd.md 2019-01-17 17:37:40.860791779 +0100
+@@ -39,6 +39,10 @@ (define_peephole2 ; ldrd
+ /* In ARM state, the destination registers of LDRD/STRD must be
+ consecutive. We emit DImode access. */
+ operands[0] = gen_rtx_REG (DImode, REGNO (operands[0]));
++ if (MEM_ALIAS_SET (operands[2])
++ && MEM_ALIAS_SET (operands[2]) != MEM_ALIAS_SET (operands[3]))
++ set_mem_alias_set (operands[2], 0);
++ set_mem_expr (operands[2], NULL_TREE);
+ operands[2] = adjust_address (operands[2], DImode, 0);
+ /* Emit [(set (match_dup 0) (match_dup 2))] */
+ emit_insn (gen_rtx_SET (operands[0], operands[2]));
+@@ -71,6 +75,10 @@ (define_peephole2 ; strd
+ /* In ARM state, the destination registers of LDRD/STRD must be
+ consecutive. We emit DImode access. */
+ operands[0] = gen_rtx_REG (DImode, REGNO (operands[0]));
++ if (MEM_ALIAS_SET (operands[2])
++ && MEM_ALIAS_SET (operands[2]) != MEM_ALIAS_SET (operands[3]))
++ set_mem_alias_set (operands[2], 0);
++ set_mem_expr (operands[2], NULL_TREE);
+ operands[2] = adjust_address (operands[2], DImode, 0);
+ /* Emit [(set (match_dup 2) (match_dup 0))] */
+ emit_insn (gen_rtx_SET (operands[2], operands[0]));
+@@ -106,6 +114,10 @@ (define_peephole2 ; strd of constants
+ else if (TARGET_ARM)
+ {
+ rtx tmp = gen_rtx_REG (DImode, REGNO (operands[0]));
++ if (MEM_ALIAS_SET (operands[2])
++ && MEM_ALIAS_SET (operands[2]) != MEM_ALIAS_SET (operands[3]))
++ set_mem_alias_set (operands[2], 0);
++ set_mem_expr (operands[2], NULL_TREE);
+ operands[2] = adjust_address (operands[2], DImode, 0);
+ /* Emit the pattern:
+ [(set (match_dup 0) (match_dup 4))
+@@ -149,6 +161,10 @@ (define_peephole2 ; strd of constants
+ else if (TARGET_ARM)
+ {
+ rtx tmp = gen_rtx_REG (DImode, REGNO (operands[0]));
++ if (MEM_ALIAS_SET (operands[2])
++ && MEM_ALIAS_SET (operands[2]) != MEM_ALIAS_SET (operands[3]))
++ set_mem_alias_set (operands[2], 0);
++ set_mem_expr (operands[2], NULL_TREE);
+ operands[2] = adjust_address (operands[2], DImode, 0);
+ /* Emit the pattern
+ [(set (match_dup 0) (match_dup 4))
+@@ -203,6 +219,10 @@ (define_peephole2 ; swap the destination
+ else
+ {
+ operands[0] = gen_rtx_REG (DImode, REGNO (operands[0]));
++ if (MEM_ALIAS_SET (operands[2])
++ && MEM_ALIAS_SET (operands[2]) != MEM_ALIAS_SET (operands[3]))
++ set_mem_alias_set (operands[2], 0);
++ set_mem_expr (operands[2], NULL_TREE);
+ operands[2] = adjust_address (operands[2], DImode, 0);
+ }
+ }
+@@ -238,6 +258,10 @@ (define_peephole2 ; swap the destination
+ else
+ {
+ operands[0] = gen_rtx_REG (DImode, REGNO (operands[0]));
++ if (MEM_ALIAS_SET (operands[2])
++ && MEM_ALIAS_SET (operands[2]) != MEM_ALIAS_SET (operands[3]))
++ set_mem_alias_set (operands[2], 0);
++ set_mem_expr (operands[2], NULL_TREE);
+ operands[2] = adjust_address (operands[2], DImode, 0);
+ }
+ }
+--- gcc/testsuite/gcc.c-torture/execute/pr88714.c.jj 2019-01-17 17:39:42.074828164 +0100
++++ gcc/testsuite/gcc.c-torture/execute/pr88714.c 2019-01-17 17:21:26.810575783 +0100
+@@ -0,0 +1,43 @@
++/* PR bootstrap/88714 */
++
++struct S { int a, b, c; int *d; };
++struct T { int *e, *f, *g; } *t = 0;
++int *o = 0;
++
++__attribute__((noipa))
++void bar (int *x, int y, int z, int w)
++{
++ if (w == -1)
++ {
++ if (x != 0 || y != 0 || z != 0)
++ __builtin_abort ();
++ }
++ else if (w != 0 || x != t->g || y != 0 || z != 12)
++ __builtin_abort ();
++}
++
++__attribute__((noipa)) void
++foo (struct S *x, struct S *y, int *z, int w)
++{
++ *o = w;
++ if (w)
++ bar (0, 0, 0, -1);
++ x->d = z;
++ if (y->d)
++ y->c = y->c + y->d[0];
++ bar (t->g, 0, y->c, 0);
++}
++
++int
++main ()
++{
++ int a[4] = { 8, 9, 10, 11 };
++ struct S s = { 1, 2, 3, &a[0] };
++ struct T u = { 0, 0, &a[3] };
++ o = &a[2];
++ t = &u;
++ foo (&s, &s, &a[1], 5);
++ if (s.c != 12 || s.d != &a[1])
++ __builtin_abort ();
++ return 0;
++}
diff --git a/gcc9-pr88901.patch b/gcc9-pr88901.patch
new file mode 100644
index 0000000..f4faeab
--- /dev/null
+++ b/gcc9-pr88901.patch
@@ -0,0 +1,45 @@
+2019-01-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR sanitizer/88901
+ * typeck.c (cp_build_binary_op): Don't instrument
+ SANITIZE_POINTER_COMPARE if processing_template_decl.
+ (pointer_diff): Similarly for SANITIZE_POINTER_SUBTRACT.
+
+ * g++.dg/asan/pr88901.C: New test.
+
+--- gcc/cp/typeck.c.jj 2019-01-18 09:13:58.580790058 +0100
++++ gcc/cp/typeck.c 2019-01-18 11:53:45.941734135 +0100
+@@ -5233,6 +5233,7 @@ cp_build_binary_op (const op_location_t
+ }
+
+ if ((code0 == POINTER_TYPE || code1 == POINTER_TYPE)
++ && !processing_template_decl
+ && sanitize_flags_p (SANITIZE_POINTER_COMPARE))
+ {
+ op0 = save_expr (op0);
+@@ -5650,7 +5651,8 @@ pointer_diff (location_t loc, tree op0,
+ else
+ inttype = restype;
+
+- if (sanitize_flags_p (SANITIZE_POINTER_SUBTRACT))
++ if (!processing_template_decl
++ && sanitize_flags_p (SANITIZE_POINTER_SUBTRACT))
+ {
+ op0 = save_expr (op0);
+ op1 = save_expr (op1);
+--- gcc/testsuite/g++.dg/asan/pr88901.C.jj 2019-01-18 11:55:42.398826983 +0100
++++ gcc/testsuite/g++.dg/asan/pr88901.C 2019-01-18 11:55:26.559086374 +0100
+@@ -0,0 +1,13 @@
++// PR sanitizer/88901
++// { dg-do compile }
++// { dg-options "-fsanitize=address -fsanitize=pointer-compare" }
++
++template <typename T>
++struct A {
++ void foo() {
++ auto d = [](char *x, char *y) {
++ for (char *p = x; p + sizeof(T) <= y; p += sizeof(T))
++ reinterpret_cast<T *>(p)->~T();
++ };
++ }
++};
diff --git a/gcc9-rh1574936.patch b/gcc9-rh1574936.patch
new file mode 100644
index 0000000..32db990
--- /dev/null
+++ b/gcc9-rh1574936.patch
@@ -0,0 +1,31 @@
+crt files and statically linked libgcc objects cause false positives
+in annobin coverage, so we add the assembler flag to generate notes
+for them.
+
+The patch also adds notes to libgcc_s.so, but this is harmless because
+these notes only confer that there is no other annobin markup.
+
+2018-07-25 Florian Weimer <fweimer@redhat.com>
+
+ * Makefile.in (LIBGCC2_CFLAGS, CRTSTUFF_CFLAGS): Add
+ -Wa,--generate-missing-build-notes=yes.
+
+--- libgcc/Makefile.in 2018-01-13 13:05:41.000000000 +0100
++++ libgcc/Makefile.in 2018-07-25 13:15:02.036226940 +0200
+@@ -244,6 +244,7 @@
+ LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(HOST_LIBGCC2_CFLAGS) \
+ $(LIBGCC2_DEBUG_CFLAGS) -DIN_LIBGCC2 \
+ -fbuilding-libgcc -fno-stack-protector \
++ -Wa,--generate-missing-build-notes=yes \
+ $(INHIBIT_LIBC_CFLAGS)
+
+ # Additional options to use when compiling libgcc2.a.
+@@ -297,6 +298,7 @@
+ $(NO_PIE_CFLAGS) -finhibit-size-directive -fno-inline -fno-exceptions \
+ -fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \
+ -fbuilding-libgcc -fno-stack-protector $(FORCE_EXPLICIT_EH_REGISTRY) \
++ -Wa,--generate-missing-build-notes=yes \
+ $(INHIBIT_LIBC_CFLAGS)
+
+ # Extra flags to use when compiling crt{begin,end}.o.
+
diff --git a/gcc9-sparc-config-detection.patch b/gcc9-sparc-config-detection.patch
new file mode 100644
index 0000000..bb06b35
--- /dev/null
+++ b/gcc9-sparc-config-detection.patch
@@ -0,0 +1,40 @@
+--- gcc/config.gcc.jj 2008-04-24 15:42:46.000000000 -0500
++++ gcc/config.gcc 2008-04-24 15:44:51.000000000 -0500
+@@ -2790,7 +2790,7 @@ sparc-*-rtems*)
+ tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
+ tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
+ ;;
+-sparc-*-linux*)
++sparc-*-linux* | sparcv9-*-linux*)
+ tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
+ extra_options="${extra_options} sparc/long-double-switch.opt"
+ case ${target} in
+@@ -2844,7 +2844,7 @@ sparc64-*-rtems*)
+ extra_options="${extra_options}"
+ tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
+ ;;
+-sparc64-*-linux*)
++sparc64*-*-linux*)
+ tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default64.h sparc/linux64.h sparc/tso.h"
+ extra_options="${extra_options} sparc/long-double-switch.opt"
+ tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
+--- libgcc/config.host.jj 2008-04-24 15:46:19.000000000 -0500
++++ libgcc/config.host 2008-04-24 15:46:49.000000000 -0500
+@@ -1002,7 +1002,7 @@ sparc-*-elf*)
+ tmake_file="${tmake_file} t-fdpbit t-crtfm"
+ extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
+ ;;
+-sparc-*-linux*) # SPARC's running GNU/Linux, libc6
++sparc-*-linux* | sparcv9-*-linux*) # SPARC's running GNU/Linux, libc6
+ tmake_file="${tmake_file} t-crtfm"
+ if test "${host_address}" = 64; then
+ tmake_file="$tmake_file sparc/t-linux64"
+@@ -1050,7 +1050,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*
+ tmake_file="$tmake_file t-crtfm"
+ extra_parts="$extra_parts crtfastmath.o"
+ ;;
+-sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux
++sparc64*-*-linux*) # 64-bit SPARC's running GNU/Linux
+ extra_parts="$extra_parts crtfastmath.o"
+ tmake_file="${tmake_file} t-crtfm sparc/t-linux"
+ if test "${host_address}" = 64; then
diff --git a/gcc9-utf-array-test.patch b/gcc9-utf-array-test.patch
new file mode 100644
index 0000000..2e3c18d
--- /dev/null
+++ b/gcc9-utf-array-test.patch
@@ -0,0 +1,32 @@
+2019-01-18 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc.dg/utf-array.c: Allow wchar_t to be printed as
+ {long ,short ,}{unsigned ,}int.
+
+--- gcc/testsuite/gcc.dg/utf-array.c.jj 2019-01-18 00:33:20.867980701 +0100
++++ gcc/testsuite/gcc.dg/utf-array.c 2019-01-18 23:32:57.086524528 +0100
+@@ -12,13 +12,13 @@ typedef __CHAR32_TYPE__ char32_t;
+ const char s_0[] = "ab";
+ const char s_1[] = u"ab"; /* { dg-error "from a string literal with type array of" } */
+ const char s_2[] = U"ab"; /* { dg-error "from a string literal with type array of" } */
+-const char s_3[] = L"ab"; /* { dg-error "from a string literal with type array of .int." } */
++const char s_3[] = L"ab"; /* { dg-error "from a string literal with type array of .(long |short )?(unsigned )?int." } */
+ const char s_4[] = u8"ab";
+
+ const char16_t s16_0[] = "ab"; /* { dg-error "from a string literal with type array of .char." } */
+ const char16_t s16_1[] = u"ab";
+ const char16_t s16_2[] = U"ab"; /* { dg-error "from a string literal with type array of" } */
+-const char16_t s16_3[] = L"ab"; /* { dg-error "from a string literal with type array of .int." "" { target { ! wchar_t_char16_t_compatible } } } */
++const char16_t s16_3[] = L"ab"; /* { dg-error "from a string literal with type array of .(long |short )?(unsigned )?int." "" { target { ! wchar_t_char16_t_compatible } } } */
+ const char16_t s16_4[] = u8"ab"; /* { dg-error "from a string literal with type array of .char." } */
+
+ const char16_t s16_5[0] = u"ab"; /* { dg-warning "chars is too long" } */
+@@ -30,7 +30,7 @@ const char16_t s16_9[4] = u"ab";
+ const char32_t s32_0[] = "ab"; /* { dg-error "from a string literal with type array of .char." } */
+ const char32_t s32_1[] = u"ab"; /* { dg-error "from a string literal with type array of" } */
+ const char32_t s32_2[] = U"ab";
+-const char32_t s32_3[] = L"ab"; /* { dg-error "from a string literal with type array of .int." "" { target { ! wchar_t_char32_t_compatible } } } */
++const char32_t s32_3[] = L"ab"; /* { dg-error "from a string literal with type array of .(long |short )?(unsigned )?int." "" { target { ! wchar_t_char32_t_compatible } } } */
+ const char32_t s32_4[] = u8"ab"; /* { dg-error "from a string literal with type array of .char." } */
+
+ const char32_t s32_5[0] = U"ab"; /* { dg-warning "chars is too long" } */
diff --git a/sources b/sources
index d019e58..41c6849 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (gcc-8.2.1-20190109.tar.xz) = d699b52baa2c54a71f2fef2dd77701baa836737975938d67fb532f1a54638b1442fc04b560fd74e66b44195e4de9ce485100b9bdbac569e4c3abad053a96bc33
+SHA512 (gcc-9.0.0-20190119.tar.xz) = 22d58049867a220493ec77da591ebf4a4bc05513451f31a4e9d990035b0a6f571d495fc86ec607bb6eb7aebb310e57ccab669b764d07503ce1e6f6109b893262
SHA512 (nvptx-newlib-aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24.tar.xz) = 94f7089365296f7dfa485107b4143bebc850a81586f3460fd896bbbb6ba099a00217d4042133424fd2183b352132f4fd367e6a60599bdae2a26dfd48a77d0e04
SHA512 (nvptx-tools-c28050f60193b3b95a18866a96f03334e874e78f.tar.xz) = a688cb12cf805950a5abbb13b52f45c81dbee98e310b7ed57ae20e76dbfa5964a16270148374a6426d177db71909d28360490f091c86a5d19d4faa5127beeee1
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-06-29 12:28 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-29 12:28 [rpms/gcc] rhel-f41-base: 9.0.1-0.3 Jakub Jelinek
-- strict thread matches above, loose matches on Subject: below --
2026-06-29 12:28 Jakub Jelinek
2026-06-29 12:28 Jakub Jelinek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox