Merge remote-tracking branch 'up/main' into main-riscv64

Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
This commit is contained in:
David Abdurachmanov 2024-01-26 16:37:38 +02:00
commit a3eb1ee53f
Signed by: davidlt
GPG Key ID: 7A5F42FAF91FACC3
17 changed files with 279 additions and 736 deletions

121
.gitignore vendored
View File

@ -1,116 +1,7 @@
/gcc-10.0.1-20200118.tar.xz
/newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz
/nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz
/gcc-10.0.1-20200121.tar.xz
/gcc-10.0.1-20200123.tar.xz
/gcc-10.0.1-20200126.tar.xz
/gcc-10.0.1-20200130.tar.xz
/gcc-10.0.1-20200216.tar.xz
/gcc-10.0.1-20200311.tar.xz
/gcc-10.0.1-20200325.tar.xz
/gcc-10.0.1-20200328.tar.xz
/gcc-10.0.1-20200420.tar.xz
/gcc-10.0.1-20200501.tar.xz
/gcc-10.1.1-20200507.tar.xz
/gcc-10.1.1-20200618.tar.xz
/gcc-10.2.1-20200723.tar.xz
/gcc-10.2.1-20200804.tar.xz
/gcc-10.2.1-20200826.tar.xz
/gcc-10.2.1-20200916.tar.xz
/gcc-10.2.1-20201005.tar.xz
/gcc-10.2.1-20201016.tar.xz
/gcc-10.2.1-20201102.tar.xz
/gcc-10.2.1-20201112.tar.xz
/gcc-10.2.1-20201125.tar.xz
/gcc-11.0.0-20201204.tar.xz
/gcc-11.0.0-20201216.tar.xz
/gcc-11.0.0-20201217.tar.xz
/gcc-11.0.0-20201223.tar.xz
/gcc-11.0.0-20210109.tar.xz
/gcc-11.0.0-20210113.tar.xz
/gcc-11.0.0-20210116.tar.xz
/gcc-11.0.0-20210119.tar.xz
/gcc-11.0.0-20210123.tar.xz
/gcc-11.0.0-20210130.tar.xz
/gcc-11.0.0-20210210.tar.xz
/gcc-11.0.0-20210225.tar.xz
/gcc-11.0.1-20210307.tar.xz
/gcc-11.0.1-20210319.tar.xz
/isl-0.18.tar.bz2
/gcc-11.0.1-20210324.tar.xz
/gcc-11.0.1-20210405.tar.xz
/gcc-11.0.1-20210418.tar.xz
/gcc-11.0.1-20210422.tar.xz
/gcc-11.0.1-20210423.tar.xz
/gcc-11.1.1-20210428.tar.xz
/gcc-11.1.1-20210512.tar.xz
/gcc-11.1.1-20210531.tar.xz
/gcc-11.1.1-20210617.tar.xz
/gcc-11.1.1-20210623.tar.xz
/gcc-11.1.1-20210726.tar.xz
/gcc-11.2.1-20210728.tar.xz
/gcc-11.2.1-20210823.tar.xz
/gcc-11.2.1-20211012.tar.xz
/gcc-11.2.1-20211018.tar.xz
/gcc-11.2.1-20211019.tar.xz
/gcc-11.2.1-20211203.tar.xz
/gcc-12.0.0-20220108.tar.xz
/gcc-12.0.0-20220112.tar.xz
/gcc-12.0.0-20220115.tar.xz
/gcc-12.0.1-20220118.tar.xz
/gcc-12.0.1-20220125.tar.xz
/gcc-12.0.1-20220129.tar.xz
/gcc-12.0.1-20220202.tar.xz
/gcc-12.0.1-20220205.tar.xz
/gcc-12.0.1-20220212.tar.xz
/gcc-12.0.1-20220214.tar.xz
/gcc-12.0.1-20220222.tar.xz
/gcc-12.0.1-20220306.tar.xz
/gcc-12.0.1-20220308.tar.xz
/gcc-12.0.1-20220401.tar.xz
/gcc-12.0.1-20220411.tar.xz
/gcc-12.0.1-20220413.tar.xz
/gcc-12.0.1-20220429.tar.xz
/gcc-12.1.1-20220507.tar.xz
/gcc-12.1.1-20220628.tar.xz
/gcc-12.1.1-20220810.tar.xz
/gcc-12.2.1-20220819.tar.xz
/gcc-12.2.1-20221103.tar.xz
/gcc-14.0.1-20240113.tar.xz
/isl-0.24.tar.bz2
/newlib-cygwin-a8526cb52bedabd4d6ba4b227a5185627f871aa1.tar.xz
/nvptx-tools-472b6e78b3ba918d727698f79911360b7c808247.tar.xz
/gcc-12.2.1-20221121.tar.xz
/gcc-13.0.0-20221219.tar.xz
/gcc-13.0.0-20230102.tar.xz
/gcc-13.0.0-20230106.tar.xz
/gcc-13.0.0-20230112.tar.xz
/gcc-13.0.0-20230115.tar.xz
/gcc-13.0.1-20230117.tar.xz
/gcc-13.0.1-20230127.tar.xz
/newlib-cygwin-9e09d6ed83cce4777a5950412647ccc603040409.tar.xz
/gcc-13.0.1-20230208.tar.xz
/gcc-13.0.1-20230215.tar.xz
/gcc-13.0.1-20230221.tar.xz
/gcc-13.0.1-20230304.tar.xz
/gcc-13.0.1-20230310.tar.xz
/gcc-13.0.1-20230318.tar.xz
/gcc-13.0.1-20230321.tar.xz
/nvptx-tools-93e00909ceb9cbbc104f0fcba56c0361ffb3ca4b.tar.xz
/gcc-13.0.1-20230324.tar.xz
/gcc-13.0.1-20230329.tar.xz
/gcc-13.0.1-20230401.tar.xz
/gcc-13.0.1-20230404.tar.xz
/gcc-13.0.1-20230418.tar.xz
/gcc-13.0.1-20230419.tar.xz
/gcc-13.0.1-20230421.tar.xz
/gcc-13.1.1-20230426.tar.xz
/gcc-13.1.1-20230511.tar.xz
/gcc-13.1.1-20230519.tar.xz
/gcc-13.1.1-20230614.tar.xz
/gcc-13.2.1-20230728.tar.xz
/gcc-13.2.1-20230906.tar.xz
/nvptx-tools-aa3404ad5a496cda5d79a50bedb1344fd63e8763.tar.xz
/gcc-13.2.1-20230918.tar.xz
/gcc-13.2.1-20231011.tar.xz
/gcc-13.2.1-20231113.tar.xz
/gcc-13.2.1-20231205.tar.xz
/newlib-cygwin-5f15d7c5817b07a6b18cbab17342c95cb7b42be4.tar.xz
/nvptx-tools-c5ad8ada3e86d96b10a9d352b7a764f801478ba6.tar.xz
/gcc-14.0.1-20240118.tar.xz
/newlib-cygwin-d45261f62a15f8abd94a1031020b9a9f455e4eed.tar.xz
/gcc-14.0.1-20240125.tar.xz

691
gcc.spec
View File

