diff options
author | P. Jung | 2022-02-26 16:15:43 +0000 |
---|---|---|
committer | P. Jung | 2022-02-26 16:15:43 +0000 |
commit | 593465a79c8e4b7e6d8e49f9e3eb54a182b4a937 (patch) | |
tree | 957f8c2af88f292493724816561c034d789d3709 | |
parent | dc2f0beeeac3a37d4df653793cdefa06e63fc000 (diff) | |
download | aur-593465a79c8e4b7e6d8e49f9e3eb54a182b4a937.tar.gz |
gcc12 built fix
-rw-r--r-- | .SRCINFO | 47 | ||||
-rw-r--r-- | PKGBUILD | 264 | ||||
-rw-r--r-- | fs64270.patch | 26 | ||||
-rw-r--r-- | gcc11-Wno-format-security.patch | 27 | ||||
-rw-r--r-- | ipa-fix-ICE-in-get_default_value.patch | 80 | ||||
-rw-r--r-- | ipa-fix-bit-CPP-when-combined-with-IPA-bit-CP.patch | 147 |
6 files changed, 167 insertions, 424 deletions
@@ -1,6 +1,6 @@ pkgbase = gcc-git pkgdesc = The GNU Compiler Collection - pkgver = 12.0.1_r191482.f49b8d25b1ff + pkgver = 12.0.1_r191804.gafeaaf4b352 pkgrel = 1 url = https://gcc.gnu.org arch = x86_64 @@ -9,44 +9,42 @@ pkgbase = gcc-git license = FDL license = custom checkdepends = dejagnu + checkdepends = expect checkdepends = inetutils - makedepends = git + checkdepends = python-pytest + checkdepends = tcl makedepends = binutils - makedepends = libmpc - makedepends = gcc-ada - makedepends = gcc-d makedepends = doxygen - makedepends = python + makedepends = gcc-ada makedepends = git + makedepends = lib32-glibc + makedepends = lib32-gcc-libs + makedepends = libmpc makedepends = libxcrypt + makedepends = python + makedepends = zstd + makedepends = isl options = !emptydirs + options = !lto + options = !debug source = git://gcc.gnu.org/git/gcc.git - source = https://mirrors.slackware.com/slackware/slackware64-current/source/l/isl/isl-0.24.tar.xz source = c89 source = c99 source = gdc_phobos_path.patch - source = fs64270.patch - source = ipa-fix-bit-CPP-when-combined-with-IPA-bit-CP.patch - source = ipa-fix-ICE-in-get_default_value.patch source = gcc-ada-repro.patch - source = gcc11-Wno-format-security.patch - sha256sums = SKIP sha256sums = SKIP sha256sums = de48736f6e4153f03d0a5d38ceb6c6fdb7f054e8f47ddd6af0a3dbf14f27b931 sha256sums = 2513c6d9984dd0a2058557bf00f06d8d5181734e41dcfe07be7ed86f2959622a sha256sums = c86372c207d174c0918d4aedf1cb79f7fc093649eb1ad8d9450dccc46849d308 - sha256sums = 1ef190ed4562c4db8c1196952616cd201cfdd788b65f302ac2cc4dabb4d72cee - sha256sums = fcb11c9bcea320afd202b031b48f8750aeaedaa4b0c5dddcd2c0a16381e927e4 - sha256sums = 42865f2af3f48140580c4ae70b6ea03b5bdca0f29654773ef0d42ce00d60ea16 sha256sums = 1773f5137f08ac1f48f0f7297e324d5d868d55201c03068670ee4602babdef2f - sha256sums = 504e4b5a08eb25b6c35f19fdbe0c743ae4e9015d0af4759e74150006c283585e pkgname = gcc-git pkgdesc = The GNU Compiler Collection - C and C++ frontends groups = base-devel-git - depends = gcc-libs-git=12.0.1_r191482.f49b8d25b1ff-1 + depends = gcc-libs-git=12.0.1_r191804.gafeaaf4b352-1 depends = binutils>=2.28 depends = libmpc + depends = zstd optdepends = lib32-gcc-libs-git: for generating code for 32-bit ABI provides = gcc provides = gcc-multilib @@ -55,11 +53,12 @@ pkgname = gcc-git replaces = gcc-multilib-git options = !emptydirs options = staticlibs + options = debug pkgname = gcc-libs-git pkgdesc = Runtime libraries shipped by GCC - depends = glibc - provides = gcc-libs=12.0.1_r191482.f49b8d25b1ff-1 + depends = glibc>=2.27 + provides = gcc-libs=12.0.1_r191804.gafeaaf4b352-1 provides = gcc-multilib provides = gcc-multilib-git provides = libgo.so @@ -77,7 +76,7 @@ pkgname = gcc-libs-git pkgname = gcc-fortran-git pkgdesc = Fortran front-end for GCC - depends = gcc-git=12.0.1_r191482.f49b8d25b1ff-1 + depends = gcc-git=12.0.1_r191804.gafeaaf4b352-1 provides = gcc-fortran provides = gcc-multilib provides = gcc-multilib-git @@ -86,7 +85,7 @@ pkgname = gcc-fortran-git pkgname = gcc-objc-git pkgdesc = Objective-C front-end for GCC - depends = gcc-git=12.0.1_r191482.f49b8d25b1ff-1 + depends = gcc-git=12.0.1_r191804.gafeaaf4b352-1 provides = gcc-multilib provides = gcc-multilib-git conflicts = gcc-objc @@ -94,7 +93,7 @@ pkgname = gcc-objc-git pkgname = gcc-ada-git pkgdesc = Ada front-end for GCC (GNAT) - depends = gcc-git=12.0.1_r191482.f49b8d25b1ff-1 + depends = gcc-git=12.0.1_r191804.gafeaaf4b352-1 provides = gcc-ada provides = gcc-multilib provides = gcc-multilib-git @@ -105,7 +104,7 @@ pkgname = gcc-ada-git pkgname = gcc-go-git pkgdesc = Go front-end for GCC - depends = gcc-git=12.0.1_r191482.f49b8d25b1ff-1 + depends = gcc-git=12.0.1_r191804.gafeaaf4b352-1 provides = go=1.12.2 provides = gcc-multilib provides = gcc-multilib-git @@ -116,7 +115,7 @@ pkgname = gcc-go-git pkgname = gcc-d-git pkgdesc = D frontend for GCC - depends = gcc-git=12.0.1_r191482.f49b8d25b1ff-1 + depends = gcc-git=12.0.1_r191804.gafeaaf4b352-1 provides = gcc-d provides = gdc provides = gdc-git @@ -1,46 +1,55 @@ # Merged with official ABS gcc PKGBUILD by João, 2021/08/03 (all respective contributors apply herein) +# Co-Maintainer: Peter Jung & CachyOS <admin@ptr1337.dev> # Maintainer: João Figueiredo & chaotic-aur <islandc0der@chaotic.cx> -# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc -# NOTE: libtool requires rebuilding with each new gcc version + +# toolchain build order: linux-api-headers->glibc->binutils->gcc->glibc->binutils->gcc +# NOTE: libtool requires rebuilt with each new gcc version # You probably don't need support for all the languages, feel free to remove the ones you don't; # Just edit the --enable-languages option as well as the pkgname array, and comment out the pkg functions :) pkgbase=gcc-git pkgname=({gcc,gcc-libs,gcc-fortran,gcc-objc,gcc-ada,gcc-go,gcc-d}-git) -pkgver=12.0.1_r191482.f49b8d25b1ff +pkgver=12.0.1_r191804.gafeaaf4b352 _majorver=${pkgver%%.*} -_isl_link=https://mirrors.slackware.com/slackware/slackware64-current/source/l/isl -_isl=$(curl -s "$_isl_link/?C=M;O=A" | grep "isl-.*tar\.xz" | tail -1 | sed -e 's/.*href="//' -e 's/\.mirrorlist.*//') +_islver=0.24 pkgrel=1 pkgdesc='The GNU Compiler Collection' -arch=($CARCH) +arch=(x86_64) license=(GPL LGPL FDL custom) url='https://gcc.gnu.org' -makedepends=(git binutils libmpc gcc-{ada,d} doxygen python git libxcrypt) -checkdepends=(dejagnu inetutils) -options=(!emptydirs) -_libdir=usr/lib/gcc/$CHOST/${pkgver%_*} - +makedepends=( + binutils + doxygen + gcc-ada + git + lib32-glibc + lib32-gcc-libs + libmpc + libxcrypt + python + zstd + isl +) +checkdepends=( + dejagnu + expect + inetutils + python-pytest + tcl +) +options=(!emptydirs !lto !debug) +_libdir=usr/lib/gcc/$CHOST/${pkgver%%+*} source=(git://gcc.gnu.org/git/gcc.git - $_isl_link/$_isl c89 c99 gdc_phobos_path.patch - fs64270.patch - ipa-fix-bit-CPP-when-combined-with-IPA-bit-CP.patch - ipa-fix-ICE-in-get_default_value.patch gcc-ada-repro.patch - gcc11-Wno-format-security.patch) +) sha256sums=('SKIP' - 'SKIP' 'de48736f6e4153f03d0a5d38ceb6c6fdb7f054e8f47ddd6af0a3dbf14f27b931' '2513c6d9984dd0a2058557bf00f06d8d5181734e41dcfe07be7ed86f2959622a' 'c86372c207d174c0918d4aedf1cb79f7fc093649eb1ad8d9450dccc46849d308' - '1ef190ed4562c4db8c1196952616cd201cfdd788b65f302ac2cc4dabb4d72cee' - 'fcb11c9bcea320afd202b031b48f8750aeaedaa4b0c5dddcd2c0a16381e927e4' - '42865f2af3f48140580c4ae70b6ea03b5bdca0f29654773ef0d42ce00d60ea16' - '1773f5137f08ac1f48f0f7297e324d5d868d55201c03068670ee4602babdef2f' - '504e4b5a08eb25b6c35f19fdbe0c743ae4e9015d0af4759e74150006c283585e') + '1773f5137f08ac1f48f0f7297e324d5d868d55201c03068670ee4602babdef2f') pkgver() { cd ${pkgbase%-git} @@ -48,11 +57,9 @@ pkgver() { } prepare() { + [[ ! -d gcc ]] && ln -s gcc-${pkgver/+/-} gcc cd gcc - # link isl for in-tree build - ln -s ../${_isl%.tar.xz} isl - # Do not run fixincludes sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in @@ -60,43 +67,25 @@ prepare() { sed -i '/m64=/s/lib64/lib/' gcc/config/i386/t-linux64 # hack! - some configure tests for header files using "$CPP $CPPFLAGS" - sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {libiberty,gcc}/configure + sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" gcc/configure # D hacks - patch -p1 -i "$srcdir/gdc_phobos_path.patch" + patch -Np1 -i "$srcdir/gdc_phobos_path.patch" # Reproducible gcc-ada patch -Np0 < "$srcdir/gcc-ada-repro.patch" - # configure.ac: When adding -Wno-format, also add -Wno-format-security - patch -Np0 < "$srcdir/gcc11-Wno-format-security.patch" - mkdir -p "$srcdir/gcc-build" + mkdir -p "$srcdir/libgccjit-build" } build() { - cd gcc-build - - # using -pipe causes spurious test-suite failures - # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48565 - CFLAGS=${CFLAGS/-pipe} - CXXFLAGS=${CXXFLAGS/-pipe} - - # See https://aur.archlinux.org/pkgbase/gcc-git/#comment-822240 - CXXFLAGS=${CXXFLAGS/-Werror=format-security} - - # avoid warning _FORTIFY_SOURCE requires compiling with optimization (-O) - CPPFLAGS+=" -O2" - CPPFLAGS=${CPPFLAGS/-Werror=format-security} - - "$srcdir/gcc/configure" --prefix=/usr \ + local _confflags="--prefix=/usr \ --libdir=/usr/lib \ --libexecdir=/usr/lib \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --with-bugurl=https://bugs.archlinux.org/ \ - --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,d \ - --with-isl \ --with-linker-hash-style=gnu \ --with-system-zlib \ --enable-__cxa_atexit \ @@ -107,7 +96,6 @@ build() { --enable-default-ssp \ --enable-gnu-indirect-function \ --enable-gnu-unique-object \ - --enable-install-libiberty \ --enable-linker-build-id \ --enable-lto \ --enable-multilib \ @@ -116,14 +104,50 @@ build() { --enable-threads=posix \ --disable-libssp \ --disable-libstdcxx-pch \ - --disable-libunwind-exceptions \ --disable-werror \ - gdc_include_dir=/usr/include/dlang/gdc + gdc_include_dir=/usr/include/dlang/gdc" + + cd gcc-build + + # Credits @allanmcrae + # https://github.com/allanmcrae/toolchain/blob/f18604d70c5933c31b51a320978711e4e6791cf1/gcc/PKGBUILD + # TODO: properly deal with the build issues resulting from this + CFLAGS=${CFLAGS/-Werror=format-security/} + CXXFLAGS=${CXXFLAGS/-Werror=format-security/} + + "$srcdir/gcc/configure" \ + --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,d \ + --enable-bootstrap \ + $_confflags - make + # see https://bugs.archlinux.org/task/71777 for rationale re *FLAGS handling + make -O STAGE1_CFLAGS="-O2" \ + BOOT_CFLAGS="$CFLAGS" \ + BOOT_LDFLAGS="$LDFLAGS" \ + LDFLAGS_FOR_TARGET="$LDFLAGS" \ + profiledbootstrap # make documentation - make -C $CHOST/libstdc++-v3/doc doc-man-doxygen + make -O -C $CHOST/libstdc++-v3/doc doc-man-doxygen + + # Build libgccjit separately, to avoid building all compilers with --enable-host-shared + # which brings a performance penalty + cd "${srcdir}"/libgccjit-build + + "$srcdir/gcc/configure" \ + --enable-languages=jit \ + --disable-bootstrap \ + --enable-host-shared \ + $_confflags + + # see https://bugs.archlinux.org/task/71777 for rationale re *FLAGS handling + make -O STAGE1_CFLAGS="-O2" \ + BOOT_CFLAGS="$CFLAGS" \ + BOOT_LDFLAGS="$LDFLAGS" \ + LDFLAGS_FOR_TARGET="$LDFLAGS" \ + all-gcc + + cp -a gcc/libgccjit.so* ../gcc-build/gcc/ } check() { @@ -133,52 +157,46 @@ check() { sed -i '/maybe-check-target-libphobos \\/d' Makefile # do not abort on error as some are "expected" - make -k check || true + make -O -k check || true "$srcdir/gcc/contrib/test_summary" } package_gcc-libs-git() { pkgdesc='Runtime libraries shipped by GCC' - depends=(glibc) - options+=(!strip) + depends=('glibc>=2.27') + options=(!emptydirs !strip) provides=("gcc-libs=$pkgver-$pkgrel" gcc-multilib{,-git} libgo.so libgfortran.so libgphobos.so libubsan.so libasan.so libtsan.so liblsan.so) conflicts=(gcc-libs) replaces=(gcc-multilib-git libgphobos-git) - cd gcc-build/$CHOST - make -C libgcc DESTDIR="$pkgdir" install-shared + cd gcc-build + make -C $CHOST/libgcc DESTDIR="$pkgdir" install-shared rm -f "$pkgdir/$_libdir/libgcc_eh.a" - # beautiful hack I came up with to skip libs when they're missing :) - # i.e. when the respective languages were disabled - shopt -s nullglob for lib in libatomic \ - [l]ibgfortran \ - [l]ibgo \ + libgfortran \ + libgo \ libgomp \ libitm \ libquadmath \ libsanitizer/{a,l,ub,t}san \ libstdc++-v3/src \ libvtv; do - make -C $lib DESTDIR="$pkgdir" install-toolexeclibLTLIBRARIES + make -C $CHOST/$lib DESTDIR="$pkgdir" install-toolexeclibLTLIBRARIES done - shopt -u nullglob - # why ! and || instead of just &&, i hear you ask? - # so that $? is always 0 (unless make fails) - [[ ! -e libobjc ]] || make -C libobjc DESTDIR="$pkgdir" install-libs - make -C libstdc++-v3/po DESTDIR="$pkgdir" install + make -C $CHOST/libobjc DESTDIR="$pkgdir" install-libs + make -C $CHOST/libstdc++-v3/po DESTDIR="$pkgdir" install - make -C libphobos DESTDIR="$pkgdir" install + make -C $CHOST/libphobos DESTDIR="$pkgdir" install rm -rf "$pkgdir"/$_libdir/include/d/ rm -f "$pkgdir"/usr/lib/libgphobos.spec for lib in libgomp \ libitm \ libquadmath; do - make -C $lib DESTDIR="$pkgdir" install-info + make -C $CHOST/$lib DESTDIR="$pkgdir" install-info done # remove files provided by lib32-gcc-libs @@ -191,13 +209,13 @@ package_gcc-libs-git() { package_gcc-git() { pkgdesc="The GNU Compiler Collection - C and C++ frontends" - depends=("gcc-libs-git=$pkgver-$pkgrel" "binutils>=2.28" libmpc) + depends=("gcc-libs-git=$pkgver-$pkgrel" "binutils>=2.28" libmpc zstd) groups=(base-devel-git) optdepends=('lib32-gcc-libs-git: for generating code for 32-bit ABI') provides=(gcc{,-multilib{,-git}}) conflicts=(gcc) replaces=(gcc-multilib-git) - options+=(staticlibs) + options=(!emptydirs staticlibs debug) cd gcc-build @@ -245,14 +263,9 @@ package_gcc-git() { make -C $CHOST/32/libsanitizer DESTDIR="$pkgdir" install-nodist_{saninclude,toolexeclib}HEADERS make -C $CHOST/32/libsanitizer/asan DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS - make -C libiberty DESTDIR="$pkgdir" install - install -m644 libiberty/pic/libiberty.a "$pkgdir/usr/lib" - make -C gcc DESTDIR="$pkgdir" install-man install-info - - # don't fail if can't remove the files (when certain languages were disabled) - rm "$pkgdir"/usr/share/man/man1/{gccgo,gfortran,gdc}.1 ||: - rm "$pkgdir"/usr/share/info/{gccgo,gfortran,gnat-style,gnat_rm,gnat_ugn,gdc}.info ||: + rm "$pkgdir"/usr/share/man/man1/{gccgo,gfortran,gdc}.1 + rm "$pkgdir"/usr/share/info/{gccgo,gfortran,gnat-style,gnat_rm,gnat_ugn,gdc}.info make -C libcpp DESTDIR="$pkgdir" install make -C gcc DESTDIR="$pkgdir" install-po @@ -271,8 +284,8 @@ package_gcc-git() { rm -f "$pkgdir"/usr/lib32/lib{stdc++,gcc_s}.so # byte-compile python libraries - python -m compileall "$pkgdir/usr/share/gcc-${pkgver%_*}/" - python -O -m compileall "$pkgdir/usr/share/gcc-${pkgver%_*}/" + python -m compileall "$pkgdir/usr/share/gcc-${pkgver%%+*}/" + python -O -m compileall "$pkgdir/usr/share/gcc-${pkgver%%+*}/" # Install Runtime Library Exception install -d "$pkgdir/usr/share/licenses/$pkgname/" @@ -328,7 +341,7 @@ package_gcc-ada-git() { provides=(gcc-ada gcc-multilib{,-git}) conflicts=(gcc-ada) replaces=(gcc-multilib-git) - options+=(staticlibs) + options=(!emptydirs staticlibs) cd gcc-build/gcc make DESTDIR="$pkgdir" ada.install-{common,info} @@ -384,44 +397,42 @@ package_gcc-go-git() { "$pkgdir/usr/share/licenses/$pkgname/" } -## This package already exists in the AUR -# package_lib32-gcc-libs-git() { -# pkgdesc='32-bit runtime libraries shipped by GCC' -# depends=("lib32-glibc>=2.27") -# provides=(lib32-gcc-libs libgo.so libgfortran.so libubsan.so libasan.so) -# conflicts=(lib32-gcc-libs) -# groups=(multilib-devel-git) -# options=(!emptydirs !strip) -# -# cd gcc-build -# -# make -C $CHOST/32/libgcc DESTDIR="$pkgdir" install-shared -# rm -f "$pkgdir/$_libdir/32/libgcc_eh.a" -# -# for lib in libatomic \ -# libgfortran \ -# libgo \ -# libgomp \ -# libitm \ -# libquadmath \ -# libsanitizer/{a,l,ub}san \ -# libstdc++-v3/src \ -# libvtv; do -# make -C $CHOST/32/$lib DESTDIR="$pkgdir" install-toolexeclibLTLIBRARIES -# done -# -# make -C $CHOST/32/libobjc DESTDIR="$pkgdir" install-libs -# -# make -C $CHOST/libphobos DESTDIR="$pkgdir" install -# rm -f "$pkgdir"/usr/lib32/libgphobos.spec -# -# # remove files provided by gcc-libs -# rm -rf "$pkgdir"/usr/lib -# -# # Install Runtime Library Exception -# install -Dm644 "$srcdir/gcc/COPYING.RUNTIME" \ -# "$pkgdir/usr/share/licenses/lib32-gcc-libs/RUNTIME.LIBRARY.EXCEPTION" -# } +#package_lib32-gcc-libs-git() { +# pkgdesc='32-bit runtime libraries shipped by GCC' +# depends=('lib32-glibc>=2.27') +# provides=(libgo.so libgfortran.so libubsan.so libasan.so) +# groups=(multilib-devel) +# options=(!emptydirs !strip) +# +# cd gcc-build +# +# make -C $CHOST/32/libgcc DESTDIR="$pkgdir" install-shared +# rm -f "$pkgdir/$_libdir/32/libgcc_eh.a" +# +# for lib in libatomic \ +# libgfortran \ +# libgo \ +# libgomp \ +# libitm \ +# libquadmath \ +# libsanitizer/{a,l,ub}san \ +# libstdc++-v3/src \ +# libvtv; do +# make -C $CHOST/32/$lib DESTDIR="$pkgdir" install-toolexeclibLTLIBRARIES +# done +# +# make -C $CHOST/32/libobjc DESTDIR="$pkgdir" install-libs +# +# make -C $CHOST/libphobos DESTDIR="$pkgdir" install +# rm -f "$pkgdir"/usr/lib32/libgphobos.spec +# +# # remove files provided by gcc-libs +# rm -rf "$pkgdir"/usr/lib +# +# # Install Runtime Library Exception +# install -Dm644 "$srcdir/gcc/COPYING.RUNTIME" \ +# "$pkgdir/usr/share/licenses/lib32-gcc-libs/RUNTIME.LIBRARY.EXCEPTION" +#} package_gcc-d-git() { pkgdesc="D frontend for GCC" @@ -449,3 +460,16 @@ package_gcc-d-git() { ln -s /usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \ "$pkgdir/usr/share/licenses/$pkgname/" } + +package_libgccjit() { + pkgdesc="Just-In-Time Compilation with GCC backend" + depends=("gcc=$pkgver-$pkgrel") + + cd gcc-build + make -C gcc DESTDIR="$pkgdir" jit.install-common jit.install-info + + # Install Runtime Library Exception + install -d "$pkgdir/usr/share/licenses/$pkgname/" + ln -s /usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \ + "$pkgdir/usr/share/licenses/$pkgname/" +} diff --git a/fs64270.patch b/fs64270.patch deleted file mode 100644 index 7b9e142c6be8..000000000000 --- a/fs64270.patch +++ /dev/null @@ -1,26 +0,0 @@ -Disable ssp on -nostdlib, -nodefaultlibs and -ffreestanding - ---- a/gcc/gcc.c 2017-07-04 09:15:57.740793000 +0200 -+++ b/gcc/gcc.c 2018-03-02 13:58:44.387741114 +0100 -@@ -857,6 +857,12 @@ proper position among the other output f - #define LINK_GCC_C_SEQUENCE_SPEC "%G %L %G" - #endif - -+#ifdef ENABLE_DEFAULT_SSP -+#define NO_SSP_SPEC "%{nostdlib|nodefaultlibs|ffreestanding:-fno-stack-protector} " -+#else -+#define NO_SSP_SPEC "" -+#endif -+ - #ifndef LINK_SSP_SPEC - #ifdef TARGET_LIBC_PROVIDES_SSP - #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ -@@ -1131,7 +1148,7 @@ static const char *cc1_options = - %{-version:--version}\ - %{-help=*:--help=%*}\ - %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\ -- %{fsyntax-only:-o %j} %{-param*}\ -+ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\ - %{coverage:-fprofile-arcs -ftest-coverage}\ - %{fprofile-arcs|fprofile-generate*|coverage:\ - %{!fprofile-update=singel:\ diff --git a/gcc11-Wno-format-security.patch b/gcc11-Wno-format-security.patch deleted file mode 100644 index 974ea44d0f85..000000000000 --- a/gcc11-Wno-format-security.patch +++ /dev/null @@ -1,27 +0,0 @@ -2017-02-25 Jakub Jelinek <jakub@redhat.com> - - * configure.ac: When adding -Wno-format, also add -Wno-format-security. - * configure: Regenerated. - ---- gcc/configure.ac.jj 2017-02-13 12:20:53.000000000 +0100 -+++ gcc/configure.ac 2017-02-25 12:42:32.859175403 +0100 -@@ -480,7 +480,7 @@ AC_ARG_ENABLE(build-format-warnings, - AS_HELP_STRING([--disable-build-format-warnings],[don't use -Wformat while building GCC]), - [],[enable_build_format_warnings=yes]) - AS_IF([test $enable_build_format_warnings = no], -- [wf_opt=-Wno-format],[wf_opt=]) -+ [wf_opt="-Wno-format -Wno-format-security"],[wf_opt=]) - ACX_PROG_CXX_WARNING_OPTS( - m4_quote(m4_do([-W -Wall -Wno-narrowing -Wwrite-strings ], - [-Wcast-qual -Wno-error=format-diag $wf_opt])), ---- gcc/configure.jj 2017-02-13 12:20:52.000000000 +0100 -+++ gcc/configure 2017-02-25 12:42:50.041946391 +0100 -@@ -6647,7 +6647,7 @@ else - fi - - if test $enable_build_format_warnings = no; then : -- wf_opt=-Wno-format -+ wf_opt="-Wno-format -Wno-format-security" - else - wf_opt= - fi diff --git a/ipa-fix-ICE-in-get_default_value.patch b/ipa-fix-ICE-in-get_default_value.patch deleted file mode 100644 index 572299462ff4..000000000000 --- a/ipa-fix-ICE-in-get_default_value.patch +++ /dev/null @@ -1,80 +0,0 @@ -From f91770216eade83f068528c1e4f00e2ac3b23044 Mon Sep 17 00:00:00 2001 -From: Martin Liska <mliska@suse.cz> -Date: Thu, 13 Aug 2020 09:38:41 +0200 -Subject: [PATCH] ipa: fix ICE in get_default_value - -The patch aligns code with ipcp_bits_lattice::set_to_constant -where we properly mask m_value with m_mask. The same should -be done here. - -gcc/ChangeLog: - - PR ipa/96482 - * ipa-cp.c (ipcp_bits_lattice::meet_with_1): Mask m_value - with m_mask. - -gcc/testsuite/ChangeLog: - - PR ipa/96482 - * gcc.dg/ipa/pr96482-2.c: New test. ---- - gcc/ipa-cp.c | 2 +- - gcc/testsuite/gcc.dg/ipa/pr96482-2.c | 33 ++++++++++++++++++++++++++++ - 2 files changed, 34 insertions(+), 1 deletion(-) - create mode 100644 gcc/testsuite/gcc.dg/ipa/pr96482-2.c - -diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c -index 2b21280d919..e4910a04ffa 100644 ---- a/gcc/ipa-cp.c -+++ b/gcc/ipa-cp.c -@@ -1048,7 +1048,7 @@ ipcp_bits_lattice::meet_with_1 (widest_int value, widest_int mask, - - widest_int old_mask = m_mask; - m_mask = (m_mask | mask) | (m_value ^ value); -- m_value &= value; -+ m_value &= ~m_mask; - - if (wi::sext (m_mask, precision) == -1) - return set_to_bottom (); -diff --git a/gcc/testsuite/gcc.dg/ipa/pr96482-2.c b/gcc/testsuite/gcc.dg/ipa/pr96482-2.c -new file mode 100644 -index 00000000000..54b71ac4fc0 ---- /dev/null -+++ b/gcc/testsuite/gcc.dg/ipa/pr96482-2.c -@@ -0,0 +1,33 @@ -+/* PR ipa/96482 */ -+/* { dg-do compile } */ -+/* { dg-options "-O2" } */ -+ -+int i2c_transfer(); -+void _dev_err(); -+ -+struct i2c_msg { -+ char bufaddr; -+ int adapterdev; -+} wdt87xx_i2c_xfer_client; -+ -+int wdt87xx_i2c_xfer_client_0, wdt87xx_i2c_xfer_rxdata, wdt87xx_get_string_str_idx; -+ -+void -+static wdt87xx_i2c_xfer(void *txdata, unsigned rxlen) { -+ struct i2c_msg msgs[] = {wdt87xx_i2c_xfer_client_0, rxlen, -+ wdt87xx_i2c_xfer_rxdata}; -+ int error = i2c_transfer(wdt87xx_i2c_xfer_client, msgs); -+ _dev_err("", __func__, error); -+} -+static void wdt87xx_get_string(unsigned len) { -+ char tx_buf[] = {wdt87xx_get_string_str_idx, 3}; -+ int rx_len = len + 2; -+ wdt87xx_i2c_xfer(tx_buf, rx_len); -+} -+ -+void -+wdt87xx_ts_probe_tx_buf() { -+ wdt87xx_get_string(34); -+ wdt87xx_get_string(8); -+ wdt87xx_i2c_xfer(wdt87xx_ts_probe_tx_buf, 2); -+} --- -2.28.0 - diff --git a/ipa-fix-bit-CPP-when-combined-with-IPA-bit-CP.patch b/ipa-fix-bit-CPP-when-combined-with-IPA-bit-CP.patch deleted file mode 100644 index cd812623cec3..000000000000 --- a/ipa-fix-bit-CPP-when-combined-with-IPA-bit-CP.patch +++ /dev/null @@ -1,147 +0,0 @@ -From d58f078ce2d53e5dab6b3d0d5f960504268e1894 Mon Sep 17 00:00:00 2001 -From: Martin Liska <mliska@suse.cz> -Date: Wed, 12 Aug 2020 09:21:51 +0200 -Subject: [PATCH] ipa: fix bit CPP when combined with IPA bit CP - -As mentioned in the PR, let's consider the following example: - -int -__attribute__((noinline)) -foo(int arg) -{ - if (arg == 3) - return 1; - if (arg == 4) - return 123; - - __builtin_unreachable (); -} - -during WPA we find all calls of the function -(yes the call with value 5 is UBSAN): - - Node: foo/0: - param [0]: 5 [loc_time: 4, loc_size: 2, prop_time: 0, prop_size: 0] - 3 [loc_time: 3, loc_size: 3, prop_time: 0, prop_size: 0] - ctxs: VARIABLE - Bits: value = 0x5, mask = 0x6 - -in LTRANS we have the following VRP info: - - # RANGE [3, 3] NONZERO 3 - -when we AND masks in get_default_value we end up with 6 & 3 = 2 (0x010). -That means the only second (least significant bit) is unknown and -value (5 = 0x101) & ~mask gives us either 7 (0x111) or 5 (0x101). - -That's why if (arg_2(D) == 3) gets optimized to false. - -gcc/ChangeLog: - - PR ipa/96482 - * ipa-cp.c (ipcp_bits_lattice::meet_with_1): Drop value bits - for bits that are unknown. - (ipcp_bits_lattice::set_to_constant): Likewise. - * tree-ssa-ccp.c (get_default_value): Add sanity check that - IPA CP bit info has all bits set to zero in bits that - are unknown. - -gcc/testsuite/ChangeLog: - - PR ipa/96482 - * gcc.dg/ipa/pr96482.c: New test. ---- - gcc/ipa-cp.c | 3 +- - gcc/testsuite/gcc.dg/ipa/pr96482.c | 44 ++++++++++++++++++++++++++++++ - gcc/tree-ssa-ccp.c | 3 ++ - 3 files changed, 49 insertions(+), 1 deletion(-) - create mode 100644 gcc/testsuite/gcc.dg/ipa/pr96482.c - -diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c -index 945a69977f3..2b21280d919 100644 ---- a/gcc/ipa-cp.c -+++ b/gcc/ipa-cp.c -@@ -1011,7 +1011,7 @@ ipcp_bits_lattice::set_to_constant (widest_int value, widest_int mask) - { - gcc_assert (top_p ()); - m_lattice_val = IPA_BITS_CONSTANT; -- m_value = value; -+ m_value = wi::bit_and (wi::bit_not (mask), value); - m_mask = mask; - return true; - } -@@ -1048,6 +1048,7 @@ ipcp_bits_lattice::meet_with_1 (widest_int value, widest_int mask, - - widest_int old_mask = m_mask; - m_mask = (m_mask | mask) | (m_value ^ value); -+ m_value &= value; - - if (wi::sext (m_mask, precision) == -1) - return set_to_bottom (); -diff --git a/gcc/testsuite/gcc.dg/ipa/pr96482.c b/gcc/testsuite/gcc.dg/ipa/pr96482.c -new file mode 100644 -index 00000000000..68ead798d28 ---- /dev/null -+++ b/gcc/testsuite/gcc.dg/ipa/pr96482.c -@@ -0,0 +1,44 @@ -+/* PR ipa/96482 */ -+/* { dg-do run } */ -+/* { dg-options "-O2 -flto" } */ -+/* { dg-require-effective-target lto } */ -+ -+int -+__attribute__((noinline)) -+foo(int arg) -+{ -+ if (arg == 3) -+ return 1; -+ if (arg == 4) -+ return 123; -+ -+ __builtin_unreachable (); -+} -+ -+int -+__attribute__((noinline)) -+baz(int x) -+{ -+ if (x != 0) -+ return foo(3); /* called */ -+ -+ return 1; -+} -+ -+int -+__attribute__((noinline)) -+bar(int x) -+{ -+ if (x == 0) -+ return foo(5); /* not executed */ -+ -+ return 1; -+} -+ -+int main(int argc, char **argv) -+{ -+ if (bar(argc) != baz(argc)) -+ __builtin_abort (); -+ -+ return 0; -+} -diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c -index 7e3921869b8..65dffe06530 100644 ---- a/gcc/tree-ssa-ccp.c -+++ b/gcc/tree-ssa-ccp.c -@@ -306,6 +306,9 @@ get_default_value (tree var) - { - val.lattice_val = CONSTANT; - val.value = value; -+ widest_int ipa_value = wi::to_widest (value); -+ /* Unknown bits from IPA CP must be equal to zero. */ -+ gcc_assert (wi::bit_and (ipa_value, mask) == 0); - val.mask = mask; - if (nonzero_bits != -1) - val.mask &= extend_mask (nonzero_bits, --- -2.28.0 - |