From 3694befabb21253ecad9638a716af14de71e285b Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Sat, 19 Jan 2019 16:14:16 +0100
Subject: [PATCH] 9.0.1-0.3
---
.gitignore | 1 +
gcc.spec | 993 +++++-------------
gcc8-mcet.patch | 17 -
gcc8-rh1512529-aarch64.patch | 445 --------
...ty.patch => gcc9-Wno-format-security.patch | 0
gcc9-d-shared-libphobos.patch | 20 +
...fault.patch => gcc9-foffload-default.patch | 37 +-
gcc8-hack.patch => gcc9-hack.patch | 56 +-
...6-libgomp.patch => gcc9-i386-libgomp.patch | 0
gcc8-isl-dl.patch => gcc9-isl-dl.patch | 0
...patch => gcc9-libgomp-omp_h-multilib.patch | 0
...++-docs.patch => gcc9-libstdc++-docs.patch | 4 +-
...rpath.patch => gcc9-libtool-no-rpath.patch | 0
...d-needed.patch => gcc9-no-add-needed.patch | 19 +-
gcc9-pr88044.patch | 18 +
gcc9-pr88714.patch | 122 +++
gcc9-pr88901.patch | 45 +
gcc8-rh1574936.patch => gcc9-rh1574936.patch | 0
...patch => gcc9-sparc-config-detection.patch | 0
gcc9-utf-array-test.patch | 32 +
sources | 2 +-
21 files changed, 578 insertions(+), 1233 deletions(-)
delete mode 100644 gcc8-mcet.patch
delete mode 100644 gcc8-rh1512529-aarch64.patch
rename gcc8-Wno-format-security.patch => gcc9-Wno-format-security.patch (100%)
create mode 100644 gcc9-d-shared-libphobos.patch
rename gcc8-foffload-default.patch => gcc9-foffload-default.patch (83%)
rename gcc8-hack.patch => gcc9-hack.patch (73%)
rename gcc8-i386-libgomp.patch => gcc9-i386-libgomp.patch (100%)
rename gcc8-isl-dl.patch => gcc9-isl-dl.patch (100%)
rename gcc8-libgomp-omp_h-multilib.patch => gcc9-libgomp-omp_h-multilib.patch (100%)
rename gcc8-libstdc++-docs.patch => gcc9-libstdc++-docs.patch (91%)
rename gcc8-libtool-no-rpath.patch => gcc9-libtool-no-rpath.patch (100%)
rename gcc8-no-add-needed.patch => gcc9-no-add-needed.patch (66%)
create mode 100644 gcc9-pr88044.patch
create mode 100644 gcc9-pr88714.patch
create mode 100644 gcc9-pr88901.patch
rename gcc8-rh1574936.patch => gcc9-rh1574936.patch (100%)
rename gcc8-sparc-config-detection.patch => gcc9-sparc-config-detection.patch (100%)
create mode 100644 gcc9-utf-array-test.patch
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 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 Jan 19 2019 Jakub Jelinek 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
-* Sat Dec 15 2018 Jakub Jelinek 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
+* Thu Jan 17 2019 Jakub Jelinek 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 on aarch64 and arm (PR target/88734)
+- default to -shared-libphobos for gdc
-* Mon Nov 5 2018 Jakub Jelinek 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 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 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 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 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 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 8.1.1-4
-- make sure rs6000-modes.h is installed for plugins (#1596407)
-
-* Tue Jun 26 2018 Jakub Jelinek 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 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 8.1.1-1.1
-- rebuilt for Python 3.7
-
-* Wed May 2 2018 Jakub Jelinek 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 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 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 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 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 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 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 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 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 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 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 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 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 - 8.0.1-0.11
-- use generic tuning for armhfp
-
-* Mon Feb 5 2018 Richard W.M. Jones 8.0.1-0.10
-- disable multilib on riscv64.
-
-* Thu Feb 1 2018 Jeff Law 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 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 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 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 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 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 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 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 8.0.1-0.1
+* Fri Jan 11 2019 Jakub Jelinek 9.0.1-0.1
- new package
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
-
- * 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-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-Wno-format-security.patch b/gcc9-Wno-format-security.patch
similarity index 100%
rename from gcc8-Wno-format-security.patch
rename to gcc9-Wno-format-security.patch
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
+
+ * 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/gcc8-foffload-default.patch b/gcc9-foffload-default.patch
similarity index 83%
rename from gcc8-foffload-default.patch
rename to gcc9-foffload-default.patch
index 771e1e0..2ecd537 100644
--- a/gcc8-foffload-default.patch
+++ b/gcc9-foffload-default.patch
@@ -1,14 +1,15 @@
-2017-01-20 Jakub Jelinek
+2019-01-17 Jakub Jelinek
* 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
+ (compile_offload_image): 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.
+ 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.
@@ -57,18 +58,28 @@ libgomp/
enum lto_mode_d {
LTO_MODE_NONE, /* Not doing LTO. */
-@@ -790,8 +791,10 @@ compile_images_for_offload_targets (unsi
- if (!target_names)
- return;
+@@ -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);
-+ 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
+@@ -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)
@@ -85,13 +96,7 @@ libgomp/
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]);
-+ }
++ continue;
next_name_entry++;
}
diff --git a/gcc8-hack.patch b/gcc9-hack.patch
similarity index 73%
rename from gcc8-hack.patch
rename to gcc9-hack.patch
index 515173f..ba80c24 100644
--- a/gcc8-hack.patch
+++ b/gcc9-hack.patch
@@ -1,8 +1,8 @@
---- 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
+--- 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))
- ADA_RTS_SUBDIR=./rts$(subst /,_,$(MULTISUBDIR))
+DEFAULTMULTIFLAGS :=
+ifeq ($(MULTISUBDIR),)
@@ -45,17 +45,17 @@
"PICFLAG_FOR_TARGET=$(PICFLAG)" \
"THREAD_KIND=$(THREAD_KIND)" \
"TRACE=$(TRACE)" \
-@@ -88,7 +110,7 @@ LIBADA_FLAGS_TO_PASS = \
+@@ -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)"
- # 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
+ .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)" \
@@ -63,42 +63,44 @@
+ mandir="$(mandir)" \
+ infodir="$(infodir)" \
GOCFLAGS="$(GOCFLAGS) $${flags}" \
+ GDCFLAGS="$(GDCFLAGS) $${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;
+--- 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;
-
- /* Get the first token of the expansion (or the '(' of a
-@@ -3059,7 +3057,8 @@ create_iso_definition (cpp_reader *pfile
+ 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");
- return false;
++ "'##' cannot appear at either end of a macro "
++ "expansion");
+ goto out;
}
- break;
-@@ -3072,7 +3071,8 @@ create_iso_definition (cpp_reader *pfile
+ 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");
- return false;
++ "'##' cannot appear at either end of a macro "
++ "expansion");
+ goto out;
}
---- 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,
+--- 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))
{
diff --git a/gcc8-i386-libgomp.patch b/gcc9-i386-libgomp.patch
similarity index 100%
rename from gcc8-i386-libgomp.patch
rename to gcc9-i386-libgomp.patch
diff --git a/gcc8-isl-dl.patch b/gcc9-isl-dl.patch
similarity index 100%
rename from gcc8-isl-dl.patch
rename to gcc9-isl-dl.patch
diff --git a/gcc8-libgomp-omp_h-multilib.patch b/gcc9-libgomp-omp_h-multilib.patch
similarity index 100%
rename from gcc8-libgomp-omp_h-multilib.patch
rename to gcc9-libgomp-omp_h-multilib.patch
diff --git a/gcc8-libstdc++-docs.patch b/gcc9-libstdc++-docs.patch
similarity index 91%
rename from gcc8-libstdc++-docs.patch
rename to gcc9-libstdc++-docs.patch
index e73a92b..282206a 100644
--- a/gcc8-libstdc++-docs.patch
+++ b/gcc9-libstdc++-docs.patch
@@ -4,7 +4,7 @@
FSF
-+ Release 8.2.1
++ Release 9.0.0
+
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation
@@ -17,7 +17,7 @@
- The API documentation, rendered into HTML, can be viewed online
+ The API documentation, rendered into HTML, can be viewed locally
-+ for the 8.2.1 release,
++ for the 9.0.0 release,
+ online
for each GCC release
and
diff --git a/gcc8-libtool-no-rpath.patch b/gcc9-libtool-no-rpath.patch
similarity index 100%
rename from gcc8-libtool-no-rpath.patch
rename to gcc9-libtool-no-rpath.patch
diff --git a/gcc8-no-add-needed.patch b/gcc9-no-add-needed.patch
similarity index 66%
rename from gcc8-no-add-needed.patch
rename to gcc9-no-add-needed.patch
index aa2f52d..5817299 100644
--- a/gcc8-no-add-needed.patch
+++ b/gcc9-no-add-needed.patch
@@ -1,8 +1,6 @@
2010-02-08 Roland McGrath
- * config/rs6000/sysv4.h (LINK_EH_SPEC): Pass --no-add-needed to the
- linker.
- * config/gnu-user.h (LINK_EH_SPEC): Likewise.
+ * 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.
@@ -28,7 +26,7 @@
#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
+@@ -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)
@@ -36,15 +34,4 @@
+#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__ \
+ #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
+
+ 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
+
+ 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
+
+ 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
++struct A {
++ void foo() {
++ auto d = [](char *x, char *y) {
++ for (char *p = x; p + sizeof(T) <= y; p += sizeof(T))
++ reinterpret_cast(p)->~T();
++ };
++ }
++};
diff --git a/gcc8-rh1574936.patch b/gcc9-rh1574936.patch
similarity index 100%
rename from gcc8-rh1574936.patch
rename to gcc9-rh1574936.patch
diff --git a/gcc8-sparc-config-detection.patch b/gcc9-sparc-config-detection.patch
similarity index 100%
rename from gcc8-sparc-config-detection.patch
rename to gcc9-sparc-config-detection.patch
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
+
+ * 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