Stops trashing the stack and fixes various time/delay/duration issues
that were especially noticeable on i386.

Remove unused usleep procedure, enable getting the timezone offset.

Tested on i386, amd64 and sparc64.

OK?

---
 lang/gcc/4.6/Makefile                              | 14 ++++++------
 lang/gcc/4.6/distinfo                              | 12 +++++------
 lang/gcc/4.6/patches/patch-gcc_ada_a-calend_adb    | 14 ++++++++++++
 lang/gcc/4.6/patches/patch-gcc_ada_adaint_c        | 17 ++++++++++++---
 lang/gcc/4.6/patches/patch-gcc_ada_adaint_h        | 12 +++++++++++
 lang/gcc/4.6/patches/patch-gcc_ada_g-calend_ads    | 16 ++++++++++++++
 .../4.6/patches/patch-gcc_ada_s-osinte-openbsd_ads | 11 ++++------
 .../4.6/patches/patch-gcc_ada_s-osprim-posix_adb   | 25 ++++++++++++++++++++++
 lang/gcc/4.6/patches/patch-gcc_ada_sysdep_c        | 13 +++++++++++
 lang/gcc/4.8/Makefile                              | 14 ++++++------
 lang/gcc/4.8/distinfo                              | 12 +++++------
 lang/gcc/4.8/patches/patch-gcc_ada_a-calend_adb    | 14 ++++++++++++
 lang/gcc/4.8/patches/patch-gcc_ada_adaint_c        | 17 ++++++++++++---
 lang/gcc/4.8/patches/patch-gcc_ada_adaint_h        | 12 +++++++++++
 lang/gcc/4.8/patches/patch-gcc_ada_g-calend_ads    | 16 ++++++++++++++
 .../4.8/patches/patch-gcc_ada_s-osinte-openbsd_ads | 11 ++++------
 .../4.8/patches/patch-gcc_ada_s-osprim-posix_adb   | 25 ++++++++++++++++++++++
 lang/gcc/4.8/patches/patch-gcc_ada_sysdep_c        | 12 +++++++++++
 18 files changed, 221 insertions(+), 46 deletions(-)
 create mode 100644 lang/gcc/4.6/patches/patch-gcc_ada_a-calend_adb
 create mode 100644 lang/gcc/4.6/patches/patch-gcc_ada_adaint_h
 create mode 100644 lang/gcc/4.6/patches/patch-gcc_ada_g-calend_ads
 create mode 100644 lang/gcc/4.6/patches/patch-gcc_ada_s-osprim-posix_adb
 create mode 100644 lang/gcc/4.6/patches/patch-gcc_ada_sysdep_c
 create mode 100644 lang/gcc/4.8/patches/patch-gcc_ada_a-calend_adb
 create mode 100644 lang/gcc/4.8/patches/patch-gcc_ada_adaint_h
 create mode 100644 lang/gcc/4.8/patches/patch-gcc_ada_g-calend_ads
 create mode 100644 lang/gcc/4.8/patches/patch-gcc_ada_s-osprim-posix_adb
 create mode 100644 lang/gcc/4.8/patches/patch-gcc_ada_sysdep_c

diff --git a/lang/gcc/4.6/Makefile b/lang/gcc/4.6/Makefile
index 701e9d6..a13b952 100644
--- a/lang/gcc/4.6/Makefile
+++ b/lang/gcc/4.6/Makefile
@@ -7,12 +7,12 @@ V = 4.6.4
 FULL_VERSION = $V
 FULL_PKGVERSION = $V
 