@ -1,12 +1,12 @@
%global DATE 20231205
%global gitrev f783814ad6a04ae5ef44595216596a2b75eda15b
%global gcc_version 13.2.1
%global gcc_major 13
%global DATE 20240125
%global gitrev f3118f3f56f589a21b94106c4e210e5ba9a60898
%global gcc_version 14.0.1
%global gcc_major 14
# 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 6
%global nvptx_tools_gitrev aa3404ad5a496cda5d79a50bedb1344fd63e8763
%global newlib_cygwin_gitrev 9e09d6ed83cce4777a5950412647ccc603040409
%global gcc_release 0
%global nvptx_tools_gitrev c5ad8ada3e86d96b10a9d352b7a764f801478ba6
%global newlib_cygwin_gitrev d45261f62a15f8abd94a1031020b9a9f455e4eed
%global _unpackaged_files_terminate_build 0
%global _performance_build 1
# Hardening slows the compiler way too much.
@ -114,6 +114,11 @@
%else
%global build_offload_nvptx 0
%endif
%ifarch x86_64
%global build_offload_amdgcn 1
%else
%global build_offload_amdgcn 0
%endif
%if 0%{?fedora} < 32 && 0%{?rhel} < 8
%ifarch s390x
%global multilib_32_arch s390
@ -136,7 +141,7 @@
Summary: Various compilers (C, C++, Objective-C, ...)
Name: gcc
Version: %{gcc_version}
Release: %{gcc_release}.1.riscv64%{?dist}
Release: %{gcc_release}.3.0.riscv64%{?dist}
# libgcc, libgfortran, libgomp, libstdc++ and crtstuff have
# GCC Runtime Exception.
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
@ -151,7 +156,7 @@ License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2
Source0: gcc-%{version}-%{DATE}.tar.xz
# The source for nvptx-tools package was pulled from upstream's vcs. Use the
# following commands to generate the tarball:
# git clone --depth 1 git://github.com/MentorEmbedded/nvptx-tools.git nvptx-tools-dir.tmp
# git clone --depth 1 https://github.com/MentorEmbedded/nvptx-tools.git nvptx-tools-dir.tmp
# git --git-dir=nvptx-tools-dir.tmp/.git fetch --depth 1 origin %%{nvptx_tools_gitrev}
# git --git-dir=nvptx-tools-dir.tmp/.git archive --prefix=nvptx-tools-%%{nvptx_tools_gitrev}/ %%{nvptx_tools_gitrev} | xz -9e > nvptx-tools-%%{nvptx_tools_gitrev}.tar.xz
# rm -rf nvptx-tools-dir.tmp
@ -208,9 +213,11 @@ BuildRequires: libzstd-devel
# Make sure glibc supports TFmode long double
BuildRequires: glibc >= 2.3.90-35
%endif
%ifarch %{multilib_64_archs} sparcv9 ppc
# Ensure glibc{,-devel} is installed for both multilib arches
BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
%ifarch %{multilib_64_archs}
BuildRequires: (glibc32 or glibc-devel(%{__isa_name}-32))
%endif
%ifarch sparcv9 ppc
BuildRequires: (glibc64 or glibc-devel(%{__isa_name}-64))
%endif
%if %{build_ada}
# Ada requires Ada to build
@ -227,6 +234,9 @@ BuildRequires: libunwind >= 0.98
BuildRequires: doxygen >= 1.7.1
BuildRequires: graphviz, dblatex, texlive-collection-latex, docbook5-style-xsl
%endif
%if %{build_offload_amdgcn}
BuildRequires: llvm, lld
%endif
Requires: cpp = %{version}-%{release}
# Need .eh_frame ld optimizations
# Need proper visibility support
@ -275,22 +285,21 @@ Provides: bundled(libbacktrace)
Provides: bundled(libffi)
Provides: gcc(major) = %{gcc_major}
Patch0: gcc13-hack.patch
Patch2: gcc13-sparc-config-detection.patch
Patch3: gcc13-libgomp-omp_h-multilib.patch
Patch4: gcc13-libtool-no-rpath.patch
Patch5: gcc13-isl-dl.patch
Patch6: gcc13-isl-dl2.patch
Patch7: gcc13-libstdc++-docs.patch
Patch8: gcc13-no-add-needed.patch
Patch9: gcc13-Wno-format-security.patch
Patch10: gcc13-rh1574936.patch
Patch11: gcc13-d-shared-libphobos.patch
Patch12: gcc13-pr110792.patch
Patch0: gcc14-hack.patch
Patch2: gcc14-sparc-config-detection.patch
Patch3: gcc14-libgomp-omp_h-multilib.patch
Patch4: gcc14-libtool-no-rpath.patch
Patch5: gcc14-isl-dl.patch
Patch6: gcc14-isl-dl2.patch
Patch7: gcc14-libstdc++-docs.patch
Patch8: gcc14-no-add-needed.patch
Patch9: gcc14-Wno-format-security.patch
Patch10: gcc14-rh1574936.patch
Patch11: gcc14-d-shared-libphobos.patch
Patch50: isl-rh2155127.patch
Patch100: gcc13-fortran-fdec-duplicates.patch
Patch100: gcc14-fortran-fdec-duplicates.patch
# On ARM EABI systems, we do want -gnueabi to be part of the
# target triple.
@ -331,11 +340,11 @@ chmod 755 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
%endif
%description
The gcc package contains the GNU Compiler Collection version 13.
The gcc package contains the GNU Compiler Collection version 14.
You'll need this package in order to compile C code.
%package -n libgcc
Summary: GCC version 13 shared support library
Summary: GCC version 14 shared support library
Autoreq: false
%if !%{build_ada}
Obsoletes: libgnat < %{version}-%{release}
@ -551,6 +560,15 @@ This package contains libgomp plugin for offloading to NVidia
PTX. The plugin needs libcuda.so.1 shared library that has to be
installed separately.
%package -n libgomp-offload-amdgcn
Summary: GCC OpenMP v4.5 plugin for offloading to AMD GCN
Requires: libgomp = %{version}-%{release}
Requires: rocm-runtime >= 6.0.0
%description -n libgomp-offload-amdgcn
This package contains libgomp plugin for offloading to AMD ROCm capable
devices.
%package gdb-plugin
Summary: GCC plugin for GDB
Requires: gcc = %{version}-%{release}
@ -833,6 +851,18 @@ NVidia PTX. OpenMP and OpenACC programs linked with -fopenmp will
by default add PTX code into the binaries, which can be offloaded
to NVidia PTX capable devices if available.
%package offload-amdgcn
Summary: Offloading compiler to AMD GCN
Requires: gcc = %{version}-%{release}
Requires: libgomp-offload-amdgcn = %{version}-%{release}
Requires: llvm, lld
%description offload-amdgcn
The gcc-offload-amdgcn package provides offloading support for
AMD GCN. OpenMP and OpenACC programs linked with -fopenmp will
by default add GCN code into the binaries, which can be offloaded
to AMD ROCm capable devices if available.
%package plugin-annobin
Summary: The annobin plugin for gcc, built by the installed version of gcc
Requires: gcc = %{version}-%{release}
@ -864,7 +894,6 @@ so that there cannot be any synchronization problems.
%patch -P10 -p0 -b .rh1574936~
%endif
%patch -P11 -p0 -b .d-shared-libphobos~
%patch -P12 -p0 -b .pr110792~
%patch -P50 -p0 -b .rh2155127~
touch -r isl-0.24/m4/ax_prog_cxx_for_build.m4 isl-0.24/m4/ax_prog_cc_for_build.m4
@ -976,6 +1005,42 @@ cd ..
rm -f newlib
%endif
%if %{build_offload_amdgcn}
mkdir -p objia%{_prefix}/bin objia%{_prefix}/amdgcn-amdhsa/bin
IAROOT=`pwd`/objia
ln -sf %{_prefix}/bin/llvm-ar ${IAROOT}%{_prefix}/bin/amdgcn-amdhsa-ar
ln -sf %{_prefix}/bin/llvm-ar ${IAROOT}%{_prefix}/bin/amdgcn-amdhsa-ranlib
ln -sf %{_prefix}/bin/llvm-mc ${IAROOT}%{_prefix}/bin/amdgcn-amdhsa-as
ln -sf %{_prefix}/bin/llvm-nm ${IAROOT}%{_prefix}/bin/amdgcn-amdhsa-nm
ln -sf %{_prefix}/bin/lld ${IAROOT}%{_prefix}/bin/amdgcn-amdhsa-ld
ln -sf ../../bin/amdgcn-amdhsa-ar ${IAROOT}%{_prefix}/amdgcn-amdhsa/bin/ar
ln -sf ../../bin/amdgcn-amdhsa-ranlib ${IAROOT}%{_prefix}/amdgcn-amdhsa/bin/ranlib
ln -sf ../../bin/amdgcn-amdhsa-as ${IAROOT}%{_prefix}/amdgcn-amdhsa/bin/as
ln -sf ../../bin/amdgcn-amdhsa-nm ${IAROOT}%{_prefix}/amdgcn-amdhsa/bin/nm
ln -sf ../../bin/amdgcn-amdhsa-ld ${IAROOT}%{_prefix}/amdgcn-amdhsa/bin/ld
ln -sf newlib-cygwin-%{newlib_cygwin_gitrev}/newlib newlib
rm -rf obj-offload-amdgcn-amdhsa
mkdir obj-offload-amdgcn-amdhsa
cd obj-offload-amdgcn-amdhsa
CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \
CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \
| sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \
XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
../configure --disable-bootstrap --disable-sjlj-exceptions \
--with-build-time-tools=${IAROOT}%{_prefix}/amdgcn-amdhsa/bin \
--target amdgcn-amdhsa --enable-as-accelerator-for=%{gcc_target_platform} \
--enable-languages=c,c++,fortran,lto \
--prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
--with-bugurl=http://bugzilla.redhat.com/bugzilla \
--enable-checking=release --with-system-zlib \
--with-gcc-major-version-only --without-isl --disable-libquadmath
make %{?_smp_mflags}
cd ..
rm -f newlib
%endif
rm -rf obj-%{gcc_target_platform}
mkdir obj-%{gcc_target_platform}
cd obj-%{gcc_target_platform}
@ -995,7 +1060,7 @@ cp -f -v /usr/lib/rpm/%{_vendor}/config.guess ../../isl-%{isl_version}/config.gu
cp -f -v /usr/lib/rpm/%{_vendor}/config.sub ../../isl-%{isl_version}/config.sub
%endif
sed -i 's|libisl\([^-]\)|libgcc13privateisl\1|g' \
sed -i 's|libisl\([^-]\)|libgcc14privateisl\1|g' \
../../isl-%{isl_version}/Makefile.{am,in}
../../isl-%{isl_version}/configure \
CC=/usr/bin/gcc CXX=/usr/bin/g++ \
@ -1003,8 +1068,8 @@ sed -i 's|libisl\([^-]\)|libgcc13privateisl\1|g' \
make %{?_smp_mflags} CFLAGS="${CFLAGS:-%optflags} $ISL_FLAG_PIC"
make install
cd ../isl-install/lib
rm libgcc13privateisl.so{,.23}
mv libgcc13privateisl.so.23.1.0 libisl.so.23
rm libgcc14privateisl.so{,.23}
mv libgcc14privateisl.so.23.1.0 libisl.so.23
ln -sf libisl.so.23 libisl.so
cd ../..
%endif
@ -1028,6 +1093,13 @@ enableld=,d
%if %{build_m2}
enablelm2=,m2
%endif
offloadtgts=
%if %{build_offload_nvptx}
offloadtgts=nvptx-none
%endif
%if %{build_offload_amdgcn}
offloadtgts=${offloadtgts:+${offloadtgts},}amdgcn-amdhsa
%endif
CONFIGURE_OPTS="\
--prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
--with-bugurl=http://bugzilla.redhat.com/bugzilla \
@ -1060,9 +1132,11 @@ CONFIGURE_OPTS="\
%else
--without-isl \
%endif
%if %{build_offload_nvptx} || %{build_offload_amdgcn}
--enable-offload-targets=$offloadtgts --enable-offload-defaulted \
%endif
%if %{build_offload_nvptx}
--enable-offload-targets=nvptx-none \
--without-cuda-driver --enable-offload-defaulted \
--without-cuda-driver \
%endif
%if 0%{?fedora} >= 21 || 0%{?rhel} >= 7
%if %{attr_ifunc}
@ -1354,14 +1428,55 @@ rm -rf %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/
rm -rf %{buildroot}%{_prefix}/%{_lib}/libc[cp]1*
mv -f %{buildroot}%{_prefix}/nvptx-none/lib/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/
mv -f %{buildroot}%{_prefix}/nvptx-none/lib/mgomp/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/mgomp/
mv -f %{buildroot}%{_prefix}/nvptx-none/lib/mptx-3.1/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/mptx-3.1/
mv -f %{buildroot}%{_prefix}/nvptx-none/lib/mgomp/mptx-3.1/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/mgomp/mptx-3.1/
mv -f %{buildroot}%{_prefix}/lib/gcc/nvptx-none/%{gcc_major}/*.a %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/
mv -f %{buildroot}%{_prefix}/lib/gcc/nvptx-none/%{gcc_major}/mgomp/*.a %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/mgomp/
mv -f %{buildroot}%{_prefix}/lib/gcc/nvptx-none/%{gcc_major}/mptx-3.1/*.a %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/mptx-3.1/
mv -f %{buildroot}%{_prefix}/lib/gcc/nvptx-none/%{gcc_major}/mgomp/mptx-3.1/*.a %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/mgomp/mptx-3.1/
find %{buildroot}%{_prefix}/lib/gcc/nvptx-none %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none \
%{buildroot}%{_prefix}/nvptx-none/lib -name \*.la | xargs rm
cd ..
rm -f newlib
%endif
%if %{build_offload_amdgcn}
mkdir -p %{buildroot}%{_prefix}/bin %{buildroot}%{_prefix}/amdgcn-amdhsa/bin
ln -sf llvm-ar %{buildroot}%{_prefix}/bin/amdgcn-amdhsa-ar
ln -sf llvm-ar %{buildroot}%{_prefix}/bin/amdgcn-amdhsa-ranlib
ln -sf llvm-mc %{buildroot}%{_prefix}/bin/amdgcn-amdhsa-as
ln -sf llvm-nm %{buildroot}%{_prefix}/bin/amdgcn-amdhsa-nm
ln -sf lld %{buildroot}%{_prefix}/bin/amdgcn-amdhsa-ld
ln -sf ../../bin/amdgcn-amdhsa-ar %{buildroot}%{_prefix}/amdgcn-amdhsa/bin/ar
ln -sf ../../bin/amdgcn-amdhsa-ranlib %{buildroot}%{_prefix}/amdgcn-amdhsa/bin/ranlib
ln -sf ../../bin/amdgcn-amdhsa-as %{buildroot}%{_prefix}/amdgcn-amdhsa/bin/as
ln -sf ../../bin/amdgcn-amdhsa-nm %{buildroot}%{_prefix}/amdgcn-amdhsa/bin/nm
ln -sf ../../bin/amdgcn-amdhsa-ld %{buildroot}%{_prefix}/amdgcn-amdhsa/bin/ld
ln -sf newlib-cygwin-%{newlib_cygwin_gitrev}/newlib newlib
cd obj-offload-amdgcn-amdhsa
make prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \
infodir=%{buildroot}%{_infodir} install
rm -rf %{buildroot}%{_prefix}/libexec/gcc/amdgcn-amdhsa/%{gcc_major}/install-tools
rm -rf %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/accel/amdgcn-amdhsa/{install-tools,plugin,cc1,cc1plus,f951}
rm -rf %{buildroot}%{_infodir} %{buildroot}%{_mandir}/man7 %{buildroot}%{_prefix}/share/locale
rm -rf %{buildroot}%{_prefix}/lib/gcc/amdgcn-amdhsa/%{gcc_major}/{install-tools,plugin}
rm -rf %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/amdgcn-amdhsa/{install-tools,plugin,include-fixed}
rm -rf %{buildroot}%{_prefix}/%{_lib}/libc[cp]1*
mv -f %{buildroot}%{_prefix}/amdgcn-amdhsa/lib/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/amdgcn-amdhsa/
mv -f %{buildroot}%{_prefix}/lib/gcc/amdgcn-amdhsa/%{gcc_major}/*.a %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/amdgcn-amdhsa/
pushd %{buildroot}%{_prefix}/amdgcn-amdhsa/lib
for i in gfx*; do
mv -f %{buildroot}%{_prefix}/amdgcn-amdhsa/lib/$i/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/amdgcn-amdhsa/$i/
mv -f %{buildroot}%{_prefix}/lib/gcc/amdgcn-amdhsa/%{gcc_major}/$i/*.a %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/amdgcn-amdhsa/$i/
done
popd
find %{buildroot}%{_prefix}/lib/gcc/amdgcn-amdhsa %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/amdgcn-amdhsa \
%{buildroot}%{_prefix}/amdgcn-amdhsa/lib -name \*.la | xargs rm
cd ..
rm -f newlib
%endif
cd obj-%{gcc_target_platform}
TARGET_PLATFORM=%{gcc_target_platform}
@ -1586,7 +1701,7 @@ ln -sf ../../../libgphobos.so.4.* libgphobos.so
%endif
%if %{build_m2}
for i in cor iso log min pim; do
ln -sf ../../../libm2$i.so.18.* libm2$i.so
ln -sf ../../../libm2$i.so.19.* libm2$i.so
done
%endif
%if %{build_libitm}
@ -1621,7 +1736,7 @@ ln -sf ../../../../%{_lib}/libgphobos.so.4.* libgphobos.so
%endif
%if %{build_m2}
for i in cor iso log min pim; do
ln -sf ../../../../%{_lib}/libm2$i.so.18.* libm2$i.so
ln -sf ../../../../%{_lib}/libm2$i.so.19.* libm2$i.so
done
%endif
%if %{build_libitm}
@ -1656,7 +1771,6 @@ fi
mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++.*a $FULLLPATH/
mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++fs.*a $FULLLPATH/
mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++exp.*a $FULLLPATH/
mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++_libbacktrace.*a $FULLLPATH/
mv -f %{buildroot}%{_prefix}/%{_lib}/libsupc++.*a $FULLLPATH/
mv -f %{buildroot}%{_prefix}/%{_lib}/libgfortran.*a $FULLLPATH/
%if %{build_objc}
@ -1717,28 +1831,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-12.so
ln -sf ../../../../../libgnarl-*.so libgnarl-14.so
ln -sf ../../../../../libgnat-*.so libgnat.so
ln -sf ../../../../../libgnat-*.so libgnat-12.so
ln -sf ../../../../../libgnat-*.so libgnat-14.so
else
ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl.so
ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl-12.so
ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl-14.so
ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat.so
ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat-12.so
ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat-14.so
fi
popd
else
pushd $FULLPATH/adalib
if [ "%{_lib}" = "lib" ]; then
ln -sf ../../../../libgnarl-*.so libgnarl.so
ln -sf ../../../../libgnarl-*.so libgnarl-12.so
ln -sf ../../../../libgnarl-*.so libgnarl-14.so
ln -sf ../../../../libgnat-*.so libgnat.so
ln -sf ../../../../libgnat-*.so libgnat-12.so
ln -sf ../../../../libgnat-*.so libgnat-14.so
else
ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl.so
ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-12.so
ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-14.so
ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat.so
ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-12.so
ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-14.so
fi
popd
fi
@ -1771,8 +1885,8 @@ echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgphobos.so.4.* | sed 's
%if %{build_m2}
for i in cor iso log min pim; do
rm -f libm2$i.so
echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libm2$i.so.18.* | sed 's,^.*libm,libm,'`' )' > libm2$i.so
echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libm2$i.so.18.* | sed 's,^.*libm,libm,'`' )' > 64/libm2$i.so
echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libm2$i.so.19.* | sed 's,^.*libm,libm,'`' )' > libm2$i.so
echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libm2$i.so.19.* | sed 's,^.*libm,libm,'`' )' > 64/libm2$i.so
rm -f 64/m2/m2$i/*.{a,la}
ln -sf ../../libm2$i.so 64/m2/m2$i/
ln -sf ../../libm2$i.a 64/m2/m2$i/
@ -1811,8 +1925,6 @@ ln -sf lib32/libstdc++fs.a libstdc++fs.a
ln -sf ../lib64/libstdc++fs.a 64/libstdc++fs.a
ln -sf lib32/libstdc++exp.a libstdc++exp.a
ln -sf ../lib64/libstdc++exp.a 64/libstdc++exp.a
ln -sf lib32/libstdc++_libbacktrace.a libstdc++_libbacktrace.a
ln -sf ../lib64/libstdc++_libbacktrace.a 64/libstdc++_libbacktrace.a
ln -sf lib32/libsupc++.a libsupc++.a
ln -sf ../lib64/libsupc++.a 64/libsupc++.a
%if %{build_libquadmath}
@ -1890,8 +2002,8 @@ echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgphobos.so.4.* | sed 's
%if %{build_m2}
for i in cor iso log min pim; do
rm -f libm2$i.so
echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libm2$i.so.18.* | sed 's,^.*libm,libm,'`' )' > libm2$i.so
echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libm2$i.so.18.* | sed 's,^.*libm,libm,'`' )' > 32/libm2$i.so
echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libm2$i.so.19.* | sed 's,^.*libm,libm,'`' )' > libm2$i.so
echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libm2$i.so.19.* | sed 's,^.*libm,libm,'`' )' > 32/libm2$i.so
rm -f 32/m2/m2$i/*.{a,la}
ln -sf ../../libm2$i.so 32/m2/m2$i/
ln -sf ../../libm2$i.a 32/m2/m2$i/
@ -1932,8 +2044,6 @@ ln -sf ../lib32/libstdc++fs.a 32/libstdc++fs.a
ln -sf lib64/libstdc++fs.a libstdc++fs.a
ln -sf ../lib32/libstdc++exp.a 32/libstdc++exp.a
ln -sf lib64/libstdc++exp.a libstdc++exp.a
ln -sf ../lib32/libstdc++_libbacktrace.a 32/libstdc++_libbacktrace.a
ln -sf lib64/libstdc++_libbacktrace.a libstdc++_libbacktrace.a
ln -sf ../lib32/libsupc++.a 32/libsupc++.a
ln -sf lib64/libsupc++.a libsupc++.a
%if %{build_libquadmath}
@ -1988,7 +2098,6 @@ ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgfo
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libstdc++.a 32/libstdc++.a
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libstdc++fs.a 32/libstdc++fs.a
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libstdc++exp.a 32/libstdc++exp.a
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libstdc++_libbacktrace.a 32/libstdc++_libbacktrace.a
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libsupc++.a 32/libsupc++.a
%if %{build_libquadmath}
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libquadmath.a 32/libquadmath.a
@ -2042,7 +2151,7 @@ for d in . $FULLLSUBDIR; do
-o -name libobjc.a -o -name libgdruntime.a -o -name libgphobos.a \
-o -name libm2\*.a -o -name libquadmath.a -o -name libstdc++.a \
-o -name libstdc++fs.a -o -name libstdc++exp.a \
-o -name libstdc++_libbacktrace.a -o -name libsupc++.a \
-o -name libsupc++.a \
-o -name libtsan.a -o -name libubsan.a \) -a -type f`; do
cp -a $f $RPM_BUILD_ROOT%{_prefix}/lib/debug%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/$d/
done
@ -2070,7 +2179,7 @@ chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgphobos.so.4.*
%endif
%if %{build_m2}
for i in cor iso log min pim; do
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libm2$i.so.18.*
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libm2$i.so.19.*
done
%endif
%if %{build_libitm}
@ -2391,6 +2500,7 @@ end
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdnoreturn.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdatomic.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/gcov.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdckdint.h
%ifarch %{ix86} x86_64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mmintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xmmintrin.h
@ -2496,6 +2606,12 @@ end
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/prfchiintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/raointintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxcomplexintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bitalgvlintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxvnniint16intrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sha512intrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sm3intrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sm4intrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/usermsrintrin.h
%endif
%ifarch ia64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ia64intrin.h
@ -2722,7 +2838,6 @@ end
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++fs.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++exp.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++_libbacktrace.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libsupc++.a
%endif
%ifarch %{multilib_64_archs}
@ -2731,7 +2846,6 @@ end
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++fs.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++exp.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++_libbacktrace.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libsupc++.a
%endif
%ifarch sparcv9 ppc %{multilib_64_archs}
@ -2741,7 +2855,6 @@ end
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++fs.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++exp.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++_libbacktrace.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsupc++.a
%endif
%doc rpm.doc/changelogs/gcc/cp/ChangeLog*
@ -2775,18 +2888,15 @@ end
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++fs.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++exp.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++_libbacktrace.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/libstdc++fs.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++exp.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++_libbacktrace.a
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++fs.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++exp.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++_libbacktrace.a
%endif
%doc rpm.doc/changelogs/libstdc++-v3/ChangeLog* libstdc++-v3/README*
@ -3014,7 +3124,7 @@ end
%doc rpm.doc/gm2/*
%files -n libgm2
%{_prefix}/%{_lib}/libm2*.so.18*
%{_prefix}/%{_lib}/libm2*.so.19*
%doc rpm.doc/libgm2/*
%files -n libgm2-static
@ -3457,6 +3567,30 @@ end
%{_prefix}/%{_lib}/libgomp-plugin-nvptx.so.*
%endif
%if %{build_offload_amdgcn}
%files offload-amdgcn
%{_prefix}/bin/amdgcn-amdhsa-*
%{_prefix}/bin/%{gcc_target_platform}-accel-amdgcn-amdhsa-gcc
%{_prefix}/bin/%{gcc_target_platform}-accel-amdgcn-amdhsa-lto-dump
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel
%dir %{_prefix}/libexec/gcc
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/accel
%{_prefix}/lib/gcc/amdgcn-amdhsa
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/amdgcn-amdhsa
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/accel/amdgcn-amdhsa
%dir %{_prefix}/amdgcn-amdhsa
%{_prefix}/amdgcn-amdhsa/bin
%{_prefix}/amdgcn-amdhsa/include
%files -n libgomp-offload-amdgcn
%{_prefix}/%{_lib}/libgomp-plugin-gcn.so.*
%endif
%if %{build_annobin_plugin}
%files plugin-annobin
%dir %{_prefix}/lib/gcc
@ -3469,386 +3603,67 @@ end
%endif
%changelog
* Sun Dec 17 2023 David Abdurachmanov <davidlt@rivosinc.com> 13.2.1-6.1.riscv64
- Bump release
* Sun Dec 17 2023 David Abdurachmanov <davidlt@rivosinc.com> 13.2.1-6.0.riscv64
* Fri Jan 26 2024 David Abdurachmanov <davidlt@rivosinc.com> 14.0.1-0.3.0.riscv64
- Adjust for riscv64
* Tue Dec 5 2023 Jakub Jelinek <jakub@redhat.com> 13.2.1-6
- update from releases/gcc-13 branch
- PRs c++/33799, c++/102191, c++/111703, c++/112269, c++/112301, c++/112633,
c/112339, fortran/111880, fortran/112764, libgomp/111413,
libstdc++/112348, libstdc++/112491, libstdc++/112607,
middle-end/111497, target/53372, target/110411, target/111408,
target/111815, target/111828, target/112672, tree-optimization/111137,
tree-optimization/111465, tree-optimization/111967,
tree-optimization/112496
* Mon Nov 13 2023 Jakub Jelinek <jakub@redhat.com> 13.2.1-5
- update from releases/gcc-13 branch
- PRs c++/89038, c/111884, d/110712, d/112270, fortran/67740, fortran/97245,
fortran/111837, fortran/112316, libbacktrace/111315,
libbacktrace/112263, libstdc++/110944, libstdc++/111172,
libstdc++/111936, libstdc++/112089, libstdc++/112314,
middle-end/111253, middle-end/111818, modula2/111756, modula2/112110,
target/101177, target/110170, target/111001, target/111366,
target/111367, target/111380, target/111935, target/112443,
tree-optimization/111397, tree-optimization/111445,
tree-optimization/111489, tree-optimization/111583,
tree-optimization/111614, tree-optimization/111622,
tree-optimization/111694, tree-optimization/111764,
tree-optimization/111820, tree-optimization/111833,
tree-optimization/111917
- fix aarch64 RA ICE (#2241139, PR target/111528)
- fix ia32 doubleword rotates (#2238781, PR target/110792)
* Wed Oct 11 2023 Jakub Jelinek <jakub@redhat.com> 13.2.1-4
- update from releases/gcc-13 branch
- PRs ada/110488, ada/111434, c++/99631, c++/111471, c++/111485, c++/111493,
c++/111512, fortran/68155, fortran/92586, fortran/111674,
libstdc++/108046, libstdc++/111050, libstdc++/111102,
libstdc++/111511, middle-end/111699, modula2/111510, target/111121,
target/111411, tree-optimization/110315, tree-optimization/110386,
tree-optimization/111331, tree-optimization/111519
* Mon Sep 18 2023 Jakub Jelinek <jakub@redhat.com> 13.2.1-3
- update from releases/gcc-13 branch
- PRs c++/111357, modula2/111330, target/96762, target/111306,
target/111335, target/111340, target/111412
* Fri Sep 8 2023 Jakub Jelinek <jakub@redhat.com> 13.2.1-2
- update from releases/gcc-13 branch
- PRs c++/92407, c++/106310, c++/106652, c++/109678, c++/109751, c++/110197,
c++/110566, c++/110927, debug/111080, fortran/99326, fortran/102109,
fortran/102112, fortran/102190, fortran/102532, fortran/108961,
fortran/109684, fortran/109948, fortran/110825, libgcc/110956,
libstdc++/110593, libstdc++/110708, libstdc++/110719,
libstdc++/110807, libstdc++/110860, libstdc++/110862,
libstdc++/110917, libstdc++/110968, libstdc++/110970,
libstdc++/110974, libstdc++/110990, middle-end/111017, modula2/108119,
modula2/108344, modula2/109779, modula2/109810, modula2/109830,
modula2/109879, modula2/109908, modula2/109952, modula2/110003,
modula2/110019, modula2/110125, modula2/110126, modula2/110161,
modula2/110174, modula2/110189, modula2/110284, modula2/110631,
modula2/110779, modula2/110865, target/89835, target/109713,
target/109725, target/110220, target/110484, target/110741,
target/111010, target/111127, tree-optimization/110280,
tree-optimization/110702, tree-optimization/110914,
tree-optimization/111015, tree-optimization/111019,
tree-optimization/111039, tree-optimization/111070,
tree-optimization/111109
* Mon Jul 31 2023 Patsy Griffin <patsy@redhat.com>
- allow for the optional removal of tzdata
- see https://fedoraproject.org/wiki/Changes/AllowRemovalOfTzdata
* Fri Jul 28 2023 Jakub Jelinek <jakub@redhat.com> 13.2.1-1
- update from releases/gcc-13 branch
- GCC 13.2 release
- PRs c++/109247, c++/110102, c++/110122, c++/110463, c++/110468,
c++/110524, c++/110535, c++/110595, c++/110809, d/103944, d/106977,
d/108842, d/108962, d/110113, d/110359, d/110471, d/110514, d/110516,
debug/110295, fortran/86277, fortran/95947, fortran/100297,
fortran/110288, fortran/110585, fortran/110658, ipa/109983,
ipa/110276, libgcc/109712, libgcc/110179, libstdc++/95048,
libstdc++/100285, libstdc++/104299, libstdc++/109741,
libstdc++/109921, libstdc++/110149, libstdc++/110239,
libstdc++/110432, libstdc++/110542, libstdc++/110574,
middle-end/98619, middle-end/103979, middle-end/110055,
middle-end/110420, modula2/108121, modula2/109586, modula2/109675,
modula2/109729, modula2/110246, rtl-optimization/110237,
target/101469, target/105325, target/106966, target/108743,
target/109932, target/110011, target/110100, target/110132,
target/110136, target/110206, target/110264, target/110309,
target/110406, target/110560, target/110624, testsuite/66005,
testsuite/83904, testsuite/110230, tree-optimization/109143,
tree-optimization/110228, tree-optimization/110298,
tree-optimization/110381, tree-optimization/110392,
tree-optimization/110515, tree-optimization/110556,
tree-optimization/110557, tree-optimization/110669,
tree-optimization/110731, tree-optimization/110755,
tree-optimization/110766, tree-optimization/110799,
tree-optimization/110829
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 13.1.1-4.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Wed Jun 14 2023 Jakub Jelinek <jakub@redhat.com> 13.1.1-4
- update from releases/gcc-13 branch
- PRs bootstrap/110085, c++/109871, fortran/100607, libgcc/109670,
libgcc/109685, libstdc++/108178, libstdc++/109261, libstdc++/109758,
libstdc++/109822, libstdc++/109949, libstdc++/110139,
middle-end/110200, target/82931, target/92729, target/104327,
target/105753, target/106907, target/109547, target/109650,
target/109800, target/109939, target/109954, target/110036,
target/110044, target/110088, target/110108, target/110227,
tree-optimization/109505, tree-optimization/110165,
tree-optimization/110166
* Fri May 19 2023 Jakub Jelinek <jakub@redhat.com> 13.1.1-3
- update from releases/gcc-13 branch
- PRs c++/80488, c++/83258, c++/97700, c++/103807, c++/109651, c++/109745,
c++/109761, c++/109774, c++/109868, c++/109884, fortran/109641,
fortran/109846, libstdc++/109816, libstdc++/109883, target/104338,
target/109697
* Thu May 11 2023 Jakub Jelinek <jakub@redhat.com> 13.1.1-2
- update from releases/gcc-13 branch
- PRs c++/91618, c++/96604, c++/109506, c++/109640, c++/109642, c++/109666,
c++/109671, c++/109756, c/107682, c/109409, c/109412, debug/109676,
fortran/109622, libffi/109447, libgomp/108098, libstdc++/40380,
libstdc++/109694, libstdc++/109703, rtl-optimization/109585,
target/108758, target/109069, target/109535, target/109661,
target/109762, tree-optimization/109573, tree-optimization/109609,
tree-optimization/109724, tree-optimization/109778
* Wed Apr 26 2023 Jakub Jelinek <jakub@redhat.com> 13.1.1-1
- update from releases/gcc-13 branch
- GCC 13.1 release
- PRs c/107041, target/109566
* Fri Apr 21 2023 Jakub Jelinek <jakub@redhat.com> 13.0.1-0.16
- update from trunk and releases/gcc-13 branch
- GCC 13.1-rc3
- PRs tree-optimization/109564
- fix ICE on fneg/fadd optimization (PR tree-optimization/109583)
- include amxcomplexintrin.h header on x86 (#2188608)
* Wed Apr 19 2023 Jakub Jelinek <jakub@redhat.com> 13.0.1-0.15
- update from trunk and releases/gcc-13 branch
- GCC 13.1-rc2
- PRs c++/109556, target/106602
* Tue Apr 18 2023 Jakub Jelinek <jakub@redhat.com> 13.0.1-0.14
- update from trunk and releases/gcc-13 branch
- PRs analyzer/108722, bootstrap/109510, c++/109277, c++/109357, c++/109420,
c++/109514, c++/109531, driver/108241, fortran/61615, fortran/85686,
fortran/87477, fortran/88247, fortran/91941, fortran/92779,
fortran/93339, fortran/93813, fortran/98408, fortran/99982,
fortran/100948, fortran/102106, fortran/104272, fortran/104312,
fortran/104349, fortran/105205, fortran/106918, fortran/109492,
fortran/109511, ipa/107769, ipa/108959, ipa/109318, libstdc++/108291,
libstdc++/108827, libstdc++/108969, libstdc++/109482,
libstdc++/109525, modula2/109423, modula2/109488, modula2/109496,
modula2/109497, target/54816, target/70243, target/99708,
target/104989, target/108812, target/108892, target/108947,
target/109040, target/109104, target/109374, target/109402,
target/109458, target/109479, target/109508, testsuite/108809,
testsuite/108815, tree-optimization/108139, tree-optimization/109392,
tree-optimization/109410, tree-optimization/109417,
tree-optimization/109427, tree-optimization/109434,
tree-optimization/109462, tree-optimization/109469,
tree-optimization/109473, tree-optimization/109491,
tree-optimization/109502, tree-optimization/109524,
tree-optimization/109539
* Tue Apr 4 2023 Jakub Jelinek <jakub@redhat.com> 13.0.1-0.13
* Thu Jan 25 2024 Jakub Jelinek <jakub@redhat.com> 14.0.1-0.3
- update from trunk
- PRs c++/53164, c++/105848, c++/107484, c++/109160, c++/109300, ipa/109303,
modula2/109388, other/109306, sanitizer/109107, target/102146,
target/108699, target/108807, target/109375, target/109376,
target/109384, tree-optimization/109304, tree-optimization/109386
- PRs analyzer/111361, analyzer/112705, analyzer/112811, analyzer/112927,
analyzer/112977, bootstrap/113554, c++/67898, c++/90463, c++/90464,
c++/100707, c++/102607, c++/104594, c++/109640, c++/109642,
c++/111357, c++/111410, c++/111607, c++/112594, c++/112632,
c++/112820, c++/113256, c++/113347, c++/113405, c++/113498,
c++/113529, c/102998, c/107942, c/109708, c/110029, c/113492,
c/113518, debug/107058, debug/112718, debug/113382, debug/113488,
fortran/48776, fortran/111291, fortran/113377, fortran/113471,
ipa/108007, ipa/108470, ipa/110705, ipa/112616, ipa/113490,
libstdc++/113500, libstdc++/113512, middle-end/88345,
middle-end/112684, middle-end/113574, modula2/113559, other/111966,
rtl-optimization/111267, rtl-optimization/113255, target/82420,
target/100942, target/108521, target/108640, target/109092,
target/109636, target/110934, target/111279, target/112989,
target/113030, target/113070, target/113089, target/113095,
target/113114, target/113356, target/113420, target/113485,
target/113486, target/113495, target/113550, target/113556,
target/113572, testsuite/113437, testsuite/113548,
tree-optimization/69807, tree-optimization/113364,
tree-optimization/113373, tree-optimization/113459,
tree-optimization/113462, tree-optimization/113463,
tree-optimization/113464, tree-optimization/113491,
tree-optimization/113494, tree-optimization/113552,
tree-optimization/113576
- add offloading support for AMD GCN ROCm capable devices
* Sat Apr 1 2023 Jakub Jelinek <jakub@redhat.com> 13.0.1-0.12
* Thu Jan 18 2024 Jakub Jelinek <jakub@redhat.com> 14.0.1-0.2
- update from trunk
- PRs analyzer/107396, bootstrap/101834, c++/101118, c++/105221, c++/105452,
c++/107897, c++/108887, c++/109278, c++/109319, libstdc++/109242,
libstdc++/109339, libstdc++/109340, modula2/109315, modula2/109336,
target/85048, target/109254, target/109328, tree-optimization/91645,
tree-optimization/109342, tree-optimization/109362
- PRs ada/113397, analyzer/106229, analyzer/113150, analyzer/113333,
bootstrap/113445, c++/99493, c++/104634, c++/109899, c++/110065,
c++/112588, c++/113242, c++/113292, c++/113307, c++/113340,
c++/113389, c/111693, fortran/67277, fortran/113305, libstdc++/108822,
libstdc++/108827, libstdc++/109536, libstdc++/111327,
libstdc++/113318, libstdc++/113450, middle-end/90348,
middle-end/110115, middle-end/110847, middle-end/111422,
middle-end/111659, middle-end/113354, middle-end/113406,
middle-end/113409, middle-end/113410, modula2/111956, other/113399,
rtl-optimization/96388, rtl-optimization/111554,
rtl-optimization/113048, rust/108111, target/105522, target/107201,
target/112573, target/112944, target/112973, target/113122,
target/113156, target/113221, target/113247, target/113281,
target/113393, target/113404, target/113429, testsuite/109705,
testsuite/111850, testsuite/113366, testsuite/113369,
testsuite/113446, testsuite/113452, translation/108890,
tree-optimization/91624, tree-optimization/107823,
tree-optimization/110251, tree-optimization/110422,
tree-optimization/110450, tree-optimization/110768,
tree-optimization/110794, tree-optimization/110841,
tree-optimization/110852, tree-optimization/110941,
tree-optimization/112774, tree-optimization/113091,
tree-optimization/113287, tree-optimization/113361,
tree-optimization/113370, tree-optimization/113371,
tree-optimization/113372, tree-optimization/113374,
tree-optimization/113385, tree-optimization/113408,
tree-optimization/113421, tree-optimization/113431,
tree-optimization/113475
* Wed Mar 29 2023 Jakub Jelinek <jakub@redhat.com> 13.0.1-0.11
- update from trunk
- PRs analyzer/109098, bootstrap/84402, bootstrap/109310, c++/105481,
c++/106969, c++/107163, c++/109309, c++/109320, c++/109321, c/107002,
fortran/104321, fortran/104949, fortran/109314, gcov-profile/109297,
ipa/105685, ipa/106124, libgcc/108891, libstdc++/103387,
libstdc++/109288, libstdc++/109299, lto/109263, middle-end/106190,
other/109163, other/109293, rtl-optimization/109187,
rtl-optimization/109237, target/106282, target/109072, target/109082,
target/109140, target/109167, target/109276, target/109296,
target/109312, tree-optimization/54498, tree-optimization/106912,
tree-optimization/107087, tree-optimization/108129,
tree-optimization/108357, tree-optimization/109154,
tree-optimization/109230, tree-optimization/109238,
tree-optimization/109265, tree-optimization/109274,
tree-optimization/109301, tree-optimization/109327,
tree-optimization/109331
* Fri Mar 24 2023 Jakub Jelinek <jakub@redhat.com> 13.0.1-0.10
- update from trunk
- PRs analyzer/109239, c++/105996, c++/108390, c++/108795, c++/109177,
c++/109241, c/84900, fortran/104572, middle-end/109258,
modula2/107630, modula2/109248, modula2/109264, target/103628,
target/109137, target/109228, target/109244, testsuite/105959,
tree-optimization/99739, tree-optimization/107569,
tree-optimization/109176, tree-optimization/109262
* Tue Mar 21 2023 Jakub Jelinek <jakub@redhat.com> 13.0.1-0.9
- update from trunk
- PRs analyzer/109094, c++/106890, c++/109159, c++/109164, fortran/85877,
fortran/87127, fortran/99036, fortran/109186, fortran/109206,
fortran/109209, fortran/109216, libstdc++/109182, target/109067,
target/109178, testsuite/108898, tree-optimization/109170,
tree-optimization/109192, tree-optimization/109215,
tree-optimization/109219
* Sat Mar 18 2023 Jakub Jelinek <jakub@redhat.com> 13.0.1-0.8
- update from trunk
- PRs analyzer/105906, analyzer/108045, analyzer/109097, c++/58538,
c++/69410, c++/95036, c++/96830, c++/98056, c++/100288, c++/101869,
c++/103871, c++/104107, c++/105406, c++/105809, c++/107128,
c++/107280, c++/107310, c++/108179, c++/108242, c++/108468,
c++/108975, c++/109096, c++/109172, c/109151, d/109108, d/109144,
fortran/37336, fortran/58331, fortran/64290, fortran/67444,
fortran/67471, fortran/69298, fortran/70863, fortran/71798,
fortran/80524, fortran/82996, fortran/84472, fortran/88735,
fortran/91316, fortran/93691, fortran/96122, fortran/103854,
fortran/106576, fortran/106945, ipa/107925, libstdc++/62196,
libstdc++/109111, libstdc++/109165, middle-end/106133,
middle-end/108685, middle-end/109031, modula2/109032, modula2/109089,
modula2/109102, modula2/109103, modula2/109125, other/109086,
preprocessor/67046, rtl-optimization/107762, rtl-optimization/109179,
target/105554, target/108583, target/109092, target/109109,
target/109117, testsuite/109118, testsuite/109129, testsuite/109145,
tree-optimization/106896, tree-optimization/109005,
tree-optimization/109046, tree-optimization/109115,
tree-optimization/109123, tree-optimization/109139,
tree-optimization/109141, web/88860
* Fri Mar 10 2023 Jakub Jelinek <jakub@redhat.com> 13.0.1-0.7
- update from trunk
- PRs ada/108858, ada/108983, analyzer/102671, analyzer/105755,
analyzer/108251, analyzer/108400, analyzer/108475, analyzer/109059,
analyzer/109060, c++/102529, c++/105841, c++/106651, c++/107532,
c++/107558, c++/107939, c++/108099, c++/108542, c++/108566,
c++/108773, c++/108972, c++/109030, c++/109039, c++/109042, c/108079,
driver/108865, fortran/104332, fortran/106856, libgcc/108727,
libgomp/90596, libgomp/109062, libstdc++/107572, libstdc++/108362,
libstdc++/108882, libstdc++/109024, libstdc++/109064,
middle-end/108995, other/108464, plugins/108634, sanitizer/81649,
sanitizer/108060, sanitizer/109050, target/107299, target/107703,
target/107998, target/108185, target/108429, target/108654,
target/109000, testsuite/70150, testsuite/108729, testsuite/108730,
testsuite/108810, testsuite/108813, tree-optimization/108980,
tree-optimization/109008, tree-optimization/109025
* Sat Mar 4 2023 Jakub Jelinek <jakub@redhat.com> 13.0.1-0.6
- update from trunk
- PRs ada/108909, analyzer/107565, analyzer/108830, analyzer/108935,
analyzer/108968, analyzer/109016, c++/100127, c++/105224, c++/105839,
c++/106259, c++/107574, c++/107938, c++/108218, c++/108219,
c++/108550, c++/108606, c++/108702, c++/108848, c++/108934,
c++/108998, c/107465, c/107846, c/108880, c/108986, d/108167,
d/108763, d/108877, d/108945, d/108946, debug/108716, debug/108772,
debug/108967, fortran/96024, fortran/96025, fortran/108621,
fortran/108923, fortran/108924, fortran/108937, jit/107999,
libquadmath/87204, libquadmath/94756, libstdc++/52590,
libstdc++/95989, libstdc++/104852, libstdc++/108846, libstdc++/108856,
libstdc++/108952, middle-end/97956, middle-end/106258,
middle-end/107411, middle-end/108545, middle-end/108546,
middle-end/108854, middle-end/109006, modula2/108261, modula2/108944,
modula2/108956, pch/14940, sanitizer/108834, sanitizer/108894,
target/51534, target/104882, target/108240, target/108876,
target/108881, target/108883, target/108910, target/108919,
target/108922, testsuite/79356, testsuite/91419, testsuite/108899,
testsuite/108942, testsuite/108973, testsuite/108985,
testsuite/108991, translation/108890, tree-optimization/108430,
tree-optimization/108603, tree-optimization/108793,
tree-optimization/108828, tree-optimization/108888,
tree-optimization/108950, tree-optimization/108970,
tree-optimization/108979, tree-optimization/108988,
tree-optimization/109002
* Tue Feb 21 2023 Jakub Jelinek <jakub@redhat.com> 13.0.1-0.5
- update from trunk
- PRs analyzer/108664, analyzer/108666, analyzer/108725, analyzer/108806,
c++/52809, c++/53638, c++/87389, c++/89741, c++/92099, c++/97553,
c++/101073, c++/104041, c++/104691, c++/107773, c++/108243,
c++/108829, c/105660, c/108375, fortran/103608, fortran/104554,
libstdc++/108030, target/90458, target/108805, target/108831,
target/108832, target/108862, testsuite/108835,
tree-optimization/108657, tree-optimization/108783,
tree-optimization/108791, tree-optimization/108816,
tree-optimization/108819, tree-optimization/108821,
tree-optimization/108825, tree-optimization/108855,
tree-optimization/108868
* Wed Feb 15 2023 Jakub Jelinek <jakub@redhat.com> 13.0.1-0.4
- update from trunk
- PRs analyzer/108704, analyzer/108733, analyzer/108745, c++/106675,
c++/107079, c++/108698, d/107469, fortran/69636, fortran/103259,
fortran/103475, fortran/103779, fortran/107424, fortran/108512,
ipa/108605, ipa/108679, libstdc++/103934, middle-end/26854,
middle-end/106080, rtl-optimization/108681, sanitizer/108777,
target/96373, target/100758, target/103109, target/108102,
target/108516, target/108723, target/108738, target/108787,
target/108790, testsuite/106120, tree-optimization/28614,
tree-optimization/96921, tree-optimization/106722,
tree-optimization/107561, tree-optimization/108316,
tree-optimization/108355, tree-optimization/108520,
tree-optimization/108571, tree-optimization/108684,
tree-optimization/108687, tree-optimization/108688,
tree-optimization/108691, tree-optimization/108692,
tree-optimization/108724, tree-optimization/108782
* Wed Feb 8 2023 Jakub Jelinek <jakub@redhat.com> 13.0.1-0.3
- update from trunk
- PRs analyzer/108616, analyzer/108633, analyzer/108661, c++/101071,
c++/102870, c++/107461, c++/107593, c++/107755, c++/108158,
c++/108559, c++/108579, c++/108597, c++/108607, c++/96745, c/108150,
c/108192, debug/106746, debug/108573, driver/108572, fortran/103506,
fortran/108450, fortran/108451, fortran/108453, fortran/108527,
fortran/108592, fortran/108609, fortran/95107, ipa/107300, ipa/108384,
ipa/108509, ipa/108511, libstdc++/108636, libstdc++/108672,
middle-end/108435, middle-end/108500, middle-end/108625,
modula2/107234, modula2/108135, modula2/108462, modula2/108551,
modula2/108612, rtl-optimization/108086, rtl-optimization/108463,
rtl-optimization/108508, rtl-optimization/108596, sanitizer/108106,
target/104921, target/107674, target/108443, target/108484,
target/108589, target/108599, testsuite/108604, testsuite/108632,
tree-optimization/26854, tree-optimization/106433,
tree-optimization/106923, tree-optimization/107570,
tree-optimization/108356, tree-optimization/108359,
tree-optimization/108385, tree-optimization/108574,
tree-optimization/108582, tree-optimization/108601,
tree-optimization/108608, tree-optimization/108639,
tree-optimization/108647, tree-optimization/108655
- drop libgfortran dependency on libquadmath for F28+ or RHEL8+, gcc-gfortran
still needs to depend on both libquadmath and libquadmath-devel though
* Sat Jan 28 2023 Jakub Jelinek <jakub@redhat.com> 13.0.1-0.2
- update from trunk
- PRs analyzer/108455, analyzer/108507, analyzer/108524, bootstrap/90543,
c++/53288, c++/53932, c++/105300, c++/107267, c++/107303, c++/107329,
c++/107797, c++/108195, c++/108437, c++/108474, c++/108496,
c++/108503, c++/108504, c++/108525, c++/108526, c/108424,
fortran/102331, fortran/102595, fortran/108420, fortran/108434,
fortran/108501, fortran/108502, fortran/108528, fortran/108529,
fortran/108544, fortran/108558, ipa/106061, ipa/107944,
libstdc++/102301, libstdc++/108530, libstdc++/108554,
libstdc++/108568, lto/108445, middle-end/108086, middle-end/108459,
middle-end/108543, modula2/102343, modula2/108144, modula2/108182,
modula2/108405, modula2/108480, modula2/108553, modula2/108555,
other/108560, target/107568, target/107678, target/107731,
target/108177, target/108348, target/108396, target/108411,
target/108436, target/108442, target/108505, testsuite/104756,
testsuite/107808, testsuite/108533, tree-optimization/96373,
tree-optimization/108306, tree-optimization/108440,
tree-optimization/108447, tree-optimization/108449,
tree-optimization/108457, tree-optimization/108482,
tree-optimization/108498, tree-optimization/108500,
tree-optimization/108522, tree-optimization/108523,
tree-optimization/108540, tree-optimization/108547
* Tue Jan 17 2023 Jakub Jelinek <jakub@redhat.com> 13.0.1-0.1
- update from trunk
- PRs c++/105593, fortran/108421, go/108426, ipa/106077, libstdc++/108288,
libstdc++/108413, other/108413, target/55522, target/96795,
target/105980, target/107515, target/108272, tree-optimization/94793,
tree-optimization/106523
- don't build ppc64le unwinder with -fno-omit-frame-pointer (#2161595)
* Sun Jan 15 2023 Jakub Jelinek <jakub@redhat.com> 13.0.0-0.9
* Sat Jan 13 2024 Jakub Jelinek <jakub@redhat.com> 14.0.1-0.1
- new package

View File

@ -1,163 +0,0 @@
PR target/110792: Early clobber issues with rot32di2_doubleword on i386.
This patch is a conservative fix for PR target/110792, a wrong-code
regression affecting doubleword rotations by BITS_PER_WORD, which
effectively swaps the highpart and lowpart words, when the source to be
rotated resides in memory. The issue is that if the register used to
hold the lowpart of the destination is mentioned in the address of
the memory operand, the current define_insn_and_split unintentionally
clobbers it before reading the highpart.
Hence, for the testcase, the incorrectly generated code looks like:
salq $4, %rdi // calculate address
movq WHIRL_S+8(%rdi), %rdi // accidentally clobber addr
movq WHIRL_S(%rdi), %rbp // load (wrong) lowpart
Traditionally, the textbook way to fix this would be to add an
explicit early clobber to the instruction's constraints.
(define_insn_and_split "<insn>32di2_doubleword"
- [(set (match_operand:DI 0 "register_operand" "=r,r,r")
+ [(set (match_operand:DI 0 "register_operand" "=r,r,&r")
(any_rotate:DI (match_operand:DI 1 "nonimmediate_operand" "0,r,o")
(const_int 32)))]
but unfortunately this currently generates significantly worse code,
due to a strange choice of reloads (effectively memcpy), which ends up
looking like:
salq $4, %rdi // calculate address
movdqa WHIRL_S(%rdi), %xmm0 // load the double word in SSE reg.
movaps %xmm0, -16(%rsp) // store the SSE reg back to the stack
movq -8(%rsp), %rdi // load highpart
movq -16(%rsp), %rbp // load lowpart
Note that reload's "&" doesn't distinguish between the memory being
early clobbered, vs the registers used in an addressing mode being
early clobbered.
The fix proposed in this patch is to remove the third alternative, that
allowed offsetable memory as an operand, forcing reload to place the
operand into a register before the rotation. This results in:
salq $4, %rdi
movq WHIRL_S(%rdi), %rax
movq WHIRL_S+8(%rdi), %rdi
movq %rax, %rbp
I believe there's a more advanced solution, by swapping the order of
the loads (if first destination register is mentioned in the address),
or inserting a lea insn (if both destination registers are mentioned
in the address), but this fix is a minimal "safe" solution, that
should hopefully be suitable for backporting.
2023-08-06 Roger Sayle <roger@nextmovesoftware.com>
gcc/testsuite/ChangeLog
PR target/110792
* gcc.target/i386/pr110792.c: Remove dg-final scan-assembler-not.
2023-08-03 Roger Sayle <roger@nextmovesoftware.com>
gcc/ChangeLog
PR target/110792
* config/i386/i386.md (<any_rotate>ti3): For rotations by 64 bits
place operand in a register before gen_<insn>64ti2_doubleword.
(<any_rotate>di3): Likewise, for rotations by 32 bits, place
operand in a register before gen_<insn>32di2_doubleword.
(<any_rotate>32di2_doubleword): Constrain operand to be in register.
(<any_rotate>64ti2_doubleword): Likewise.
gcc/testsuite/ChangeLog
PR target/110792
* g++.target/i386/pr110792.C: New 32-bit C++ test case.
* gcc.target/i386/pr110792.c: New 64-bit C test case.
--- gcc/config/i386/i386.md
+++ gcc/config/i386/i386.md
@@ -15341,7 +15341,10 @@ (define_expand "<insn>ti3"
emit_insn (gen_ix86_<insn>ti3_doubleword
(operands[0], operands[1], operands[2]));
else if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) == 64)
- emit_insn (gen_<insn>64ti2_doubleword (operands[0], operands[1]));
+ {
+ operands[1] = force_reg (TImode, operands[1]);
+ emit_insn (gen_<insn>64ti2_doubleword (operands[0], operands[1]));
+ }
else
{
rtx amount = force_reg (QImode, operands[2]);
@@ -15376,7 +15379,10 @@ (define_expand "<insn>di3"
emit_insn (gen_ix86_<insn>di3_doubleword
(operands[0], operands[1], operands[2]));
else if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) == 32)
- emit_insn (gen_<insn>32di2_doubleword (operands[0], operands[1]));
+ {
+ operands[1] = force_reg (DImode, operands[1]);
+ emit_insn (gen_<insn>32di2_doubleword (operands[0], operands[1]));
+ }
else
FAIL;
@@ -15544,8 +15550,8 @@ (define_insn_and_split "ix86_rotr<dwi>3_doubleword"
})
(define_insn_and_split "<insn>32di2_doubleword"
- [(set (match_operand:DI 0 "register_operand" "=r,r,r")
- (any_rotate:DI (match_operand:DI 1 "nonimmediate_operand" "0,r,o")
+ [(set (match_operand:DI 0 "register_operand" "=r,r")
+ (any_rotate:DI (match_operand:DI 1 "register_operand" "0,r")
(const_int 32)))]
"!TARGET_64BIT"
"#"
@@ -15562,8 +15568,8 @@ (define_insn_and_split "<insn>32di2_doubleword"
})
(define_insn_and_split "<insn>64ti2_doubleword"
- [(set (match_operand:TI 0 "register_operand" "=r,r,r")
- (any_rotate:TI (match_operand:TI 1 "nonimmediate_operand" "0,r,o")
+ [(set (match_operand:TI 0 "register_operand" "=r,r")
+ (any_rotate:TI (match_operand:TI 1 "register_operand" "0,r")
(const_int 64)))]
"TARGET_64BIT"
"#"
--- gcc/testsuite/g++.target/i386/pr110792.C
+++ gcc/testsuite/g++.target/i386/pr110792.C
@@ -0,0 +1,16 @@
+/* { dg-do compile { target ia32 } } */
+/* { dg-options "-O2" } */
+
+template <int ROT, typename T>
+inline T rotr(T input)
+{
+ return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT)));
+}
+
+unsigned long long WHIRL_S[256] = {0x18186018C07830D8};
+unsigned long long whirl(unsigned char x0)
+{
+ const unsigned long long s4 = WHIRL_S[x0&0xFF];
+ return rotr<32>(s4);
+}
+/* { dg-final { scan-assembler-not "movl\tWHIRL_S\\+4\\(,%eax,8\\), %eax" } } */
--- gcc/testsuite/gcc.target/i386/pr110792.c
+++ gcc/testsuite/gcc.target/i386/pr110792.c
@@ -0,0 +1,17 @@
+/* { dg-do compile { target int128 } } */
+/* { dg-options "-O2" } */
+
+static inline unsigned __int128 rotr(unsigned __int128 input)
+{
+ return ((input >> 64) | (input << (64)));
+}
+
+unsigned __int128 WHIRL_S[256] = {((__int128)0x18186018C07830D8) << 64 |0x18186018C07830D8};
+unsigned __int128 whirl(unsigned char x0)
+{
+ register int t __asm("rdi") = x0&0xFF;
+ const unsigned __int128 s4 = WHIRL_S[t];
+ register unsigned __int128 tt __asm("rdi") = rotr(s4);
+ asm("":::"memory");
+ return tt;
+}

