diff --git a/gcc/001-4.7-ada.patch b/gcc/001-4.7-ada.patch index 06894d40..a656dee9 100644 --- a/gcc/001-4.7-ada.patch +++ b/gcc/001-4.7-ada.patch @@ -3277,177 +3277,3 @@ diff -Naur gcc-4.9.1-orig/gcc/ada/system-cygwin.ads gcc-4.9.1/gcc/ada/system-cyg + -- System.Task_Primitives.Operations. + +end System; -diff -Naur gcc-4.9.1-orig/gcc-4.7.2/gcc/ada/a-intnam-cygwin.ads gcc-4.9.1/gcc-4.7.2/gcc/ada/a-intnam-cygwin.ads ---- gcc-4.9.1-orig/gcc-4.7.2/gcc/ada/a-intnam-cygwin.ads 1970-01-01 03:00:00.000000000 +0300 -+++ gcc-4.9.1/gcc-4.7.2/gcc/ada/a-intnam-cygwin.ads 2014-10-29 15:53:39.153000000 +0300 -@@ -0,0 +1,170 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- -+-- -- -+-- A D A . I N T E R R U P T S . N A M E S -- -+-- -- -+-- S p e c -- -+-- -- -+-- Copyright (C) 1991-2011, Free Software Foundation, Inc. -- -+-- -- -+-- GNARL is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 3, or (at your option) any later ver- -- -+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- -+-- or FITNESS FOR A PARTICULAR PURPOSE. -- -+-- -- -+-- As a special exception under Section 7 of GPL version 3, you are granted -- -+-- additional permissions described in the GCC Runtime Library Exception, -- -+-- version 3.1, as published by the Free Software Foundation. -- -+-- -- -+-- You should have received a copy of the GNU General Public License and -- -+-- a copy of the GCC Runtime Library Exception along with this program; -- -+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- -+-- . -- -+-- -- -+-- GNARL was developed by the GNARL team at Florida State University. -- -+-- Extensive contributions were provided by Ada Core Technologies, Inc. -- -+-- -- -+------------------------------------------------------------------------------ -+ -+-- This is a Cygwin version of this package but really it's a copy of the -+-- Linux version, so the below comments are probably irrelevant: -+ -+-- The following signals are reserved by the run time (FSU threads): -+ -+-- SIGFPE, SIGILL, SIGSEGV, SIGBUS, SIGTRAP, SIGABRT, SIGINT, -+-- SIGALRM, SIGVTALRM, SIGUNUSED, SIGSTOP, SIGKILL -+ -+-- The following signals are reserved by the run time (LinuxThreads): -+ -+-- SIGFPE, SIGILL, SIGSEGV, SIGBUS, SIGTRAP, SIGABRT, SIGINT, -+-- SIGUSR1, SIGUSR2, SIGVTALRM, SIGUNUSED, SIGSTOP, SIGKILL -+ -+-- The pragma Unreserve_All_Interrupts affects the following signal(s): -+ -+-- SIGINT: made available for Ada handler -+ -+-- This target-dependent package spec contains names of interrupts -+-- supported by the local system. -+ -+with System.OS_Interface; -+-- used for names of interrupts -+ -+package Ada.Interrupts.Names is -+ -+ -- All identifiers in this unit are implementation defined -+ -+ pragma Implementation_Defined; -+ -+ -- Beware that the mapping of names to signals may be many-to-one. There -+ -- may be aliases. Also, for all signal names that are not supported on the -+ -- current system the value of the corresponding constant will be zero. -+ -+ SIGHUP : constant Interrupt_ID := -+ System.OS_Interface.SIGHUP; -- hangup -+ -+ SIGINT : constant Interrupt_ID := -+ System.OS_Interface.SIGINT; -- interrupt (rubout) -+ -+ SIGQUIT : constant Interrupt_ID := -+ System.OS_Interface.SIGQUIT; -- quit (ASCD FS) -+ -+ SIGILL : constant Interrupt_ID := -+ System.OS_Interface.SIGILL; -- illegal instruction (not reset) -+ -+ SIGTRAP : constant Interrupt_ID := -+ System.OS_Interface.SIGTRAP; -- trace trap (not reset) -+ -+ SIGIOT : constant Interrupt_ID := -+ System.OS_Interface.SIGIOT; -- IOT instruction -+ -+ SIGABRT : constant Interrupt_ID := -- used by abort, -+ System.OS_Interface.SIGABRT; -- replace SIGIOT in the future -+ -+ SIGFPE : constant Interrupt_ID := -+ System.OS_Interface.SIGFPE; -- floating point exception -+ -+ SIGKILL : constant Interrupt_ID := -+ System.OS_Interface.SIGKILL; -- kill (cannot be caught or ignored) -+ -+ SIGBUS : constant Interrupt_ID := -+ System.OS_Interface.SIGBUS; -- bus error -+ -+ SIGSEGV : constant Interrupt_ID := -+ System.OS_Interface.SIGSEGV; -- segmentation violation -+ -+ SIGPIPE : constant Interrupt_ID := -- write on a pipe with -+ System.OS_Interface.SIGPIPE; -- no one to read it -+ -+ SIGALRM : constant Interrupt_ID := -+ System.OS_Interface.SIGALRM; -- alarm clock -+ -+ SIGTERM : constant Interrupt_ID := -+ System.OS_Interface.SIGTERM; -- software termination signal from kill -+ -+ SIGUSR1 : constant Interrupt_ID := -+ System.OS_Interface.SIGUSR1; -- user defined signal 1 -+ -+ SIGUSR2 : constant Interrupt_ID := -+ System.OS_Interface.SIGUSR2; -- user defined signal 2 -+ -+ SIGCLD : constant Interrupt_ID := -+ System.OS_Interface.SIGCLD; -- child status change -+ -+ SIGCHLD : constant Interrupt_ID := -+ System.OS_Interface.SIGCHLD; -- 4.3BSD's/POSIX name for SIGCLD -+ -+ SIGWINCH : constant Interrupt_ID := -+ System.OS_Interface.SIGWINCH; -- window size change -+ -+ SIGURG : constant Interrupt_ID := -+ System.OS_Interface.SIGURG; -- urgent condition on IO channel -+ -+ SIGPOLL : constant Interrupt_ID := -+ System.OS_Interface.SIGPOLL; -- pollable event occurred -+ -+ SIGIO : constant Interrupt_ID := -- input/output possible, -+ System.OS_Interface.SIGIO; -- SIGPOLL alias (Solaris) -+ -+ SIGSTOP : constant Interrupt_ID := -+ System.OS_Interface.SIGSTOP; -- stop (cannot be caught or ignored) -+ -+ SIGTSTP : constant Interrupt_ID := -+ System.OS_Interface.SIGTSTP; -- user stop requested from tty -+ -+ SIGCONT : constant Interrupt_ID := -+ System.OS_Interface.SIGCONT; -- stopped process has been continued -+ -+ SIGTTIN : constant Interrupt_ID := -+ System.OS_Interface.SIGTTIN; -- background tty read attempted -+ -+ SIGTTOU : constant Interrupt_ID := -+ System.OS_Interface.SIGTTOU; -- background tty write attempted -+ -+ SIGVTALRM : constant Interrupt_ID := -+ System.OS_Interface.SIGVTALRM; -- virtual timer expired -+ -+ SIGPROF : constant Interrupt_ID := -+ System.OS_Interface.SIGPROF; -- profiling timer expired -+ -+ SIGXCPU : constant Interrupt_ID := -+ System.OS_Interface.SIGXCPU; -- CPU time limit exceeded -+ -+ SIGXFSZ : constant Interrupt_ID := -+ System.OS_Interface.SIGXFSZ; -- filesize limit exceeded -+ -+ SIGUNUSED : constant Interrupt_ID := -+ System.OS_Interface.SIGUNUSED; -- unused signal -+ -+ SIGSTKFLT : constant Interrupt_ID := -+ System.OS_Interface.SIGSTKFLT; -- stack fault on coprocessor -+ -+ SIGLOST : constant Interrupt_ID := -+ System.OS_Interface.SIGLOST; -- Linux alias for SIGIO -+ -+ SIGPWR : constant Interrupt_ID := -+ System.OS_Interface.SIGPWR; -- Power failure -+ -+end Ada.Interrupts.Names; diff --git a/gcc/046-4.8-__cxa_atexit.patch b/gcc/046-4.8-__cxa_atexit.patch index a172fb49..0fdefeb7 100644 --- a/gcc/046-4.8-__cxa_atexit.patch +++ b/gcc/046-4.8-__cxa_atexit.patch @@ -111,3 +111,12 @@ diff -Naur gcc-4.9.1-orig/libgcc/config.host gcc-4.9.1/libgcc/config.host # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h if test x$enable_sjlj_exceptions = xyes; then tmake_eh_file="i386/t-sjlj-eh" +@@ -629,7 +629,7 @@ + tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-cygming i386/t-cygwin i386/t-crtfm i386/t-chkstk t-dfprules" + ;; + x86_64-*-cygwin*) +- extra_parts="crtbegin.o crtend.o crtfastmath.o" ++ extra_parts="crtbegin.o crtbeginS.o crtend.o crtfastmath.o" + # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h + if test x$enable_sjlj_exceptions = xyes; then + tmake_eh_file="i386/t-sjlj-eh" diff --git a/gcc/065-4.9.1-PR-c-61214.patch b/gcc/065-4.9.1-PR-c-61214.patch deleted file mode 100644 index f76bb889..00000000 --- a/gcc/065-4.9.1-PR-c-61214.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -Naur gcc-4.9.1-orig/gcc/gimple-fold.c gcc-4.9.1/gcc/gimple-fold.c ---- gcc-4.9.1-orig/gcc/gimple-fold.c 2014-03-26 12:17:10.000000000 +0300 -+++ gcc-4.9.1/gcc/gimple-fold.c 2014-10-29 16:01:44.235000000 +0300 -@@ -146,7 +146,8 @@ - The second is important when devirtualization happens during final - compilation stage when making a new reference no longer makes callee - to be compiled. */ -- if (!node || !node->definition || node->global.inlined_to) -+ if (!node || !node->definition -+ || DECL_EXTERNAL (decl) || node->global.inlined_to) - { - gcc_checking_assert (!TREE_ASM_WRITTEN (decl)); - return false; diff --git a/gcc/PKGBUILD b/gcc/PKGBUILD index 19965a57..4de6dd3a 100644 --- a/gcc/PKGBUILD +++ b/gcc/PKGBUILD @@ -1,21 +1,24 @@ # Maintainer: Alexey Pavlov # Contributor: Martell Malone +# Contributor: Ray Donnelly # toolchain build order: win32-api-headers->msys2-runtime->binutils->gcc->binutils->msys2-runtime # NOTE: libtool requires rebuilt with each new gcc version pkgname=('gcc' 'gcc-libs' 'gcc-fortran') -pkgver=4.9.1 -pkgrel=4 +pkgver=4.9.2 +pkgrel=1 pkgdesc="The GNU Compiler Collection" arch=('i686' 'x86_64') groups=('msys2-devel') license=('GPL' 'LGPL' 'FDL' 'custom') url="http://gcc.gnu.org" makedepends=('binutils>=2.23' 'mpc-devel' 'cloog-devel' 'gmp-devel' - 'mpfr-devel' 'mpc-devel' 'isl-devel' 'zlib-devel' 'windows-default-manifest') - -options=('!emptydirs') + 'mpfr-devel' 'mpc-devel' 'isl-devel' 'zlib-devel' + 'windows-default-manifest') +STRIP_OPTION="strip" +#STRIP_OPTION="!strip" +options=('!emptydirs' "$STRIP_OPTION") source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2 001-4.7-ada.patch 005-4.7-boehm-gc-cygwin.patch @@ -35,13 +38,12 @@ source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2 050-4.5-skiptest.patch 055-4.8-gcc-ada-DTR.patch 060-4.8-Wimplicit-decls.patch - 065-4.9.1-PR-c-61214.patch 950-4.8.0-configure-msys2.patch 951-4.8.0-msys2-spec.patch 952-4.8.0-libgcc-msys2.patch 953-4.9.1-testsuite-msys2.patch) -md5sums=('fddf71348546af523353bd43d34919c1' - 'd7294132a1330ec4dab1830865a67155' +md5sums=('4df8ee253b7f3863ad0b86359cd39c43' + '62c46773400b16f693d7b89f43c00433' '170b28d7f480eec4b4721d503d96eab0' 'b3700e51b0365894ce5520e8f5bbeeb7' '10ef60468b9718c59040db592b8419ed' @@ -54,12 +56,11 @@ md5sums=('fddf71348546af523353bd43d34919c1' 'dc4ecfa1b1caa272c845d55360cdffe3' 'a42858255e308a6922d5e8d36f5b3c06' '3506054ca98d8a21fd36605b0b863533' - '99174cb7f737d8ef6e4e7dcf9b31e0de' + '07be14230e64a003d9095658df7e4c91' '3ce9a2de6fae8be2ed1d477783f18056' 'c52b3fd6949751f4dc43f10d6f5ec751' '5ac0fc6a780aee8583b89d7225a85f34' 'ee07cb9166090f95c0f810de0667ea3d' - 'e57f353e8ca1d41a5a8ff3b9b69a5566' '6c1e48e2723cf1df7f9c826722fda193' 'd27c17a4c6b9caadc281a4f8e204b2eb' '7df48a22637ae227ed91fec7d43667fd' @@ -68,6 +69,15 @@ md5sums=('fddf71348546af523353bd43d34919c1' prepare() { cd ${srcdir}/gcc-${pkgver} + # Remove files created by 001-4.7-ada.patch + rm -f gcc/ada/a-intnam-cygwin.ads gcc/ada/mlib-tgt-specific-cygwin.adb \ + gcc/ada/s-gloloc-cygwin.adb gcc/ada/s-osinte-cygwin.ads \ + gcc/ada/s-taprop-cygwin.adb gcc/ada/system-cygwin.ads \ + gcc/ada/indepsw-cygwin.adb > /dev/null 2>&1 | true + + # Remove file created by 045-4.8-specs-cygwin.patch + rm -f gcc/config/i386/cygwin.opt > /dev/null 2>&1 | true + # Do not run fixincludes #sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in echo ${pkgver} > gcc/BASE-VER @@ -101,9 +111,6 @@ prepare() { patch -p1 -i ${srcdir}/060-4.8-Wimplicit-decls.patch - # Upstream patches - patch -p1 -i ${srcdir}/065-4.9.1-PR-c-61214.patch - #MSYS2 Patches patch -p1 -i ${srcdir}/950-4.8.0-configure-msys2.patch patch -p1 -i ${srcdir}/951-4.8.0-msys2-spec.patch @@ -219,11 +226,15 @@ package_gcc() { pkgdesc="The GNU Compiler Collection - C and C++ frontends" depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.23' 'mpc' 'cloog' 'msys2-runtime-devel' 'msys2-w32api-headers' 'msys2-w32api-runtime' 'windows-default-manifest') - options=('staticlibs') + options=('staticlibs' "$STRIP_OPTION") install=gcc.install cd ${srcdir}/gcc-build + if check_option "strip" "n"; then + export STRIP=true + fi + make -j1 DESTDIR=${pkgdir} install if [ "$CARCH" = "x86_64" ] then @@ -299,10 +310,15 @@ package_gcc-fortran() { pkgdesc="Fortran front-end for GCC" depends=("gcc=$pkgver-$pkgrel") - options=('staticlibs' '!emptydirs') + options=('staticlibs' '!emptydirs' "$STRIP_OPTION") install=gcc-fortran.install cd ${srcdir}/gcc-build + + if check_option "strip" "n"; then + export STRIP=true + fi + make -j1 DESTDIR=$pkgdir install-target-libgfortran make -j1 -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS make -j1 -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info} @@ -317,7 +333,7 @@ package_gcc-fortran() rm ${pkgdir}/usr/lib/gcc/$CHOST/${pkgver}/{*.o,libgc*} rm ${pkgdir}/usr/share/info/libquadmath.info rm -r ${pkgdir}/usr/lib/gcc/$CHOST/${pkgver}/include - #rm ${pkgdir}/usr/lib/gcc/$CHOST/${pkgver}libgfortran.a + # rm ${pkgdir}/usr/lib/gcc/$CHOST/${pkgver}/libgfortran.a # Install Runtime Library Exception install -Dm644 ${srcdir}/gcc-${pkgver}/COPYING.RUNTIME \