-ADASTRAP_LIBC-i386 = 70.0
-ADASTRAP-i386 = adastrap-i386-$V-3.tar.xz
-ADASTRAP_LIBC-amd64 = 70.0
-ADASTRAP-amd64 = adastrap-amd64-$V-3.tar.xz
-ADASTRAP_LIBC-sparc64 = 70.0
-ADASTRAP-sparc64 = adastrap-sparc64-$V-3.tar.xz
+ADASTRAP_LIBC-i386 = 73.0
+ADASTRAP-i386 = adastrap-i386-$V-4.tar.xz
+ADASTRAP_LIBC-amd64 = 73.0
+ADASTRAP-amd64 = adastrap-amd64-$V-4.tar.xz
+ADASTRAP_LIBC-sparc64 = 73.0
+ADASTRAP-sparc64 = adastrap-sparc64-$V-4.tar.xz
 
 PKGNAME-main =  gcc-${FULL_PKGVERSION}
 PKGNAME-c++ =   g++-${FULL_PKGVERSION}
@@ -30,7 +30,7 @@ REVISION-c++ =        4
 REVISION-f95 = 4
 REVISION-java =        4
 REVISION-objc =        3
-REVISION-ada = 6
+REVISION-ada = 7
 REVISION-go =  4
 
 SHARED_LIBS =  estdc++         14.0 \
diff --git a/lang/gcc/4.6/distinfo b/lang/gcc/4.6/distinfo
index 1a41e54..eb3e6d7 100644
--- a/lang/gcc/4.6/distinfo
+++ b/lang/gcc/4.6/distinfo
@@ -1,10 +1,10 @@
-SHA256 (gcc/adastrap-amd64-4.6.4-3.tar.xz) = 
C6WLt25QtQvzPvas+IiKZKTQgce0WgW0sXunetxihcg=
-SHA256 (gcc/adastrap-i386-4.6.4-3.tar.xz) = 
OS8X16WSASH6aujJhY3x4AWWu2oStJ3VdAxbszkX48o=
-SHA256 (gcc/adastrap-sparc64-4.6.4-3.tar.xz) = 
+dMWKALgebV8UMEZcSAwV7swmHsBWMaQWKDliMcI6lc=
+SHA256 (gcc/adastrap-amd64-4.6.4-4.tar.xz) = 
W7bUWobcq5yaR7NgR2+X9IeEPlDMTivafQ/Mcmz3btk=
+SHA256 (gcc/adastrap-i386-4.6.4-4.tar.xz) = 
DpHZc7Ibkrt3uO8BA3j7VgZaTsgMIg6UWzlk9ggu8Qk=
+SHA256 (gcc/adastrap-sparc64-4.6.4-4.tar.xz) = 
T1UMuUloajJY68QWnddbhuYGqpdxmZik1I3kY+l49oI=
 SHA256 (gcc/ecj-4.5.jar) = mP0Sjx03TZ5C/Z1INr3SScbVEevGwN8X+8G535bD14E=
 SHA256 (gcc/gcc-4.6.4.tar.bz2) = Na8Wr6C2evm46xXK+3bSvF9WhUBVJSL13CyI3UXZd+g=
-SIZE (gcc/adastrap-amd64-4.6.4-3.tar.xz) = 19676880
-SIZE (gcc/adastrap-i386-4.6.4-3.tar.xz) = 17405164
-SIZE (gcc/adastrap-sparc64-4.6.4-3.tar.xz) = 13902500
+SIZE (gcc/adastrap-amd64-4.6.4-4.tar.xz) = 19677348
+SIZE (gcc/adastrap-i386-4.6.4-4.tar.xz) = 18556144
+SIZE (gcc/adastrap-sparc64-4.6.4-4.tar.xz) = 13904728
 SIZE (gcc/ecj-4.5.jar) = 1470676
 SIZE (gcc/gcc-4.6.4.tar.bz2) = 72006076