View File

@ -30,33 +30,33 @@
else
wf_opt=
fi
--- Makefile.tpl.jj 2021-12-30 15:12:42.188164847 +0100
+++ Makefile.tpl 2022-01-07 12:06:12.115550714 +0100
@@ -446,9 +446,9 @@ LDFLAGS = @LDFLAGS@
--- Makefile.tpl.jj 2023-11-29 13:21:41.680292662 +0100
+++ Makefile.tpl 2023-11-29 13:23:24.677839321 +0100
@@ -448,9 +448,9 @@ LDFLAGS = @LDFLAGS@
LIBCFLAGS = $(CFLAGS)
CXXFLAGS = @CXXFLAGS@
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
-GOCFLAGS = $(CFLAGS)
-GDCFLAGS = $(CFLAGS)
-GDCFLAGS = @GDCFLAGS@
-GM2FLAGS = $(CFLAGS)
+GOCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
+GDCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
+GDCFLAGS = $(filter-out -Wformat-security,@GDCFLAGS@)
+GM2FLAGS = $(filter-out -Wformat-security,$(CFLAGS))
# Pass additional PGO and LTO compiler options to the PGO build.
BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS)
--- Makefile.in.jj 2021-12-30 15:12:42.188164847 +0100
+++ Makefile.in 2022-01-07 12:06:27.335334561 +0100
@@ -443,9 +443,9 @@ LDFLAGS = @LDFLAGS@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
--- Makefile.in.jj 2023-11-29 13:21:41.691292507 +0100
+++ Makefile.in 2023-11-29 13:24:01.254323180 +0100
@@ -445,9 +445,9 @@ LDFLAGS = @LDFLAGS@
LIBCFLAGS = $(CFLAGS)
CXXFLAGS = @CXXFLAGS@
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
-GOCFLAGS = $(CFLAGS)
-GDCFLAGS = $(CFLAGS)
-GDCFLAGS = @GDCFLAGS@
-GM2FLAGS = $(CFLAGS)
+GOCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
+GDCFLAGS = $(filter-out -Wformat-security,$(CFLAGS))
+GDCFLAGS = $(filter-out -Wformat-security,@GDCFLAGS@)
+GM2FLAGS = $(filter-out -Wformat-security,$(CFLAGS))
# Pass additional PGO and LTO compiler options to the PGO build.
BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS)
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@

