summaryrefslogtreecommitdiff
path: root/lang/gcc-aux
diff options
context:
space:
mode:
authorJohn Marino <marino@FreeBSD.org>2014-04-18 10:36:22 +0000
committerJohn Marino <marino@FreeBSD.org>2014-04-18 10:36:22 +0000
commitf107703159f52960021a3a7a4255308eb359ed1d (patch)
tree8fa82a14bc585fa07599710c20de2b2b2d9ada16 /lang/gcc-aux
parentgraphics/klatexformula: (diff)
lang/gcc-aux + gnatdroid-armv7: Update to 16 April prerelease
Notes
Notes: svn path=/head/; revision=351529
Diffstat (limited to 'lang/gcc-aux')
-rw-r--r--lang/gcc-aux/Makefile.version8
-rw-r--r--lang/gcc-aux/distinfo4
-rw-r--r--lang/gcc-aux/files/diff-ada787
-rw-r--r--lang/gcc-aux/files/diff-ada-testsuite2
-rw-r--r--lang/gcc-aux/files/diff-core24
5 files changed, 26 insertions, 799 deletions
diff --git a/lang/gcc-aux/Makefile.version b/lang/gcc-aux/Makefile.version
index 2b7aee618ec8..569214e9201d 100644
--- a/lang/gcc-aux/Makefile.version
+++ b/lang/gcc-aux/Makefile.version
@@ -3,10 +3,10 @@
GCC_BRANCH= 4.9
GCC_POINT= 0
GCC_VERSION= ${GCC_BRANCH}.${GCC_POINT}
-SNAPSHOT= 20140406
-MAIN_PR= 2
-ARMV5_PR= 1
-ARMV7_PR= 2
+SNAPSHOT= 20140416
+MAIN_PR= 0
+ARMV5_PR= 0
+ARMV7_PR= 0
IDENTIFICATION= gcc-${GCC_BRANCH}-${SNAPSHOT}
MS_SUBDIR= snapshots/${GCC_BRANCH}-${SNAPSHOT}
diff --git a/lang/gcc-aux/distinfo b/lang/gcc-aux/distinfo
index c44e9f30de87..b5028d3f9cf1 100644
--- a/lang/gcc-aux/distinfo
+++ b/lang/gcc-aux/distinfo
@@ -1,5 +1,5 @@
-SHA256 (gcc-4.9-20140406.tar.bz2) = 5f9e1c96b5bc000456b7fe7805dca90866cd18b6fbe00e26f3f3e8236d07d0a3
-SIZE (gcc-4.9-20140406.tar.bz2) = 85440592
+SHA256 (gcc-4.9-20140416.tar.bz2) = a1bac4e9fe8d8eca0c70fe22374e34abecd138dfc49130b01d73133f68b03b48
+SIZE (gcc-4.9-20140416.tar.bz2) = 85454889
SHA256 (ada-bootstrap.i386.dragonfly.36A.tar.bz2) = 6b1a6ff0fe0e3bf13c667db2fef177b811329cd998400a1303969a86911cb1c8
SIZE (ada-bootstrap.i386.dragonfly.36A.tar.bz2) = 39357314
SHA256 (ada-bootstrap.i386.freebsd.84.tar.bz2) = b410336cb0e71c8a29dd5f831a17b4b7282e7d590f452475a94c6a625cfc8846
diff --git a/lang/gcc-aux/files/diff-ada b/lang/gcc-aux/files/diff-ada
index 53b26e3b6497..5d65a860e1ec 100644
--- a/lang/gcc-aux/files/diff-ada
+++ b/lang/gcc-aux/files/diff-ada
@@ -1994,531 +1994,6 @@
Non_Empty_Node : constant Project_Node_Id := 1;
--- /dev/null
-+++ gcc/ada/s-intman-android.adb
-@@ -0,0 +1,331 @@
-+------------------------------------------------------------------------------
-+-- --
-+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS --
-+-- --
-+-- S Y S T E M . I N T E R R U P T _ M A N A G E M E N T --
-+-- --
-+-- B o d y --
-+-- --
-+-- Copyright (C) 2014, 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. --
-+-- --
-+-- In particular, you can freely distribute your programs built with the --
-+-- GNAT Pro compiler, including any required library run-time units, using --
-+-- any licensing terms of your choosing. See the AdaCore Software License --
-+-- for full details. --
-+-- --
-+-- GNARL was developed by the GNARL team at Florida State University. --
-+-- Extensive contributions were provided by Ada Core Technologies, Inc. --
-+-- --
-+------------------------------------------------------------------------------
-+
-+-- This is the Android version of this package
-+
-+-- Make a careful study of all signals available under the OS, to see which
-+-- need to be reserved, kept always unmasked, or kept always unmasked. Be on
-+-- the lookout for special signals that may be used by the thread library.
-+
-+-- Since this is a multi target file, the signal <-> exception mapping
-+-- is simple minded. If you need a more precise and target specific
-+-- signal handling, create a new s-intman.adb that will fit your needs.
-+
-+-- This file assumes that:
-+
-+-- SIGFPE, SIGILL, SIGSEGV and SIGBUS exist. They are mapped as follows:
-+-- SIGPFE => Constraint_Error
-+-- SIGILL => Program_Error
-+-- SIGSEGV => Storage_Error
-+-- SIGBUS => Storage_Error
-+
-+-- SIGINT exists and will be kept unmasked unless the pragma
-+-- Unreserve_All_Interrupts is specified anywhere in the application.
-+
-+-- System.OS_Interface contains the following:
-+-- SIGADAABORT: the signal that will be used to abort tasks.
-+-- Unmasked: the OS specific set of signals that should be unmasked in
-+-- all the threads. SIGADAABORT is unmasked by
-+-- default
-+-- Reserved: the OS specific set of signals that are reserved.
-+
-+with System.Task_Primitives;
-+
-+package body System.Interrupt_Management is
-+
-+ use Interfaces.C;
-+ use System.OS_Interface;
-+
-+ type Interrupt_List is array (Interrupt_ID range <>) of Interrupt_ID;
-+ Exception_Interrupts : constant Interrupt_List :=
-+ (SIGFPE, SIGILL, SIGSEGV, SIGBUS);
-+
-+ Unreserve_All_Interrupts : Interfaces.C.int;
-+ pragma Import
-+ (C, Unreserve_All_Interrupts, "__gl_unreserve_all_interrupts");
-+
-+ -----------------------
-+ -- Local Subprograms --
-+ -----------------------
-+
-+ procedure Signal_Trampoline
-+ (signo : Signal;
-+ siginfo : System.Address;
-+ ucontext : System.Address;
-+ handler : System.Address);
-+ pragma Import (C, Signal_Trampoline, "__gnat_sigtramp");
-+ -- Pass the real handler to a speical function that handles unwinding by
-+ -- skipping over the kernel signal frame (which doesn't contain any unwind
-+ -- information).
-+
-+ function State (Int : Interrupt_ID) return Character;
-+ pragma Import (C, State, "__gnat_get_interrupt_state");
-+ -- Get interrupt state. Defined in init.c The input argument is the
-+ -- interrupt number, and the result is one of the following:
-+
-+ procedure Map_Signal
-+ (signo : Signal;
-+ siginfo : System.Address;
-+ ucontext : System.Address);
-+ -- This function identifies the Ada exception to be raised using the
-+ -- information when the system received a synchronous signal.
-+
-+----------------
-+-- Map_Signal --
-+----------------
-+
-+ procedure Map_Signal
-+ (signo : Signal;
-+ siginfo : System.Address;
-+ ucontext : System.Address)
-+ is
-+ pragma Unreferenced (siginfo);
-+ pragma Unreferenced (ucontext);
-+
-+ begin
-+
-+ -- Check that treatment of exception propagation here is consistent with
-+ -- treatment of the abort signal in System.Task_Primitives.Operations.
-+
-+ case signo is
-+ when SIGFPE =>
-+ raise Constraint_Error;
-+ when SIGILL =>
-+ raise Program_Error;
-+ when SIGSEGV =>
-+ raise Storage_Error;
-+ when SIGBUS =>
-+ raise Storage_Error;
-+ when others =>
-+ null;
-+ end case;
-+ end Map_Signal;
-+
-+----------------------
-+-- Notify_Exception --
-+----------------------
-+
-+ User : constant Character := 'u';
-+ Runtime : constant Character := 'r';
-+ Default : constant Character := 's';
-+ -- 'n' this interrupt not set by any Interrupt_State pragma
-+ -- 'u' Interrupt_State pragma set state to User
-+ -- 'r' Interrupt_State pragma set state to Runtime
-+ -- 's' Interrupt_State pragma set state to System (use "default"
-+ -- system handler)
-+
-+ procedure Notify_Exception
-+ (signo : Signal;
-+ siginfo : System.Address;
-+ ucontext : System.Address);
-+ -- This function is the signal handler and calls a trampoline subprogram
-+ -- that adjusts the unwind information so the ARM unwinder can find it's
-+ -- way back to the context of the originating subprogram. Compare with
-+ -- __gnat_error_handler for non-tasking programs.
-+
-+ ----------------------
-+ -- Notify_Exception --
-+ ----------------------
-+
-+ Signal_Mask : aliased sigset_t;
-+ -- The set of signals handled by Notify_Exception
-+
-+ procedure Notify_Exception
-+ (signo : Signal;
-+ siginfo : System.Address;
-+ ucontext : System.Address)
-+ is
-+ Result : Interfaces.C.int;
-+
-+ begin
-+ -- With the __builtin_longjmp, the signal mask is not restored, so we
-+ -- need to restore it explicitly. ??? We don't use __builtin_longjmp
-+ -- anymore, so do we still need this? */
-+
-+ Result := pthread_sigmask (SIG_UNBLOCK, Signal_Mask'Access, null);
-+ pragma Assert (Result = 0);
-+
-+ -- Perform the necessary context adjustments prior to calling the
-+ -- trampoline subprogram with the "real" signal handler.
-+
-+ Adjust_Context_For_Raise (signo, ucontext);
-+
-+ Signal_Trampoline (signo, siginfo, ucontext, Map_Signal'Address);
-+ end Notify_Exception;
-+
-+ ----------------
-+ -- Initialize --
-+ ----------------
-+
-+ Initialized : Boolean := False;
-+
-+ procedure Initialize is
-+ act : aliased struct_sigaction;
-+ old_act : aliased struct_sigaction;
-+ Result : System.OS_Interface.int;
-+
-+ Use_Alternate_Stack : constant Boolean :=
-+ System.Task_Primitives.Alternate_Stack_Size /= 0;
-+ -- Whether to use an alternate signal stack for stack overflows
-+
-+ begin
-+ if Initialized then
-+ return;
-+ end if;
-+
-+ Initialized := True;
-+
-+ -- Need to call pthread_init very early because it is doing signal
-+ -- initializations.
-+
-+ pthread_init;
-+
-+ Abort_Task_Interrupt := SIGADAABORT;
-+
-+ act.sa_handler := Notify_Exception'Address;
-+
-+ -- Setting SA_SIGINFO asks the kernel to pass more than just the signal
-+ -- number argument to the handler when it is called. The set of extra
-+ -- parameters includes a pointer to the interrupted context, which the
-+ -- ZCX propagation scheme needs.
-+
-+ -- Most man pages for sigaction mention that sa_sigaction should be set
-+ -- instead of sa_handler when SA_SIGINFO is on. In practice, the two
-+ -- fields are actually union'ed and located at the same offset.
-+
-+ -- On some targets, we set sa_flags to SA_NODEFER so that during the
-+ -- handler execution we do not change the Signal_Mask to be masked for
-+ -- the Signal.
-+
-+ -- This is a temporary fix to the problem that the Signal_Mask is not
-+ -- restored after the exception (longjmp) from the handler. The right
-+ -- fix should be made in sigsetjmp so that we save the Signal_Set and
-+ -- restore it after a longjmp.
-+
-+ -- We set SA_NODEFER to be compatible with what is done in
-+ -- __gnat_error_handler.
-+
-+ Result := sigemptyset (Signal_Mask'Access);
-+ pragma Assert (Result = 0);
-+
-+ -- Add signals that map to Ada exceptions to the mask
-+
-+ for J in Exception_Interrupts'Range loop
-+ if State (Exception_Interrupts (J)) /= Default then
-+ Result :=
-+ sigaddset
-+ (Signal_Mask'Access, Signal (Exception_Interrupts (J)));
-+ pragma Assert (Result = 0);
-+ end if;
-+ end loop;
-+
-+ act.sa_mask := Signal_Mask;
-+
-+ pragma Assert (Keep_Unmasked = (Interrupt_ID'Range => False));
-+ pragma Assert (Reserve = (Interrupt_ID'Range => False));
-+
-+ -- Process state of exception signals
-+
-+ for J in Exception_Interrupts'Range loop
-+ if State (Exception_Interrupts (J)) /= User then
-+ Keep_Unmasked (Exception_Interrupts (J)) := True;
-+ Reserve (Exception_Interrupts (J)) := True;
-+
-+ if State (Exception_Interrupts (J)) /= Default then
-+ act.sa_flags := SA_NODEFER + SA_RESTART + SA_SIGINFO;
-+
-+ if Use_Alternate_Stack
-+ and then Exception_Interrupts (J) = SIGSEGV
-+ then
-+ act.sa_flags := act.sa_flags + SA_ONSTACK;
-+ end if;
-+
-+ Result :=
-+ sigaction
-+ (Signal (Exception_Interrupts (J)), act'Unchecked_Access,
-+ old_act'Unchecked_Access);
-+ pragma Assert (Result = 0);
-+ end if;
-+ end if;
-+ end loop;
-+
-+ if State (Abort_Task_Interrupt) /= User then
-+ Keep_Unmasked (Abort_Task_Interrupt) := True;
-+ Reserve (Abort_Task_Interrupt) := True;
-+ end if;
-+
-+ -- Set SIGINT to unmasked state as long as it is not in "User" state.
-+ -- Check for Unreserve_All_Interrupts last.
-+
-+ if State (SIGINT) /= User then
-+ Keep_Unmasked (SIGINT) := True;
-+ Reserve (SIGINT) := True;
-+ end if;
-+
-+ -- Check all signals for state that requires keeping them unmasked and
-+ -- reserved.
-+
-+ for J in Interrupt_ID'Range loop
-+ if State (J) = Default or else State (J) = Runtime then
-+ Keep_Unmasked (J) := True;
-+ Reserve (J) := True;
-+ end if;
-+ end loop;
-+
-+ -- Add the set of signals that must always be unmasked for this target
-+
-+ for J in Unmasked'Range loop
-+ Keep_Unmasked (Interrupt_ID (Unmasked (J))) := True;
-+ Reserve (Interrupt_ID (Unmasked (J))) := True;
-+ end loop;
-+
-+ -- Add target-specific reserved signals
-+
-+ for J in Reserved'Range loop
-+ Reserve (Interrupt_ID (Reserved (J))) := True;
-+ end loop;
-+
-+ -- Process pragma Unreserve_All_Interrupts. This overrides any settings
-+ -- due to pragma Interrupt_State:
-+
-+ if Unreserve_All_Interrupts /= 0 then
-+ Keep_Unmasked (SIGINT) := False;
-+ Reserve (SIGINT) := False;
-+ end if;
-+
-+ -- We do not really have Signal 0. We just use this value to identify
-+ -- non-existent signals (see s-intnam.ads). Therefore, Signal should not
-+ -- be used in all signal related operations hence mark it as reserved.
-+
-+ Reserve (0) := True;
-+ end Initialize;
-+
-+end System.Interrupt_Management;
---- /dev/null
-+++ gcc/ada/s-linux-android.ads
-@@ -0,0 +1,112 @@
-+------------------------------------------------------------------------------
-+-- --
-+-- GNU ADA RUN-TIME LIBRARY (GNARL) COMPONENTS --
-+-- --
-+-- S Y S T E M . L I N U X --
-+-- --
-+-- S p e c --
-+-- --
-+-- Copyright (C) 2014, 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. --
-+-- --
-+-- In particular, you can freely distribute your programs built with the --
-+-- GNAT Pro compiler, including any required library run-time units, using --
-+-- any licensing terms of your choosing. See the AdaCore Software License --
-+-- for full details. --
-+-- --
-+-- --
-+------------------------------------------------------------------------------
-+
-+-- This is the Android version of this package
-+
-+-- This package encapsulates cpu specific differences between implementations
-+-- of GNU/Linux, in order to share s-osinte-linux.ads.
-+
-+-- PLEASE DO NOT add any with-clauses to this package or remove the pragma
-+-- Preelaborate. This package is designed to be a bottom-level (leaf) package
-+
-+package System.Linux is
-+ pragma Preelaborate;
-+
-+ ------------
-+ -- time_t --
-+ ------------
-+
-+ type time_t is new Long_Integer;
-+
-+ -----------
-+ -- Errno --
-+ -----------
-+
-+ EAGAIN : constant := 11;
-+ EINTR : constant := 4;
-+ EINVAL : constant := 22;
-+ ENOMEM : constant := 12;
-+ EPERM : constant := 1;
-+ ETIMEDOUT : constant := 110;
-+
-+ -------------
-+ -- Signals --
-+ -------------
-+
-+ SIGHUP : constant := 1; -- hangup
-+ SIGINT : constant := 2; -- interrupt (rubout)
-+ SIGQUIT : constant := 3; -- quit (ASCD FS)
-+ SIGILL : constant := 4; -- illegal instruction (not reset)
-+ SIGTRAP : constant := 5; -- trace trap (not reset)
-+ SIGIOT : constant := 6; -- IOT instruction
-+ SIGABRT : constant := 6; -- used by abort, replace SIGIOT in the future
-+ SIGFPE : constant := 8; -- floating point exception
-+ SIGKILL : constant := 9; -- kill (cannot be caught or ignored)
-+ SIGBUS : constant := 7; -- bus error
-+ SIGSEGV : constant := 11; -- segmentation violation
-+ SIGPIPE : constant := 13; -- write on a pipe with no one to read it
-+ SIGALRM : constant := 14; -- alarm clock
-+ SIGTERM : constant := 15; -- software termination signal from kill
-+ SIGUSR1 : constant := 10; -- user defined signal 1
-+ SIGUSR2 : constant := 12; -- user defined signal 2
-+ SIGCLD : constant := 17; -- alias for SIGCHLD
-+ SIGCHLD : constant := 17; -- child status change
-+ SIGPWR : constant := 30; -- power-fail restart
-+ SIGWINCH : constant := 28; -- window size change
-+ SIGURG : constant := 23; -- urgent condition on IO channel
-+ SIGPOLL : constant := 29; -- pollable event occurred
-+ SIGIO : constant := 29; -- I/O now possible (4.2 BSD)
-+ SIGLOST : constant := 29; -- File lock lost
-+ SIGSTOP : constant := 19; -- stop (cannot be caught or ignored)
-+ SIGTSTP : constant := 20; -- user stop requested from tty
-+ SIGCONT : constant := 18; -- stopped process has been continued
-+ SIGTTIN : constant := 21; -- background tty read attempted
-+ SIGTTOU : constant := 22; -- background tty write attempted
-+ SIGVTALRM : constant := 26; -- virtual timer expired
-+ SIGPROF : constant := 27; -- profiling timer expired
-+ SIGXCPU : constant := 24; -- CPU time limit exceeded
-+ SIGXFSZ : constant := 25; -- filesize limit exceeded
-+ SIGUNUSED : constant := 31; -- unused signal (GNU/Linux)
-+ SIGSTKFLT : constant := 16; -- coprocessor stack fault (Linux)
-+ SIGLTHRRES : constant := 32; -- GNU/LinuxThreads restart signal
-+ SIGLTHRCAN : constant := 33; -- GNU/LinuxThreads cancel signal
-+ SIGLTHRDBG : constant := 34; -- GNU/LinuxThreads debugger signal
-+
-+ -- struct_sigaction offsets
-+
-+ sa_handler_pos : constant := 0;
-+ sa_mask_pos : constant := Standard'Address_Size / 8;
-+ sa_flags_pos : constant := 4 + sa_mask_pos;
-+
-+ SA_SIGINFO : constant := 16#00000004#;
-+ SA_ONSTACK : constant := 16#08000000#;
-+ SA_RESTART : constant := 16#10000000#;
-+ SA_NODEFER : constant := 16#40000000#;
-+
-+end System.Linux;
---- gcc/ada/s-osinte-android.ads.orig
-+++ gcc/ada/s-osinte-android.ads
-@@ -6,7 +6,7 @@
- -- --
- -- S p e c --
- -- --
---- Copyright (C) 1995-2013, Free Software Foundation, Inc. --
-+-- Copyright (C) 1995-2014, Free Software Foundation, Inc. --
- -- --
- -- GNAT 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- --
-@@ -75,7 +75,7 @@
- -- Signals --
- -------------
-
-- Max_Interrupt : constant := 63;
-+ Max_Interrupt : constant := 31;
- type Signal is new int range 0 .. Max_Interrupt;
- for Signal'Size use int'Size;
-
-@@ -114,9 +114,6 @@
- SIGXFSZ : constant := System.Linux.SIGXFSZ;
- SIGUNUSED : constant := System.Linux.SIGUNUSED;
- SIGSTKFLT : constant := System.Linux.SIGSTKFLT;
-- SIGLTHRRES : constant := System.Linux.SIGLTHRRES;
-- SIGLTHRCAN : constant := System.Linux.SIGLTHRCAN;
-- SIGLTHRDBG : constant := System.Linux.SIGLTHRDBG;
-
- SIGADAABORT : constant := SIGABRT;
- -- Change this to use another signal for task abort. SIGTERM might be a
-@@ -138,13 +135,9 @@
- SIGPROF,
- -- To avoid confusing the profiler
-
-- SIGKILL, SIGSTOP,
-+ SIGKILL, SIGSTOP);
- -- These two signals actually can't be masked (POSIX won't allow it)
-
-- SIGLTHRRES, SIGLTHRCAN, SIGLTHRDBG);
-- -- These three signals are used by GNU/LinuxThreads starting from glibc
-- -- 2.1 (future 2.2).
--
- Reserved : constant Signal_Set := (SIGVTALRM, SIGUNUSED);
- -- Not clear why these two signals are reserved. Perhaps they are not
- -- supported by this version of GNU/Linux ???
-@@ -187,6 +180,8 @@
-
- SA_SIGINFO : constant := System.Linux.SA_SIGINFO;
- SA_ONSTACK : constant := System.Linux.SA_ONSTACK;
-+ SA_NODEFER : constant := System.Linux.SA_NODEFER;
-+ SA_RESTART : constant := System.Linux.SA_RESTART;
-
- SIG_BLOCK : constant := 0;
- SIG_UNBLOCK : constant := 1;
-@@ -580,17 +575,16 @@
-
- private
-
-- type sigset_t is
-- -- array (0 .. OS_Constants.SIZEOF_sigset - 1) of unsigned_char;
-- array (1 .. 127) of unsigned_char;
-+ type sigset_t is new Interfaces.C.unsigned_long;
- pragma Convention (C, sigset_t);
- for sigset_t'Alignment use Interfaces.C.unsigned_long'Alignment;
-
- pragma Warnings (Off);
- for struct_sigaction use record
- sa_handler at Linux.sa_handler_pos range 0 .. Standard'Address_Size - 1;
-- sa_mask at Linux.sa_mask_pos range 0 .. 1023;
-- sa_flags at Linux.sa_flags_pos range 0 .. Standard'Address_Size - 1;
-+ sa_mask at Linux.sa_mask_pos range 0 .. sigset_t'Size - 1;
-+ sa_flags at Linux.sa_flags_pos
-+ range 0 .. Interfaces.C.unsigned_long'Size - 1;
- end record;
- -- We intentionally leave sa_restorer unspecified and let the compiler
- -- append it after the last field, so disable corresponding warning.
---- /dev/null
+++ gcc/ada/s-osinte-dragonfly.adb
@@ -0,0 +1,116 @@
+------------------------------------------------------------------------------
@@ -7479,213 +6954,6 @@
+ end Initialize;
+
+end System.OS_Primitives;
---- /dev/null
-+++ gcc/ada/sigtramp-armdroid.c
-@@ -0,0 +1,161 @@
-+/****************************************************************************
-+ * *
-+ * GNAT COMPILER COMPONENTS *
-+ * *
-+ * S I G T R A M P *
-+ * *
-+ * Asm Implementation File *
-+ * *
-+ * Copyright (C) 2014, Free Software Foundation, Inc. *
-+ * *
-+ * GNAT 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. *
-+ * *
-+ * In particular, you can freely distribute your programs built with the *
-+ * GNAT Pro compiler, including any required library run-time units, using *
-+ * any licensing terms of your choosing. See the AdaCore Software License *
-+ * for full details. *
-+ * *
-+ * GNAT was originally developed by the GNAT team at New York University. *
-+ * Extensive contributions were provided by Ada Core Technologies Inc. *
-+ * *
-+ ****************************************************************************/
-+
-+/******************************************************
-+ * ARM-Android version of the __gnat_sigtramp service *
-+ ******************************************************/
-+
-+#include "sigtramp.h"
-+/* See sigtramp.h for a general explanation of functionality. */
-+
-+/* ----------------------
-+ -- General comments --
-+ ----------------------
-+
-+ Stubs are generated from toplevel asms,
-+ The general idea is to establish CFA as the sigcontext
-+ and state where to find the registers as offsets from there.
-+
-+ We support stubs for VxWorks and Android, providing unwind info for
-+ common registers. We might need variants with support for floating
-+ point or altivec registers as well at some point.
-+
-+ For Android it would be simpler to write this in Asm since there's only
-+ one variant, but to keep it looking like the VxWorks stubs,
-+ C is the choice for our toplevel interface.
-+
-+ Note that the registers we "restore" here are those to which we have
-+ direct access through the system sigcontext structure, which includes
-+ only a partial set of the non-volatiles ABI-wise. */
-+
-+/* -----------------------------------------
-+ -- Protypes for our internal asm stubs --
-+ -----------------------------------------
-+
-+ The registers are expected to be at SIGCONTEXT + 12 (reference the
-+ sicontext structure in asm/sigcontext.h which describes the first
-+ 3 * 4byte fields.) Even though our symbols will remain local, the
-+ prototype claims "extern" and not "static" to prevent compiler complaints
-+ about a symbol used but never defined. */
-+
-+/* sigtramp stub providing unwind info for common registers. */
-+
-+extern void __gnat_sigtramp_common
-+ (int signo, void *siginfo, void *sigcontext,
-+ __sigtramphandler_t * handler);
-+
-+void __gnat_sigtramp (int signo, void *si, void *sc,
-+ __sigtramphandler_t * handler)
-+ __attribute__((optimize(2)));
-+
-+void __gnat_sigtramp (int signo, void *si, void *ucontext,
-+ __sigtramphandler_t * handler)
-+{
-+ struct sigcontext *mcontext = &((ucontext_t *) ucontext)->uc_mcontext;
-+
-+ __gnat_sigtramp_common (signo, si, mcontext, handler);
-+}
-+
-+/* asm string construction helpers. */
-+
-+#define STR(TEXT) #TEXT
-+/* stringify expanded TEXT, surrounding it with double quotes. */
-+
-+#define S(E) STR(E)
-+/* stringify E, which will resolve as text but may contain macros
-+ still to be expanded. */
-+
-+/* asm (TEXT) outputs <tab>TEXT. These facilitate the output of
-+ multiline contents: */
-+#define TAB(S) "\t" S
-+#define CR(S) S "\n"
-+
-+#undef TCR
-+#define TCR(S) TAB(CR(S))
-+
-+/* Trampoline body block
-+ --------------------- */
-+
-+#define SIGTRAMP_BODY \
-+CR("") \
-+TCR("# Allocate frame and also save r2 which is the argument register") \
-+TCR("# containing the sigcontext, so that we can restore it during") \
-+TCR("# unwinding and thereby load the rest of the desired context.") \
-+TCR("stmfd sp!, {r2, r3, lr}") \
-+TCR("# The unwinder undo's these operations in reverse order so starting") \
-+TCR("# from bottom, restore r2 from the current vsp location, move r2 into") \
-+TCR("# the vsp, add 12 bytes to get the start of the register save area") \
-+TCR("# then restore the 15 general purpose registers of the frame which") \
-+TCR("# raised the signal.") \
-+TCR(".save {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15}") \
-+TCR(".pad #12") \
-+TCR(".movsp r2") \
-+TCR(".save {r2}") \
-+TCR("# Call the real handler. The signo, siginfo and sigcontext") \
-+TCR("# arguments are the same as those we received in r0, r1 and r2.") \
-+TCR("blx r3") \
-+TCR("# Restore our callee-saved items, release our frame and return") \
-+TCR("# (should never get here!).") \
-+TCR("ldmfd sp, {r2, r3, pc}")
-+
-+/* Symbol definition block
-+ ----------------------- */
-+
-+#define SIGTRAMP_START(SYM) \
-+CR("# " S(SYM) " unwind trampoline") \
-+TCR(".type " S(SYM) ", %function") \
-+CR("") \
-+CR(S(SYM) ":") \
-+TCR(".fnstart")
-+
-+/* Symbol termination block
-+ ------------------------ */
-+
-+#define SIGTRAMP_END(SYM) \
-+CR(".fnend") \
-+TCR(".size " S(SYM) ", .-" S(SYM))
-+
-+/*----------------------------
-+ -- And now, the real code --
-+ ---------------------------- */
-+
-+/* Text section start. The compiler isn't aware of that switch. */
-+
-+asm (".text\n"
-+ TCR(".align 2"));
-+
-+/* sigtramp stub for common registers. */
-+
-+#define TRAMP_COMMON __gnat_sigtramp_common
-+
-+asm (SIGTRAMP_START(TRAMP_COMMON));
-+asm (SIGTRAMP_BODY);
-+asm (SIGTRAMP_END(TRAMP_COMMON));
---- gcc/ada/sigtramp.h.orig
-+++ gcc/ada/sigtramp.h
-@@ -6,7 +6,7 @@
- * *
- * C Header File *
- * *
-- * Copyright (C) 2011-2013, Free Software Foundation, Inc. *
-+ * Copyright (C) 2011-2014, Free Software Foundation, Inc. *
- * *
- * GNAT 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- *
-@@ -41,10 +41,29 @@
- extern "C" {
- #endif
-
-- typedef void sighandler_t (int signo, void *siginfo, void *sigcontext);
-+#ifdef __ANDROID__
-+#include <stdlib.h>
-+#include <asm/signal.h>
-+#include <asm/sigcontext.h>
-+
-+/* Android SDK doesn't define these structs */
-+typedef struct sigcontext mcontext_t;
-+
-+typedef struct ucontext
-+ {
-+ unsigned long uc_flags;
-+ struct ucontext *uc_link;
-+ stack_t uc_stack;
-+ mcontext_t uc_mcontext;
-+} ucontext_t;
-+#endif
-+
-+ /* This typedef signature sometimes conflicts with the sighandler_t from
-+ system headers so call it something unique. */
-+ typedef void __sigtramphandler_t (int signo, void *siginfo, void *sigcontext);
-
- void __gnat_sigtramp (int signo, void *siginfo, void *sigcontext,
-- sighandler_t * handler);
-+ __sigtramphandler_t * handler);
-
- /* To be called from an established signal handler. Setup the DWARF CFI
- bits letting unwinders walk through the signal frame up into the
--- gcc/ada/socket.c.orig
+++ gcc/ada/socket.c
@@ -65,7 +65,10 @@
@@ -8883,42 +8151,31 @@
TARGET_ADA_SRCS =
--- gcc/ada/gcc-interface/Makefile.in.orig
+++ gcc/ada/gcc-interface/Makefile.in
-@@ -1044,25 +1044,24 @@
+@@ -1044,6 +1044,7 @@
ifeq ($(strip $(filter-out arm% linux-androideabi,$(target_cpu) $(target_os))),)
LIBGNAT_TARGET_PAIRS = \
a-intnam.ads<a-intnam-linux.ads \
+ g-socthi.adb<g-socthi-bsd.adb \
s-inmaop.adb<s-inmaop-posix.adb \
-- s-intman.adb<s-intman-posix.adb \
-- s-linux.ads<s-linux.ads \
-+ s-intman.adb<s-intman-android.adb \
-+ s-linux.ads<s-linux-android.ads \
- s-osinte.adb<s-osinte-android.adb \
- s-osinte.ads<s-osinte-android.ads \
- s-osprim.adb<s-osprim-posix.adb \
- s-taprop.adb<s-taprop-posix.adb \
-- s-taspri.ads<s-taspri-posix-noaltstack.ads \
-+ s-taspri.ads<s-taspri-posix.ads \
- s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
+ s-intman.adb<s-intman-android.adb \
+ s-linux.ads<s-linux-android.ads \
+@@ -1056,13 +1057,9 @@
system.ads<system-linux-armel.ads \
+ a-exexpr.adb<a-exexpr-gcc.adb \
+ s-excmac.ads<s-excmac-arm.ads \
- $(DUMMY_SOCKETS_TARGET_PAIRS)
-+ a-exexpr.adb<a-exexpr-gcc.adb \
-+ s-excmac.ads<s-excmac-arm.ads
-
+-
- TOOLS_TARGET_PAIRS = \
- mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
- indepsw.adb<indepsw-gnu.adb
--
++ a-exexpr.adb<a-exexpr-gcc.adb \
++ s-excmac.ads<s-excmac-arm.ads
+
- GNATRTL_SOCKETS_OBJS =
EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
-- EH_MECHANISM=
-+ EXTRA_LIBGNAT_OBJS+=raise-gcc.o sigtramp-armdroid.o
-+ EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o
-+ EH_MECHANISM=-arm
- THREADSLIB =
- GNATLIB_SHARED = gnatlib-shared-dual
- LIBRARY_VERSION := $(LIB_VERSION)
-@@ -1072,6 +1071,7 @@
+ EXTRA_LIBGNAT_OBJS+=raise-gcc.o sigtramp-armdroid.o
+ EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o
+@@ -1076,6 +1073,7 @@
ifeq ($(strip $(filter-out sparc% sun solaris%,$(target_cpu) $(target_vendor) $(target_os))),)
LIBGNAT_TARGET_PAIRS_COMMON = \
a-intnam.ads<a-intnam-solaris.ads \
@@ -8926,7 +8183,7 @@
s-inmaop.adb<s-inmaop-posix.adb \
s-intman.adb<s-intman-solaris.adb \
s-mudido.adb<s-mudido-affinity.adb \
-@@ -1114,6 +1114,8 @@
+@@ -1118,6 +1116,8 @@
TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb
EH_MECHANISM=-gcc
@@ -8935,7 +8192,7 @@
THREADSLIB = -lposix4 -lthread
MISCLIB = -lposix4 -lnsl -lsocket
SO_OPTS = -Wl,-h,
-@@ -1325,12 +1327,17 @@
+@@ -1329,12 +1329,17 @@
# x86 FreeBSD
ifeq ($(strip $(filter-out %86 freebsd%,$(target_cpu) $(target_os))),)
LIBGNAT_TARGET_PAIRS = \
@@ -8955,7 +8212,7 @@
s-taprop.adb<s-taprop-posix.adb \
s-taspri.ads<s-taspri-posix.ads \
s-tpopsp.adb<s-tpopsp-posix.adb \
-@@ -1338,11 +1345,12 @@
+@@ -1342,11 +1347,12 @@
$(X86_TARGET_PAIRS) \
system.ads<system-freebsd-x86.ads
@@ -8970,7 +8227,7 @@
EH_MECHANISM=-gcc
THREADSLIB= -lpthread
-@@ -1354,12 +1362,17 @@
+@@ -1358,12 +1364,17 @@
# x86-64 FreeBSD
ifeq ($(strip $(filter-out %86_64 freebsd%,$(target_cpu) $(target_os))),)
LIBGNAT_TARGET_PAIRS = \
@@ -8990,7 +8247,7 @@
s-taprop.adb<s-taprop-posix.adb \
s-taspri.ads<s-taspri-posix.ads \
s-tpopsp.adb<s-tpopsp-posix.adb \
-@@ -1367,11 +1380,240 @@
+@@ -1371,11 +1382,240 @@
$(X86_64_TARGET_PAIRS) \
system.ads<system-freebsd-x86_64.ads
@@ -9233,14 +8490,6 @@
EH_MECHANISM=-gcc
THREADSLIB= -lpthread
-@@ -3063,6 +3305,7 @@
- socket.o : socket.c gsocket.h
- sysdep.o : sysdep.c
- raise.o : raise.c raise.h
-+sigtramp-armdroid.o : sigtramp-armdroid.c sigtramp.h
- sigtramp-armvxw.o : sigtramp-armvxw.c sigtramp.h
- sigtramp-ppcvxw.o : sigtramp-ppcvxw.c sigtramp.h
- terminals.o : terminals.c
--- gnattools/configure.ac.orig
+++ gnattools/configure.ac
@@ -79,11 +79,27 @@
diff --git a/lang/gcc-aux/files/diff-ada-testsuite b/lang/gcc-aux/files/diff-ada-testsuite
index d3e971b19aa4..c94e9a3e5764 100644
--- a/lang/gcc-aux/files/diff-ada-testsuite
+++ b/lang/gcc-aux/files/diff-ada-testsuite
@@ -527,7 +527,7 @@
--- gcc/testsuite/gnat.dg/test_raise_from_pure.adb.orig
+++ gcc/testsuite/gnat.dg/test_raise_from_pure.adb
@@ -1,4 +1,4 @@
---- { dg-do run { xfail arm*-*-* } }
+--- { dg-do run }
+-- { dg-do run { xfail *-*-openbsd* } }
-- { dg-options "-O2" }
diff --git a/lang/gcc-aux/files/diff-core b/lang/gcc-aux/files/diff-core
index 436d6b6ff8d4..d3c4b7c71e47 100644
--- a/lang/gcc-aux/files/diff-core
+++ b/lang/gcc-aux/files/diff-core
@@ -1,8 +1,3 @@
---- gcc/DEV-PHASE.orig
-+++ gcc/DEV-PHASE
-@@ -1 +1 @@
--experimental
-+prerelease
--- /dev/null
+++ gcc/config/dragonfly-stdint.h
@@ -0,0 +1,56 @@
@@ -328,23 +323,6 @@
+
+#define INTPTR_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "int")
+#define UINTPTR_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "unsigned int")
---- gcc/config/arm/arm.h.orig
-+++ gcc/config/arm/arm.h
-@@ -937,13 +937,13 @@
-
- #ifndef ARM_TARGET2_DWARF_FORMAT
- #define ARM_TARGET2_DWARF_FORMAT DW_EH_PE_pcrel
-+#endif
-
- /* ttype entries (the only interesting data references used)
- use TARGET2 relocations. */
- #define ASM_PREFERRED_EH_DATA_FORMAT(code, data) \
- (((code) == 0 && (data) == 1 && ARM_UNWIND_INFO) ? ARM_TARGET2_DWARF_FORMAT \
- : DW_EH_PE_absptr)
--#endif
-
- /* The native (Norcroft) Pascal compiler for the ARM passes the static chain
- as an invisible last argument (possible since varargs don't exist in
--- /dev/null
+++ gcc/config/i386/dragonfly.h
@@ -0,0 +1,105 @@
@@ -1431,7 +1409,7 @@
insn-preds.c: s-preds; @true
tm-preds.h: s-preds-h; @true
tm-constrs.h: s-constrs-h; @true
-@@ -3210,6 +3221,9 @@
+@@ -3217,6 +3228,9 @@
( cd $(DESTDIR)$(bindir) && \
$(LN) $(GCC_INSTALL_NAME)$(exeext) $(target_noncanonical)-gcc-$(version)$(exeext) ); \
fi