diff --git a/lang/gcc/4.6/patches/patch-gcc_ada_a-calend_adb 
b/lang/gcc/4.6/patches/patch-gcc_ada_a-calend_adb
new file mode 100644
index 0000000..100a753
--- /dev/null
+++ b/lang/gcc/4.6/patches/patch-gcc_ada_a-calend_adb
@@ -0,0 +1,14 @@
+$OpenBSD$
+--- gcc/ada/a-calend.adb.orig  Sun Jan 19 01:33:14 2014
++++ gcc/ada/a-calend.adb       Sun Jan 19 01:34:06 2014
+@@ -1448,9 +1448,7 @@ package body Ada.Calendar is
+       subtype long is Long_Integer;
+       type long_Pointer is access all long;
+ 
+-      type time_t is
+-        range -(2 ** (Standard'Address_Size - Integer'(1))) ..
+-              +(2 ** (Standard'Address_Size - Integer'(1)) - 1);
++      type time_t is new Long_Long_Integer;
+       type time_t_Pointer is access all time_t;
+ 
+       procedure localtime_tzoff
diff --git a/lang/gcc/4.6/patches/patch-gcc_ada_adaint_c 
b/lang/gcc/4.6/patches/patch-gcc_ada_adaint_c
index d4d7a58..3f42605 100644
--- a/lang/gcc/4.6/patches/patch-gcc_ada_adaint_c
+++ b/lang/gcc/4.6/patches/patch-gcc_ada_adaint_c
@@ -1,7 +1,18 @@
 $OpenBSD: patch-gcc_ada_adaint_c,v 1.2 2013/05/03 23:13:49 tobiasu Exp $
 --- gcc/ada/adaint.c.orig      Mon Oct 25 17:26:02 2010
-+++ gcc/ada/adaint.c   Sun Apr 14 03:41:35 2013
-@@ -2384,7 +2384,8 @@ __gnat_number_of_cpus (void)
++++ gcc/ada/adaint.c   Sun Jan 19 02:45:11 2014
+@@ -1414,8 +1414,9 @@ __gnat_file_time_fd (int fd)
+ /* Set the file time stamp.  */
+ 
+ void
+-__gnat_set_file_time_name (char *name, time_t time_stamp)
++__gnat_set_file_time_name (char *name, OS_Time ts)
+ {
++  time_t time_stamp = (time_t) ts;
+ #if defined (__vxworks)
+ 
+ /* Code to implement __gnat_set_file_time_name for these systems.  */
+@@ -2384,7 +2385,8 @@ __gnat_number_of_cpus (void)
    int cores = 1;
  
  #if defined (linux) || defined (sun) || defined (AIX) \
@@ -11,7 +22,7 @@ $OpenBSD: patch-gcc_ada_adaint_c,v 1.2 2013/05/03 23:13:49 
tobiasu Exp $
    cores = (int) sysconf (_SC_NPROCESSORS_ONLN);
  
  #elif (defined (__mips) && defined (__sgi))
-@@ -3686,3 +3687,9 @@ void *__gnat_lwp_self (void)
+@@ -3686,3 +3688,9 @@ void *__gnat_lwp_self (void)
     return (void *) syscall (__NR_gettid);
  }
  #endif
diff --git a/lang/gcc/4.6/patches/patch-gcc_ada_adaint_h 
b/lang/gcc/4.6/patches/patch-gcc_ada_adaint_h
new file mode 100644
index 0000000..938bdf0
--- /dev/null
+++ b/lang/gcc/4.6/patches/patch-gcc_ada_adaint_h
@@ -0,0 +1,12 @@
+$OpenBSD$
+--- gcc/ada/adaint.h.orig      Sun Jan 19 02:40:43 2014
++++ gcc/ada/adaint.h   Sun Jan 19 02:41:02 2014
+@@ -146,7 +146,7 @@ extern OS_Time __gnat_file_time_name                (c
+ extern OS_Time __gnat_file_time_fd                  (int);
+ /* return -1 in case of error */
+ 
+-extern void   __gnat_set_file_time_name                  (char *, time_t);
++extern void   __gnat_set_file_time_name                  (char *, OS_Time);
+ 
+ extern int    __gnat_dup                                  (int);
+ extern int    __gnat_dup2                                 (int, int);
diff --git a/lang/gcc/4.6/patches/patch-gcc_ada_g-calend_ads 
b/lang/gcc/4.6/patches/patch-gcc_ada_g-calend_ads
new file mode 100644
index 0000000..3959cb4
--- /dev/null
+++ b/lang/gcc/4.6/patches/patch-gcc_ada_g-calend_ads
@@ -0,0 +1,16 @@
+$OpenBSD$
+--- gcc/ada/g-calend.ads.orig  Sun Jan 19 06:14:19 2014
++++ gcc/ada/g-calend.ads       Sun Jan 19 06:17:58 2014
+@@ -129,7 +129,11 @@ private
+    --  This is a dummy declaration that should be the largest possible timeval
+    --  structure of all supported targets.
+ 
+-   type timeval is array (1 .. 2) of Interfaces.C.long;
++   type timeval is
++      record
++         tv_sec  : Long_Long_Integer;
++         tv_usec : Interfaces.C.long;
++      end record;
+ 
+    function Julian_Day
+      (Year  : Ada.Calendar.Year_Number;
diff --git a/lang/gcc/4.6/patches/patch-gcc_ada_s-osinte-openbsd_ads 
b/lang/gcc/4.6/patches/patch-gcc_ada_s-osinte-openbsd_ads
index af3a0c6..742752d 100644
--- a/lang/gcc/4.6/patches/patch-gcc_ada_s-osinte-openbsd_ads
+++ b/lang/gcc/4.6/patches/patch-gcc_ada_s-osinte-openbsd_ads
@@ -1,7 +1,7 @@
 $OpenBSD: patch-gcc_ada_s-osinte-openbsd_ads,v 1.1 2013/07/18 16:54:08 tobiasu 
Exp $
---- gcc/ada/s-osinte-openbsd.ads.orig  Tue Jun 18 17:49:20 2013
-+++ gcc/ada/s-osinte-openbsd.ads       Tue Jun 18 17:50:54 2013
-@@ -0,0 +1,650 @@
+--- gcc/ada/s-osinte-openbsd.ads.orig  Sun Jan 19 01:19:07 2014
++++ gcc/ada/s-osinte-openbsd.ads       Sun Jan 19 05:53:48 2014
+@@ -0,0 +1,647 @@
 +------------------------------------------------------------------------------
 +--                                                                          --
 +--                  GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                --
@@ -228,9 +228,6 @@ $OpenBSD: patch-gcc_ada_s-osinte-openbsd_ads,v 1.1 
2013/07/18 16:54:08 tobiasu E
 +   end record;
 +   pragma Convention (C, struct_timezone);
 +
-+   procedure usleep (useconds : unsigned_long);
-+   pragma Import (C, usleep, "usleep");
-+
 +   -------------------------
 +   -- Priority Scheduling --
 +   -------------------------
@@ -632,7 +629,7 @@ $OpenBSD: patch-gcc_ada_s-osinte-openbsd_ads,v 1.1 
2013/07/18 16:54:08 tobiasu E
 +   type pid_t is new int;
 +   Self_PID : constant pid_t := 0;
 +
-+   type time_t is new long;
++   type time_t is new Long_Long_Integer;
 +
 +   type timespec is record
 +      ts_sec  : time_t;
diff --git a/lang/gcc/4.6/patches/patch-gcc_ada_s-osprim-posix_adb 
b/lang/gcc/4.6/patches/patch-gcc_ada_s-osprim-posix_adb
new file mode 100644
index 0000000..04e1502
--- /dev/null
+++ b/lang/gcc/4.6/patches/patch-gcc_ada_s-osprim-posix_adb
@@ -0,0 +1,25 @@
+$OpenBSD$
+--- gcc/ada/s-osprim-posix.adb.orig    Sun Jan 19 03:46:06 2014
++++ gcc/ada/s-osprim-posix.adb Sun Jan 19 06:31:26 2014
+@@ -38,7 +38,7 @@ package body System.OS_Primitives is
+    --  these declarations in System.OS_Interface and move these ones in
+    --  the spec.
+ 
+-   type time_t is new Long_Integer;
++   type time_t is new Long_Long_Integer;
+ 
+    type timespec is record
+       tv_sec  : time_t;
+@@ -54,7 +54,11 @@ package body System.OS_Primitives is
+    -----------
+ 
+    function Clock return Duration is
+-      type timeval is array (1 .. 2) of Long_Integer;
++      type timeval is
++         record
++            tv_sec  : time_t;
++            tv_usec : Long_Integer;
++         end record;
+ 
+       procedure timeval_to_duration
+         (T    : not null access timeval;
diff --git a/lang/gcc/4.6/patches/patch-gcc_ada_sysdep_c 
b/lang/gcc/4.6/patches/patch-gcc_ada_sysdep_c
new file mode 100644
index 0000000..a15eeb6
--- /dev/null
+++ b/lang/gcc/4.6/patches/patch-gcc_ada_sysdep_c
@@ -0,0 +1,13 @@
+$OpenBSD$
+--- gcc/ada/sysdep.c.orig      Sun Jan 19 01:26:27 2014
++++ gcc/ada/sysdep.c   Sun Jan 19 01:28:13 2014
+@@ -937,7 +937,8 @@ __gnat_localtime_tzoff (const time_t *timer, long *off
+    struct tm */
+ 
+ #elif defined (__APPLE__) || defined (__FreeBSD__) || defined (linux) ||\
+-     (defined (__alpha__) && defined (__osf__)) || defined (__GLIBC__)
++     (defined (__alpha__) && defined (__osf__)) || defined (__GLIBC__) ||\
++      defined (__OpenBSD__)
+ {
+   localtime_r (timer, &tp);
+   *off = tp.tm_gmtoff;
diff --git a/lang/gcc/4.8/Makefile b/lang/gcc/4.8/Makefile
index 54e45ab..abb9dcf 100644
--- a/lang/gcc/4.8/Makefile
+++ b/lang/gcc/4.8/Makefile
@@ -7,15 +7,15 @@ V = 4.8.2
 FULL_VERSION = $V
 FULL_PKGVERSION = $V
 
-ADASTRAP_LIBC-i386 = 71.0
+ADASTRAP_LIBC-i386 = 73.0
 ADASTRAP_LIBM-i386 = 9.0
-ADASTRAP-i386 = adastrap-i386-$V-0.tar.xz
-ADASTRAP_LIBC-amd64 = 71.0
+ADASTRAP-i386 = adastrap-i386-$V-1.tar.xz
+ADASTRAP_LIBC-amd64 = 73.0
 ADASTRAP_LIBM-amd64 = 9.0
-ADASTRAP-amd64 = adastrap-amd64-$V-0.tar.xz
-ADASTRAP_LIBC-sparc64 = 71.0
+ADASTRAP-amd64 = adastrap-amd64-$V-1.tar.xz
+ADASTRAP_LIBC-sparc64 = 73.0
 ADASTRAP_LIBM-sparc64 = 9.0
-ADASTRAP-sparc64 = adastrap-sparc64-$V-0.tar.xz
+ADASTRAP-sparc64 = adastrap-sparc64-$V-1.tar.xz
 
 PKGNAME-main =  gcc-${FULL_PKGVERSION}
 PKGNAME-c++ =   g++-${FULL_PKGVERSION}
@@ -34,7 +34,7 @@ REVISION-c++  = 2
 REVISION-f95   = 2
 REVISION-java  = 2
 REVISION-objc  = 2
-REVISION-ada   = 2
+REVISION-ada   = 3
 #REVISION-go   =
 
 SHARED_LIBS =  estdc++         16.0 \
diff --git a/lang/gcc/4.8/distinfo b/lang/gcc/4.8/distinfo
index d5b8dbd..dcc8a7b 100644
--- a/lang/gcc/4.8/distinfo
+++ b/lang/gcc/4.8/distinfo
@@ -1,10 +1,10 @@
-SHA256 (gcc/adastrap-amd64-4.8.2-0.tar.xz) = 
RuHws36Mtj00vwiG8eQUyW0a8MPEDG7k++R4E7kk5jQ=
-SHA256 (gcc/adastrap-i386-4.8.2-0.tar.xz) = 
n4eXFzsFOTPVAcUS+lXgcowttz+N48KvusskDV0ivRo=
-SHA256 (gcc/adastrap-sparc64-4.8.2-0.tar.xz) = 
BMQfTxEuLm5q0Emscm2iBdr8Hp+QUhDSIMS6E2ksed4=
+SHA256 (gcc/adastrap-amd64-4.8.2-1.tar.xz) = 
Q6JfaPw5HpaVq6sglhuoOCLQb/sbtM9FH7xl60BR4qA=
+SHA256 (gcc/adastrap-i386-4.8.2-1.tar.xz) = 
eTJBBkVAjtFZ8Yw9BwyigK3z7FML/4pezIa6KGAlZaQ=
+SHA256 (gcc/adastrap-sparc64-4.8.2-1.tar.xz) = 
L4YdMjWVCxHrzvb9605kX20XuEOzsvJKftbFDrQ7gbA=
 SHA256 (gcc/ecj-4.5.jar) = mP0Sjx03TZ5C/Z1INr3SScbVEevGwN8X+8G535bD14E=
 SHA256 (gcc/gcc-4.8.2.tar.bz2) = Cdwidsc0JLu/2h293GK7v5AMnxhaz38+HXc84tfjzcg=
-SIZE (gcc/adastrap-amd64-4.8.2-0.tar.xz) = 33355120
-SIZE (gcc/adastrap-i386-4.8.2-0.tar.xz) = 31194520
-SIZE (gcc/adastrap-sparc64-4.8.2-0.tar.xz) = 27195732
+SIZE (gcc/adastrap-amd64-4.8.2-1.tar.xz) = 33367392
+SIZE (gcc/adastrap-i386-4.8.2-1.tar.xz) = 32559320
+SIZE (gcc/adastrap-sparc64-4.8.2-1.tar.xz) = 27201372
 SIZE (gcc/ecj-4.5.jar) = 1470676
 SIZE (gcc/gcc-4.8.2.tar.bz2) = 85999682
diff --git a/lang/gcc/4.8/patches/patch-gcc_ada_a-calend_adb 
b/lang/gcc/4.8/patches/patch-gcc_ada_a-calend_adb
new file mode 100644
index 0000000..63a4c13
--- /dev/null
+++ b/lang/gcc/4.8/patches/patch-gcc_ada_a-calend_adb
@@ -0,0 +1,14 @@
+$OpenBSD$
+--- gcc/ada/a-calend.adb.orig  Mon Jan 20 00:59:54 2014
++++ gcc/ada/a-calend.adb       Mon Jan 20 01:00:33 2014
+@@ -684,9 +684,7 @@ package body Ada.Calendar is
+       type int_Pointer  is access all Interfaces.C.int;
+       type long_Pointer is access all Interfaces.C.long;
+ 
+-      type time_t is
+-        range -(2 ** (Standard'Address_Size - Integer'(1))) ..
+-              +(2 ** (Standard'Address_Size - Integer'(1)) - 1);
++      type time_t is new Long_Long_Integer;
+       type time_t_Pointer is access all time_t;
+ 
+       procedure localtime_tzoff
diff --git a/lang/gcc/4.8/patches/patch-gcc_ada_adaint_c 
b/lang/gcc/4.8/patches/patch-gcc_ada_adaint_c
index 9561268..a4e807e 100644
--- a/lang/gcc/4.8/patches/patch-gcc_ada_adaint_c
+++ b/lang/gcc/4.8/patches/patch-gcc_ada_adaint_c
@@ -1,7 +1,18 @@
 $OpenBSD: patch-gcc_ada_adaint_c,v 1.2 2013/04/12 10:01:47 tobiasu Exp $
 --- gcc/ada/adaint.c.orig      Wed Feb  6 13:01:20 2013
-+++ gcc/ada/adaint.c   Wed Apr 10 01:42:27 2013
-@@ -2467,7 +2467,8 @@ __gnat_number_of_cpus (void)
++++ gcc/ada/adaint.c   Mon Jan 20 01:31:47 2014
+@@ -1463,8 +1463,9 @@ __gnat_file_time_fd (int fd)
+ /* Set the file time stamp.  */
+ 
+ void
+-__gnat_set_file_time_name (char *name, time_t time_stamp)
++__gnat_set_file_time_name (char *name, OS_Time ts)
+ {
++  time_t time_stamp = (time_t) ts;
+ #if defined (__vxworks)
+ 
+ /* Code to implement __gnat_set_file_time_name for these systems.  */
+@@ -2467,7 +2468,8 @@ __gnat_number_of_cpus (void)
  {
    int cores = 1;
  
@@ -11,7 +22,7 @@ $OpenBSD: patch-gcc_ada_adaint_c,v 1.2 2013/04/12 10:01:47 
tobiasu Exp $
    cores = (int) sysconf (_SC_NPROCESSORS_ONLN);
  
  #elif defined (__hpux__)
-@@ -3855,3 +3856,9 @@ void __gnat_cpu_set (int cpu, size_t count ATTRIBUTE_U
+@@ -3855,3 +3857,9 @@ void __gnat_cpu_set (int cpu, size_t count ATTRIBUTE_U
  #ifdef __cplusplus
  }
  #endif
diff --git a/lang/gcc/4.8/patches/patch-gcc_ada_adaint_h 
b/lang/gcc/4.8/patches/patch-gcc_ada_adaint_h
new file mode 100644
index 0000000..52df240
--- /dev/null
+++ b/lang/gcc/4.8/patches/patch-gcc_ada_adaint_h
@@ -0,0 +1,12 @@
+$OpenBSD$
+--- gcc/ada/adaint.h.orig      Mon Jan 20 01:53:22 2014
++++ gcc/ada/adaint.h   Mon Jan 20 01:53:44 2014
+@@ -150,7 +150,7 @@ extern OS_Time __gnat_file_time_name                (c
+ extern OS_Time __gnat_file_time_fd                  (int);
+ /* return -1 in case of error */
+ 
+-extern void   __gnat_set_file_time_name                  (char *, time_t);
++extern void   __gnat_set_file_time_name                  (char *, OS_Time);
+ 
+ extern int    __gnat_dup                                  (int);
+ extern int    __gnat_dup2                                 (int, int);
diff --git a/lang/gcc/4.8/patches/patch-gcc_ada_g-calend_ads 
b/lang/gcc/4.8/patches/patch-gcc_ada_g-calend_ads
new file mode 100644
index 0000000..35e0e41
--- /dev/null
+++ b/lang/gcc/4.8/patches/patch-gcc_ada_g-calend_ads
@@ -0,0 +1,16 @@
+$OpenBSD$
+--- gcc/ada/g-calend.ads.orig  Mon Jan 20 03:37:23 2014
++++ gcc/ada/g-calend.ads       Mon Jan 20 03:39:20 2014
+@@ -162,7 +162,11 @@ private
+    --  This is a dummy declaration that should be the largest possible timeval
+    --  structure of all supported targets.
+ 
+-   type timeval is array (1 .. 2) of Interfaces.C.long;
++   type timeval is
++      record
++         tv_sec  : Long_Long_Integer;
++         tv_usec : Interfaces.C.long;
++      end record;
+ 
+    function Julian_Day
+      (Year  : Ada.Calendar.Year_Number;
diff --git a/lang/gcc/4.8/patches/patch-gcc_ada_s-osinte-openbsd_ads 
b/lang/gcc/4.8/patches/patch-gcc_ada_s-osinte-openbsd_ads
index 9b266af..9977f3f 100644
--- a/lang/gcc/4.8/patches/patch-gcc_ada_s-osinte-openbsd_ads
+++ b/lang/gcc/4.8/patches/patch-gcc_ada_s-osinte-openbsd_ads
@@ -1,7 +1,7 @@
 $OpenBSD: patch-gcc_ada_s-osinte-openbsd_ads,v 1.1 2013/07/18 17:04:08 tobiasu 
Exp $
---- gcc/ada/s-osinte-openbsd.ads.orig  Mon Jun 17 16:05:29 2013
-+++ gcc/ada/s-osinte-openbsd.ads       Mon Jun 17 17:11:52 2013
-@@ -0,0 +1,643 @@
+--- gcc/ada/s-osinte-openbsd.ads.orig  Mon Jan 20 00:29:13 2014
++++ gcc/ada/s-osinte-openbsd.ads       Mon Jan 20 02:52:03 2014
+@@ -0,0 +1,640 @@
 +------------------------------------------------------------------------------
 +--                                                                          --
 +--                  GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                --
@@ -216,9 +216,6 @@ $OpenBSD: patch-gcc_ada_s-osinte-openbsd_ads,v 1.1 
2013/07/18 17:04:08 tobiasu E
 +   end record;
 +   pragma Convention (C, struct_timezone);
 +
-+   procedure usleep (useconds : unsigned_long);
-+   pragma Import (C, usleep, "usleep");
-+
 +   -------------------------
 +   -- Priority Scheduling --
 +   -------------------------
@@ -628,7 +625,7 @@ $OpenBSD: patch-gcc_ada_s-osinte-openbsd_ads,v 1.1 
2013/07/18 17:04:08 tobiasu E
 +   type pid_t is new int;
 +   Self_PID : constant pid_t := 0;
 +
-+   type time_t is new long;
++   type time_t is new Long_Long_Integer;
 +
 +   type timespec is record
 +      ts_sec  : time_t;
diff --git a/lang/gcc/4.8/patches/patch-gcc_ada_s-osprim-posix_adb 
b/lang/gcc/4.8/patches/patch-gcc_ada_s-osprim-posix_adb
new file mode 100644
index 0000000..e6e466e
--- /dev/null
+++ b/lang/gcc/4.8/patches/patch-gcc_ada_s-osprim-posix_adb
@@ -0,0 +1,25 @@
+$OpenBSD$
+--- gcc/ada/s-osprim-posix.adb.orig    Mon Jan 20 02:55:58 2014
++++ gcc/ada/s-osprim-posix.adb Mon Jan 20 02:56:39 2014
+@@ -38,7 +38,7 @@ package body System.OS_Primitives is
+    --  these declarations in System.OS_Interface and move these ones in
+    --  the spec.
+ 
+-   type time_t is new Long_Integer;
++   type time_t is new Long_Long_Integer;
+ 
+    type timespec is record
+       tv_sec  : time_t;
+@@ -54,7 +54,11 @@ package body System.OS_Primitives is
+    -----------
+ 
+    function Clock return Duration is
+-      type timeval is array (1 .. 2) of Long_Integer;
++      type timeval is
++         record
++            tv_sec  : time_t;
++            tv_usec : Long_Integer;
++         end record;
+ 
+       procedure timeval_to_duration
+         (T    : not null access timeval;
diff --git a/lang/gcc/4.8/patches/patch-gcc_ada_sysdep_c 
b/lang/gcc/4.8/patches/patch-gcc_ada_sysdep_c
new file mode 100644
index 0000000..9341914
--- /dev/null
+++ b/lang/gcc/4.8/patches/patch-gcc_ada_sysdep_c
@@ -0,0 +1,12 @@
+$OpenBSD$
+--- gcc/ada/sysdep.c.orig      Mon Jan 20 01:02:25 2014
++++ gcc/ada/sysdep.c   Mon Jan 20 01:02:58 2014
+@@ -851,7 +851,7 @@ __gnat_localtime_tzoff (const time_t *timer, const int
+    struct tm */
+ 
+ #elif defined (__APPLE__) || defined (__FreeBSD__) || defined (linux) ||\
+-     defined (__GLIBC__)
++     defined (__GLIBC__) || defined (__OpenBSD__)
+ {
+   localtime_r (timer, &tp);
+   *off = tp.tm_gmtoff;

Reply via email to