View File

@ -4,7 +4,7 @@
<a class="link" href="https://www.fsf.org" target="_top">FSF
</a>
</p><p>
+ Release 13.2.1
+ Release 14.0.1
+ </p><p>
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation
@ -17,7 +17,7 @@
</p><p>
- The API documentation, rendered into HTML, can be viewed online
+ The API documentation, rendered into HTML, can be viewed locally
+ <a class="link" href="api/index.html" target="_top">for the 13.2.1 release</a>,
+ <a class="link" href="api/index.html" target="_top">for the 14.0.1 release</a>,
+ online
<a class="link" href="http://gcc.gnu.org/onlinedocs/" target="_top">for each GCC release</a>
and

View File

@ -1,4 +1,4 @@
SHA512 (gcc-13.2.1-20231205.tar.xz) = f132a2d35d6ea0b0d82043870f1c9f60dda119e63df6833b16d20e2c93e2978f62698d4cc72a6e2eefbaeded0683107de9ebeb93923b96c57dcd612504aa6a1b
SHA512 (gcc-14.0.1-20240125.tar.xz) = 8d9784cc2046947cb17c0d1cbd556dcc9f98106c1d19f7de5f9f7641d421a816d85ed9166b7d85324eae96d46384c7c8e2884a815cd53058792e13568cad883d
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
SHA512 (newlib-cygwin-9e09d6ed83cce4777a5950412647ccc603040409.tar.xz) = bef3fa04f7b1a915fc1356ebed114698b5cc835e9fa04b0becff05a9efc76c59fb376482990873d222d7acdcfee3c4f30f5a4cb7f3be1f291f1fa5f1c7a9d983
SHA512 (nvptx-tools-aa3404ad5a496cda5d79a50bedb1344fd63e8763.tar.xz) = 33a024326426375533cb5dd9b68b2508f37540be418d2506bfa19a5f5866485e9af150469064e9059b68136ad8cb080b3b12e7eb5c6b7d1288cf6bfb3f6bb5d0
SHA512 (newlib-cygwin-d45261f62a15f8abd94a1031020b9a9f455e4eed.tar.xz) = 31bfc19429797236e268e22b752c5abeabb9c0f39b1058634af8dab329b4f028fc72a35888193c9575f6cee5cf2c069669d79fcb4d4e3a4318f57413452f707d
SHA512 (nvptx-tools-c5ad8ada3e86d96b10a9d352b7a764f801478ba6.tar.xz) = 8a5c282852c995fabf75a8d6331db807a1acd935fd82022e00801b798fb850392d03e29cfa4aa7e3d5cfd8f48510e5e25b79a647fbec79c8566792584a0c1c49

View File

@ -3,5 +3,5 @@
git clone --depth 1 git://gcc.gnu.org/git/gcc.git gcc-dir.tmp
git --git-dir=gcc-dir.tmp/.git fetch --depth 1 origin $1
d=`date --iso | sed 's/-//g'`
git --git-dir=gcc-dir.tmp/.git archive --prefix=gcc-13.2.1-$d/ $1 | xz -9e > gcc-13.2.1-$d.tar.xz
git --git-dir=gcc-dir.tmp/.git archive --prefix=gcc-14.0.1-$d/ $1 | xz -9e > gcc-14.0.1-$d.tar.xz
rm -rf gcc-dir.tmp