From 7f999936529d6902d43c8cc807ceb3a6843f3072 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sat, 24 Jan 2015 10:03:24 +0100 Subject: [PATCH] 5.0.0-0.5 --- .gitignore | 33 +- cloog-0.18.1-ppc64le-config.patch | 717 -------------- gcc.spec | 922 ++++++------------ gcc49-aarch64-unwind-opt.patch | 338 ------- gcc49-cloog-dl.patch | 476 --------- gcc49-cloog-dl2.patch | 74 -- gcc49-color-auto.patch | 46 - gcc49-pr38757.patch | 106 -- gcc49-pr64336.patch | 17 - gcc49-pr64536.patch | 95 -- ...tch => gcc5-aarch64-async-unw-tables.patch | 0 gcc49-hack.patch => gcc5-hack.patch | 57 ++ ...6-libgomp.patch => gcc5-i386-libgomp.patch | 0 gcc5-isl-dl.patch | 561 +++++++++++ ...a-nomulti.patch => gcc5-java-nomulti.patch | 0 ...-libgo-p224.patch => gcc5-libgo-p224.patch | 16 +- ...patch => gcc5-libgomp-omp_h-multilib.patch | 0 gcc5-libsanitize-aarch64-va42.patch | 47 + ...++-docs.patch => gcc5-libstdc++-docs.patch | 4 +- ...rpath.patch => gcc5-libtool-no-rpath.patch | 0 ...d-needed.patch => gcc5-no-add-needed.patch | 6 +- gcc5-ppc-jit.patch | 22 + ...-retaddr.patch => gcc5-ppc32-retaddr.patch | 0 gcc5-pr64738.patch | 28 + gcc49-rh330771.patch => gcc5-rh330771.patch | 0 ...patch => gcc5-sparc-config-detection.patch | 0 sources | 4 +- 27 files changed, 1053 insertions(+), 2516 deletions(-) delete mode 100644 cloog-0.18.1-ppc64le-config.patch delete mode 100644 gcc49-aarch64-unwind-opt.patch delete mode 100644 gcc49-cloog-dl.patch delete mode 100644 gcc49-cloog-dl2.patch delete mode 100644 gcc49-color-auto.patch delete mode 100644 gcc49-pr38757.patch delete mode 100644 gcc49-pr64336.patch delete mode 100644 gcc49-pr64536.patch rename gcc49-aarch64-async-unw-tables.patch => gcc5-aarch64-async-unw-tables.patch (100%) rename gcc49-hack.patch => gcc5-hack.patch (66%) rename gcc49-i386-libgomp.patch => gcc5-i386-libgomp.patch (100%) create mode 100644 gcc5-isl-dl.patch rename gcc49-java-nomulti.patch => gcc5-java-nomulti.patch (100%) rename gcc49-libgo-p224.patch => gcc5-libgo-p224.patch (98%) rename gcc49-libgomp-omp_h-multilib.patch => gcc5-libgomp-omp_h-multilib.patch (100%) create mode 100644 gcc5-libsanitize-aarch64-va42.patch rename gcc49-libstdc++-docs.patch => gcc5-libstdc++-docs.patch (96%) rename gcc49-libtool-no-rpath.patch => gcc5-libtool-no-rpath.patch (100%) rename gcc49-no-add-needed.patch => gcc5-no-add-needed.patch (94%) create mode 100644 gcc5-ppc-jit.patch rename gcc49-ppc32-retaddr.patch => gcc5-ppc32-retaddr.patch (100%) create mode 100644 gcc5-pr64738.patch rename gcc49-rh330771.patch => gcc5-rh330771.patch (100%) rename gcc49-sparc-config-detection.patch => gcc5-sparc-config-detection.patch (100%) diff --git a/.gitignore b/.gitignore index 3204cee..8da89f4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,32 +1 @@ -/fastjar-0.97.tar.gz -/cloog-0.18.1.tar.gz -/gcc-4.9.0-20140409.tar.bz2 -/isl-0.12.2.tar.bz2 -/gcc-4.9.0-20140411.tar.bz2 -/gcc-4.9.0-20140422.tar.bz2 -/gcc-4.9.0-20140505.tar.bz2 -/gcc-4.9.0-20140506.tar.bz2 -/gcc-4.9.0-20140514.tar.bz2 -/gcc-4.9.0-20140518.tar.bz2 -/gcc-4.9.0-20140529.tar.bz2 -/gcc-4.9.0-20140604.tar.bz2 -/gcc-4.9.0-20140612.tar.bz2 -/gcc-4.9.0-20140617.tar.bz2 -/gcc-4.9.0-20140619.tar.bz2 -/gcc-4.9.0-20140625.tar.bz2 -/gcc-4.9.0-20140702.tar.bz2 -/gcc-4.9.1-20140716.tar.bz2 -/gcc-4.9.1-20140717.tar.bz2 -/gcc-4.9.1-20140801.tar.bz2 -/gcc-4.9.1-20140807.tar.bz2 -/gcc-4.9.1-20140813.tar.bz2 -/gcc-4.9.1-20140815.tar.bz2 -/gcc-4.9.1-20140912.tar.bz2 -/gcc-4.9.1-20140922.tar.bz2 -/gcc-4.9.1-20140930.tar.bz2 -/gcc-4.9.1-20141017.tar.bz2 -/gcc-4.9.1-20141024.tar.bz2 -/gcc-4.9.2-20141101.tar.bz2 -/gcc-4.9.2-20141212.tar.bz2 -/gcc-4.9.2-20141217.tar.bz2 -/gcc-4.9.2-20150107.tar.bz2 +/gcc-5.0.0-20150123.tar.bz2 diff --git a/cloog-0.18.1-ppc64le-config.patch b/cloog-0.18.1-ppc64le-config.patch deleted file mode 100644 index a280e20..0000000 --- a/cloog-0.18.1-ppc64le-config.patch +++ /dev/null @@ -1,717 +0,0 @@ ---- cloog-0.18.1/m4/libtool.m4.jj 2013-10-11 09:27:45.000000000 +0200 -+++ cloog-0.18.1/m4/libtool.m4 2014-04-11 18:24:56.607493726 +0200 -@@ -1312,7 +1312,7 @@ ia64-*-hpux*) - rm -rf conftest* - ;; - --x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ - s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext -@@ -1333,7 +1333,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* - ;; - esac - ;; -- ppc64-*linux*|powerpc64-*linux*) -+ powerpc64le-*linux*) -+ LD="${LD-ld} -m elf32lppclinux" -+ ;; -+ powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) -@@ -1352,7 +1355,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; -- ppc*-*linux*|powerpc*-*linux*) -+ powerpcle-*linux*) -+ LD="${LD-ld} -m elf64lppc" -+ ;; -+ powerpc-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) ---- cloog-0.18.1/autoconf/config.sub.jj 2013-10-11 09:27:45.000000000 +0200 -+++ cloog-0.18.1/autoconf/config.sub 2014-04-11 18:24:56.608493721 +0200 -@@ -1,24 +1,18 @@ - #! /bin/sh - # Configuration validation subroutine script. --# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, --# 2011, 2012 Free Software Foundation, Inc. -- --timestamp='2012-04-18' -- --# This file is (in principle) common to ALL GNU software. --# The presence of a machine in this file suggests that SOME GNU software --# can handle that machine. It does not imply ALL GNU software can. --# --# This file is free software; you can redistribute it and/or modify --# it under the terms of the GNU General Public License as published by --# the Free Software Foundation; either version 2 of the License, or -+# Copyright 1992-2013 Free Software Foundation, Inc. -+ -+timestamp='2013-10-01' -+ -+# This file is free software; you can redistribute it and/or modify it -+# under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 3 of the License, or - # (at your option) any later version. - # --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY; without even the implied warranty of --# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --# GNU General Public License for more details. -+# This program is distributed in the hope that it will be useful, but -+# WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+# General Public License for more details. - # - # You should have received a copy of the GNU General Public License - # along with this program; if not, see . -@@ -26,11 +20,12 @@ timestamp='2012-04-18' - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under --# the same distribution terms that you use for the rest of that program. -+# the same distribution terms that you use for the rest of that -+# program. This Exception is an additional permission under section 7 -+# of the GNU General Public License, version 3 ("GPLv3"). - - --# Please send patches to . Submit a context --# diff and a properly formatted GNU ChangeLog entry. -+# Please send patches with a ChangeLog entry to config-patches@gnu.org. - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. -@@ -73,9 +68,7 @@ Report bugs and patches to and include a ChangeLog --# entry. -+# the same distribution terms that you use for the rest of that -+# program. This Exception is an additional permission under section 7 -+# of the GNU General Public License, version 3 ("GPLv3"). - # --# This script attempts to guess a canonical system name similar to --# config.sub. If it succeeds, it prints the system name on stdout, and --# exits with 0. Otherwise, it exits with 1. -+# Originally written by Per Bothner. - # - # You can get the latest version of this script from: - # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD -+# -+# Please send patches with a ChangeLog entry to config-patches@gnu.org. -+ - - me=`echo "$0" | sed -e 's,.*/,,'` - -@@ -54,9 +50,7 @@ version="\ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, --2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 --Free Software Foundation, Inc. -+Copyright 1992-2013 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -138,6 +132,27 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` | - UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown - UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -+case "${UNAME_SYSTEM}" in -+Linux|GNU|GNU/*) -+ # If the system lacks a compiler, then just pick glibc. -+ # We could probably try harder. -+ LIBC=gnu -+ -+ eval $set_cc_for_build -+ cat <<-EOF > $dummy.c -+ #include -+ #if defined(__UCLIBC__) -+ LIBC=uclibc -+ #elif defined(__dietlibc__) -+ LIBC=dietlibc -+ #else -+ LIBC=gnu -+ #endif -+ EOF -+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` -+ ;; -+esac -+ - # Note: order is significant - the case branches are not exclusive. - - case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in -@@ -200,6 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit ;; -+ *:Bitrig:*:*) -+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` -+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} -+ exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} -@@ -302,7 +321,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; -- arm:riscos:*:*|arm:RISCOS:*:*) -+ arm*:riscos:*:*|arm*:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) -@@ -801,6 +820,9 @@ EOF - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; -+ *:MINGW64*:*) -+ echo ${UNAME_MACHINE}-pc-mingw64 -+ exit ;; - *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; -@@ -852,21 +874,21 @@ EOF - exit ;; - *:GNU:*:*) - # the GNU system -- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` -+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland -- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu -+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; - aarch64:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - aarch64_be:Linux:*:*) - UNAME_MACHINE=aarch64_be -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in -@@ -879,59 +901,54 @@ EOF - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep -q ld.so.1 -- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi -- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -+ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} -+ exit ;; -+ arc:Linux:*:* | arceb:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - arm*:Linux:*:*) - eval $set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - else - if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_PCS_VFP - then -- echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi - else -- echo ${UNAME_MACHINE}-unknown-linux-gnueabihf -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf - fi - fi - exit ;; - avr32*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - cris:Linux:*:*) -- echo ${UNAME_MACHINE}-axis-linux-gnu -+ echo ${UNAME_MACHINE}-axis-linux-${LIBC} - exit ;; - crisv32:Linux:*:*) -- echo ${UNAME_MACHINE}-axis-linux-gnu -+ echo ${UNAME_MACHINE}-axis-linux-${LIBC} - exit ;; - frv:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - hexagon:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - i*86:Linux:*:*) -- LIBC=gnu -- eval $set_cc_for_build -- sed 's/^ //' << EOF >$dummy.c -- #ifdef __dietlibc__ -- LIBC=dietlibc -- #endif --EOF -- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` -- echo "${UNAME_MACHINE}-pc-linux-${LIBC}" -+ echo ${UNAME_MACHINE}-pc-linux-${LIBC} - exit ;; - ia64:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - m32r*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - m68*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build -@@ -950,54 +967,63 @@ EOF - #endif - EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` -- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } - ;; -+ or1k:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} -+ exit ;; - or32:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - padre:Linux:*:*) -- echo sparc-unknown-linux-gnu -+ echo sparc-unknown-linux-${LIBC} - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) -- echo hppa64-unknown-linux-gnu -+ echo hppa64-unknown-linux-${LIBC} - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in -- PA7*) echo hppa1.1-unknown-linux-gnu ;; -- PA8*) echo hppa2.0-unknown-linux-gnu ;; -- *) echo hppa-unknown-linux-gnu ;; -+ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; -+ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; -+ *) echo hppa-unknown-linux-${LIBC} ;; - esac - exit ;; - ppc64:Linux:*:*) -- echo powerpc64-unknown-linux-gnu -+ echo powerpc64-unknown-linux-${LIBC} - exit ;; - ppc:Linux:*:*) -- echo powerpc-unknown-linux-gnu -+ echo powerpc-unknown-linux-${LIBC} -+ exit ;; -+ ppc64le:Linux:*:*) -+ echo powerpc64le-unknown-linux-${LIBC} -+ exit ;; -+ ppcle:Linux:*:*) -+ echo powerpcle-unknown-linux-${LIBC} - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) -- echo ${UNAME_MACHINE}-ibm-linux -+ echo ${UNAME_MACHINE}-ibm-linux-${LIBC} - exit ;; - sh64*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - sh*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - tile*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - vax:Linux:*:*) -- echo ${UNAME_MACHINE}-dec-linux-gnu -+ echo ${UNAME_MACHINE}-dec-linux-${LIBC} - exit ;; - x86_64:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - xtensa*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. -@@ -1201,6 +1227,9 @@ EOF - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; -+ x86_64:Haiku:*:*) -+ echo x86_64-unknown-haiku -+ exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; -@@ -1227,19 +1256,21 @@ EOF - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -- case $UNAME_PROCESSOR in -- i386) -- eval $set_cc_for_build -- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then -- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ -- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ -- grep IS_64BIT_ARCH >/dev/null -- then -- UNAME_PROCESSOR="x86_64" -- fi -- fi ;; -- unknown) UNAME_PROCESSOR=powerpc ;; -- esac -+ eval $set_cc_for_build -+ if test "$UNAME_PROCESSOR" = unknown ; then -+ UNAME_PROCESSOR=powerpc -+ fi -+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then -+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ -+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ -+ grep IS_64BIT_ARCH >/dev/null -+ then -+ case $UNAME_PROCESSOR in -+ i386) UNAME_PROCESSOR=x86_64 ;; -+ powerpc) UNAME_PROCESSOR=powerpc64 ;; -+ esac -+ fi -+ fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) -@@ -1256,7 +1287,7 @@ EOF - NEO-?:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk${UNAME_RELEASE} - exit ;; -- NSE-?:NONSTOP_KERNEL:*:*) -+ NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) -@@ -1330,9 +1361,6 @@ EOF - exit ;; - esac - --#echo '(No uname command or uname output not recognized.)' 1>&2 --#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 -- - eval $set_cc_for_build - cat >$dummy.c < conftest.$ac_ext -@@ -6408,7 +6408,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* - ;; - esac - ;; -- ppc64-*linux*|powerpc64-*linux*) -+ powerpc64le-*linux*) -+ LD="${LD-ld} -m elf32lppclinux" -+ ;; -+ powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) -@@ -6427,7 +6430,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; -- ppc*-*linux*|powerpc*-*linux*) -+ powerpcle-*linux*) -+ LD="${LD-ld} -m elf64lppc" -+ ;; -+ powerpc-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) diff --git a/gcc.spec b/gcc.spec index f9a7108..a43a6e9 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,9 +1,9 @@ -%global DATE 20150107 -%global SVNREV 219315 -%global gcc_version 4.9.2 +%global DATE 20150123 +%global SVNREV 220063 +%global gcc_version 5.0.0 # 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 5 +%global gcc_release 0.5 %global _unpackaged_files_terminate_build 0 %global _performance_build 1 %global multilib_64_archs sparc64 ppc64 ppc64p7 s390x x86_64 @@ -22,7 +22,7 @@ %else %global build_libquadmath 0 %endif -%ifarch %{ix86} x86_64 ppc ppc64 ppc64p7 %{arm} +%ifarch %{ix86} x86_64 ppc ppc64 ppc64p7 %{arm} aarch64 %global build_libasan 1 %else %global build_libasan 0 @@ -37,7 +37,7 @@ %else %global build_liblsan 0 %endif -%ifarch %{ix86} x86_64 ppc ppc64 ppc64p7 %{arm} +%ifarch %{ix86} x86_64 ppc ppc64 ppc64p7 %{arm} aarch64 %global build_libubsan 1 %else %global build_libubsan 0 @@ -57,7 +57,7 @@ %else %global build_libitm 0 %endif -%global build_cloog 1 +%global build_isl 1 %global build_libstdcxx_docs 1 %ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %global attr_ifunc 1 @@ -86,13 +86,10 @@ 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-4_9-branch@%{SVNREV} gcc-%{version}-%{DATE} +# svn export svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-5-branch@%{SVNREV} gcc-%{version}-%{DATE} # tar cf - gcc-%{version}-%{DATE} | bzip2 -9 > gcc-%{version}-%{DATE}.tar.bz2 Source0: gcc-%{version}-%{DATE}.tar.bz2 -%global isl_version 0.12.2 -Source1: ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-%{isl_version}.tar.bz2 -%global cloog_version 0.18.1 -Source2: ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-%{cloog_version}.tar.gz +%global isl_version 0.14 URL: http://gcc.gnu.org BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) # Need binutils with -pie support >= 2.14.90.0.4-4 @@ -139,6 +136,11 @@ BuildRequires: gcc-gnat >= 3.1, libgnat >= 3.1 %ifarch ia64 BuildRequires: libunwind >= 0.98 %endif +%if %{build_isl} +BuildRequires: isl = %{isl_version} +BuildRequires: isl-devel = %{isl_version} +Requires: isl = %{isl_version} +%endif %if %{build_libstdcxx_docs} BuildRequires: doxygen >= 1.7.1 BuildRequires: graphviz, dblatex, texlive-collection-latex, docbook5-style-xsl @@ -182,27 +184,22 @@ Requires(preun): /sbin/install-info AutoReq: true Provides: bundled(libiberty) -Patch0: gcc49-hack.patch -Patch1: gcc49-java-nomulti.patch -Patch2: gcc49-ppc32-retaddr.patch -Patch3: gcc49-rh330771.patch -Patch4: gcc49-i386-libgomp.patch -Patch5: gcc49-sparc-config-detection.patch -Patch6: gcc49-libgomp-omp_h-multilib.patch -Patch7: gcc49-libtool-no-rpath.patch -Patch8: gcc49-cloog-dl.patch -Patch9: gcc49-cloog-dl2.patch -Patch10: gcc49-pr38757.patch -Patch11: gcc49-libstdc++-docs.patch -Patch12: gcc49-no-add-needed.patch -Patch13: gcc49-color-auto.patch -Patch14: gcc49-libgo-p224.patch -Patch15: gcc49-aarch64-async-unw-tables.patch -Patch16: gcc49-aarch64-unwind-opt.patch -Patch17: gcc49-pr64336.patch -Patch18: gcc49-pr64536.patch - -Patch1100: cloog-%{cloog_version}-ppc64le-config.patch +Patch0: gcc5-hack.patch +Patch1: gcc5-java-nomulti.patch +Patch2: gcc5-ppc32-retaddr.patch +Patch3: gcc5-rh330771.patch +Patch4: gcc5-i386-libgomp.patch +Patch5: gcc5-sparc-config-detection.patch +Patch6: gcc5-libgomp-omp_h-multilib.patch +Patch7: gcc5-libtool-no-rpath.patch +Patch8: gcc5-isl-dl.patch +Patch10: gcc5-libstdc++-docs.patch +Patch11: gcc5-no-add-needed.patch +Patch12: gcc5-libgo-p224.patch +Patch13: gcc5-aarch64-async-unw-tables.patch +Patch14: gcc5-libsanitize-aarch64-va42.patch +Patch15: gcc5-ppc-jit.patch +Patch16: gcc5-pr64738.patch # On ARM EABI systems, we do want -gnueabi to be part of the # target triple. @@ -220,11 +217,11 @@ Patch1100: cloog-%{cloog_version}-ppc64le-config.patch %endif %description -The gcc package contains the GNU Compiler Collection version 4.9. +The gcc package contains the GNU Compiler Collection version 5. You'll need this package in order to compile C code. %package -n libgcc -Summary: GCC version 4.9 shared support library +Summary: GCC version 5 shared support library Group: System Environment/Libraries Autoreq: false %if !%{build_ada} @@ -375,6 +372,33 @@ Requires(preun): /sbin/install-info This package contains GCC shared support library which is needed for OpenMP v3.0 support. +%package gdb-plugin +Summary: GCC plugin for GDB +Group: Development/Debuggers +Requires: gcc = %{version}-%{release} + +%description gdb-plugin +This package contains GCC plugin for GDB C expression evaluation. + +%package -n libgccjit +Summary: Library for embedding GCC inside programs and libraries +Group: System Environment/Libraries +Requires: gcc = %{version}-%{release} + +%description -n libgccjit +This package contains shared library with GCC JIT front-end. + +%package -n libgccjit-devel +Summary: Support for embedding GCC inside programs and libraries +Group: Development/Libraries +BuildRequires: python-sphinx +Requires: libgccjit = %{version}-%{release} +Requires(post): /sbin/install-info +Requires(preun): /sbin/install-info + +%description -n libgccjit-devel +This package contains header files and documentation for GCC JIT front-end. + %package -n libquadmath Summary: GCC __float128 shared support library Group: System Environment/Libraries @@ -620,6 +644,8 @@ Requires: libgo = %{version}-%{release} Requires: libgo-devel = %{version}-%{release} Requires(post): /sbin/install-info Requires(preun): /sbin/install-info +Requires(post): %{_sbindir}/update-alternatives +Requires(postun): %{_sbindir}/update-alternatives Autoreq: true %description go @@ -669,7 +695,7 @@ not stable, so plugins must be rebuilt any time GCC is updated. %define debug_package %{nil} %global __debug_package 1 %global __debug_install_post \ - %{_rpmconfigdir}/find-debuginfo.sh %{?_missing_build_ids_terminate_build:--strict-build-id} %{?_find_debuginfo_opts} "%{_builddir}/gcc-%{version}-%{DATE}"\ + PATH=%{_builddir}/gcc-%{version}-%{DATE}/dwz-wrapper/:$PATH %{_rpmconfigdir}/find-debuginfo.sh %{?_missing_build_ids_terminate_build:--strict-build-id} %{?_find_debuginfo_dwz_opts} %{?_find_debuginfo_opts} "%{_builddir}/gcc-%{version}-%{DATE}"\ %{_builddir}/gcc-%{version}-%{DATE}/split-debuginfo.sh\ %{nil} @@ -703,7 +729,7 @@ package or when debugging this package. %endif %prep -%setup -q -n gcc-%{version}-%{DATE} -a 1 -a 2 +%setup -q -n gcc-%{version}-%{DATE} %patch0 -p0 -b .hack~ %patch1 -p0 -b .java-nomulti~ %patch2 -p0 -b .ppc32-retaddr~ @@ -712,26 +738,53 @@ package or when debugging this package. %patch5 -p0 -b .sparc-config-detection~ %patch6 -p0 -b .libgomp-omp_h-multilib~ %patch7 -p0 -b .libtool-no-rpath~ -%if %{build_cloog} -%patch8 -p0 -b .cloog-dl~ -%patch9 -p0 -b .cloog-dl2~ +%if %{build_isl} +%patch8 -p0 -b .isl-dl~ %endif -%patch10 -p0 -b .pr38757~ %if %{build_libstdcxx_docs} -%patch11 -p0 -b .libstdc++-docs~ +%patch10 -p0 -b .libstdc++-docs~ %endif -%patch12 -p0 -b .no-add-needed~ -%if 0%{?fedora} >= 20 || 0%{?rhel} >= 7 -%patch13 -p0 -b .color-auto~ -%endif -%patch14 -p0 -b .libgo-p224~ +%patch11 -p0 -b .no-add-needed~ +%patch12 -p0 -b .libgo-p224~ rm -f libgo/go/crypto/elliptic/p224{,_test}.go -%patch15 -p0 -b .aarch64-async-unw-tables~ -%patch16 -p0 -b .aarch64-unwind-opt~ -%patch17 -p0 -b .pr64336~ -%patch18 -p0 -b .pr64536~ +%patch13 -p0 -b .aarch64-async-unw-tables~ +%patch14 -p0 -b .libsanitize-aarch64-va42~ +%patch15 -p0 -b .ppc-jit~ +%patch16 -p0 -b .pr64738~ %if 0%{?_enable_debug_packages} +mkdir dwz-wrapper +if [ -f /usr/bin/dwz ]; then +cat > dwz-wrapper/dwz <<\EOF +#!/bin/bash +dwz_opts= +dwzm_opts= +dwz_files= +dwzm_files= +while [ $# -gt 0 ]; do + case "$1" in + -l|-L) + dwz_opts="$dwz_opts $1 $2"; shift;; + -m|-M) + dwzm_opts="$dwzm_opts $1 $2"; shift;; + -*) + dwz_opts="$dwz_opts $1";; + *) + if [[ "$1" =~ (lib[0-9]*/lib(gcc[_.]|gomp|stdc|quadmath|itm|go\.so)|bin/gofmt.gcc.debug|bin/go.gcc.debug|/cgo.debug) ]]; then + dwz_files="$dwz_files $1" + else + dwzm_files="$dwzm_files $1" + fi;; + esac + shift +done +if [ -f /usr/bin/dwz ]; then + /usr/bin/dwz $dwz_opts $dwz_files + /usr/bin/dwz $dwz_opts $dwzm_opts $dwzm_files +fi +EOF +chmod 755 dwz-wrapper/dwz +fi cat > split-debuginfo.sh <<\EOF #!/bin/sh BUILDDIR="%{_builddir}/gcc-%{version}-%{DATE}" @@ -741,7 +794,7 @@ if [ -f "${BUILDDIR}"/debugfiles.list \ > "${BUILDDIR}"/debugfiles-base.list cd "${RPM_BUILD_ROOT}" for f in `find usr/lib/debug -name \*.debug \ - | egrep 'lib[0-9]*/lib(gcc|gomp|stdc|quadmath|itm)'`; do + | egrep 'lib[0-9]*/lib(gcc[_.]|gomp|stdc|quadmath|itm)'`; do echo "/$f" >> "${BUILDDIR}"/debugfiles-base.list if [ -f "$f" -a ! -L "$f" ]; then cp -a "$f" "${BUILDDIR}"/test.debug @@ -752,10 +805,32 @@ if [ -f "${BUILDDIR}"/debugfiles.list \ fi done for f in `find usr/lib/debug/.build-id -type l`; do - ls -l "$f" | egrep -q -- '->.*lib[0-9]*/lib(gcc|gomp|stdc|quadmath|itm)' \ + ls -l "$f" | egrep -q -- '->.*lib[0-9]*/lib(gcc[_.]|gomp|stdc|quadmath|itm)' \ && echo "/$f" >> "${BUILDDIR}"/debugfiles-base.list done - grep -v -f "${BUILDDIR}"/debugfiles-base.list \ + cp -a "${BUILDDIR}"/debugfiles-base.list "${BUILDDIR}"/debugfiles-remove.list +%if %{build_go} + libgoso=`basename .%{_prefix}/%{_lib}/libgo.so.7.*` + for f in %{_prefix}/bin/go.gcc \ + %{_prefix}/bin/gofmt.gcc \ + %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cgo \ + %{_prefix}/%{_lib}/$libgoso ; do + eu-unstrip .$f usr/lib/debug$f.debug -o .$f.new + chmod --reference=.$f .$f.new + mv -f .$f.new .$f + rm -f usr/lib/debug$f.debug + echo "/usr/lib/debug$f.debug" >> "${BUILDDIR}"/debugfiles-remove.list + done + rm -f usr/lib/debug%{_prefix}/%{_lib}/libgo.so.7.debug + echo "/usr/lib/debug%{_prefix}/%{_lib}/libgo.so.7.debug" >> "${BUILDDIR}"/debugfiles-remove.list + for f in `find usr/lib/debug/.build-id -type l`; do + if ls -l "$f" | egrep -q -- '->.*(/bin/go.gcc|/bin/gofmt.gcc|/cgo|lib[0-9]*/libgo\.so)'; then + echo "/$f" >> "${BUILDDIR}"/debugfiles-remove.list + rm -f "$f" + fi + done +%endif + grep -v -f "${BUILDDIR}"/debugfiles-remove.list \ "${BUILDDIR}"/debugfiles.list > "${BUILDDIR}"/debugfiles.list.new mv -f "${BUILDDIR}"/debugfiles.list.new "${BUILDDIR}"/debugfiles.list for f in `LC_ALL=C sort -z -u "${BUILDDIR}"/debugsources-base.list \ @@ -778,40 +853,16 @@ EOF chmod 755 split-debuginfo.sh %endif -%patch1100 -p0 -b .cloog-ppc64le-config~ - -sed -i -e 's/4\.9\.3/4.9.2/' gcc/BASE-VER echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE -%if 0%{?fedora} >= 16 || 0%{?rhel} >= 7 -# Default to -gdwarf-4 -fno-debug-types-section rather than -gdwarf-2 -sed -i '/UInteger Var(dwarf_version)/s/Init(2)/Init(4)/' gcc/common.opt -sed -i '/flag_debug_types_section/s/Init(1)/Init(0)/' gcc/common.opt -sed -i '/dwarf_record_gcc_switches/s/Init(0)/Init(1)/' gcc/common.opt -sed -i 's/\(may be either 2, 3 or 4; the default version is \)2\./\14./' gcc/doc/invoke.texi -%else -# Default to -gdwarf-3 rather than -gdwarf-2 -sed -i '/UInteger Var(dwarf_version)/s/Init(2)/Init(3)/' gcc/common.opt -sed -i 's/\(may be either 2, 3 or 4; the default version is \)2\./\13./' gcc/doc/invoke.texi -sed -i 's/#define[[:blank:]]*EMIT_ENTRY_VALUE[[:blank:]].*$/#define EMIT_ENTRY_VALUE 0/' gcc/{var-tracking,dwarf2out}.c -sed -i 's/#define[[:blank:]]*EMIT_TYPED_DWARF_STACK[[:blank:]].*$/#define EMIT_TYPED_DWARF_STACK 0/' gcc/dwarf2out.c -sed -i 's/#define[[:blank:]]*EMIT_DEBUG_MACRO[[:blank:]].*$/#define EMIT_DEBUG_MACRO 0/' gcc/dwarf2out.c -%endif - cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h -# Hack to avoid building multilib libjava -perl -pi -e 's/^all: all-redirect/ifeq (\$(MULTISUBDIR),)\nall: all-redirect\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in -perl -pi -e 's/^install: install-redirect/ifeq (\$(MULTISUBDIR),)\ninstall: install-redirect\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in -perl -pi -e 's/^check: check-redirect/ifeq (\$(MULTISUBDIR),)\ncheck: check-redirect\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in -perl -pi -e 's/^all: all-recursive/ifeq (\$(MULTISUBDIR),)\nall: all-recursive\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in -perl -pi -e 's/^install: install-recursive/ifeq (\$(MULTISUBDIR),)\ninstall: install-recursive\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in -perl -pi -e 's/^check: check-recursive/ifeq (\$(MULTISUBDIR),)\ncheck: check-recursive\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in - ./contrib/gcc_update --touch LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi +sed -i -e 's/Common Driver Var(flag_report_bug)/& Init(1)/' gcc/common.opt + %ifarch ppc if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64 @@ -841,49 +892,8 @@ rm -fr obj-%{gcc_target_platform} mkdir obj-%{gcc_target_platform} cd obj-%{gcc_target_platform} -%if %{build_cloog} -mkdir isl-build isl-install -%ifarch s390 s390x -ISL_FLAG_PIC=-fPIC -%else -ISL_FLAG_PIC=-fpic -%endif -cd isl-build -../../isl-%{isl_version}/configure --disable-shared \ - CC=/usr/bin/gcc CXX=/usr/bin/g++ \ - CFLAGS="${CFLAGS:-%optflags} $ISL_FLAG_PIC" --prefix=`cd ..; pwd`/isl-install -make %{?_smp_mflags} -make install -cd .. - -mkdir cloog-build cloog-install -cd cloog-build -cat >> ../../cloog-%{cloog_version}/source/isl/constraints.c << \EOF -#include -static void __attribute__((used)) *s1 = (void *) isl_union_map_compute_flow; -static void __attribute__((used)) *s2 = (void *) isl_map_dump; -EOF -sed -i 's|libcloog|libgcc49privatecloog|g' \ - ../../cloog-%{cloog_version}/{,test/}Makefile.{am,in} -isl_prefix=`cd ../isl-install; pwd` \ -../../cloog-%{cloog_version}/configure --with-isl=system \ - --with-isl-prefix=`cd ../isl-install; pwd` \ - CC=/usr/bin/gcc CXX=/usr/bin/g++ \ - CFLAGS="${CFLAGS:-%optflags}" CXXFLAGS="${CXXFLAGS:-%optflags}" \ - --prefix=`cd ..; pwd`/cloog-install -sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool -sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool -make %{?_smp_mflags} -make %{?_smp_mflags} install -cd ../cloog-install/lib -rm libgcc49privatecloog-isl.so{,.4} -mv libgcc49privatecloog-isl.so.4.0.0 libcloog-isl.so.4 -ln -sf libcloog-isl.so.4 libcloog-isl.so -ln -sf libcloog-isl.so.4 libcloog.so -cd ../.. -%endif - CC=gcc +CXX=g++ OPT_FLAGS=`echo %{optflags}|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[12]//g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-m64//g;s/-m32//g;s/-m31//g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mfpmath=sse/-mfpmath=sse -msse2/g'` @@ -894,24 +904,6 @@ OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mcpu=ultrasparc/-mtune=ultrasparc/g;s/-mcp %ifarch %{ix86} OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-march=i.86//g'` %endif -%ifarch sparc64 -cat > gcc64 <<"EOF" -#!/bin/sh -exec /usr/bin/gcc -m64 "$@" -EOF -chmod +x gcc64 -CC=`pwd`/gcc64 -%endif -%ifarch ppc64 ppc64le ppc64p7 -if gcc -m64 -xc -S /dev/null -o - > /dev/null 2>&1; then - cat > gcc64 <<"EOF" -#!/bin/sh -exec /usr/bin/gcc -m64 "$@" -EOF - chmod +x gcc64 - CC=`pwd`/gcc64 -fi -%endif OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e 's/[[:blank:]]\+/ /g'` case "$OPT_FLAGS" in *-fasynchronous-unwind-tables*) @@ -927,12 +919,9 @@ enablelada=,ada %if %{build_go} enablelgo=,go %endif -CC="$CC" CFLAGS="$OPT_FLAGS" \ - CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \ - | sed 's/ -Werror=format-security / -Wformat -Werror=format-security /'`" \ - XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" GCJFLAGS="$OPT_FLAGS" \ - ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ - --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap \ +CONFIGURE_OPTS="\ + --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ + --with-bugurl=http://bugzilla.redhat.com/bugzilla \ --enable-shared --enable-threads=posix --enable-checking=release \ %ifarch ppc64le --disable-multilib \ @@ -941,13 +930,15 @@ CC="$CC" CFLAGS="$OPT_FLAGS" \ %endif --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \ --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu \ - --enable-languages=c,c++,objc,obj-c++,fortran${enablelada}${enablelgo},lto \ --enable-plugin --enable-initfini-array \ --disable-libgcj \ -%if %{build_cloog} - --with-isl=`pwd`/isl-install --with-cloog=`pwd`/cloog-install \ +%if 0%{fedora} >= 21 && 0%{fedora} <= 22 + --with-default-libstdcxx-abi=c++98 \ +%endif +%if %{build_isl} + --with-isl \ %else - --without-isl --without-cloog \ + --without-isl \ %endif %if 0%{?fedora} >= 21 || 0%{?rhel} >= 7 %if %{attr_ifunc} @@ -972,7 +963,7 @@ CC="$CC" CFLAGS="$OPT_FLAGS" \ %ifarch sparc sparcv9 --host=%{gcc_target_platform} --build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=v7 %endif -%ifarch ppc ppc64 ppc64le ppc64p7 +%ifarch ppc ppc64 ppc64p7 %if 0%{?rhel} >= 7 --with-cpu-32=power7 --with-tune-32=power7 --with-cpu-64=power7 --with-tune-64=power7 \ %endif @@ -980,6 +971,14 @@ CC="$CC" CFLAGS="$OPT_FLAGS" \ --with-cpu-32=power4 --with-tune-32=power6 --with-cpu-64=power4 --with-tune-64=power6 \ %endif %endif +%ifarch ppc64le +%if 0%{?rhel} >= 7 + --with-cpu-32=power8 --with-tune-32=power8 --with-cpu-64=power8 --with-tune-64=power8 \ +%endif +%if 0%{?fedora} > 21 && 0%{?fedora} < 24 + --with-cpu-32=power7 --with-tune-32=power8 --with-cpu-64=power7 --with-tune-64=power8 \ +%endif +%endif %ifarch ppc --build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=default32 %endif @@ -1009,22 +1008,52 @@ CC="$CC" CFLAGS="$OPT_FLAGS" \ %endif %endif %ifarch armv7hl - --with-cpu=cortex-a8 --with-tune=cortex-a8 --with-arch=armv7-a \ + --with-tune=cortex-a8 --with-arch=armv7-a \ --with-float=hard --with-fpu=vfpv3-d16 --with-abi=aapcs-linux \ %endif %ifnarch sparc sparcv9 ppc - --build=%{gcc_target_platform} + --build=%{gcc_target_platform} \ %endif + " -%ifarch %{arm} sparc sparcv9 sparc64 -GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap +CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \ + CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \ + | sed 's/ -Werror=format-security / -Wformat -Werror=format-security /'`" \ + XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \ + ../configure --enable-bootstrap \ + --enable-languages=c,c++,objc,obj-c++,fortran${enablelada}${enablelgo},lto \ + $CONFIGURE_OPTS + +%ifarch sparc sparcv9 sparc64 aarch64 +make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap %else -GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" profiledbootstrap +make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" profiledbootstrap %endif -%if %{build_cloog} -cp -a cloog-install/lib/libcloog-isl.so.4 gcc/ -%endif +CC="`%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-cc`" +CXX="`%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-cxx` `%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-includes`" + +# Build libgccjit separately, so that normal compiler binaries aren't -fpic +# unnecessarily. +mkdir objlibgccjit +cd objlibgccjit +CC="$CC" CXX="$CXX" CFLAGS="`echo $OPT_FLAGS | sed 's/-Werror=format-security//'`" \ + CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \ + | sed 's/-Werror=format-security//'`" \ + XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \ + ../../configure --disable-bootstrap --enable-host-shared \ + --enable-languages=jit $CONFIGURE_OPTS +make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" all-gcc +cp -a gcc/libgccjit.so* ../gcc/ +cd ../gcc/ +ln -sf xgcc %{gcc_target_platform}-gcc-%{version} +cp -a Makefile{,.orig} +sed -i -e '/^CHECK_TARGETS/s/$/ check-jit/' Makefile +touch -r Makefile.orig Makefile +rm Makefile.orig +make jit.sphinx.html +make jit.sphinx.install-html jit_htmldir=`pwd`/../../rpm.doc/libgccjit-devel/html +cd .. # Make generated man pages even if Pod::Man is not new enough perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl @@ -1046,9 +1075,9 @@ cd ../.. cd .. mkdir -p rpm.doc/gfortran rpm.doc/objc mkdir -p rpm.doc/go rpm.doc/libgo rpm.doc/libquadmath rpm.doc/libitm -mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libgomp,libatomic,libsanitizer,libcilkrts} +mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/java,gcc/ada,gcc/jit,libstdc++-v3,libobjc,libgomp,libcc1,libatomic,libsanitizer,libcilkrts} -for i in {gcc,gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libgomp,libatomic,libsanitizer,libcilkrts}/ChangeLog*; do +for i in {gcc,gcc/cp,gcc/java,gcc/ada,gcc/jit,libstdc++-v3,libobjc,libgomp,libcc1,libatomic,libsanitizer,libcilkrts}/ChangeLog*; do cp -p $i rpm.doc/changelogs/$i done @@ -1102,10 +1131,6 @@ chmod 644 %{buildroot}%{_infodir}/gnat* FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version} -%if %{build_cloog} -cp -a cloog-install/lib/libcloog-isl.so.4 $FULLPATH/ -%endif - # fix some things ln -sf gcc %{buildroot}%{_prefix}/bin/cc rm -f %{buildroot}%{_prefix}/lib/cpp @@ -1115,6 +1140,13 @@ rm -f %{buildroot}%{_infodir}/dir gzip -9 %{buildroot}%{_infodir}/*.info* ln -sf gcc %{buildroot}%{_prefix}/bin/gnatgcc +%if %{build_go} +mv %{buildroot}%{_prefix}/bin/go{,.gcc} +mv %{buildroot}%{_prefix}/bin/gofmt{,.gcc} +ln -sf /etc/alternatives/go %{buildroot}%{_prefix}/bin/go +ln -sf /etc/alternatives/gofmt %{buildroot}%{_prefix}/bin/gofmt +%endif + cxxconfig="`find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h`" for i in `find %{gcc_target_platform}/[36]*/libstdc++-v3/include -name c++config.h 2>/dev/null`; do if ! diff -up $cxxconfig $i; then @@ -1265,6 +1297,12 @@ done touch -r hook.in %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc++*gdb.py popd +rm -f $FULLEPATH/libgccjit.so +cp -a objlibgccjit/gcc/libgccjit.so* %{buildroot}%{_prefix}/%{_lib}/ +cp -a ../gcc/jit/libgccjit*.h %{buildroot}%{_prefix}/include/ +/usr/bin/install -c -m 644 objlibgccjit/gcc/doc/libgccjit.info %{buildroot}/%{_infodir}/ +gzip -9 %{buildroot}/%{_infodir}/libgccjit.info + pushd $FULLPATH if [ "%{_lib}" = "lib" ]; then ln -sf ../../../libobjc.so.4 libobjc.so @@ -1272,7 +1310,7 @@ ln -sf ../../../libstdc++.so.6.*[0-9] libstdc++.so ln -sf ../../../libgfortran.so.3.* libgfortran.so ln -sf ../../../libgomp.so.1.* libgomp.so %if %{build_go} -ln -sf ../../../libgo.so.5.* libgo.so +ln -sf ../../../libgo.so.7.* libgo.so %endif %if %{build_libquadmath} ln -sf ../../../libquadmath.so.0.* libquadmath.so @@ -1284,7 +1322,7 @@ ln -sf ../../../libitm.so.1.* libitm.so ln -sf ../../../libatomic.so.1.* libatomic.so %endif %if %{build_libasan} -ln -sf ../../../libasan.so.1.* libasan.so +ln -sf ../../../libasan.so.2.* libasan.so mv ../../../libasan_preinit.o libasan_preinit.o %endif %if %{build_libubsan} @@ -1299,7 +1337,7 @@ ln -sf ../../../../%{_lib}/libstdc++.so.6.*[0-9] libstdc++.so ln -sf ../../../../%{_lib}/libgfortran.so.3.* libgfortran.so ln -sf ../../../../%{_lib}/libgomp.so.1.* libgomp.so %if %{build_go} -ln -sf ../../../../%{_lib}/libgo.so.5.* libgo.so +ln -sf ../../../../%{_lib}/libgo.so.7.* libgo.so %endif %if %{build_libquadmath} ln -sf ../../../../%{_lib}/libquadmath.so.0.* libquadmath.so @@ -1311,7 +1349,7 @@ ln -sf ../../../../%{_lib}/libitm.so.1.* libitm.so ln -sf ../../../../%{_lib}/libatomic.so.1.* libatomic.so %endif %if %{build_libasan} -ln -sf ../../../../%{_lib}/libasan.so.1.* libasan.so +ln -sf ../../../../%{_lib}/libasan.so.2.* libasan.so mv ../../../../%{_lib}/libasan_preinit.o libasan_preinit.o %endif %if %{build_libubsan} @@ -1375,28 +1413,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-4.9.so +ln -sf ../../../../../libgnarl-*.so libgnarl-5.so ln -sf ../../../../../libgnat-*.so libgnat.so -ln -sf ../../../../../libgnat-*.so libgnat-4.9.so +ln -sf ../../../../../libgnat-*.so libgnat-5.so else ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl.so -ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl-4.9.so +ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl-5.so ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat.so -ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat-4.9.so +ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat-5.so fi popd else pushd $FULLPATH/adalib if [ "%{_lib}" = "lib" ]; then ln -sf ../../../../libgnarl-*.so libgnarl.so -ln -sf ../../../../libgnarl-*.so libgnarl-4.9.so +ln -sf ../../../../libgnarl-*.so libgnarl-5.so ln -sf ../../../../libgnat-*.so libgnat.so -ln -sf ../../../../libgnat-*.so libgnat-4.9.so +ln -sf ../../../../libgnat-*.so libgnat-5.so else ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl.so -ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-4.9.so +ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-5.so ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat.so -ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-4.9.so +ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-5.so fi popd fi @@ -1409,8 +1447,8 @@ ln -sf ../`echo ../../../../lib/libgfortran.so.3.* | 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.5.* | sed 's,^.*libg,libg,'`' )' > libgo.so -echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgo.so.5.* | sed 's,^.*libg,libg,'`' )' > 64/libgo.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgo.so.7.* | sed 's,^.*libg,libg,'`' )' > libgo.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgo.so.7.* | sed 's,^.*libg,libg,'`' )' > 64/libgo.so %endif %if %{build_libquadmath} rm -f libquadmath.so @@ -1429,8 +1467,8 @@ echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libatomic.so.1.* | sed 's, %endif %if %{build_libasan} rm -f libasan.so -echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libasan.so.1.* | sed 's,^.*liba,liba,'`' )' > libasan.so -echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libasan.so.1.* | sed 's,^.*liba,liba,'`' )' > 64/libasan.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libasan.so.2.* | sed 's,^.*liba,liba,'`' )' > libasan.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libasan.so.2.* | sed 's,^.*liba,liba,'`' )' > 64/libasan.so mv ../../../../lib64/libasan_preinit.o 64/libasan_preinit.o %endif %if %{build_libubsan} @@ -1496,8 +1534,8 @@ ln -sf ../`echo ../../../../lib64/libgfortran.so.3.* | 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.5.* | sed 's,^.*libg,libg,'`' )' > libgo.so -echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgo.so.5.* | sed 's,^.*libg,libg,'`' )' > 32/libgo.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgo.so.7.* | sed 's,^.*libg,libg,'`' )' > libgo.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgo.so.7.* | sed 's,^.*libg,libg,'`' )' > 32/libgo.so %endif %if %{build_libquadmath} rm -f libquadmath.so @@ -1516,8 +1554,8 @@ echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libatomic.so.1.* | sed 's, %endif %if %{build_libasan} rm -f libasan.so -echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libasan.so.1.* | sed 's,^.*liba,liba,'`' )' > libasan.so -echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libasan.so.1.* | sed 's,^.*liba,liba,'`' )' > 32/libasan.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libasan.so.2.* | sed 's,^.*liba,liba,'`' )' > libasan.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libasan.so.2.* | sed 's,^.*liba,liba,'`' )' > 32/libasan.so mv ../../../../lib/libasan_preinit.o 32/libasan_preinit.o %endif %if %{build_libubsan} @@ -1615,11 +1653,13 @@ 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 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 libcilkrts.a \) \ + -o -name libubsan.a -o -name liblsan.a -o -name libcilkrts.a \ + -o -name libcc1.a \) \ -a -type f` popd chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.3.* chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgomp.so.1.* +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libcc1.so.0.* %if %{build_libquadmath} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libquadmath.so.0.* %endif @@ -1630,7 +1670,7 @@ chmod 755 %{buildroot}%{_prefix}/%{_lib}/libitm.so.1.* chmod 755 %{buildroot}%{_prefix}/%{_lib}/libatomic.so.1.* %endif %if %{build_libasan} -chmod 755 %{buildroot}%{_prefix}/%{_lib}/libasan.so.1.* +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libasan.so.2.* %endif %if %{build_libubsan} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libubsan.so.0.* @@ -1645,7 +1685,7 @@ chmod 755 %{buildroot}%{_prefix}/%{_lib}/libtsan.so.0.* chmod 755 %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.* %endif %if %{build_go} -chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgo.so.5.* +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgo.so.7.* %endif chmod 755 %{buildroot}%{_prefix}/%{_lib}/libobjc.so.4.* @@ -1702,7 +1742,6 @@ 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}-gcc-%{version} || : rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gfortran || : rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gccgo || : rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gcj || : @@ -1817,6 +1856,16 @@ if [ $1 = 0 -a -f %{_infodir}/gnat_rm.info.gz ]; then --info-dir=%{_infodir} %{_infodir}/gnat-style.info.gz || : fi +%post go +%{_sbindir}/update-alternatives --install \ + %{_prefix}/bin/go go %{_prefix}/bin/go.gcc 92 \ + --slave %{_prefix}/bin/gofmt gofmt %{_prefix}/bin/gofmt.gcc + +%preun go +if [ $1 = 0 ]; then + %{_sbindir}/update-alternatives --remove go %{_prefix}/bin/go.gcc +fi + # Because glibc Prereq's libgcc and /sbin/ldconfig # comes from glibc, it might not exist yet when # libgcc is installed @@ -1871,6 +1920,26 @@ fi %postun -n libgomp -p /sbin/ldconfig +%post gdb-plugin -p /sbin/ldconfig + +%postun gdb-plugin -p /sbin/ldconfig + +%post -n libgccjit -p /sbin/ldconfig + +%postun -n libgccjit -p /sbin/ldconfig + +%post -n libgccjit-devel +if [ -f %{_infodir}/libgccjit.info.gz ]; then + /sbin/install-info \ + --info-dir=%{_infodir} %{_infodir}/libgccjit.info.gz || : +fi + +%preun -n libgccjit-devel +if [ $1 = 0 -a -f %{_infodir}/libgccjit.info.gz ]; then + /sbin/install-info --delete \ + --info-dir=%{_infodir} %{_infodir}/libgccjit.info.gz || : +fi + %post -n libquadmath /sbin/ldconfig if [ -f %{_infodir}/libquadmath.info.gz ]; then @@ -1936,6 +2005,7 @@ fi %{_prefix}/bin/c99 %{_prefix}/bin/gcc %{_prefix}/bin/gcov +%{_prefix}/bin/gcov-tool %{_prefix}/bin/gcc-ar %{_prefix}/bin/gcc-nm %{_prefix}/bin/gcc-ranlib @@ -1949,6 +2019,7 @@ fi %{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc %endif %{_prefix}/bin/%{gcc_target_platform}-gcc +%{_prefix}/bin/%{gcc_target_platform}-gcc-%{version} %{_mandir}/man1/gcc.1* %{_mandir}/man1/gcov.1* %{_infodir}/gcc* @@ -1974,6 +2045,7 @@ fi %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/syslimits.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/unwind.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/omp.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/openacc.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdint.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdint-gcc.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdalign.h @@ -2022,6 +2094,20 @@ fi %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mm3dnow.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/cpuid.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/cross-stdarg.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/avx512bwintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/avx512dqintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/avx512ifmaintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/avx512ifmavlintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/avx512vbmiintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/avx512vbmivlintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/avx512vlbwintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/avx512vldqintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/avx512vlintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/clflushoptintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/clwbintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/pcommitintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/xsavecintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/xsavesintrin.h %endif %ifarch ia64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ia64intrin.h @@ -2042,9 +2128,11 @@ fi %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/unwind-arm-common.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/arm_neon.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/arm_acle.h %endif %ifarch aarch64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/arm_neon.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/arm_acle.h %endif %ifarch sparc sparcv9 sparc64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/visintrin.h @@ -2076,9 +2164,6 @@ fi %if %{build_libasan} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsanitizer.spec %endif -%if %{build_cloog} -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libcloog-isl.so.* -%endif %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/crt*.o @@ -2370,6 +2455,13 @@ fi %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.f90 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.mod %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib_kinds.mod +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/openacc.f90 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/openacc.mod +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/openacc_kinds.mod +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/openacc_lib.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/ieee_arithmetic.mod +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/ieee_exceptions.mod +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/ieee_features.mod %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/f951 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortran.spec %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortranbegin.a @@ -2384,6 +2476,7 @@ fi %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libcaf_single.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgfortran.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgfortran.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/finclude %endif %ifarch %{multilib_64_archs} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32 @@ -2391,6 +2484,7 @@ fi %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libcaf_single.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortran.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortran.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/finclude %endif %doc rpm.doc/gfortran/* @@ -2502,6 +2596,7 @@ fi %files -n libgomp %defattr(-,root,root,-) %{_prefix}/%{_lib}/libgomp.so.1* +%{_prefix}/%{_lib}/libgomp-plugin-host_nonshm.so.1* %{_infodir}/libgomp.info* %doc rpm.doc/changelogs/libgomp/ChangeLog* @@ -2608,7 +2703,7 @@ fi %if %{build_libasan} %files -n libasan %defattr(-,root,root,-) -%{_prefix}/%{_lib}/libasan.so.1* +%{_prefix}/%{_lib}/libasan.so.2* %files -n libasan-static %defattr(-,root,root,-) @@ -2716,8 +2811,14 @@ fi %if %{build_go} %files go %defattr(-,root,root,-) +%ghost %{_prefix}/bin/go +%{_prefix}/bin/go.gcc %{_prefix}/bin/gccgo +%ghost %{_prefix}/bin/gofmt +%{_prefix}/bin/gofmt.gcc %{_mandir}/man1/gccgo.1* +%{_mandir}/man1/go.1* +%{_mandir}/man1/gofmt.1* %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} @@ -2725,6 +2826,7 @@ fi %dir %{_prefix}/libexec/gcc/%{gcc_target_platform} %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version} %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/go1 +%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cgo %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgo.so @@ -2748,7 +2850,7 @@ fi %files -n libgo %defattr(-,root,root,-) -%{_prefix}/%{_lib}/libgo.so.5* +%{_prefix}/%{_lib}/libgo.so.7* %doc rpm.doc/libgo/* %files -n libgo-devel @@ -2797,420 +2899,42 @@ fi %endif %endif +%files -n libgccjit +%defattr(-,root,root,-) +%{_prefix}/%{_lib}/libgccjit.so.* +%doc rpm.doc/changelogs/gcc/jit/ChangeLog* + +%files -n libgccjit-devel +%defattr(-,root,root,-) +%{_prefix}/%{_lib}/libgccjit.so +%{_prefix}/include/libgccjit*.h +%{_infodir}/libgccjit.info* +%doc rpm.doc/libgccjit-devel/* +%doc gcc/jit/docs/examples + %files plugin-devel %defattr(-,root,root,-) %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/gtype.state +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include %dir %{_prefix}/libexec/gcc %dir %{_prefix}/libexec/gcc/%{gcc_target_platform} %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version} %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin +%files gdb-plugin +%defattr(-,root,root,-) +%{_prefix}/%{_lib}/libcc1.so* +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/libcc1plugin.so* +%doc rpm.doc/changelogs/libcc1/ChangeLog* + %changelog -* Thu Jan 8 2015 Jakub Jelinek 4.9.2-5 -- don't remove tablejumps in rtl_tidy_fallthru_edge (#1136939, - PR rtl-optimization/64536) - -* Wed Jan 7 2015 Jakub Jelinek 4.9.2-4 -- update from the 4.9 branch - - PRs ada/64492, c++/38958, c++/60955, c++/63657, c++/63658, c++/64029, - c++/64251, c++/64297, c++/64352, c++/64487, fortran/64244, - libstdc++/64302, libstdc++/64303, rtl-optimization/64010, - target/64409, target/64507 -- backport -mskip-rax-setup support from trunk -- fix -fsanitize=float-cast-overflow (PR sanitizer/64344) -- fix handling of fortran components vs. cray pointers (#1134560, - PR fortran/62174) -- package libcilkrts.spec (#1173905) - -* Wed Dec 17 2014 Jakub Jelinek 4.9.2-3 -- update from the 4.9 branch - - PRs libstdc++/64239, sanitizer/64265, target/64200, - tree-optimization/63551, tree-optimization/64269 -- fix up SANITIZE_* enum values, so that -fsanitize=bool is independent - from -fsanitize=float-divide-by-zero and -fsanitize=enum is independent - from -fsanitize=float-cast-overflow (#1173185) -- fix -fsanitize=float-cast-overflow in C (#1173185, PR sanitizer/64289) -- fix -fsanitize=thread (PR sanitizer/64336) -- fix up Fortran DATA error recovery (#1115207, PR fortran/61669) - -* Fri Dec 12 2014 Jakub Jelinek 4.9.2-2 -- update from the 4.9 branch - - PRs ada/42978, ada/47500, bootstrap/63703, bootstrap/64213, c++/56493, - c++/63265, c++/63849, c/52769, c/59708, fortran/63938, ipa/63551, - ipa/63838, ipa/64153, libstdc++/61947, libstdc++/63497, - libstdc++/63840, libstdc++/64103, libstdc++/64140, libstdc++/64203, - middle-end/63665, middle-end/63738, middle-end/63762, - middle-end/64067, middle-end/64111, middle-end/64225, - preprocessor/60436, rtl-optimization/63475, rtl-optimization/63483, - rtl-optimization/64037, sanitizer/63913, target/50751, target/51244, - target/53976, target/55351, target/56846, target/59593, target/60111, - target/61535, target/63538, target/63661, target/63673, target/63783, - target/63947, target/64108, target/64113, target/64115, - testsuite/63305, tree-optimization/61686, tree-optimization/61750, - tree-optimization/61927, tree-optimization/62021, - tree-optimization/62167, tree-optimization/62238, - tree-optimization/63605, tree-optimization/63738, - tree-optimization/63841, tree-optimization/63915, - tree-optimization/64191 - -* Sat Nov 1 2014 Jakub Jelinek 4.9.2-1 -- update from the 4.9 branch - - GCC 4.9.2 release - - PRs sanitizer/63638, sanitizer/63697, tree-optimization/63530 -- handle REG_EQ* notes in REE (PR rtl-optimization/63659) -- include asan/lsan sanitizer/ includes - -* Fri Oct 24 2014 Jakub Jelinek 4.9.1-13 -- update from the 4.9 branch - - PRs bootstrap/63632, libfortran/63589, libstdc++/63500, - lto/63603, tree-optimization/63563 -- backport -f{,no-}sanitize-recover= support from the trunk -- backport var-tracking fix (#1151226, PR debug/63623) - -* Fri Oct 17 2014 Jakub Jelinek 4.9.1-12 -- update from the 4.9 branch - - PRs ada/63225, c++/63306, c++/63405, c++/63415, c++/63437, c++/63455, - c/63495, debug/63342, fortran/59488, ipa/61144, ipa/62121, - libgfortran/63460, libgomp/61200, libstdc++/57440, libstdc++/59603, - libstdc++/63199, libstdc++/63449, libstdc++/63456, lto/62026, - regression/61510, rtl-optimization/57003, rtl-optimization/63448, - sanitizer/61100, sanitizer/61530, sanitizer/61547, sanitizer/61897, - sanitizer/62089, sanitizer/62140, target/52941, target/63428, - tree-optimization/61969, tree-optimization/62031, - tree-optimization/63302, tree-optimization/63375, - tree-optimization/63379, tree-optimization/63380 - - initial -fsanitize=kernel-address support - -* Tue Sep 30 2014 Jakub Jelinek 4.9.1-11 -- update from the 4.9 branch - - PRs c++/61465, c++/62219, c++/63249, inline-asm/63282, middle-end/63247, - plugins/63410, sanitizer/61272, target/49423, target/61407, - target/62218, target/63335, tree-optimization/63341 -- avoid fnsplit if there are forced labels accessed in between the partitions - (#1106758, PR tree-optimization/63186) - -* Mon Sep 22 2014 Jakub Jelinek 4.9.1-10 -- update from the 4.9 branch - - PRs c++/62017, c++/63241, c++/63248, debug/63284, debug/63328, ipa/61654, - target/61853, testsuite/63292 -- fix scheduler -fcompare-debug issue (#1140872, PR debug/63285) - -* Fri Sep 12 2014 Jakub Jelinek 4.9.1-9 -- update from the 4.9 branch - - PRs c++/58624, c++/61214, c++/61659, c++/62129, c++/62224, c++/62659, - c++/63139, c/61271, c/62294, fortran/62106, fortran/62142, - fortran/62214, fortran/62215, fortran/62270, ipa/60449, ipa/61986, - ipa/62015, libgfortran/62188, libstdc++/62264, libstdc++/63219, - middle-end/61776, other/62008, other/62248, rtl-optimization/61672, - rtl-optimization/62004, rtl-optimization/62030, - rtl-optimization/62079, rtl-optimization/62146, target/61641, - target/61996, target/62011, target/62038, target/62040, target/62111, - target/62195, target/62261, target/62262, target/62312, target/63209, - target/63223, target/63228, testsuite/56194, tree-optimization/60196, - tree-optimization/62075, tree-optimization/62091, - tree-optimization/62175, tree-optimization/63189 -- fix s390{,x} return address handling in epilogues (#1131899, - PR target/62662) - -* Fri Aug 15 2014 Jakub Jelinek 4.9.1-8 -- update from the 4.9 branch - - PRs fortran/62076, fortran/62107, lto/62032, middle-end/62092, - target/61713 -- allow elements/components of allocatables in !$omp atomic - (PR fortran/62131) -- require/build require >= 2.24 binutils - -* Thu Aug 14 2014 Jakub Jelinek 4.9.1-7 -- fix up scheduler deps handling fix (PR target/62025) -- vectorization fix (PR tree-optimization/62073) - -* Wed Aug 13 2014 Jakub Jelinek 4.9.1-6 -- update from the 4.9 branch - - PRs c++/58714, c++/60872, c++/61959, c++/61994, fortran/61999, - libstdc++/61667, other/61962, tree-optimization/60707 - - fix scheduler deps handling of inc with clobbers vs. mem user (#1126463, - PR target/62025) -- optimize slightly aarch64 unwind info -- backport arm vcvtf2i fix from trunk (PR target/62098) -- backport fold_ctor_reference big-endian fix (PR middle-end/62103) - -* Thu Aug 7 2014 Jakub Jelinek 4.9.1-5 -- update from the 4.9 branch - - PRs debug/61923, libstdc++/58962, libstdc++/61374, libstdc++/61390, - libstdc++/61946, middle-end/61455, other/61963, target/60102, - tree-optimization/61320, tree-optimization/61375 - -* Fri Aug 1 2014 Jakub Jelinek 4.9.1-3 -- update from the 4.9 branch - - PRs fortran/61780, libobjc/61920, libstdc++/60037, target/47230, - target/61656, target/61662, target/61794, target/61844, - target/61855, tree-optimization/61964 - - fix libgfortran overflows on allocation (CVE-2014-5044) -- backport -fsanitize=alignment support from the trunk - -* Thu Jul 24 2014 Dan Horák 4.9.1-2.1 -- fix a LRA inheritance bug (#1117799) - -* Thu Jul 17 2014 Jakub Jelinek 4.9.1-2 -- update from the 4.9 branch - - PRs c-family/61741, rtl-optimization/61801, target/61737, - tree-optimization/61779 - -* Wed Jul 16 2014 Jakub Jelinek 4.9.1-1 -- update from the 4.9 branch - - GCC 4.9.1 release - - PRs c++/58155, c++/58636, c++/61661, fortran/41936, fortran/58883, - fortran/61459, libgfortran/61640, middle-end/53590, - middle-end/61654, target/59843, target/61062, target/61544, - tree-optimization/61680, tree-optimization/61681, - tree-optimization/61684, tree-optimization/61725 -- enable libitm on aarch64 -- emit .note.GNU-stack on aarch64 (#1119885) -- small -fsanitize=bounds fix from the trunk - -* Sat Jul 12 2014 Tom Callaway 4.9.0-15 -- fix license handling - -* Wed Jul 2 2014 Jakub Jelinek 4.9.0-14 -- update from the 4.9 branch - - OpenMP 4.0 Fortran support - - PRs c++/51253, c++/58704, c++/58753, c++/58781, c++/58930, c++/59867, - c++/60249, c++/61242, c++/61382, c++/61433, c++/61488, c++/61500, - c++/61537, c++/61539, c++/61566, c++/61614, c++/61647, fortran/60127, - fortran/60928, libgfortran/61499, middle-end/57541, target/61503, - target/61542, target/61586, target/61633, tree-optimization/57233, - tree-optimization/61299, tree-optimization/61306 -- fix combiner on s390 (#1102324, PR rtl-optimization/61673) -- some -fsanitize=undefined fixes from the trunk - -* Wed Jun 25 2014 Jakub Jelinek 4.9.0-13 -- update from the 4.9 branch - - PRs bootstrap/61583, c++/61556, ipa/61211, ipa/61540, libstdc++/61532, - target/61570 -- backport -fsanitize=bounds support from the trunk - -* Thu Jun 19 2014 Jakub Jelinek 4.9.0-12 -- update from the 4.9 branch - - PRs c++/59296, c++/60605, c++/61507, debug/57519 - -* Wed Jun 18 2014 Kyle McMartin 4.9.0-11 -- avoid applying patch 16 twice - -* Wed Jun 18 2014 Richard Henderson -- import fix for PR target/61545 from the 4.9 branch - -* Tue Jun 17 2014 Jakub Jelinek 4.9.0-10 -- update from the 4.9 branch - - PRs fortran/45187, ipa/61186, libstdc++/60326, libstdc++/61269, - rtl-optimization/61094, rtl-optimization/61446, target/61415, - target/61423, target/61483 - -* Thu Jun 12 2014 Jakub Jelinek 4.9.0-9 -- update from the 4.9 branch - - PRs c++/61343, fortran/61406, fortran/61418, ipa/61393, - libfortran/61173, middle-end/61456, middle-end/61486, - target/61300, target/61431, target/61443, tree-optimization/61452 - - fix up jump threading (#1094975, PR tree-optimization/61289) -- include vxworks-dummy.h in arm gcc-plugin-devel (PR plugins/45078) - -* Thu Jun 5 2014 Jakub Jelinek 4.9.0-8 -- enable ada on arm - -* Wed Jun 4 2014 Jakub Jelinek 4.9.0-7 -- update from the 4.9 branch - - PRs c++/61020, c++/61134, c/58942, c/61053, ipa/61160, libstdc++/60734, - libstdc++/61227, rtl-optimization/60866, rtl-optimization/60901, - target/61239, tree-optimization/61383 - -* Thu May 29 2014 Jakub Jelinek 4.9.0-6 -- update from the 4.9 branch - - PRs bootstrap/60984, c++/60189, c/60189, c/61191, fortran/60834, - libfortran/61310, libgcc/61152, libstdc++/61143, libstdc++/61329, - lto/60820, lto/61012, middle-end/58094, middle-end/61010, - middle-end/61045, middle-end/61252, rtl-optimization/61215, - rtl-optimization/61325, target/61044, target/61202, target/61208, - target/61231, target/61249, target/61271, tree-optimization/60979 -- backport -fsanitize=float-cast-overflow support from trunk - -* Sun May 18 2014 Jakub Jelinek 4.9.0-5 -- update from the 4.9 branch - - PRs debug/61013, ipa/60854, ipa/60897, ipa/61085, libfortran/61187, - libgcc/61097, libstdc++/60966, lto/60981, rtl-optimization/60969, - target/60969, target/61193, tree-optimization/61158 - -* Wed May 14 2014 Jakub Jelinek 4.9.0-4 -- update from the 4.9 branch - - PRs c++/60019, c++/60999, c++/61083, c++/61151, driver/61106, ipa/60973, - libfortran/61049, libstdc++/60594, libstdc++/61023, libstdc++/61086, - libstdc++/61117, target/59952, target/60991, target/61055, - target/61060, target/61092, tree-optimization/57864, - tree-optimization/60902, tree-optimization/61009 -- obsolete gcc-java and libjava*, remove all traces of build_java from the - spec file (#1096474, #1095513) -- backport -fsanitize=float-divide-by-zero support from trunk - -* Tue May 6 2014 Jakub Jelinek 4.9.0-3 -- update from the 4.9 branch - - PRs driver/61065, ipa/60965 -- disable gcc-java and libjava, broken by recent eclipse-ecj changes - -* Mon May 5 2014 Jakub Jelinek 4.9.0-2 -- update from the 4.9 branch - - PRs c++/60951, c++/60980, c++/60992, fortran/60495, ipa/60911, ipa/60912, - libstdc++/59476, libstdc++/60497, libstdc++/60710, libstdc++/61036, - lto/60720, middle-end/60891, middle-end/60895, target/60909, - target/60941, target/61026, tree-optimization/60903, - tree-optimization/60930, tree-optimization/60960, - tree-optimization/60971 -- backport -fno-sanitize-recover and -fsanitize-undefined-trap-on-error - support from the trunk (PR sanitizer/60275) - -* Tue Apr 29 2014 Richard Henderson -- enable ada, go and libatomic on aarch64 - -* Tue Apr 22 2014 Jakub Jelinek 4.9.0-1 -- update from the 4.9 branch - - GCC 4.9.0 release - - PRs c/59073, c/60819, fortran/58085, fortran/60717, libfortran/60810, - middle-end/55022, middle-end/60281, middle-end/60467, - middle-end/60469, middle-end/60849, other/43620, other/60644, - target/60839, target/60847, target/60868, tree-optimization/59817, - tree-optimization/60453, tree-optimization/60823, - tree-optimization/60836, tree-optimization/60841, - tree-optimization/60844 - -* Fri Apr 11 2014 Jakub Jelinek 4.9.0-0.10 -- update from the trunk and 4.9 branch - - GCC 4.9.0-rc1 - - PRs ada/54040, ada/59346, c++/52844, ipa/60761, lto/60567, - middle-end/60556, middle-end/60797, other/59055, testsuite/60773 - - fix CSE with non-volatile inline asm with multiple results or - single result and clobbers (#1086332, PR rtl-optimization/60663) -- enable ppc64le in the spec file - -* Wed Apr 9 2014 Jakub Jelinek 4.9.0-0.9 -- update from the trunk - - PRs ada/60703, bootstrap/60620, bootstrap/60719, bootstrap/60743, - c++/21113, c++/44613, c++/44859, c++/58207, c++/59115, c++/60374, - c++/60573, c++/60626, c++/60642, c++/60708, c++/60713, c++/60731, - debug/55794, debug/60655, fortran/60191, ipa/59626, ipa/60640, - ipa/60659, ipa/60746, libstdc++/60270, middle-end/60706, - middle-end/60729, middle-end/60750, rtl-optimization/60155, - rtl-optimization/60604, rtl-optimization/60700, - rtl-optimization/60776, sanitizer/60745, target/43751, target/54083, - target/54407, target/60034, target/60363, target/60504, target/60602, - target/60609, target/60650, target/60657, target/60697, target/60704, - target/60735, target/60763, testsuite/60671, testsuite/60672, - tree-optimization/60505, tree-optimization/60656, - tree-optimization/60733, tree-optimization/60740, - tree-optimization/60766, tree-optimization/60785 - -* Fri Mar 28 2014 Jakub Jelinek 4.9.0-0.8 -- update from the trunk - - PRs c++/52369, c++/60331, c++/60375, c++/60566, c++/60574, c++/60627, - c++/60628, c++/60689, c/35449, c/37428, c/39525, c/50347, - fortran/34928, fortran/58880, fortran/60522, fortran/60677, ipa/60315, - ipa/60600, libstdc++/60612, libstdc++/60658, middle-end/60635, - middle-end/60682, other/59545, rtl-optimization/60452, - rtl-optimization/60501, rtl-optimization/60650, sanitizer/56781, - sanitizer/60636, target/60580, target/60672, target/60675, - target/60693, testsuite/58013 -- inliner speed fixes (PR ipa/60243) -- fortran wrong-code fix (PR fortran/60576) -- fix IPA-SRA with mismatched types between caller and callee - (PR middle-end/60647) -- fix expansion of switch with constant index not optimized during gimple - passes (PR target/60648) - -* Mon Mar 24 2014 Jakub Jelinek 4.9.0-0.7 -- update from the trunk - - PRs c++/60384, debug/60603, fortran/60599, ipa/59176, ipa/60419, - libstdc++/60587, libstdc++/60623, rtl-optimization/60601, - sanitizer/60613, target/60598, target/60610, tree-optimization/60577 - -* Thu Mar 20 2014 Jakub Jelinek 4.9.0-0.6 -- update from the trunk - - PRs ada/39172, c++/51474, c++/54250, c++/59571, c++/60305, c++/60332, - c++/60390, c++/60391, c++/60572, c/55383, fortran/55207, - fortran/60283, fortran/60543, fortran/60549, libfortran/48600, - libfortran/58324, libstdc++/60564, lto/59543, lto/60571, - middle-end/60534, middle-end/60553, middle-end/60597, other/60589, - rtl-optimization/56356, sanitizer/60535, sanitizer/60557, - sanitizer/60569, target/60039, target/60516, target/60562, - target/60563, target/60568, testsuite/58851, testsuite/60590, - tree-optimization/60559 - -* Sat Mar 15 2014 Jakub Jelinek 4.9.0-0.5 -- update from the trunk - - PRs ada/51483, ada/60411, bootstrap/58572, c++/53492, c++/58609, - c++/60033, c++/60254, c++/60367, c++/60383, c++/60389, c++/60393, - c++/60532, c/60197, debug/60438, fortran/51976, fortran/60392, - fortran/60447, ipa/58721, ipa/60457, libfortran/38199, - libfortran/60128, libgcc/59339, libgcc/60472, libgfortran/60128, - libstdc++/59392, libstdc++/60499, lto/60424, lto/60427, lto/60461, - middle-end/36282, middle-end/60418, middle-end/60445, - middle-end/60474, middle-end/60482, middle-end/60484, - middle-end/60518, rtl-optimization/57189, rtl-optimization/57320, - rtl-optimization/60508, target/58271, target/58595, target/59396, - target/60264, target/60486, target/60525, tree-optimization/59025, - tree-optimization/59779, tree-optimization/60429, - tree-optimization/60454, tree-optimization/60485, - tree-optimization/60502 - -* Thu Mar 6 2014 Jakub Jelinek 4.9.0-0.4 -- update from the trunk - - PRs c++/60361, c++/60409, debug/60381, testsuite/59308 - -* Wed Mar 5 2014 Jakub Jelinek 4.9.0-0.3 -- update from the trunk - - PRs bootstrap/48230, bootstrap/50927, bootstrap/52466, bootstrap/60343, - c++/11586, c++/14710, c++/50025, c++/54359, c++/54440, c++/55877, - c++/57132, c++/58170, c++/58606, c++/58610, c++/58678, c++/58835, - c++/58845, c++/58873, c++/59231, c++/59347, c++/60046, c++/60051, - c++/60052, c++/60053, c++/60064, c++/60065, c++/60108, c++/60146, - c++/60167, c++/60182, c++/60185, c++/60186, c++/60187, c++/60190, - c++/60215, c++/60216, c++/60219, c++/60222, c++/60224, c++/60225, - c++/60227, c++/60241, c++/60248, c++/60250, c++/60251, c++/60252, - c++/60253, c++/60267, c++/60272, c++/60311, c++/60312, c++/60314, - c++/60328, c++/60345, c++/60347, c++/60353, c++/60376, c++/60377, - c++/60379, c++/60415, c++/60417, c/37743, c/60195, debug/56563, - debug/57232, debug/59992, debug/60152, driver/60233, fortran/49397, - fortran/55907, fortran/59599, fortran/60231, fortran/60232, - fortran/60234, fortran/60236, fortran/60286, fortran/60302, - fortran/60341, fortran/60359, ipa/55260, ipa/58555, ipa/60150, - ipa/60243, ipa/60266, ipa/60306, ipa/60327, libfortran/58015, - libfortran/59313, libfortran/60148, libgcc/60166, libgcj/55637, - libjava/60261, libstdc++/58338, libstdc++/60308, lto/53808, lto/60179, - lto/60295, lto/60319, lto/60404, lto/60405, middle-end/58477, - middle-end/59223, middle-end/60147, middle-end/60175, - middle-end/60221, middle-end/60291, objc++/60398, objc/56870, - pch/60010, plugins/59335, preprocessor/58844, preprocessor/60400, - rtl-optimization/49847, rtl-optimization/52714, - rtl-optimization/58960, rtl-optimization/59535, - rtl-optimization/60131, rtl-optimization/60268, - rtl-optimization/60292, rtl-optimization/60317, sanitizer/60142, - target/46898, target/55426, target/57896, target/57935, target/57936, - target/58675, target/59222, target/59794, target/59799, target/60071, - target/60169, target/60193, target/60203, target/60204, target/60205, - target/60207, target/60280, target/60298, testsuite/60173, - tree-optimization/56490, tree-optimization/58028, - tree-optimization/60174, tree-optimization/60183, - tree-optimization/60276, tree-optimization/60382 -- configure with --enable-gnu-indirect-function on architectures - and distros that support it and don't support it by default - yet (#1067245) -- remove libgo P.224 elliptic curve (#1066539) - -* Thu Feb 13 2014 Jakub Jelinek 4.9.0-0.2 -- update from the trunk - - PRs bootstrap/59878, c++/60047, c/60101, debug/59776, fortran/52370, - libffi/60073, lto/59468, lto/60060, middle-end/59737, - middle-end/60092, rtl-optimization/60116, target/43546, target/49008, - target/59927, target/60137, target/60151, testsuite/58630 -- upgrade to newer cloog and isl - -* Tue Feb 11 2014 Jakub Jelinek 4.9.0-0.1 +* Fri Jan 23 2015 Jakub Jelinek 5.0.0-0.5 - new package diff --git a/gcc49-aarch64-unwind-opt.patch b/gcc49-aarch64-unwind-opt.patch deleted file mode 100644 index 3ad55ab..0000000 --- a/gcc49-aarch64-unwind-opt.patch +++ /dev/null @@ -1,338 +0,0 @@ -2014-08-08 Richard Henderson - - * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Add - cfi_ops argument, for restore put REG_CFA_RESTORE notes into - *cfi_ops rather than on individual insns. Cleanup. - (aarch64_save_or_restore_callee_save_registers): Likewise. - (aarch64_expand_prologue): Adjust caller. - (aarch64_expand_epilogue): Likewise. Cleanup. Emit queued cfi_ops - on the stack restore insn. - ---- gcc/config/aarch64/aarch64.c.jj 2014-07-08 17:38:17.398231989 +0200 -+++ gcc/config/aarch64/aarch64.c 2014-08-13 10:02:45.599757706 +0200 -@@ -1810,8 +1810,7 @@ aarch64_register_saved_on_entry (int reg - - static void - aarch64_save_or_restore_fprs (int start_offset, int increment, -- bool restore, rtx base_rtx) -- -+ bool restore, rtx base_rtx, rtx *cfi_ops) - { - unsigned regno; - unsigned regno2; -@@ -1819,16 +1818,16 @@ aarch64_save_or_restore_fprs (int start_ - rtx (*gen_mem_ref)(enum machine_mode, rtx) - = (frame_pointer_needed)? gen_frame_mem : gen_rtx_MEM; - -- - for (regno = V0_REGNUM; regno <= V31_REGNUM; regno++) - { - if (aarch64_register_saved_on_entry (regno)) - { -- rtx mem; -+ rtx mem, reg1; - mem = gen_mem_ref (DFmode, - plus_constant (Pmode, - base_rtx, - start_offset)); -+ reg1 = gen_rtx_REG (DFmode, regno); - - for (regno2 = regno + 1; - regno2 <= V31_REGNUM -@@ -1840,56 +1839,51 @@ aarch64_save_or_restore_fprs (int start_ - if (regno2 <= V31_REGNUM && - aarch64_register_saved_on_entry (regno2)) - { -- rtx mem2; -+ rtx mem2, reg2; - /* Next highest register to be saved. */ - mem2 = gen_mem_ref (DFmode, - plus_constant - (Pmode, - base_rtx, - start_offset + increment)); -+ reg2 = gen_rtx_REG (DFmode, regno2); -+ - if (restore == false) - { -- insn = emit_insn -- ( gen_store_pairdf (mem, gen_rtx_REG (DFmode, regno), -- mem2, gen_rtx_REG (DFmode, regno2))); -- -+ insn = emit_insn (gen_store_pairdf (mem, reg1, mem2, reg2)); -+ /* The first part of a frame-related parallel insn -+ is always assumed to be relevant to the frame -+ calculations; subsequent parts, are only -+ frame-related if explicitly marked. */ -+ RTX_FRAME_RELATED_P (XVECEXP (PATTERN (insn), 0, 1)) = 1; -+ RTX_FRAME_RELATED_P (insn) = 1; - } - else - { -- insn = emit_insn -- ( gen_load_pairdf (gen_rtx_REG (DFmode, regno), mem, -- gen_rtx_REG (DFmode, regno2), mem2)); -- -- add_reg_note (insn, REG_CFA_RESTORE, -- gen_rtx_REG (DFmode, regno)); -- add_reg_note (insn, REG_CFA_RESTORE, -- gen_rtx_REG (DFmode, regno2)); -+ emit_insn (gen_load_pairdf (reg1, mem, reg2, mem2)); -+ *cfi_ops = alloc_reg_note (REG_CFA_RESTORE, reg1, *cfi_ops); -+ *cfi_ops = alloc_reg_note (REG_CFA_RESTORE, reg2, *cfi_ops); - } - -- /* The first part of a frame-related parallel insn -- is always assumed to be relevant to the frame -- calculations; subsequent parts, are only -- frame-related if explicitly marked. */ -- RTX_FRAME_RELATED_P (XVECEXP (PATTERN (insn), 0, 1)) = 1; - regno = regno2; - start_offset += increment * 2; - } - else - { - if (restore == false) -- insn = emit_move_insn (mem, gen_rtx_REG (DFmode, regno)); -+ { -+ insn = emit_move_insn (mem, reg1); -+ RTX_FRAME_RELATED_P (insn) = 1; -+ } - else - { -- insn = emit_move_insn (gen_rtx_REG (DFmode, regno), mem); -- add_reg_note (insn, REG_CFA_RESTORE, -- gen_rtx_REG (DImode, regno)); -+ emit_move_insn (reg1, mem); -+ *cfi_ops = alloc_reg_note (REG_CFA_RESTORE, reg1, *cfi_ops); - } - start_offset += increment; - } -- RTX_FRAME_RELATED_P (insn) = 1; - } - } -- - } - - -@@ -1897,13 +1891,14 @@ aarch64_save_or_restore_fprs (int start_ - restore's have to happen. */ - static void - aarch64_save_or_restore_callee_save_registers (HOST_WIDE_INT offset, -- bool restore) -+ bool restore, rtx *cfi_ops) - { - rtx insn; - rtx base_rtx = stack_pointer_rtx; - HOST_WIDE_INT start_offset = offset; - HOST_WIDE_INT increment = UNITS_PER_WORD; -- rtx (*gen_mem_ref)(enum machine_mode, rtx) = (frame_pointer_needed)? gen_frame_mem : gen_rtx_MEM; -+ rtx (*gen_mem_ref)(enum machine_mode, rtx) -+ = (frame_pointer_needed)? gen_frame_mem : gen_rtx_MEM; - unsigned limit = (frame_pointer_needed)? R28_REGNUM: R30_REGNUM; - unsigned regno; - unsigned regno2; -@@ -1912,11 +1907,13 @@ aarch64_save_or_restore_callee_save_regi - { - if (aarch64_register_saved_on_entry (regno)) - { -- rtx mem; -+ rtx mem, reg1; -+ - mem = gen_mem_ref (Pmode, - plus_constant (Pmode, - base_rtx, - start_offset)); -+ reg1 = gen_rtx_REG (DImode, regno); - - for (regno2 = regno + 1; - regno2 <= limit -@@ -1928,56 +1925,54 @@ aarch64_save_or_restore_callee_save_regi - if (regno2 <= limit && - aarch64_register_saved_on_entry (regno2)) - { -- rtx mem2; -+ rtx mem2, reg2; - /* Next highest register to be saved. */ - mem2 = gen_mem_ref (Pmode, - plus_constant - (Pmode, - base_rtx, - start_offset + increment)); -+ reg2 = gen_rtx_REG (DImode, regno2); -+ - if (restore == false) - { -- insn = emit_insn -- ( gen_store_pairdi (mem, gen_rtx_REG (DImode, regno), -- mem2, gen_rtx_REG (DImode, regno2))); -- -+ insn = emit_insn (gen_store_pairdi (mem, reg1, mem2, reg2)); -+ /* The first part of a frame-related parallel insn -+ is always assumed to be relevant to the frame -+ calculations; subsequent parts, are only -+ frame-related if explicitly marked. */ -+ RTX_FRAME_RELATED_P (XVECEXP (PATTERN (insn), 0, 1)) = 1; -+ RTX_FRAME_RELATED_P (insn) = 1; - } - else - { -- insn = emit_insn -- ( gen_load_pairdi (gen_rtx_REG (DImode, regno), mem, -- gen_rtx_REG (DImode, regno2), mem2)); -- -- add_reg_note (insn, REG_CFA_RESTORE, gen_rtx_REG (DImode, regno)); -- add_reg_note (insn, REG_CFA_RESTORE, gen_rtx_REG (DImode, regno2)); -+ emit_insn (gen_load_pairdi (reg1, mem, reg2, mem2)); -+ *cfi_ops = alloc_reg_note (REG_CFA_RESTORE, reg1, *cfi_ops); -+ *cfi_ops = alloc_reg_note (REG_CFA_RESTORE, reg2, *cfi_ops); - } - -- /* The first part of a frame-related parallel insn -- is always assumed to be relevant to the frame -- calculations; subsequent parts, are only -- frame-related if explicitly marked. */ -- RTX_FRAME_RELATED_P (XVECEXP (PATTERN (insn), 0, -- 1)) = 1; - regno = regno2; - start_offset += increment * 2; - } - else - { - if (restore == false) -- insn = emit_move_insn (mem, gen_rtx_REG (DImode, regno)); -+ { -+ insn = emit_move_insn (mem, reg1); -+ RTX_FRAME_RELATED_P (insn) = 1; -+ } - else - { -- insn = emit_move_insn (gen_rtx_REG (DImode, regno), mem); -- add_reg_note (insn, REG_CFA_RESTORE, gen_rtx_REG (DImode, regno)); -+ emit_move_insn (reg1, mem); -+ *cfi_ops = alloc_reg_note (REG_CFA_RESTORE, reg1, *cfi_ops); - } - start_offset += increment; - } -- RTX_FRAME_RELATED_P (insn) = 1; - } - } - -- aarch64_save_or_restore_fprs (start_offset, increment, restore, base_rtx); -- -+ aarch64_save_or_restore_fprs (start_offset, increment, restore, -+ base_rtx, cfi_ops); - } - - /* AArch64 stack frames generated by this compiler look like: -@@ -2179,7 +2174,7 @@ aarch64_expand_prologue (void) - } - - aarch64_save_or_restore_callee_save_registers -- (fp_offset + cfun->machine->frame.hardfp_offset, 0); -+ (fp_offset + cfun->machine->frame.hardfp_offset, 0, NULL); - } - - /* when offset >= 512, -@@ -2248,15 +2243,18 @@ aarch64_expand_epilogue (bool for_sibcal - insn = emit_insn (gen_add3_insn (stack_pointer_rtx, - hard_frame_pointer_rtx, - GEN_INT (- fp_offset))); -+ /* CFA should be calculated from the value of SP from now on. */ -+ add_reg_note (insn, REG_CFA_ADJUST_CFA, -+ gen_rtx_SET (VOIDmode, stack_pointer_rtx, -+ plus_constant (Pmode, hard_frame_pointer_rtx, -+ -fp_offset))); - RTX_FRAME_RELATED_P (insn) = 1; -- /* As SP is set to (FP - fp_offset), according to the rules in -- dwarf2cfi.c:dwarf2out_frame_debug_expr, CFA should be calculated -- from the value of SP from now on. */ - cfa_reg = stack_pointer_rtx; - } - -+ rtx cfi_ops = NULL; - aarch64_save_or_restore_callee_save_registers -- (fp_offset + cfun->machine->frame.hardfp_offset, 1); -+ (fp_offset + cfun->machine->frame.hardfp_offset, 1, &cfi_ops); - - /* Restore the frame pointer and lr if the frame pointer is needed. */ - if (offset > 0) -@@ -2264,6 +2262,8 @@ aarch64_expand_epilogue (bool for_sibcal - if (frame_pointer_needed) - { - rtx mem_fp, mem_lr; -+ rtx reg_fp = hard_frame_pointer_rtx; -+ rtx reg_lr = gen_rtx_REG (DImode, LR_REGNUM); - - if (fp_offset) - { -@@ -2276,52 +2276,36 @@ aarch64_expand_epilogue (bool for_sibcal - stack_pointer_rtx, - fp_offset - + UNITS_PER_WORD)); -- insn = emit_insn (gen_load_pairdi (hard_frame_pointer_rtx, -- mem_fp, -- gen_rtx_REG (DImode, -- LR_REGNUM), -- mem_lr)); -+ emit_insn (gen_load_pairdi (reg_fp, mem_fp, reg_lr, mem_lr)); -+ -+ insn = emit_insn (gen_add2_insn (stack_pointer_rtx, -+ GEN_INT (offset))); - } - else - { - insn = emit_insn (gen_loadwb_pairdi_di -- (stack_pointer_rtx, -- stack_pointer_rtx, -- hard_frame_pointer_rtx, -- gen_rtx_REG (DImode, LR_REGNUM), -- GEN_INT (offset), -+ (stack_pointer_rtx, stack_pointer_rtx, -+ reg_fp, reg_lr, GEN_INT (offset), - GEN_INT (GET_MODE_SIZE (DImode) + offset))); -- RTX_FRAME_RELATED_P (XVECEXP (PATTERN (insn), 0, 2)) = 1; -- add_reg_note (insn, REG_CFA_ADJUST_CFA, -- (gen_rtx_SET (Pmode, stack_pointer_rtx, -- plus_constant (Pmode, cfa_reg, -- offset)))); -- } -- -- /* The first part of a frame-related parallel insn -- is always assumed to be relevant to the frame -- calculations; subsequent parts, are only -- frame-related if explicitly marked. */ -- RTX_FRAME_RELATED_P (XVECEXP (PATTERN (insn), 0, 1)) = 1; -- RTX_FRAME_RELATED_P (insn) = 1; -- add_reg_note (insn, REG_CFA_RESTORE, hard_frame_pointer_rtx); -- add_reg_note (insn, REG_CFA_RESTORE, -- gen_rtx_REG (DImode, LR_REGNUM)); -- -- if (fp_offset) -- { -- insn = emit_insn (gen_add2_insn (stack_pointer_rtx, -- GEN_INT (offset))); -- RTX_FRAME_RELATED_P (insn) = 1; - } -+ cfi_ops = alloc_reg_note (REG_CFA_RESTORE, reg_fp, cfi_ops); -+ cfi_ops = alloc_reg_note (REG_CFA_RESTORE, reg_lr, cfi_ops); - } - else - { - insn = emit_insn (gen_add2_insn (stack_pointer_rtx, - GEN_INT (offset))); -- RTX_FRAME_RELATED_P (insn) = 1; - } -+ cfi_ops = alloc_reg_note (REG_CFA_ADJUST_CFA, -+ gen_rtx_SET (VOIDmode, stack_pointer_rtx, -+ plus_constant (Pmode, cfa_reg, -+ offset)), -+ cfi_ops); -+ REG_NOTES (insn) = cfi_ops; -+ RTX_FRAME_RELATED_P (insn) = 1; - } -+ else -+ gcc_assert (cfi_ops == NULL); - - /* Stack adjustment for exception handler. */ - if (crtl->calls_eh_return) diff --git a/gcc49-cloog-dl.patch b/gcc49-cloog-dl.patch deleted file mode 100644 index 8a72509..0000000 --- a/gcc49-cloog-dl.patch +++ /dev/null @@ -1,476 +0,0 @@ ---- gcc/Makefile.in.jj 2012-12-13 17:09:20.000000000 +0100 -+++ gcc/Makefile.in 2012-12-14 11:45:22.585670055 +0100 -@@ -1006,7 +1006,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY) - # and the system's installed libraries. - LIBS = @LIBS@ libcommon.a $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBBACKTRACE) \ - $(LIBIBERTY) $(LIBDECNUMBER) $(HOST_LIBS) --BACKENDLIBS = $(CLOOGLIBS) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \ -+BACKENDLIBS = $(if $(CLOOGLIBS),-ldl) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \ - $(ZLIB) - # Any system libraries needed just for GNAT. - SYSLIBS = @GNAT_LIBEXC@ -@@ -2011,6 +2011,15 @@ $(out_object_file): $(out_file) - $(common_out_object_file): $(common_out_file) - $(COMPILE) $< - $(POSTCOMPILE) -+ -+graphite%.o : \ -+ ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS)) -+graphite.o : \ -+ ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS)) -+graphite%.o : \ -+ ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS)) -+graphite.o : \ -+ ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS)) - # - # Generate header and source files from the machine description, - # and compile them. ---- gcc/graphite-poly.h.jj 2012-12-13 11:31:27.000000000 +0100 -+++ gcc/graphite-poly.h 2012-12-14 13:41:41.970800726 +0100 -@@ -22,6 +22,371 @@ along with GCC; see the file COPYING3. - #ifndef GCC_GRAPHITE_POLY_H - #define GCC_GRAPHITE_POLY_H - -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#define DYNSYMS \ -+ DYNSYM (clast_pprint); \ -+ DYNSYM (cloog_clast_create_from_input); \ -+ DYNSYM (cloog_clast_free); \ -+ DYNSYM (cloog_domain_from_isl_set); \ -+ DYNSYM (cloog_input_alloc); \ -+ DYNSYM (cloog_isl_state_malloc); \ -+ DYNSYM (cloog_options_free); \ -+ DYNSYM (cloog_options_malloc); \ -+ DYNSYM (cloog_scattering_from_isl_map); \ -+ DYNSYM (cloog_state_free); \ -+ DYNSYM (cloog_union_domain_add_domain); \ -+ DYNSYM (cloog_union_domain_alloc); \ -+ DYNSYM (cloog_union_domain_set_name); \ -+ DYNSYM (isl_aff_add_coefficient_si); \ -+ DYNSYM (isl_aff_add_constant); \ -+ DYNSYM (isl_aff_free); \ -+ DYNSYM (isl_aff_get_coefficient); \ -+ DYNSYM (isl_aff_get_space); \ -+ DYNSYM (isl_aff_mod); \ -+ DYNSYM (isl_aff_set_coefficient_si); \ -+ DYNSYM (isl_aff_set_constant_si); \ -+ DYNSYM (isl_aff_zero_on_domain); \ -+ DYNSYM (isl_band_free); \ -+ DYNSYM (isl_band_get_children); \ -+ DYNSYM (isl_band_get_partial_schedule); \ -+ DYNSYM (isl_band_has_children); \ -+ DYNSYM (isl_band_list_free); \ -+ DYNSYM (isl_band_list_get_band); \ -+ DYNSYM (isl_band_list_get_ctx); \ -+ DYNSYM (isl_band_list_n_band); \ -+ DYNSYM (isl_band_member_is_zero_distance); \ -+ DYNSYM (isl_band_n_member); \ -+ DYNSYM (isl_basic_map_add_constraint); \ -+ DYNSYM (isl_basic_map_project_out); \ -+ DYNSYM (isl_basic_map_universe); \ -+ DYNSYM (isl_constraint_set_coefficient); \ -+ DYNSYM (isl_constraint_set_coefficient_si); \ -+ DYNSYM (isl_constraint_set_constant); \ -+ DYNSYM (isl_constraint_set_constant_si); \ -+ DYNSYM (isl_ctx_alloc); \ -+ DYNSYM (isl_ctx_free); \ -+ DYNSYM (isl_equality_alloc); \ -+ DYNSYM (isl_id_alloc); \ -+ DYNSYM (isl_id_copy); \ -+ DYNSYM (isl_id_free); \ -+ DYNSYM (isl_inequality_alloc); \ -+ DYNSYM (isl_local_space_copy); \ -+ DYNSYM (isl_local_space_free); \ -+ DYNSYM (isl_local_space_from_space); \ -+ DYNSYM (isl_local_space_range); \ -+ DYNSYM (isl_map_add_constraint); \ -+ DYNSYM (isl_map_add_dims); \ -+ DYNSYM (isl_map_align_params); \ -+ DYNSYM (isl_map_apply_range); \ -+ DYNSYM (isl_map_copy); \ -+ DYNSYM (isl_map_dim); \ -+ DYNSYM (isl_map_dump); \ -+ DYNSYM (isl_map_equate); \ -+ DYNSYM (isl_map_fix_si); \ -+ DYNSYM (isl_map_flat_product); \ -+ DYNSYM (isl_map_flat_range_product); \ -+ DYNSYM (isl_map_free); \ -+ DYNSYM (isl_map_from_basic_map); \ -+ DYNSYM (isl_map_from_pw_aff); \ -+ DYNSYM (isl_map_from_union_map); \ -+ DYNSYM (isl_map_get_ctx); \ -+ DYNSYM (isl_map_get_space); \ -+ DYNSYM (isl_map_get_tuple_id); \ -+ DYNSYM (isl_map_insert_dims); \ -+ DYNSYM (isl_map_intersect); \ -+ DYNSYM (isl_map_intersect_domain); \ -+ DYNSYM (isl_map_intersect_range); \ -+ DYNSYM (isl_map_is_empty); \ -+ DYNSYM (isl_map_lex_ge); \ -+ DYNSYM (isl_map_lex_le); \ -+ DYNSYM (isl_map_n_out); \ -+ DYNSYM (isl_map_range); \ -+ DYNSYM (isl_map_set_tuple_id); \ -+ DYNSYM (isl_map_universe); \ -+ DYNSYM (isl_options_set_on_error); \ -+ DYNSYM (isl_options_set_schedule_fuse); \ -+ DYNSYM (isl_options_set_schedule_max_constant_term); \ -+ DYNSYM (isl_options_set_schedule_maximize_band_depth); \ -+ DYNSYM (isl_printer_free); \ -+ DYNSYM (isl_printer_print_aff); \ -+ DYNSYM (isl_printer_print_constraint); \ -+ DYNSYM (isl_printer_print_map); \ -+ DYNSYM (isl_printer_print_set); \ -+ DYNSYM (isl_printer_to_file); \ -+ DYNSYM (isl_pw_aff_add); \ -+ DYNSYM (isl_pw_aff_alloc); \ -+ DYNSYM (isl_pw_aff_copy); \ -+ DYNSYM (isl_pw_aff_eq_set); \ -+ DYNSYM (isl_pw_aff_free); \ -+ DYNSYM (isl_pw_aff_from_aff); \ -+ DYNSYM (isl_pw_aff_ge_set); \ -+ DYNSYM (isl_pw_aff_gt_set); \ -+ DYNSYM (isl_pw_aff_is_cst); \ -+ DYNSYM (isl_pw_aff_le_set); \ -+ DYNSYM (isl_pw_aff_lt_set); \ -+ DYNSYM (isl_pw_aff_mod); \ -+ DYNSYM (isl_pw_aff_mul); \ -+ DYNSYM (isl_pw_aff_ne_set); \ -+ DYNSYM (isl_pw_aff_nonneg_set); \ -+ DYNSYM (isl_pw_aff_set_tuple_id); \ -+ DYNSYM (isl_pw_aff_sub); \ -+ DYNSYM (isl_pw_aff_zero_set); \ -+ DYNSYM (isl_schedule_free); \ -+ DYNSYM (isl_schedule_get_band_forest); \ -+ DYNSYM (isl_set_add_constraint); \ -+ DYNSYM (isl_set_add_dims); \ -+ DYNSYM (isl_set_apply); \ -+ DYNSYM (isl_set_coalesce); \ -+ DYNSYM (isl_set_copy); \ -+ DYNSYM (isl_set_dim); \ -+ DYNSYM (isl_set_fix_si); \ -+ DYNSYM (isl_set_free); \ -+ DYNSYM (isl_set_from_cloog_domain); \ -+ DYNSYM (isl_set_get_space); \ -+ DYNSYM (isl_set_get_tuple_id); \ -+ DYNSYM (isl_set_intersect); \ -+ DYNSYM (isl_set_is_empty); \ -+ DYNSYM (isl_set_max); \ -+ DYNSYM (isl_set_min); \ -+ DYNSYM (isl_set_n_dim); \ -+ DYNSYM (isl_set_nat_universe); \ -+ DYNSYM (isl_set_project_out); \ -+ DYNSYM (isl_set_set_tuple_id); \ -+ DYNSYM (isl_set_universe); \ -+ DYNSYM (isl_space_add_dims); \ -+ DYNSYM (isl_space_alloc); \ -+ DYNSYM (isl_space_copy); \ -+ DYNSYM (isl_space_dim); \ -+ DYNSYM (isl_space_domain); \ -+ DYNSYM (isl_space_find_dim_by_id); \ -+ DYNSYM (isl_space_free); \ -+ DYNSYM (isl_space_from_domain); \ -+ DYNSYM (isl_space_get_tuple_id); \ -+ DYNSYM (isl_space_params_alloc); \ -+ DYNSYM (isl_space_range); \ -+ DYNSYM (isl_space_set_alloc); \ -+ DYNSYM (isl_space_set_dim_id); \ -+ DYNSYM (isl_space_set_tuple_id); \ -+ DYNSYM (isl_union_map_add_map); \ -+ DYNSYM (isl_union_map_align_params); \ -+ DYNSYM (isl_union_map_apply_domain); \ -+ DYNSYM (isl_union_map_apply_range); \ -+ DYNSYM (isl_union_map_compute_flow); \ -+ DYNSYM (isl_union_map_copy); \ -+ DYNSYM (isl_union_map_empty); \ -+ DYNSYM (isl_union_map_flat_range_product); \ -+ DYNSYM (isl_union_map_foreach_map); \ -+ DYNSYM (isl_union_map_free); \ -+ DYNSYM (isl_union_map_from_map); \ -+ DYNSYM (isl_union_map_get_ctx); \ -+ DYNSYM (isl_union_map_get_space); \ -+ DYNSYM (isl_union_map_gist_domain); \ -+ DYNSYM (isl_union_map_gist_range); \ -+ DYNSYM (isl_union_map_intersect_domain); \ -+ DYNSYM (isl_union_map_is_empty); \ -+ DYNSYM (isl_union_map_subtract); \ -+ DYNSYM (isl_union_map_union); \ -+ DYNSYM (isl_union_set_add_set); \ -+ DYNSYM (isl_union_set_compute_schedule); \ -+ DYNSYM (isl_union_set_copy); \ -+ DYNSYM (isl_union_set_empty); \ -+ DYNSYM (isl_union_set_from_set); \ -+ DYNSYM (stmt_ass); \ -+ DYNSYM (stmt_block); \ -+ DYNSYM (stmt_for); \ -+ DYNSYM (stmt_guard); \ -+ DYNSYM (stmt_root); \ -+ DYNSYM (stmt_user); -+extern struct cloog_pointers_s__ -+{ -+ bool inited; -+ void *h; -+#define DYNSYM(x) __typeof (x) *p_##x -+ DYNSYMS -+#undef DYNSYM -+} cloog_pointers__; -+ -+#define cloog_block_alloc (*cloog_pointers__.p_cloog_block_alloc) -+#define clast_pprint (*cloog_pointers__.p_clast_pprint) -+#define cloog_clast_create_from_input (*cloog_pointers__.p_cloog_clast_create_from_input) -+#define cloog_clast_free (*cloog_pointers__.p_cloog_clast_free) -+#define cloog_domain_from_isl_set (*cloog_pointers__.p_cloog_domain_from_isl_set) -+#define cloog_input_alloc (*cloog_pointers__.p_cloog_input_alloc) -+#define cloog_isl_state_malloc (*cloog_pointers__.p_cloog_isl_state_malloc) -+#define cloog_options_free (*cloog_pointers__.p_cloog_options_free) -+#define cloog_options_malloc (*cloog_pointers__.p_cloog_options_malloc) -+#define cloog_scattering_from_isl_map (*cloog_pointers__.p_cloog_scattering_from_isl_map) -+#define cloog_state_free (*cloog_pointers__.p_cloog_state_free) -+#define cloog_union_domain_add_domain (*cloog_pointers__.p_cloog_union_domain_add_domain) -+#define cloog_union_domain_alloc (*cloog_pointers__.p_cloog_union_domain_alloc) -+#define cloog_union_domain_set_name (*cloog_pointers__.p_cloog_union_domain_set_name) -+#define isl_aff_add_coefficient_si (*cloog_pointers__.p_isl_aff_add_coefficient_si) -+#define isl_aff_add_constant (*cloog_pointers__.p_isl_aff_add_constant) -+#define isl_aff_free (*cloog_pointers__.p_isl_aff_free) -+#define isl_aff_get_coefficient (*cloog_pointers__.p_isl_aff_get_coefficient) -+#define isl_aff_get_space (*cloog_pointers__.p_isl_aff_get_space) -+#define isl_aff_mod (*cloog_pointers__.p_isl_aff_mod) -+#define isl_aff_set_coefficient_si (*cloog_pointers__.p_isl_aff_set_coefficient_si) -+#define isl_aff_set_constant_si (*cloog_pointers__.p_isl_aff_set_constant_si) -+#define isl_aff_zero_on_domain (*cloog_pointers__.p_isl_aff_zero_on_domain) -+#define isl_band_free (*cloog_pointers__.p_isl_band_free) -+#define isl_band_get_children (*cloog_pointers__.p_isl_band_get_children) -+#define isl_band_get_partial_schedule (*cloog_pointers__.p_isl_band_get_partial_schedule) -+#define isl_band_has_children (*cloog_pointers__.p_isl_band_has_children) -+#define isl_band_list_free (*cloog_pointers__.p_isl_band_list_free) -+#define isl_band_list_get_band (*cloog_pointers__.p_isl_band_list_get_band) -+#define isl_band_list_get_ctx (*cloog_pointers__.p_isl_band_list_get_ctx) -+#define isl_band_list_n_band (*cloog_pointers__.p_isl_band_list_n_band) -+#define isl_band_member_is_zero_distance (*cloog_pointers__.p_isl_band_member_is_zero_distance) -+#define isl_band_n_member (*cloog_pointers__.p_isl_band_n_member) -+#define isl_basic_map_add_constraint (*cloog_pointers__.p_isl_basic_map_add_constraint) -+#define isl_basic_map_project_out (*cloog_pointers__.p_isl_basic_map_project_out) -+#define isl_basic_map_universe (*cloog_pointers__.p_isl_basic_map_universe) -+#define isl_constraint_set_coefficient (*cloog_pointers__.p_isl_constraint_set_coefficient) -+#define isl_constraint_set_coefficient_si (*cloog_pointers__.p_isl_constraint_set_coefficient_si) -+#define isl_constraint_set_constant (*cloog_pointers__.p_isl_constraint_set_constant) -+#define isl_constraint_set_constant_si (*cloog_pointers__.p_isl_constraint_set_constant_si) -+#define isl_ctx_alloc (*cloog_pointers__.p_isl_ctx_alloc) -+#define isl_ctx_free (*cloog_pointers__.p_isl_ctx_free) -+#define isl_equality_alloc (*cloog_pointers__.p_isl_equality_alloc) -+#define isl_id_alloc (*cloog_pointers__.p_isl_id_alloc) -+#define isl_id_copy (*cloog_pointers__.p_isl_id_copy) -+#define isl_id_free (*cloog_pointers__.p_isl_id_free) -+#define isl_inequality_alloc (*cloog_pointers__.p_isl_inequality_alloc) -+#define isl_local_space_copy (*cloog_pointers__.p_isl_local_space_copy) -+#define isl_local_space_free (*cloog_pointers__.p_isl_local_space_free) -+#define isl_local_space_from_space (*cloog_pointers__.p_isl_local_space_from_space) -+#define isl_local_space_range (*cloog_pointers__.p_isl_local_space_range) -+#define isl_map_add_constraint (*cloog_pointers__.p_isl_map_add_constraint) -+#define isl_map_add_dims (*cloog_pointers__.p_isl_map_add_dims) -+#define isl_map_align_params (*cloog_pointers__.p_isl_map_align_params) -+#define isl_map_apply_range (*cloog_pointers__.p_isl_map_apply_range) -+#define isl_map_copy (*cloog_pointers__.p_isl_map_copy) -+#define isl_map_dim (*cloog_pointers__.p_isl_map_dim) -+#define isl_map_dump (*cloog_pointers__.p_isl_map_dump) -+#define isl_map_equate (*cloog_pointers__.p_isl_map_equate) -+#define isl_map_fix_si (*cloog_pointers__.p_isl_map_fix_si) -+#define isl_map_flat_product (*cloog_pointers__.p_isl_map_flat_product) -+#define isl_map_flat_range_product (*cloog_pointers__.p_isl_map_flat_range_product) -+#define isl_map_free (*cloog_pointers__.p_isl_map_free) -+#define isl_map_from_basic_map (*cloog_pointers__.p_isl_map_from_basic_map) -+#define isl_map_from_pw_aff (*cloog_pointers__.p_isl_map_from_pw_aff) -+#define isl_map_from_union_map (*cloog_pointers__.p_isl_map_from_union_map) -+#define isl_map_get_ctx (*cloog_pointers__.p_isl_map_get_ctx) -+#define isl_map_get_space (*cloog_pointers__.p_isl_map_get_space) -+#define isl_map_get_tuple_id (*cloog_pointers__.p_isl_map_get_tuple_id) -+#define isl_map_insert_dims (*cloog_pointers__.p_isl_map_insert_dims) -+#define isl_map_intersect (*cloog_pointers__.p_isl_map_intersect) -+#define isl_map_intersect_domain (*cloog_pointers__.p_isl_map_intersect_domain) -+#define isl_map_intersect_range (*cloog_pointers__.p_isl_map_intersect_range) -+#define isl_map_is_empty (*cloog_pointers__.p_isl_map_is_empty) -+#define isl_map_lex_ge (*cloog_pointers__.p_isl_map_lex_ge) -+#define isl_map_lex_le (*cloog_pointers__.p_isl_map_lex_le) -+#define isl_map_n_out (*cloog_pointers__.p_isl_map_n_out) -+#define isl_map_range (*cloog_pointers__.p_isl_map_range) -+#define isl_map_set_tuple_id (*cloog_pointers__.p_isl_map_set_tuple_id) -+#define isl_map_universe (*cloog_pointers__.p_isl_map_universe) -+#define isl_options_set_on_error (*cloog_pointers__.p_isl_options_set_on_error) -+#define isl_options_set_schedule_fuse (*cloog_pointers__.p_isl_options_set_schedule_fuse) -+#define isl_options_set_schedule_max_constant_term (*cloog_pointers__.p_isl_options_set_schedule_max_constant_term) -+#define isl_options_set_schedule_maximize_band_depth (*cloog_pointers__.p_isl_options_set_schedule_maximize_band_depth) -+#define isl_printer_free (*cloog_pointers__.p_isl_printer_free) -+#define isl_printer_print_aff (*cloog_pointers__.p_isl_printer_print_aff) -+#define isl_printer_print_constraint (*cloog_pointers__.p_isl_printer_print_constraint) -+#define isl_printer_print_map (*cloog_pointers__.p_isl_printer_print_map) -+#define isl_printer_print_set (*cloog_pointers__.p_isl_printer_print_set) -+#define isl_printer_to_file (*cloog_pointers__.p_isl_printer_to_file) -+#define isl_pw_aff_add (*cloog_pointers__.p_isl_pw_aff_add) -+#define isl_pw_aff_alloc (*cloog_pointers__.p_isl_pw_aff_alloc) -+#define isl_pw_aff_copy (*cloog_pointers__.p_isl_pw_aff_copy) -+#define isl_pw_aff_eq_set (*cloog_pointers__.p_isl_pw_aff_eq_set) -+#define isl_pw_aff_free (*cloog_pointers__.p_isl_pw_aff_free) -+#define isl_pw_aff_from_aff (*cloog_pointers__.p_isl_pw_aff_from_aff) -+#define isl_pw_aff_ge_set (*cloog_pointers__.p_isl_pw_aff_ge_set) -+#define isl_pw_aff_gt_set (*cloog_pointers__.p_isl_pw_aff_gt_set) -+#define isl_pw_aff_is_cst (*cloog_pointers__.p_isl_pw_aff_is_cst) -+#define isl_pw_aff_le_set (*cloog_pointers__.p_isl_pw_aff_le_set) -+#define isl_pw_aff_lt_set (*cloog_pointers__.p_isl_pw_aff_lt_set) -+#define isl_pw_aff_mod (*cloog_pointers__.p_isl_pw_aff_mod) -+#define isl_pw_aff_mul (*cloog_pointers__.p_isl_pw_aff_mul) -+#define isl_pw_aff_ne_set (*cloog_pointers__.p_isl_pw_aff_ne_set) -+#define isl_pw_aff_nonneg_set (*cloog_pointers__.p_isl_pw_aff_nonneg_set) -+#define isl_pw_aff_set_tuple_id (*cloog_pointers__.p_isl_pw_aff_set_tuple_id) -+#define isl_pw_aff_sub (*cloog_pointers__.p_isl_pw_aff_sub) -+#define isl_pw_aff_zero_set (*cloog_pointers__.p_isl_pw_aff_zero_set) -+#define isl_schedule_free (*cloog_pointers__.p_isl_schedule_free) -+#define isl_schedule_get_band_forest (*cloog_pointers__.p_isl_schedule_get_band_forest) -+#define isl_set_add_constraint (*cloog_pointers__.p_isl_set_add_constraint) -+#define isl_set_add_dims (*cloog_pointers__.p_isl_set_add_dims) -+#define isl_set_apply (*cloog_pointers__.p_isl_set_apply) -+#define isl_set_coalesce (*cloog_pointers__.p_isl_set_coalesce) -+#define isl_set_copy (*cloog_pointers__.p_isl_set_copy) -+#define isl_set_dim (*cloog_pointers__.p_isl_set_dim) -+#define isl_set_fix_si (*cloog_pointers__.p_isl_set_fix_si) -+#define isl_set_free (*cloog_pointers__.p_isl_set_free) -+#define isl_set_from_cloog_domain (*cloog_pointers__.p_isl_set_from_cloog_domain) -+#define isl_set_get_space (*cloog_pointers__.p_isl_set_get_space) -+#define isl_set_get_tuple_id (*cloog_pointers__.p_isl_set_get_tuple_id) -+#define isl_set_intersect (*cloog_pointers__.p_isl_set_intersect) -+#define isl_set_is_empty (*cloog_pointers__.p_isl_set_is_empty) -+#define isl_set_max (*cloog_pointers__.p_isl_set_max) -+#define isl_set_min (*cloog_pointers__.p_isl_set_min) -+#define isl_set_n_dim (*cloog_pointers__.p_isl_set_n_dim) -+#define isl_set_nat_universe (*cloog_pointers__.p_isl_set_nat_universe) -+#define isl_set_project_out (*cloog_pointers__.p_isl_set_project_out) -+#define isl_set_set_tuple_id (*cloog_pointers__.p_isl_set_set_tuple_id) -+#define isl_set_universe (*cloog_pointers__.p_isl_set_universe) -+#define isl_space_add_dims (*cloog_pointers__.p_isl_space_add_dims) -+#define isl_space_alloc (*cloog_pointers__.p_isl_space_alloc) -+#define isl_space_copy (*cloog_pointers__.p_isl_space_copy) -+#define isl_space_dim (*cloog_pointers__.p_isl_space_dim) -+#define isl_space_domain (*cloog_pointers__.p_isl_space_domain) -+#define isl_space_find_dim_by_id (*cloog_pointers__.p_isl_space_find_dim_by_id) -+#define isl_space_free (*cloog_pointers__.p_isl_space_free) -+#define isl_space_from_domain (*cloog_pointers__.p_isl_space_from_domain) -+#define isl_space_get_tuple_id (*cloog_pointers__.p_isl_space_get_tuple_id) -+#define isl_space_params_alloc (*cloog_pointers__.p_isl_space_params_alloc) -+#define isl_space_range (*cloog_pointers__.p_isl_space_range) -+#define isl_space_set_alloc (*cloog_pointers__.p_isl_space_set_alloc) -+#define isl_space_set_dim_id (*cloog_pointers__.p_isl_space_set_dim_id) -+#define isl_space_set_tuple_id (*cloog_pointers__.p_isl_space_set_tuple_id) -+#define isl_union_map_add_map (*cloog_pointers__.p_isl_union_map_add_map) -+#define isl_union_map_align_params (*cloog_pointers__.p_isl_union_map_align_params) -+#define isl_union_map_apply_domain (*cloog_pointers__.p_isl_union_map_apply_domain) -+#define isl_union_map_apply_range (*cloog_pointers__.p_isl_union_map_apply_range) -+#define isl_union_map_compute_flow (*cloog_pointers__.p_isl_union_map_compute_flow) -+#define isl_union_map_copy (*cloog_pointers__.p_isl_union_map_copy) -+#define isl_union_map_empty (*cloog_pointers__.p_isl_union_map_empty) -+#define isl_union_map_flat_range_product (*cloog_pointers__.p_isl_union_map_flat_range_product) -+#define isl_union_map_foreach_map (*cloog_pointers__.p_isl_union_map_foreach_map) -+#define isl_union_map_free (*cloog_pointers__.p_isl_union_map_free) -+#define isl_union_map_from_map (*cloog_pointers__.p_isl_union_map_from_map) -+#define isl_union_map_get_ctx (*cloog_pointers__.p_isl_union_map_get_ctx) -+#define isl_union_map_get_space (*cloog_pointers__.p_isl_union_map_get_space) -+#define isl_union_map_gist_domain (*cloog_pointers__.p_isl_union_map_gist_domain) -+#define isl_union_map_gist_range (*cloog_pointers__.p_isl_union_map_gist_range) -+#define isl_union_map_intersect_domain (*cloog_pointers__.p_isl_union_map_intersect_domain) -+#define isl_union_map_is_empty (*cloog_pointers__.p_isl_union_map_is_empty) -+#define isl_union_map_subtract (*cloog_pointers__.p_isl_union_map_subtract) -+#define isl_union_map_union (*cloog_pointers__.p_isl_union_map_union) -+#define isl_union_set_add_set (*cloog_pointers__.p_isl_union_set_add_set) -+#define isl_union_set_compute_schedule (*cloog_pointers__.p_isl_union_set_compute_schedule) -+#define isl_union_set_copy (*cloog_pointers__.p_isl_union_set_copy) -+#define isl_union_set_empty (*cloog_pointers__.p_isl_union_set_empty) -+#define isl_union_set_from_set (*cloog_pointers__.p_isl_union_set_from_set) -+#define stmt_ass (*cloog_pointers__.p_stmt_ass) -+#define stmt_block (*cloog_pointers__.p_stmt_block) -+#define stmt_for (*cloog_pointers__.p_stmt_for) -+#define stmt_guard (*cloog_pointers__.p_stmt_guard) -+#define stmt_root (*cloog_pointers__.p_stmt_root) -+#define stmt_user (*cloog_pointers__.p_stmt_user) -+ - typedef struct poly_dr *poly_dr_p; - - typedef struct poly_bb *poly_bb_p; ---- gcc/graphite.c.jj 2012-12-13 11:31:00.000000000 +0100 -+++ gcc/graphite.c 2012-12-14 13:40:44.155136961 +0100 -@@ -78,6 +78,34 @@ along with GCC; see the file COPYING3. - - CloogState *cloog_state; - -+__typeof (cloog_pointers__) cloog_pointers__; -+ -+static bool -+init_cloog_pointers (void) -+{ -+ void *h; -+ -+ if (cloog_pointers__.inited) -+ return cloog_pointers__.h != NULL; -+ h = dlopen ("libcloog-isl.so.4", RTLD_LAZY); -+ cloog_pointers__.h = h; -+ if (h == NULL) -+ return false; -+#define DYNSYM(x) \ -+ do \ -+ { \ -+ union { __typeof (cloog_pointers__.p_##x) p; void *q; } u; \ -+ u.q = dlsym (h, #x); \ -+ if (u.q == NULL) \ -+ return false; \ -+ cloog_pointers__.p_##x = u.p; \ -+ } \ -+ while (0) -+ DYNSYMS -+#undef DYNSYM -+ return true; -+} -+ - /* Print global statistics to FILE. */ - - static void -@@ -277,6 +305,15 @@ graphite_transform_loops (void) - if (parallelized_function_p (cfun->decl)) - return; - -+ if (number_of_loops (cfun) <= 1) -+ return; -+ -+ if (!init_cloog_pointers ()) -+ { -+ sorry ("Graphite loop optimizations cannot be used"); -+ return; -+ } -+ - ctx = isl_ctx_alloc (); - isl_options_set_on_error (ctx, ISL_ON_ERROR_ABORT); - if (!graphite_initialize (ctx)) ---- gcc/graphite-clast-to-gimple.c.jj 2012-12-13 11:31:27.000000000 +0100 -+++ gcc/graphite-clast-to-gimple.c 2012-12-14 13:27:47.196519858 +0100 -@@ -910,7 +910,7 @@ compute_bounds_for_loop (struct clast_fo - from STMT_FOR. */ - - static tree --type_for_clast_for (struct clast_for *stmt_for, ivs_params_p ip) -+type_for_clast_for (struct clast_for *stmt_fora, ivs_params_p ip) - { - mpz_t bound_one, bound_two; - tree lb_type, ub_type; -@@ -918,8 +918,8 @@ type_for_clast_for (struct clast_for *st - mpz_init (bound_one); - mpz_init (bound_two); - -- lb_type = type_for_clast_expr (stmt_for->LB, ip, bound_one, bound_two); -- ub_type = type_for_clast_expr (stmt_for->UB, ip, bound_one, bound_two); -+ lb_type = type_for_clast_expr (stmt_fora->LB, ip, bound_one, bound_two); -+ ub_type = type_for_clast_expr (stmt_fora->UB, ip, bound_one, bound_two); - - mpz_clear (bound_one); - mpz_clear (bound_two); diff --git a/gcc49-cloog-dl2.patch b/gcc49-cloog-dl2.patch deleted file mode 100644 index 2f647a3..0000000 --- a/gcc49-cloog-dl2.patch +++ /dev/null @@ -1,74 +0,0 @@ -2011-04-04 Jakub Jelinek - - * toplev.c (toplev_main_argv): New variable. - (toplev_main): Initialize it. - * graphite.c (init_cloog_pointers): Load libcloog-isl.so.4 from gcc's private - directory. - ---- gcc/toplev.c.jj 2008-12-09 23:59:10.000000000 +0100 -+++ gcc/toplev.c 2009-01-27 14:33:52.000000000 +0100 -@@ -107,6 +107,8 @@ static bool no_backend; - /* Length of line when printing switch values. */ - #define MAX_LINE 75 - -+const char **toplev_main_argv; -+ - /* Decoded options, and number of such options. */ - struct cl_decoded_option *save_decoded_options; - unsigned int save_decoded_options_count; -@@ -1909,6 +1911,8 @@ toplev_main (int argc, char **argv) - - expandargv (&argc, &argv); - -+ toplev_main_argv = CONST_CAST2 (const char **, char **, argv); -+ - /* Initialization of GCC's environment, and diagnostics. */ - general_init (argv[0]); - ---- gcc/graphite.c.jj 2010-12-01 10:24:32.000000000 -0500 -+++ gcc/graphite.c 2010-12-01 11:46:07.832118193 -0500 -@@ -72,11 +72,39 @@ __typeof (cloog_pointers__) cloog_pointe - static bool - init_cloog_pointers (void) - { -- void *h; -- -- if (cloog_pointers__.inited) -- return cloog_pointers__.h != NULL; -- h = dlopen ("libcloog-isl.so.4", RTLD_LAZY); -+ void *h = NULL; -+ extern const char **toplev_main_argv; -+ char *buf, *p; -+ size_t len; -+ -+ if (cloog_pointers__.inited) -+ return cloog_pointers__.h != NULL; -+ len = progname - toplev_main_argv[0]; -+ buf = XALLOCAVAR (char, len + sizeof "libcloog-isl.so.4"); -+ memcpy (buf, toplev_main_argv[0], len); -+ strcpy (buf + len, "libcloog-isl.so.4"); -+ len += sizeof "libcloog-isl.so.4"; -+ p = strstr (buf, "/libexec/"); -+ if (p != NULL) -+ { -+ while (1) -+ { -+ char *q = strstr (p + 8, "/libexec/"); -+ if (q == NULL) -+ break; -+ p = q; -+ } -+ memmove (p + 4, p + 8, len - (p + 8 - buf)); -+ h = dlopen (buf, RTLD_LAZY); -+ if (h == NULL) -+ { -+ len = progname - toplev_main_argv[0]; -+ memcpy (buf, toplev_main_argv[0], len); -+ strcpy (buf + len, "libcloog-isl.so.4"); -+ } -+ } -+ if (h == NULL) -+ h = dlopen (buf, RTLD_LAZY); - cloog_pointers__.h = h; - if (h == NULL) - return false; diff --git a/gcc49-color-auto.patch b/gcc49-color-auto.patch deleted file mode 100644 index a8cf938..0000000 --- a/gcc49-color-auto.patch +++ /dev/null @@ -1,46 +0,0 @@ -2013-09-20 Jakub Jelinek - - * common.opt (-fdiagnostics-color=): Default to auto. - * toplev.c (process_options): Always default to - -fdiagnostics-color=auto if no -f{,no-}diagnostics-color*. - * doc/invoke.texi (-fdiagnostics-color*): Adjust documentation - of the default. - ---- gcc/common.opt.jj 2013-09-18 12:06:53.000000000 +0200 -+++ gcc/common.opt 2013-09-20 10:00:00.935823900 +0200 -@@ -1037,7 +1037,7 @@ Common Alias(fdiagnostics-color=,always, - ; - - fdiagnostics-color= --Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO) -+Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_AUTO) - -fdiagnostics-color=[never|always|auto] Colorize diagnostics - - ; Required for these enum values. ---- gcc/toplev.c.jj 2013-09-09 11:32:39.000000000 +0200 -+++ gcc/toplev.c 2013-09-20 10:10:08.198721005 +0200 -@@ -1229,10 +1229,8 @@ process_options (void) - - maximum_field_alignment = initial_max_fld_align * BITS_PER_UNIT; - -- /* Default to -fdiagnostics-color=auto if GCC_COLORS is in the environment, -- otherwise default to -fdiagnostics-color=never. */ -- if (!global_options_set.x_flag_diagnostics_show_color -- && getenv ("GCC_COLORS")) -+ /* Default to -fdiagnostics-color=auto. */ -+ if (!global_options_set.x_flag_diagnostics_show_color) - pp_show_color (global_dc->printer) - = colorize_init (DIAGNOSTICS_COLOR_AUTO); - ---- gcc/doc/invoke.texi.jj 2013-09-18 12:06:50.000000000 +0200 -+++ gcc/doc/invoke.texi 2013-09-20 10:09:29.079904455 +0200 -@@ -3046,8 +3046,7 @@ a message which is too long to fit on a - @cindex highlight, color, colour - @vindex GCC_COLORS @r{environment variable} - Use color in diagnostics. @var{WHEN} is @samp{never}, @samp{always}, --or @samp{auto}. The default is @samp{never} if @env{GCC_COLORS} environment --variable isn't present in the environment, and @samp{auto} otherwise. -+or @samp{auto}. The default is @samp{auto}. - @samp{auto} means to use color only when the standard error is a terminal. - The forms @option{-fdiagnostics-color} and @option{-fno-diagnostics-color} are - aliases for @option{-fdiagnostics-color=always} and diff --git a/gcc49-pr38757.patch b/gcc49-pr38757.patch deleted file mode 100644 index 4206584..0000000 --- a/gcc49-pr38757.patch +++ /dev/null @@ -1,106 +0,0 @@ -2009-03-18 Jakub Jelinek - - PR debug/38757 - * langhooks.h (struct lang_hooks): Add source_language langhook. - * langhooks-def.h (LANG_HOOKS_SOURCE_LANGUAGE): Define to NULL. - (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_SOURCE_LANGUAGE. - * dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype - also for DW_LANG_{C,C99,ObjC}. - (gen_compile_unit_die): Use lang_hooks.source_language () to - determine if DW_LANG_C99 or DW_LANG_C89 should be returned. -c/ - * c-lang.c (c_source_language): New function. - (LANG_HOOKS_SOURCE_LANGUAGE): Define. - ---- gcc/langhooks.h.jj 2011-01-03 12:53:05.125745450 +0100 -+++ gcc/langhooks.h 2011-01-04 17:59:43.166744926 +0100 -@@ -467,6 +467,10 @@ struct lang_hooks - gimplification. */ - bool deep_unsharing; - -+ /* Return year of the source language standard version if the FE supports -+ multiple versions of the standard. */ -+ int (*source_language) (void); -+ - /* Whenever you add entries here, make sure you adjust langhooks-def.h - and langhooks.c accordingly. */ - }; ---- gcc/langhooks-def.h.jj 2011-01-03 12:53:05.000000000 +0100 -+++ gcc/langhooks-def.h 2011-01-04 18:00:44.858851030 +0100 -@@ -118,6 +118,7 @@ extern void lhd_omp_firstprivatize_type_ - #define LANG_HOOKS_BLOCK_MAY_FALLTHRU hook_bool_const_tree_true - #define LANG_HOOKS_EH_USE_CXA_END_CLEANUP false - #define LANG_HOOKS_DEEP_UNSHARING false -+#define LANG_HOOKS_SOURCE_LANGUAGE NULL - - /* Attribute hooks. */ - #define LANG_HOOKS_ATTRIBUTE_TABLE NULL -@@ -303,7 +304,8 @@ extern void lhd_end_section (void); - LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS, \ - LANG_HOOKS_BLOCK_MAY_FALLTHRU, \ - LANG_HOOKS_EH_USE_CXA_END_CLEANUP, \ -- LANG_HOOKS_DEEP_UNSHARING \ -+ LANG_HOOKS_DEEP_UNSHARING, \ -+ LANG_HOOKS_SOURCE_LANGUAGE \ - } - - #endif /* GCC_LANG_HOOKS_DEF_H */ ---- gcc/c/c-lang.c.jj 2011-01-03 12:53:05.376056936 +0100 -+++ gcc/c/c-lang.c 2011-01-04 17:59:43.167743798 +0100 -@@ -36,6 +36,12 @@ along with GCC; see the file COPYING3. - - enum c_language_kind c_language = clk_c; - -+static int -+c_source_language (void) -+{ -+ return flag_isoc99 ? 1999 : 1989; -+} -+ - /* Lang hooks common to C and ObjC are declared in c-objc-common.h; - consequently, there should be very few hooks below. */ - -@@ -45,6 +51,8 @@ enum c_language_kind c_language = clk_c; - #define LANG_HOOKS_INIT c_objc_common_init - #undef LANG_HOOKS_INIT_TS - #define LANG_HOOKS_INIT_TS c_common_init_ts -+#undef LANG_HOOKS_SOURCE_LANGUAGE -+#define LANG_HOOKS_SOURCE_LANGUAGE c_source_language - - /* Each front end provides its own lang hook initializer. */ - struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER; ---- gcc/dwarf2out.c.jj 2011-01-03 12:53:05.102056475 +0100 -+++ gcc/dwarf2out.c 2011-01-04 18:03:14.534151763 +0100 -@@ -16109,9 +16109,18 @@ add_bit_size_attribute (dw_die_ref die, - static inline void - add_prototyped_attribute (dw_die_ref die, tree func_type) - { -- if (get_AT_unsigned (comp_unit_die (), DW_AT_language) == DW_LANG_C89 -- && prototype_p (func_type)) -- add_AT_flag (die, DW_AT_prototyped, 1); -+ switch (get_AT_unsigned (comp_unit_die (), DW_AT_language)) -+ { -+ case DW_LANG_C: -+ case DW_LANG_C89: -+ case DW_LANG_C99: -+ case DW_LANG_ObjC: -+ if (prototype_p (func_type)) -+ add_AT_flag (die, DW_AT_prototyped, 1); -+ break; -+ default: -+ break; -+ } - } - - /* Add an 'abstract_origin' attribute below a given DIE. The DIE is found -@@ -18915,6 +18924,10 @@ gen_compile_unit_die (const char *filena - if (strcmp (language_string, "GNU Go") == 0) - language = DW_LANG_Go; - } -+ else if (strcmp (language_string, "GNU C") == 0 -+ && lang_hooks.source_language -+ && lang_hooks.source_language () >= 1999) -+ language = DW_LANG_C99; - } - /* Use a degraded Fortran setting in strict DWARF2 so is_fortran works. */ - else if (strcmp (language_string, "GNU Fortran") == 0) diff --git a/gcc49-pr64336.patch b/gcc49-pr64336.patch deleted file mode 100644 index 86fddd5..0000000 --- a/gcc49-pr64336.patch +++ /dev/null @@ -1,17 +0,0 @@ -2014-12-17 Jakub Jelinek - - PR sanitizer/64336 - * tsan.c (instrument_expr): Ignore TREE_READONLY bit - on MEM_REFs. - ---- gcc/tsan.c.jj 2014-12-17 10:53:30.000000000 +0100 -+++ gcc/tsan.c 2014-12-17 11:55:12.793058159 +0100 -@@ -138,7 +138,7 @@ instrument_expr (gimple_stmt_iterator gs - return false; - } - -- if (TREE_READONLY (base) -+ if ((TREE_READONLY (base) && TREE_CODE (base) != MEM_REF) - || (TREE_CODE (base) == VAR_DECL - && DECL_HARD_REGISTER (base))) - return false; diff --git a/gcc49-pr64536.patch b/gcc49-pr64536.patch deleted file mode 100644 index 64191ca..0000000 --- a/gcc49-pr64536.patch +++ /dev/null @@ -1,95 +0,0 @@ -2015-01-08 Jakub Jelinek - - PR rtl-optimization/64536 - * cfgrtl.c (rtl_tidy_fallthru_edge): Don't remove tablejumps. - - * gcc.dg/pr64536.c: New test. - ---- gcc/cfgrtl.c.jj 2015-01-05 13:07:12.000000000 +0100 -+++ gcc/cfgrtl.c 2015-01-08 17:03:18.511218340 +0100 -@@ -1782,10 +1782,14 @@ rtl_tidy_fallthru_edge (edge e) - if (INSN_P (q)) - return; - -+ q = BB_END (b); -+ /* Don't remove table jumps here. */ -+ if (tablejump_p (q, NULL, NULL)) -+ return; -+ - /* Remove what will soon cease being the jump insn from the source block. - If block B consisted only of this single jump, turn it into a deleted - note. */ -- q = BB_END (b); - if (JUMP_P (q) - && onlyjump_p (q) - && (any_uncondjump_p (q) ---- gcc/testsuite/gcc.dg/pr64536.c.jj 2015-01-08 17:13:32.218929003 +0100 -+++ gcc/testsuite/gcc.dg/pr64536.c 2015-01-08 17:28:56.758428958 +0100 -@@ -0,0 +1,67 @@ -+/* PR rtl-optimization/64536 */ -+/* { dg-do link } */ -+/* { dg-options "-O2" } */ -+/* { dg-additional-options "-fPIC" { target fpic } } */ -+ -+struct S { long q; } *h; -+long a, b, g, j, k, *c, *d, *e, *f, *i; -+long *baz (void) -+{ -+ asm volatile ("" : : : "memory"); -+ return e; -+} -+ -+void -+bar (int x) -+{ -+ int y; -+ for (y = 0; y < x; y++) -+ { -+ switch (b) -+ { -+ case 0: -+ case 2: -+ a++; -+ break; -+ case 3: -+ a++; -+ break; -+ case 1: -+ a++; -+ } -+ if (d) -+ { -+ f = baz (); -+ g = k++; -+ if (&h->q) -+ { -+ j = *f; -+ h->q = *f; -+ } -+ else -+ i = (long *) (h->q = *f); -+ *c++ = (long) f; -+ e += 6; -+ } -+ else -+ { -+ f = baz (); -+ g = k++; -+ if (&h->q) -+ { -+ j = *f; -+ h->q = *f; -+ } -+ else -+ i = (long *) (h->q = *f); -+ *c++ = (long) f; -+ e += 6; -+ } -+ } -+} -+ -+int -+main () -+{ -+ return 0; -+} diff --git a/gcc49-aarch64-async-unw-tables.patch b/gcc5-aarch64-async-unw-tables.patch similarity index 100% rename from gcc49-aarch64-async-unw-tables.patch rename to gcc5-aarch64-async-unw-tables.patch diff --git a/gcc49-hack.patch b/gcc5-hack.patch similarity index 66% rename from gcc49-hack.patch rename to gcc5-hack.patch index 1903e95..950ff63 100644 --- a/gcc49-hack.patch +++ b/gcc5-hack.patch @@ -100,3 +100,60 @@ @USE_LIBGCJ_BC_TRUE@ $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \ @USE_LIBGCJ_BC_TRUE@ -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \ @USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \ +--- libcpp/macro.c.jj 2015-01-14 11:01:34.000000000 +0100 ++++ libcpp/macro.c 2015-01-14 14:22:19.286949884 +0100 +@@ -2947,8 +2947,6 @@ create_iso_definition (cpp_reader *pfile + cpp_token *token; + const cpp_token *ctoken; + bool following_paste_op = false; +- const char *paste_op_error_msg = +- N_("'##' cannot appear at either end of a macro expansion"); + unsigned int num_extra_tokens = 0; + + /* Get the first token of the expansion (or the '(' of a +@@ -3059,7 +3057,8 @@ create_iso_definition (cpp_reader *pfile + function-like macros, but not at the end. */ + if (following_paste_op) + { +- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg); ++ cpp_error (pfile, CPP_DL_ERROR, ++ "'##' cannot appear at either end of a macro expansion"); + return false; + } + break; +@@ -3072,7 +3071,8 @@ create_iso_definition (cpp_reader *pfile + function-like macros, but not at the beginning. */ + if (macro->count == 1) + { +- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg); ++ cpp_error (pfile, CPP_DL_ERROR, ++ "'##' cannot appear at either end of a macro expansion"); + return false; + } + +--- libcpp/expr.c.jj 2015-01-14 11:01:34.000000000 +0100 ++++ libcpp/expr.c 2015-01-14 14:35:52.851002344 +0100 +@@ -672,16 +672,17 @@ cpp_classify_number (cpp_reader *pfile, + if ((result & CPP_N_WIDTH) == CPP_N_LARGE + && CPP_OPTION (pfile, cpp_warn_long_long)) + { +- const char *message = CPP_OPTION (pfile, cplusplus) +- ? N_("use of C++11 long long integer constant") +- : N_("use of C99 long long integer constant"); +- + if (CPP_OPTION (pfile, c99)) + cpp_warning_with_line (pfile, CPP_W_LONG_LONG, virtual_location, +- 0, message); ++ 0, CPP_OPTION (pfile, cplusplus) ++ ? N_("use of C++11 long long integer constant") ++ : N_("use of C99 long long integer constant")); + else + cpp_pedwarning_with_line (pfile, CPP_W_LONG_LONG, +- virtual_location, 0, message); ++ virtual_location, 0, ++ CPP_OPTION (pfile, cplusplus) ++ ? N_("use of C++11 long long integer constant") ++ : N_("use of C99 long long integer constant")); + } + + result |= CPP_N_INTEGER; diff --git a/gcc49-i386-libgomp.patch b/gcc5-i386-libgomp.patch similarity index 100% rename from gcc49-i386-libgomp.patch rename to gcc5-i386-libgomp.patch diff --git a/gcc5-isl-dl.patch b/gcc5-isl-dl.patch new file mode 100644 index 0000000..104296f --- /dev/null +++ b/gcc5-isl-dl.patch @@ -0,0 +1,561 @@ +--- gcc/Makefile.in.jj 2012-12-13 17:09:20.000000000 +0100 ++++ gcc/Makefile.in 2012-12-14 11:45:22.585670055 +0100 +@@ -1006,7 +1006,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY) + # and the system's installed libraries. + LIBS = @LIBS@ libcommon.a $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBBACKTRACE) \ + $(LIBIBERTY) $(LIBDECNUMBER) $(HOST_LIBS) +-BACKENDLIBS = $(ISLLIBS) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \ ++BACKENDLIBS = $(if $(ISLLIBS),-ldl) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \ + $(ZLIB) + # Any system libraries needed just for GNAT. + SYSLIBS = @GNAT_LIBEXC@ +@@ -2050,6 +2050,15 @@ $(out_object_file): $(out_file) + $(common_out_object_file): $(common_out_file) + $(COMPILE) $< + $(POSTCOMPILE) ++ ++graphite%.o : \ ++ ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS)) ++graphite.o : \ ++ ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS)) ++graphite%.o : \ ++ ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS)) ++graphite.o : \ ++ ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS)) + # + # Generate header and source files from the machine description, + # and compile them. +--- gcc/graphite-poly.h.jj 2012-12-13 11:31:27.000000000 +0100 ++++ gcc/graphite-poly.h 2012-12-14 13:41:41.970800726 +0100 +@@ -22,6 +22,478 @@ along with GCC; see the file COPYING3. + #ifndef GCC_GRAPHITE_POLY_H + #define GCC_GRAPHITE_POLY_H + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#ifdef HAVE_ISL_SCHED_CONSTRAINTS_COMPUTE_SCHEDULE ++#define DYNSYM_ZERO_DISTANCE DYNSYM (isl_band_member_is_coincident) ++#else ++#define DYNSYM_ZERO_DISTANCE DYNSYM (isl_band_member_is_zero_distance) ++#endif ++#define DYNSYMS \ ++ DYNSYM (isl_aff_add_coefficient_si); \ ++ DYNSYM (isl_aff_free); \ ++ DYNSYM (isl_aff_get_space); \ ++ DYNSYM (isl_aff_set_coefficient_si); \ ++ DYNSYM (isl_aff_set_constant_si); \ ++ DYNSYM (isl_aff_zero_on_domain); \ ++ DYNSYM (isl_band_free); \ ++ DYNSYM (isl_band_get_children); \ ++ DYNSYM (isl_band_get_partial_schedule); \ ++ DYNSYM (isl_band_has_children); \ ++ DYNSYM (isl_band_list_free); \ ++ DYNSYM (isl_band_list_get_band); \ ++ DYNSYM (isl_band_list_get_ctx); \ ++ DYNSYM (isl_band_list_n_band); \ ++ DYNSYM_ZERO_DISTANCE; \ ++ DYNSYM (isl_band_n_member); \ ++ DYNSYM (isl_basic_map_add_constraint); \ ++ DYNSYM (isl_basic_map_project_out); \ ++ DYNSYM (isl_basic_map_universe); \ ++ DYNSYM (isl_constraint_set_coefficient_si); \ ++ DYNSYM (isl_constraint_set_constant_si); \ ++ DYNSYM (isl_ctx_alloc); \ ++ DYNSYM (isl_ctx_free); \ ++ DYNSYM (isl_equality_alloc); \ ++ DYNSYM (isl_id_alloc); \ ++ DYNSYM (isl_id_copy); \ ++ DYNSYM (isl_id_free); \ ++ DYNSYM (isl_inequality_alloc); \ ++ DYNSYM (isl_local_space_copy); \ ++ DYNSYM (isl_local_space_free); \ ++ DYNSYM (isl_local_space_from_space); \ ++ DYNSYM (isl_local_space_range); \ ++ DYNSYM (isl_map_add_constraint); \ ++ DYNSYM (isl_map_add_dims); \ ++ DYNSYM (isl_map_align_params); \ ++ DYNSYM (isl_map_apply_range); \ ++ DYNSYM (isl_map_copy); \ ++ DYNSYM (isl_map_dim); \ ++ DYNSYM (isl_map_dump); \ ++ DYNSYM (isl_map_equate); \ ++ DYNSYM (isl_map_fix_si); \ ++ DYNSYM (isl_map_flat_product); \ ++ DYNSYM (isl_map_flat_range_product); \ ++ DYNSYM (isl_map_free); \ ++ DYNSYM (isl_map_from_basic_map); \ ++ DYNSYM (isl_map_from_pw_aff); \ ++ DYNSYM (isl_map_from_union_map); \ ++ DYNSYM (isl_map_get_ctx); \ ++ DYNSYM (isl_map_get_space); \ ++ DYNSYM (isl_map_get_tuple_id); \ ++ DYNSYM (isl_map_insert_dims); \ ++ DYNSYM (isl_map_intersect); \ ++ DYNSYM (isl_map_intersect_domain); \ ++ DYNSYM (isl_map_intersect_range); \ ++ DYNSYM (isl_map_is_empty); \ ++ DYNSYM (isl_map_lex_ge); \ ++ DYNSYM (isl_map_lex_le); \ ++ DYNSYM (isl_map_n_out); \ ++ DYNSYM (isl_map_range); \ ++ DYNSYM (isl_map_set_tuple_id); \ ++ DYNSYM (isl_map_universe); \ ++ DYNSYM (isl_options_set_on_error); \ ++ DYNSYM (isl_options_set_schedule_fuse); \ ++ DYNSYM (isl_options_set_schedule_max_constant_term); \ ++ DYNSYM (isl_options_set_schedule_maximize_band_depth); \ ++ DYNSYM (isl_printer_free); \ ++ DYNSYM (isl_printer_print_aff); \ ++ DYNSYM (isl_printer_print_constraint); \ ++ DYNSYM (isl_printer_print_map); \ ++ DYNSYM (isl_printer_print_set); \ ++ DYNSYM (isl_printer_to_file); \ ++ DYNSYM (isl_pw_aff_add); \ ++ DYNSYM (isl_pw_aff_alloc); \ ++ DYNSYM (isl_pw_aff_copy); \ ++ DYNSYM (isl_pw_aff_eq_set); \ ++ DYNSYM (isl_pw_aff_free); \ ++ DYNSYM (isl_pw_aff_from_aff); \ ++ DYNSYM (isl_pw_aff_ge_set); \ ++ DYNSYM (isl_pw_aff_gt_set); \ ++ DYNSYM (isl_pw_aff_is_cst); \ ++ DYNSYM (isl_pw_aff_le_set); \ ++ DYNSYM (isl_pw_aff_lt_set); \ ++ DYNSYM (isl_pw_aff_mul); \ ++ DYNSYM (isl_pw_aff_ne_set); \ ++ DYNSYM (isl_pw_aff_nonneg_set); \ ++ DYNSYM (isl_pw_aff_set_tuple_id); \ ++ DYNSYM (isl_pw_aff_sub); \ ++ DYNSYM (isl_pw_aff_zero_set); \ ++ DYNSYM (isl_schedule_free); \ ++ DYNSYM (isl_schedule_get_band_forest); \ ++ DYNSYM (isl_set_add_constraint); \ ++ DYNSYM (isl_set_add_dims); \ ++ DYNSYM (isl_set_apply); \ ++ DYNSYM (isl_set_coalesce); \ ++ DYNSYM (isl_set_copy); \ ++ DYNSYM (isl_set_dim); \ ++ DYNSYM (isl_set_fix_si); \ ++ DYNSYM (isl_set_free); \ ++ DYNSYM (isl_set_get_space); \ ++ DYNSYM (isl_set_get_tuple_id); \ ++ DYNSYM (isl_set_intersect); \ ++ DYNSYM (isl_set_is_empty); \ ++ DYNSYM (isl_set_n_dim); \ ++ DYNSYM (isl_set_nat_universe); \ ++ DYNSYM (isl_set_project_out); \ ++ DYNSYM (isl_set_set_tuple_id); \ ++ DYNSYM (isl_set_universe); \ ++ DYNSYM (isl_space_add_dims); \ ++ DYNSYM (isl_space_alloc); \ ++ DYNSYM (isl_space_copy); \ ++ DYNSYM (isl_space_dim); \ ++ DYNSYM (isl_space_domain); \ ++ DYNSYM (isl_space_find_dim_by_id); \ ++ DYNSYM (isl_space_free); \ ++ DYNSYM (isl_space_from_domain); \ ++ DYNSYM (isl_space_get_tuple_id); \ ++ DYNSYM (isl_space_params_alloc); \ ++ DYNSYM (isl_space_range); \ ++ DYNSYM (isl_space_set_alloc); \ ++ DYNSYM (isl_space_set_dim_id); \ ++ DYNSYM (isl_space_set_tuple_id); \ ++ DYNSYM (isl_union_map_add_map); \ ++ DYNSYM (isl_union_map_align_params); \ ++ DYNSYM (isl_union_map_apply_domain); \ ++ DYNSYM (isl_union_map_apply_range); \ ++ DYNSYM (isl_union_map_compute_flow); \ ++ DYNSYM (isl_union_map_copy); \ ++ DYNSYM (isl_union_map_empty); \ ++ DYNSYM (isl_union_map_flat_range_product); \ ++ DYNSYM (isl_union_map_foreach_map); \ ++ DYNSYM (isl_union_map_free); \ ++ DYNSYM (isl_union_map_from_map); \ ++ DYNSYM (isl_union_map_get_ctx); \ ++ DYNSYM (isl_union_map_get_space); \ ++ DYNSYM (isl_union_map_gist_domain); \ ++ DYNSYM (isl_union_map_gist_range); \ ++ DYNSYM (isl_union_map_intersect_domain); \ ++ DYNSYM (isl_union_map_is_empty); \ ++ DYNSYM (isl_union_map_subtract); \ ++ DYNSYM (isl_union_map_union); \ ++ DYNSYM (isl_union_set_add_set); \ ++ DYNSYM (isl_union_set_compute_schedule); \ ++ DYNSYM (isl_union_set_copy); \ ++ DYNSYM (isl_union_set_empty); \ ++ DYNSYM (isl_union_set_from_set); \ ++ DYNSYM (isl_aff_add_constant_val); \ ++ DYNSYM (isl_aff_get_coefficient_val); \ ++ DYNSYM (isl_aff_get_ctx); \ ++ DYNSYM (isl_aff_mod_val); \ ++ DYNSYM (isl_ast_build_ast_from_schedule); \ ++ DYNSYM (isl_ast_build_free); \ ++ DYNSYM (isl_ast_build_from_context); \ ++ DYNSYM (isl_ast_build_get_ctx); \ ++ DYNSYM (isl_ast_build_get_schedule); \ ++ DYNSYM (isl_ast_build_get_schedule_space); \ ++ DYNSYM (isl_ast_build_set_before_each_for); \ ++ DYNSYM (isl_ast_build_set_options); \ ++ DYNSYM (isl_ast_expr_free); \ ++ DYNSYM (isl_ast_expr_from_val); \ ++ DYNSYM (isl_ast_expr_get_ctx); \ ++ DYNSYM (isl_ast_expr_get_id); \ ++ DYNSYM (isl_ast_expr_get_op_arg); \ ++ DYNSYM (isl_ast_expr_get_op_n_arg); \ ++ DYNSYM (isl_ast_expr_get_op_type); \ ++ DYNSYM (isl_ast_expr_get_type); \ ++ DYNSYM (isl_ast_expr_get_val); \ ++ DYNSYM (isl_ast_expr_sub); \ ++ DYNSYM (isl_ast_node_block_get_children); \ ++ DYNSYM (isl_ast_node_for_get_body); \ ++ DYNSYM (isl_ast_node_for_get_cond); \ ++ DYNSYM (isl_ast_node_for_get_inc); \ ++ DYNSYM (isl_ast_node_for_get_init); \ ++ DYNSYM (isl_ast_node_for_get_iterator); \ ++ DYNSYM (isl_ast_node_free); \ ++ DYNSYM (isl_ast_node_get_annotation); \ ++ DYNSYM (isl_ast_node_get_type); \ ++ DYNSYM (isl_ast_node_if_get_cond); \ ++ DYNSYM (isl_ast_node_if_get_else); \ ++ DYNSYM (isl_ast_node_if_get_then); \ ++ DYNSYM (isl_ast_node_list_free); \ ++ DYNSYM (isl_ast_node_list_get_ast_node); \ ++ DYNSYM (isl_ast_node_list_n_ast_node); \ ++ DYNSYM (isl_ast_node_user_get_expr); \ ++ DYNSYM (isl_constraint_set_coefficient_val); \ ++ DYNSYM (isl_constraint_set_constant_val); \ ++ DYNSYM (isl_id_get_user); \ ++ DYNSYM (isl_local_space_get_ctx); \ ++ DYNSYM (isl_map_fix_val); \ ++ DYNSYM (isl_options_set_ast_build_atomic_upper_bound); \ ++ DYNSYM (isl_printer_print_ast_node); \ ++ DYNSYM (isl_printer_print_str); \ ++ DYNSYM (isl_printer_set_output_format); \ ++ DYNSYM (isl_pw_aff_mod_val); \ ++ DYNSYM (isl_schedule_constraints_compute_schedule); \ ++ DYNSYM (isl_schedule_constraints_on_domain); \ ++ DYNSYM (isl_schedule_constraints_set_coincidence); \ ++ DYNSYM (isl_schedule_constraints_set_proximity); \ ++ DYNSYM (isl_schedule_constraints_set_validity); \ ++ DYNSYM (isl_set_get_dim_id); \ ++ DYNSYM (isl_set_max_val); \ ++ DYNSYM (isl_set_min_val); \ ++ DYNSYM (isl_set_params); \ ++ DYNSYM (isl_space_align_params); \ ++ DYNSYM (isl_space_map_from_domain_and_range); \ ++ DYNSYM (isl_space_set_tuple_name); \ ++ DYNSYM (isl_space_wrap); \ ++ DYNSYM (isl_union_map_from_domain_and_range); \ ++ DYNSYM (isl_union_map_range); \ ++ DYNSYM (isl_union_set_union); \ ++ DYNSYM (isl_union_set_universe); \ ++ DYNSYM (isl_val_2exp); \ ++ DYNSYM (isl_val_add_ui); \ ++ DYNSYM (isl_val_copy); \ ++ DYNSYM (isl_val_free); \ ++ DYNSYM (isl_val_get_num_gmp); \ ++ DYNSYM (isl_val_int_from_gmp); \ ++ DYNSYM (isl_val_int_from_si); \ ++ DYNSYM (isl_val_int_from_ui); \ ++ DYNSYM (isl_val_mul); \ ++ DYNSYM (isl_val_neg); \ ++ DYNSYM (isl_val_sub); ++ ++extern struct isl_pointers_s__ ++{ ++ bool inited; ++ void *h; ++#define DYNSYM(x) __typeof (x) *p_##x ++ DYNSYMS ++#undef DYNSYM ++} isl_pointers__; ++ ++#define isl_aff_add_coefficient_si (*isl_pointers__.p_isl_aff_add_coefficient_si) ++#define isl_aff_free (*isl_pointers__.p_isl_aff_free) ++#define isl_aff_get_space (*isl_pointers__.p_isl_aff_get_space) ++#define isl_aff_set_coefficient_si (*isl_pointers__.p_isl_aff_set_coefficient_si) ++#define isl_aff_set_constant_si (*isl_pointers__.p_isl_aff_set_constant_si) ++#define isl_aff_zero_on_domain (*isl_pointers__.p_isl_aff_zero_on_domain) ++#define isl_band_free (*isl_pointers__.p_isl_band_free) ++#define isl_band_get_children (*isl_pointers__.p_isl_band_get_children) ++#define isl_band_get_partial_schedule (*isl_pointers__.p_isl_band_get_partial_schedule) ++#define isl_band_has_children (*isl_pointers__.p_isl_band_has_children) ++#define isl_band_list_free (*isl_pointers__.p_isl_band_list_free) ++#define isl_band_list_get_band (*isl_pointers__.p_isl_band_list_get_band) ++#define isl_band_list_get_ctx (*isl_pointers__.p_isl_band_list_get_ctx) ++#define isl_band_list_n_band (*isl_pointers__.p_isl_band_list_n_band) ++#ifdef HAVE_ISL_SCHED_CONSTRAINTS_COMPUTE_SCHEDULE ++#define isl_band_member_is_coincident (*isl_pointers__.p_isl_band_member_is_coincident) ++#else ++#define isl_band_member_is_zero_distance (*isl_pointers__.p_isl_band_member_is_zero_distance) ++#endif ++#define isl_band_n_member (*isl_pointers__.p_isl_band_n_member) ++#define isl_basic_map_add_constraint (*isl_pointers__.p_isl_basic_map_add_constraint) ++#define isl_basic_map_project_out (*isl_pointers__.p_isl_basic_map_project_out) ++#define isl_basic_map_universe (*isl_pointers__.p_isl_basic_map_universe) ++#define isl_constraint_set_coefficient_si (*isl_pointers__.p_isl_constraint_set_coefficient_si) ++#define isl_constraint_set_constant_si (*isl_pointers__.p_isl_constraint_set_constant_si) ++#define isl_ctx_alloc (*isl_pointers__.p_isl_ctx_alloc) ++#define isl_ctx_free (*isl_pointers__.p_isl_ctx_free) ++#define isl_equality_alloc (*isl_pointers__.p_isl_equality_alloc) ++#define isl_id_alloc (*isl_pointers__.p_isl_id_alloc) ++#define isl_id_copy (*isl_pointers__.p_isl_id_copy) ++#define isl_id_free (*isl_pointers__.p_isl_id_free) ++#define isl_inequality_alloc (*isl_pointers__.p_isl_inequality_alloc) ++#define isl_local_space_copy (*isl_pointers__.p_isl_local_space_copy) ++#define isl_local_space_free (*isl_pointers__.p_isl_local_space_free) ++#define isl_local_space_from_space (*isl_pointers__.p_isl_local_space_from_space) ++#define isl_local_space_range (*isl_pointers__.p_isl_local_space_range) ++#define isl_map_add_constraint (*isl_pointers__.p_isl_map_add_constraint) ++#define isl_map_add_dims (*isl_pointers__.p_isl_map_add_dims) ++#define isl_map_align_params (*isl_pointers__.p_isl_map_align_params) ++#define isl_map_apply_range (*isl_pointers__.p_isl_map_apply_range) ++#define isl_map_copy (*isl_pointers__.p_isl_map_copy) ++#define isl_map_dim (*isl_pointers__.p_isl_map_dim) ++#define isl_map_dump (*isl_pointers__.p_isl_map_dump) ++#define isl_map_equate (*isl_pointers__.p_isl_map_equate) ++#define isl_map_fix_si (*isl_pointers__.p_isl_map_fix_si) ++#define isl_map_flat_product (*isl_pointers__.p_isl_map_flat_product) ++#define isl_map_flat_range_product (*isl_pointers__.p_isl_map_flat_range_product) ++#define isl_map_free (*isl_pointers__.p_isl_map_free) ++#define isl_map_from_basic_map (*isl_pointers__.p_isl_map_from_basic_map) ++#define isl_map_from_pw_aff (*isl_pointers__.p_isl_map_from_pw_aff) ++#define isl_map_from_union_map (*isl_pointers__.p_isl_map_from_union_map) ++#define isl_map_get_ctx (*isl_pointers__.p_isl_map_get_ctx) ++#define isl_map_get_space (*isl_pointers__.p_isl_map_get_space) ++#define isl_map_get_tuple_id (*isl_pointers__.p_isl_map_get_tuple_id) ++#define isl_map_insert_dims (*isl_pointers__.p_isl_map_insert_dims) ++#define isl_map_intersect (*isl_pointers__.p_isl_map_intersect) ++#define isl_map_intersect_domain (*isl_pointers__.p_isl_map_intersect_domain) ++#define isl_map_intersect_range (*isl_pointers__.p_isl_map_intersect_range) ++#define isl_map_is_empty (*isl_pointers__.p_isl_map_is_empty) ++#define isl_map_lex_ge (*isl_pointers__.p_isl_map_lex_ge) ++#define isl_map_lex_le (*isl_pointers__.p_isl_map_lex_le) ++#define isl_map_n_out (*isl_pointers__.p_isl_map_n_out) ++#define isl_map_range (*isl_pointers__.p_isl_map_range) ++#define isl_map_set_tuple_id (*isl_pointers__.p_isl_map_set_tuple_id) ++#define isl_map_universe (*isl_pointers__.p_isl_map_universe) ++#define isl_options_set_on_error (*isl_pointers__.p_isl_options_set_on_error) ++#define isl_options_set_schedule_fuse (*isl_pointers__.p_isl_options_set_schedule_fuse) ++#define isl_options_set_schedule_max_constant_term (*isl_pointers__.p_isl_options_set_schedule_max_constant_term) ++#define isl_options_set_schedule_maximize_band_depth (*isl_pointers__.p_isl_options_set_schedule_maximize_band_depth) ++#define isl_printer_free (*isl_pointers__.p_isl_printer_free) ++#define isl_printer_print_aff (*isl_pointers__.p_isl_printer_print_aff) ++#define isl_printer_print_constraint (*isl_pointers__.p_isl_printer_print_constraint) ++#define isl_printer_print_map (*isl_pointers__.p_isl_printer_print_map) ++#define isl_printer_print_set (*isl_pointers__.p_isl_printer_print_set) ++#define isl_printer_to_file (*isl_pointers__.p_isl_printer_to_file) ++#define isl_pw_aff_add (*isl_pointers__.p_isl_pw_aff_add) ++#define isl_pw_aff_alloc (*isl_pointers__.p_isl_pw_aff_alloc) ++#define isl_pw_aff_copy (*isl_pointers__.p_isl_pw_aff_copy) ++#define isl_pw_aff_eq_set (*isl_pointers__.p_isl_pw_aff_eq_set) ++#define isl_pw_aff_free (*isl_pointers__.p_isl_pw_aff_free) ++#define isl_pw_aff_from_aff (*isl_pointers__.p_isl_pw_aff_from_aff) ++#define isl_pw_aff_ge_set (*isl_pointers__.p_isl_pw_aff_ge_set) ++#define isl_pw_aff_gt_set (*isl_pointers__.p_isl_pw_aff_gt_set) ++#define isl_pw_aff_is_cst (*isl_pointers__.p_isl_pw_aff_is_cst) ++#define isl_pw_aff_le_set (*isl_pointers__.p_isl_pw_aff_le_set) ++#define isl_pw_aff_lt_set (*isl_pointers__.p_isl_pw_aff_lt_set) ++#define isl_pw_aff_mul (*isl_pointers__.p_isl_pw_aff_mul) ++#define isl_pw_aff_ne_set (*isl_pointers__.p_isl_pw_aff_ne_set) ++#define isl_pw_aff_nonneg_set (*isl_pointers__.p_isl_pw_aff_nonneg_set) ++#define isl_pw_aff_set_tuple_id (*isl_pointers__.p_isl_pw_aff_set_tuple_id) ++#define isl_pw_aff_sub (*isl_pointers__.p_isl_pw_aff_sub) ++#define isl_pw_aff_zero_set (*isl_pointers__.p_isl_pw_aff_zero_set) ++#define isl_schedule_free (*isl_pointers__.p_isl_schedule_free) ++#define isl_schedule_get_band_forest (*isl_pointers__.p_isl_schedule_get_band_forest) ++#define isl_set_add_constraint (*isl_pointers__.p_isl_set_add_constraint) ++#define isl_set_add_dims (*isl_pointers__.p_isl_set_add_dims) ++#define isl_set_apply (*isl_pointers__.p_isl_set_apply) ++#define isl_set_coalesce (*isl_pointers__.p_isl_set_coalesce) ++#define isl_set_copy (*isl_pointers__.p_isl_set_copy) ++#define isl_set_dim (*isl_pointers__.p_isl_set_dim) ++#define isl_set_fix_si (*isl_pointers__.p_isl_set_fix_si) ++#define isl_set_free (*isl_pointers__.p_isl_set_free) ++#define isl_set_get_space (*isl_pointers__.p_isl_set_get_space) ++#define isl_set_get_tuple_id (*isl_pointers__.p_isl_set_get_tuple_id) ++#define isl_set_intersect (*isl_pointers__.p_isl_set_intersect) ++#define isl_set_is_empty (*isl_pointers__.p_isl_set_is_empty) ++#define isl_set_n_dim (*isl_pointers__.p_isl_set_n_dim) ++#define isl_set_nat_universe (*isl_pointers__.p_isl_set_nat_universe) ++#define isl_set_project_out (*isl_pointers__.p_isl_set_project_out) ++#define isl_set_set_tuple_id (*isl_pointers__.p_isl_set_set_tuple_id) ++#define isl_set_universe (*isl_pointers__.p_isl_set_universe) ++#define isl_space_add_dims (*isl_pointers__.p_isl_space_add_dims) ++#define isl_space_alloc (*isl_pointers__.p_isl_space_alloc) ++#define isl_space_copy (*isl_pointers__.p_isl_space_copy) ++#define isl_space_dim (*isl_pointers__.p_isl_space_dim) ++#define isl_space_domain (*isl_pointers__.p_isl_space_domain) ++#define isl_space_find_dim_by_id (*isl_pointers__.p_isl_space_find_dim_by_id) ++#define isl_space_free (*isl_pointers__.p_isl_space_free) ++#define isl_space_from_domain (*isl_pointers__.p_isl_space_from_domain) ++#define isl_space_get_tuple_id (*isl_pointers__.p_isl_space_get_tuple_id) ++#define isl_space_params_alloc (*isl_pointers__.p_isl_space_params_alloc) ++#define isl_space_range (*isl_pointers__.p_isl_space_range) ++#define isl_space_set_alloc (*isl_pointers__.p_isl_space_set_alloc) ++#define isl_space_set_dim_id (*isl_pointers__.p_isl_space_set_dim_id) ++#define isl_space_set_tuple_id (*isl_pointers__.p_isl_space_set_tuple_id) ++#define isl_union_map_add_map (*isl_pointers__.p_isl_union_map_add_map) ++#define isl_union_map_align_params (*isl_pointers__.p_isl_union_map_align_params) ++#define isl_union_map_apply_domain (*isl_pointers__.p_isl_union_map_apply_domain) ++#define isl_union_map_apply_range (*isl_pointers__.p_isl_union_map_apply_range) ++#define isl_union_map_compute_flow (*isl_pointers__.p_isl_union_map_compute_flow) ++#define isl_union_map_copy (*isl_pointers__.p_isl_union_map_copy) ++#define isl_union_map_empty (*isl_pointers__.p_isl_union_map_empty) ++#define isl_union_map_flat_range_product (*isl_pointers__.p_isl_union_map_flat_range_product) ++#define isl_union_map_foreach_map (*isl_pointers__.p_isl_union_map_foreach_map) ++#define isl_union_map_free (*isl_pointers__.p_isl_union_map_free) ++#define isl_union_map_from_map (*isl_pointers__.p_isl_union_map_from_map) ++#define isl_union_map_get_ctx (*isl_pointers__.p_isl_union_map_get_ctx) ++#define isl_union_map_get_space (*isl_pointers__.p_isl_union_map_get_space) ++#define isl_union_map_gist_domain (*isl_pointers__.p_isl_union_map_gist_domain) ++#define isl_union_map_gist_range (*isl_pointers__.p_isl_union_map_gist_range) ++#define isl_union_map_intersect_domain (*isl_pointers__.p_isl_union_map_intersect_domain) ++#define isl_union_map_is_empty (*isl_pointers__.p_isl_union_map_is_empty) ++#define isl_union_map_subtract (*isl_pointers__.p_isl_union_map_subtract) ++#define isl_union_map_union (*isl_pointers__.p_isl_union_map_union) ++#define isl_union_set_add_set (*isl_pointers__.p_isl_union_set_add_set) ++#define isl_union_set_compute_schedule (*isl_pointers__.p_isl_union_set_compute_schedule) ++#define isl_union_set_copy (*isl_pointers__.p_isl_union_set_copy) ++#define isl_union_set_empty (*isl_pointers__.p_isl_union_set_empty) ++#define isl_union_set_from_set (*isl_pointers__.p_isl_union_set_from_set) ++#define isl_aff_add_constant_val (*isl_pointers__.p_isl_aff_add_constant_val) ++#define isl_aff_get_coefficient_val (*isl_pointers__.p_isl_aff_get_coefficient_val) ++#define isl_aff_get_ctx (*isl_pointers__.p_isl_aff_get_ctx) ++#define isl_aff_mod_val (*isl_pointers__.p_isl_aff_mod_val) ++#define isl_ast_build_ast_from_schedule (*isl_pointers__.p_isl_ast_build_ast_from_schedule) ++#define isl_ast_build_free (*isl_pointers__.p_isl_ast_build_free) ++#define isl_ast_build_from_context (*isl_pointers__.p_isl_ast_build_from_context) ++#define isl_ast_build_get_ctx (*isl_pointers__.p_isl_ast_build_get_ctx) ++#define isl_ast_build_get_schedule (*isl_pointers__.p_isl_ast_build_get_schedule) ++#define isl_ast_build_get_schedule_space (*isl_pointers__.p_isl_ast_build_get_schedule_space) ++#define isl_ast_build_set_before_each_for (*isl_pointers__.p_isl_ast_build_set_before_each_for) ++#define isl_ast_build_set_options (*isl_pointers__.p_isl_ast_build_set_options) ++#define isl_ast_expr_free (*isl_pointers__.p_isl_ast_expr_free) ++#define isl_ast_expr_from_val (*isl_pointers__.p_isl_ast_expr_from_val) ++#define isl_ast_expr_get_ctx (*isl_pointers__.p_isl_ast_expr_get_ctx) ++#define isl_ast_expr_get_id (*isl_pointers__.p_isl_ast_expr_get_id) ++#define isl_ast_expr_get_op_arg (*isl_pointers__.p_isl_ast_expr_get_op_arg) ++#define isl_ast_expr_get_op_n_arg (*isl_pointers__.p_isl_ast_expr_get_op_n_arg) ++#define isl_ast_expr_get_op_type (*isl_pointers__.p_isl_ast_expr_get_op_type) ++#define isl_ast_expr_get_type (*isl_pointers__.p_isl_ast_expr_get_type) ++#define isl_ast_expr_get_val (*isl_pointers__.p_isl_ast_expr_get_val) ++#define isl_ast_expr_sub (*isl_pointers__.p_isl_ast_expr_sub) ++#define isl_ast_node_block_get_children (*isl_pointers__.p_isl_ast_node_block_get_children) ++#define isl_ast_node_for_get_body (*isl_pointers__.p_isl_ast_node_for_get_body) ++#define isl_ast_node_for_get_cond (*isl_pointers__.p_isl_ast_node_for_get_cond) ++#define isl_ast_node_for_get_inc (*isl_pointers__.p_isl_ast_node_for_get_inc) ++#define isl_ast_node_for_get_init (*isl_pointers__.p_isl_ast_node_for_get_init) ++#define isl_ast_node_for_get_iterator (*isl_pointers__.p_isl_ast_node_for_get_iterator) ++#define isl_ast_node_free (*isl_pointers__.p_isl_ast_node_free) ++#define isl_ast_node_get_annotation (*isl_pointers__.p_isl_ast_node_get_annotation) ++#define isl_ast_node_get_type (*isl_pointers__.p_isl_ast_node_get_type) ++#define isl_ast_node_if_get_cond (*isl_pointers__.p_isl_ast_node_if_get_cond) ++#define isl_ast_node_if_get_else (*isl_pointers__.p_isl_ast_node_if_get_else) ++#define isl_ast_node_if_get_then (*isl_pointers__.p_isl_ast_node_if_get_then) ++#define isl_ast_node_list_free (*isl_pointers__.p_isl_ast_node_list_free) ++#define isl_ast_node_list_get_ast_node (*isl_pointers__.p_isl_ast_node_list_get_ast_node) ++#define isl_ast_node_list_n_ast_node (*isl_pointers__.p_isl_ast_node_list_n_ast_node) ++#define isl_ast_node_user_get_expr (*isl_pointers__.p_isl_ast_node_user_get_expr) ++#define isl_constraint_set_coefficient_val (*isl_pointers__.p_isl_constraint_set_coefficient_val) ++#define isl_constraint_set_constant_val (*isl_pointers__.p_isl_constraint_set_constant_val) ++#define isl_id_get_user (*isl_pointers__.p_isl_id_get_user) ++#define isl_local_space_get_ctx (*isl_pointers__.p_isl_local_space_get_ctx) ++#define isl_map_fix_val (*isl_pointers__.p_isl_map_fix_val) ++#define isl_options_set_ast_build_atomic_upper_bound (*isl_pointers__.p_isl_options_set_ast_build_atomic_upper_bound) ++#define isl_printer_print_ast_node (*isl_pointers__.p_isl_printer_print_ast_node) ++#define isl_printer_print_str (*isl_pointers__.p_isl_printer_print_str) ++#define isl_printer_set_output_format (*isl_pointers__.p_isl_printer_set_output_format) ++#define isl_pw_aff_mod_val (*isl_pointers__.p_isl_pw_aff_mod_val) ++#define isl_schedule_constraints_compute_schedule (*isl_pointers__.p_isl_schedule_constraints_compute_schedule) ++#define isl_schedule_constraints_on_domain (*isl_pointers__.p_isl_schedule_constraints_on_domain) ++#define isl_schedule_constraints_set_coincidence (*isl_pointers__.p_isl_schedule_constraints_set_coincidence) ++#define isl_schedule_constraints_set_proximity (*isl_pointers__.p_isl_schedule_constraints_set_proximity) ++#define isl_schedule_constraints_set_validity (*isl_pointers__.p_isl_schedule_constraints_set_validity) ++#define isl_set_get_dim_id (*isl_pointers__.p_isl_set_get_dim_id) ++#define isl_set_max_val (*isl_pointers__.p_isl_set_max_val) ++#define isl_set_min_val (*isl_pointers__.p_isl_set_min_val) ++#define isl_set_params (*isl_pointers__.p_isl_set_params) ++#define isl_space_align_params (*isl_pointers__.p_isl_space_align_params) ++#define isl_space_map_from_domain_and_range (*isl_pointers__.p_isl_space_map_from_domain_and_range) ++#define isl_space_set_tuple_name (*isl_pointers__.p_isl_space_set_tuple_name) ++#define isl_space_wrap (*isl_pointers__.p_isl_space_wrap) ++#define isl_union_map_from_domain_and_range (*isl_pointers__.p_isl_union_map_from_domain_and_range) ++#define isl_union_map_range (*isl_pointers__.p_isl_union_map_range) ++#define isl_union_set_union (*isl_pointers__.p_isl_union_set_union) ++#define isl_union_set_universe (*isl_pointers__.p_isl_union_set_universe) ++#define isl_val_2exp (*isl_pointers__.p_isl_val_2exp) ++#define isl_val_add_ui (*isl_pointers__.p_isl_val_add_ui) ++#define isl_val_copy (*isl_pointers__.p_isl_val_copy) ++#define isl_val_free (*isl_pointers__.p_isl_val_free) ++#define isl_val_get_num_gmp (*isl_pointers__.p_isl_val_get_num_gmp) ++#define isl_val_int_from_gmp (*isl_pointers__.p_isl_val_int_from_gmp) ++#define isl_val_int_from_si (*isl_pointers__.p_isl_val_int_from_si) ++#define isl_val_int_from_ui (*isl_pointers__.p_isl_val_int_from_ui) ++#define isl_val_mul (*isl_pointers__.p_isl_val_mul) ++#define isl_val_neg (*isl_pointers__.p_isl_val_neg) ++#define isl_val_sub (*isl_pointers__.p_isl_val_sub) ++ + typedef struct poly_dr *poly_dr_p; + + typedef struct poly_bb *poly_bb_p; +--- gcc/graphite.c.jj 2012-12-13 11:31:00.000000000 +0100 ++++ gcc/graphite.c 2012-12-14 13:40:44.155136961 +0100 +@@ -90,6 +90,34 @@ along with GCC; see the file COPYING3. + #include "graphite-isl-ast-to-gimple.h" + #include "graphite-sese-to-poly.h" + ++__typeof (isl_pointers__) isl_pointers__; ++ ++static bool ++init_isl_pointers (void) ++{ ++ void *h; ++ ++ if (isl_pointers__.inited) ++ return isl_pointers__.h != NULL; ++ h = dlopen ("libisl.so.13", RTLD_LAZY); ++ isl_pointers__.h = h; ++ if (h == NULL) ++ return false; ++#define DYNSYM(x) \ ++ do \ ++ { \ ++ union { __typeof (isl_pointers__.p_##x) p; void *q; } u; \ ++ u.q = dlsym (h, #x); \ ++ if (u.q == NULL) \ ++ return false; \ ++ isl_pointers__.p_##x = u.p; \ ++ } \ ++ while (0) ++ DYNSYMS ++#undef DYNSYM ++ return true; ++} ++ + /* Print global statistics to FILE. */ + + static void +@@ -285,6 +313,15 @@ graphite_transform_loops (void) + if (parallelized_function_p (cfun->decl)) + return; + ++ if (number_of_loops (cfun) <= 1) ++ return; ++ ++ if (!init_isl_pointers ()) ++ { ++ sorry ("Graphite loop optimizations cannot be used"); ++ return; ++ } ++ + ctx = isl_ctx_alloc (); + isl_options_set_on_error (ctx, ISL_ON_ERROR_ABORT); + if (!graphite_initialize (ctx)) diff --git a/gcc49-java-nomulti.patch b/gcc5-java-nomulti.patch similarity index 100% rename from gcc49-java-nomulti.patch rename to gcc5-java-nomulti.patch diff --git a/gcc49-libgo-p224.patch b/gcc5-libgo-p224.patch similarity index 98% rename from gcc49-libgo-p224.patch rename to gcc5-libgo-p224.patch index 89e06e1..43509b1 100644 --- a/gcc49-libgo-p224.patch +++ b/gcc5-libgo-p224.patch @@ -209,7 +209,7 @@ case "P-384": --- libgo/go/crypto/x509/x509.go.jj 2013-11-07 11:59:09.000000000 +0100 +++ libgo/go/crypto/x509/x509.go 2014-03-05 15:27:37.022439437 +0100 -@@ -305,9 +305,6 @@ func getPublicKeyAlgorithmFromOID(oid as +@@ -306,9 +306,6 @@ func getPublicKeyAlgorithmFromOID(oid as // RFC 5480, 2.1.1.1. Named Curve // @@ -219,7 +219,7 @@ // secp256r1 OBJECT IDENTIFIER ::= { // iso(1) member-body(2) us(840) ansi-X9-62(10045) curves(3) // prime(1) 7 } -@@ -320,7 +317,6 @@ func getPublicKeyAlgorithmFromOID(oid as +@@ -321,7 +318,6 @@ func getPublicKeyAlgorithmFromOID(oid as // // NB: secp256r1 is equivalent to prime256v1 var ( @@ -227,7 +227,7 @@ oidNamedCurveP256 = asn1.ObjectIdentifier{1, 2, 840, 10045, 3, 1, 7} oidNamedCurveP384 = asn1.ObjectIdentifier{1, 3, 132, 0, 34} oidNamedCurveP521 = asn1.ObjectIdentifier{1, 3, 132, 0, 35} -@@ -328,8 +324,6 @@ var ( +@@ -329,8 +325,6 @@ var ( func namedCurveFromOID(oid asn1.ObjectIdentifier) elliptic.Curve { switch { @@ -236,7 +236,7 @@ case oid.Equal(oidNamedCurveP256): return elliptic.P256() case oid.Equal(oidNamedCurveP384): -@@ -342,8 +336,6 @@ func namedCurveFromOID(oid asn1.ObjectId +@@ -343,8 +337,6 @@ func namedCurveFromOID(oid asn1.ObjectId func oidFromNamedCurve(curve elliptic.Curve) (asn1.ObjectIdentifier, bool) { switch curve { @@ -245,14 +245,14 @@ case elliptic.P256(): return oidNamedCurveP256, true case elliptic.P384(): -@@ -1373,7 +1365,7 @@ func CreateCertificate(rand io.Reader, t - hashFunc = crypto.SHA1 - case *ecdsa.PrivateKey: +@@ -1371,7 +1363,7 @@ func signingParamsForPrivateKey(priv int + pubType = ECDSA + switch priv.Curve { - case elliptic.P224(), elliptic.P256(): + case elliptic.P256(): hashFunc = crypto.SHA256 - signatureAlgorithm.Algorithm = oidSignatureECDSAWithSHA256 + sigAlgo.Algorithm = oidSignatureECDSAWithSHA256 case elliptic.P384(): --- libgo/go/crypto/elliptic/p224.go.jj 2012-11-15 18:26:57.000000000 +0100 +++ libgo/go/crypto/elliptic/p224.go 2014-03-05 15:30:01.189430842 +0100 diff --git a/gcc49-libgomp-omp_h-multilib.patch b/gcc5-libgomp-omp_h-multilib.patch similarity index 100% rename from gcc49-libgomp-omp_h-multilib.patch rename to gcc5-libgomp-omp_h-multilib.patch diff --git a/gcc5-libsanitize-aarch64-va42.patch b/gcc5-libsanitize-aarch64-va42.patch new file mode 100644 index 0000000..bd4218b --- /dev/null +++ b/gcc5-libsanitize-aarch64-va42.patch @@ -0,0 +1,47 @@ +2015-01-22 Jakub Jelinek + + * asan/asan_allocator.h (kAllocatorSpace, kAllocatorSize): + Set to 1T for __aarch64__. + * sanitizer_common/sanitizer_platform.h + (SANITIZER_CAN_USE_ALLOCATOR64): Set to 1 on __aarch64__ + if SANITIZER_WORDSIZE is 64. + (SANITIZER_MMAP_RANGE_SIZE): Define to 1ULL << 42 for + __aarch64__. + +--- libsanitizer/asan/asan_allocator.h (revision 219833) ++++ libsanitizer/asan/asan_allocator.h (working copy) +@@ -100,6 +100,10 @@ + # if defined(__powerpc64__) + const uptr kAllocatorSpace = 0xa0000000000ULL; + const uptr kAllocatorSize = 0x20000000000ULL; // 2T. ++# elif defined(__aarch64__) ++// Valid only for 42-bit VA ++const uptr kAllocatorSpace = 0x10000000000ULL; ++const uptr kAllocatorSize = 0x10000000000ULL; // 1T. + # else + const uptr kAllocatorSpace = 0x600000000000ULL; + const uptr kAllocatorSize = 0x40000000000ULL; // 4T. +--- libsanitizer/sanitizer_common/sanitizer_platform.h (revision 219833) ++++ libsanitizer/sanitizer_common/sanitizer_platform.h (working copy) +@@ -79,7 +79,7 @@ + // For such platforms build this code with -DSANITIZER_CAN_USE_ALLOCATOR64=0 or + // change the definition of SANITIZER_CAN_USE_ALLOCATOR64 here. + #ifndef SANITIZER_CAN_USE_ALLOCATOR64 +-# if defined(__aarch64__) || defined(__mips64) ++# if defined(__mips64) + # define SANITIZER_CAN_USE_ALLOCATOR64 0 + # else + # define SANITIZER_CAN_USE_ALLOCATOR64 (SANITIZER_WORDSIZE == 64) +@@ -88,10 +88,10 @@ + + // The range of addresses which can be returned my mmap. + // FIXME: this value should be different on different platforms, +-// e.g. on AArch64 it is most likely (1ULL << 39). Larger values will still work ++// e.g. on AArch64 it is most likely (1ULL << 42). Larger values will still work + // but will consume more memory for TwoLevelByteMap. + #if defined(__aarch64__) +-# define SANITIZER_MMAP_RANGE_SIZE FIRST_32_SECOND_64(1ULL << 32, 1ULL << 39) ++# define SANITIZER_MMAP_RANGE_SIZE FIRST_32_SECOND_64(1ULL << 32, 1ULL << 42) + #else + # define SANITIZER_MMAP_RANGE_SIZE FIRST_32_SECOND_64(1ULL << 32, 1ULL << 47) + #endif diff --git a/gcc49-libstdc++-docs.patch b/gcc5-libstdc++-docs.patch similarity index 96% rename from gcc49-libstdc++-docs.patch rename to gcc5-libstdc++-docs.patch index ee8598a..58f4b33 100644 --- a/gcc49-libstdc++-docs.patch +++ b/gcc5-libstdc++-docs.patch @@ -4,7 +4,7 @@ FSF

-+ Release 4.9.2 ++ Release 5.0.0 +

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation @@ -18,7 +18,7 @@ - The API documentation, rendered into HTML, can be viewed online: + The API documentation, rendered into HTML, can be viewed here: