[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#732681: marked as done (gnat-4.8: FTBFS on hurd-i386)



Your message dated Wed, 12 Feb 2014 11:19:28 +0000
with message-id <E1WDXqi-0001Oz-KM@franck.debian.org>
and subject line Bug#732681: fixed in gnat-4.8 4.8.2-8
has caused the Debian Bug report #732681,
regarding gnat-4.8: FTBFS on hurd-i386
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
732681: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=732681
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Source: gnat-4.8
Version: 4.8.2-5
Severity: important
Tags: patch
User: debian-hurd@lists.debian.org
Usertags: hurd

Hi,

Currently gnat-4.8 FTBFS on GNU/Hurd, see
https://buildd.debian.org/status/fetch.php?pkg=gnat-4.8&arch=hurd-i386&ver=4.8.2-5&stamp=1387071188

Attached are four patches enabling the build again:

1) debian_patches_ada-kfreebsd.diff.update: a one line update to the
kfreebsd patch to avoid including termio.h which does not exist.

2) debian_patches_gcc_ada_gcc-interface_Makefile.in.diff.update: an
update to the patch for adding Hurd support: now both s-osinte-*.adb and
s-taprop-*.ads are using the posix versions.

3) debian_patches_ada-s-osinte-gnu.ads.diff: An updated version of the
OS Specific interface: s-osinte-gnu.ads

4) debian_rules.patch.diff: A modification of rules.patch to reflect
that posix versions are used for the files in 2) above. Of course the
generated debian/patches/series file will change accordingly.

The first three patches can be proposed upstream when verified that more
packages build and work properly with the 4.8 version. Currently only
music123 and gcc-mingw-w64 build-depend on gnat-4.8, They have been
built w/o problems.

Thanks!
--- a/debian/patches/ada-kfreebsd.diff  2013-10-31 22:31:40.000000000 +0100
+++ b/debian/patches/ada-kfreebsd.diff  2013-11-13 01:43:04.000000000 +0100
@@ -8,7 +8,7 @@
  /* On some system termio is either absent or including it will disable termios
     (HP-UX) */
  #if ! defined (__hpux__) && ! defined (FREEBSD) && \
-+    ! defined (__FreeBSD_kernel__) && \
++    ! defined (__FreeBSD_kernel__) && ! defined (__GNU__) && \
      ! defined (__APPLE__) && ! defined(__rtems__)
  #   include <termio.h>
  #endif
--- a/debianpatches/gcc/ada/gcc-interface_Makefile.in.diff	2013-12-17 18:26:05.000000000 +0100
+++ b/debian/patches/gcc/ada/gcc-interface_Makefile.in.diff	2013-12-17 18:26:53.000000000 +0100
@@ -11,10 +11,10 @@
 +  a-numaux.ads<a-numaux-x86.ads \
 +  s-inmaop.adb<s-inmaop-posix.adb \
 +  s-intman.adb<s-intman-posix.adb \
-+  s-osinte.adb<s-osinte-gnu.adb \
++  s-osinte.adb<s-osinte-posix.adb \
 +  s-osinte.ads<s-osinte-gnu.ads \
 +  s-osprim.adb<s-osprim-posix.adb \
-+  s-taprop.adb<s-taprop-gnu.adb \
++  s-taprop.adb<s-taprop-posix.adb \
 +  s-taspri.ads<s-taspri-posix.ads \
 +  s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
 +  system.ads<system-freebsd-x86.ads
--- /dev/null	2012-01-30 20:41:15.189616186 +0100
+++ b/src/gcc/ada/s-osinte-gnu.ads	2012-04-11 19:34:45.000000000 +0200
@@ -0,0 +1,813 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                GNU ADA RUN-TIME LIBRARY (GNARL) COMPONENTS               --
+--                                                                          --
+--                   S Y S T E M . O S _ I N T E R F A C E                  --
+--                                                                          --
+--                                  S p e c                                 --
+--                                                                          --
+--             Copyright (C) 1991-1994, Florida State University            --
+--          Copyright (C) 1995-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 2,  or (at your option) any later ver- --
+-- sion. GNARL 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.  See the GNU General Public License --
+-- for  more details.  You should have  received  a copy of the GNU General --
+-- Public License  distributed with GNARL; see file COPYING.  If not, write --
+-- to  the  Free Software Foundation,  51  Franklin  Street,  Fifth  Floor, --
+-- Boston, MA 02110-1301, USA.                                              --
+--                                                                          --
+-- As a special exception,  if other files  instantiate  generics from this --
+-- unit, or you link  this unit with other files  to produce an executable, --
+-- this  unit  does not  by itself cause  the resulting  executable  to  be --
+-- covered  by the  GNU  General  Public  License.  This exception does not --
+-- however invalidate  any other reasons why  the executable file  might be --
+-- covered by the  GNU Public License.                                      --
+--                                                                          --
+-- GNARL was developed by the GNARL team at Florida State University.       --
+-- Extensive contributions were provided by Ada Core Technologies, Inc.     --
+--                                                                          --
+------------------------------------------------------------------------------
+
+--  This is the GNU/Hurd version of this package
+
+--  This package encapsulates all direct interfaces to OS services
+--  that are needed by children of System.
+
+--  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
+
+with Interfaces.C;
+with Unchecked_Conversion;
+
+package System.OS_Interface is
+   pragma Preelaborate;
+
+   pragma Linker_Options ("-lpthread");
+   pragma Linker_Options ("-lrt");
+
+   subtype int            is Interfaces.C.int;
+   subtype char           is Interfaces.C.char;
+   subtype short          is Interfaces.C.short;
+   subtype long           is Interfaces.C.long;
+   subtype unsigned       is Interfaces.C.unsigned;
+   subtype unsigned_short is Interfaces.C.unsigned_short;
+   subtype unsigned_long  is Interfaces.C.unsigned_long;
+   subtype unsigned_char  is Interfaces.C.unsigned_char;
+   subtype plain_char     is Interfaces.C.plain_char;
+   subtype size_t         is Interfaces.C.size_t;
+
+   -----------
+   -- Errno --
+   -----------
+   --  From /usr/include/i386-gnu/bits/errno.h
+
+   function errno return int;
+   pragma Import (C, errno, "__get_errno");
+
+   EAGAIN   : constant := 1073741859;
+   EINTR    : constant := 1073741828;
+   EINVAL   : constant := 1073741846;
+   ENOMEM   : constant := 1073741836;
+   EPERM    : constant := 1073741825;
+   ETIMEDOUT    : constant := 1073741884;
+
+   -------------
+   -- Signals --
+   -------------
+   --  From /usr/include/i386-gnu/bits/signum.h
+
+   Max_Interrupt : constant := 32;
+   type Signal is new int range 0 .. Max_Interrupt;
+   for Signal'Size use int'Size;
+
+   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
+   SIGEMT     : constant := 7; --  EMT instruction
+   SIGFPE     : constant := 8; --  floating point exception
+   SIGKILL    : constant := 9; --  kill (cannot be caught or ignored)
+   SIGBUS     : constant := 10; --  bus error
+   SIGSEGV    : constant := 11; --  segmentation violation
+   SIGSYS     : constant := 12; --  bad argument to system call
+   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
+   SIGURG     : constant := 16; --  urgent condition on IO channel
+   SIGSTOP    : constant := 17; --  stop (cannot be caught or ignored)
+   SIGTSTP    : constant := 18; --  user stop requested from tty
+   SIGCONT    : constant := 19; --  stopped process has been continued
+   SIGCLD     : constant := 20; --  alias for SIGCHLD
+   SIGCHLD    : constant := 20; --  child status change
+   SIGTTIN    : constant := 21; --  background tty read attempted
+   SIGTTOU    : constant := 22; --  background tty write attempted
+   SIGIO      : constant := 23; --  I/O possible (Solaris SIGPOLL alias)
+   SIGPOLL    : constant := 23; --  I/O possible (same as SIGIO?)
+   SIGXCPU    : constant := 24; --  CPU time limit exceeded
+   SIGXFSZ    : constant := 25; --  filesize limit exceeded
+   SIGVTALRM  : constant := 26; --  virtual timer expired
+   SIGPROF    : constant := 27; --  profiling timer expired
+   SIGWINCH   : constant := 28; --  window size change
+   SIGINFO    : constant := 29; --  information request (NetBSD/FreeBSD)
+   SIGUSR1    : constant := 30; --  user defined signal 1
+   SIGUSR2    : constant := 31; --  user defined signal 2
+   SIGLOST    : constant := 32; --  Resource lost (Sun); server died (GNU)
+--   SIGLTHRRES : constant := 32; --  GNU/LinuxThreads restart signal
+--   SIGLTHRCAN : constant := 33; --  GNU/LinuxThreads cancel signal
+--   SIGLTHRDBG : constant := 34; --  GNU/LinuxThreads debugger signal
+
+   SIGADAABORT : constant := SIGABRT;
+   --  Change this if you want to use another signal for task abort.
+   --  SIGTERM might be a good one.
+
+   type Signal_Set is array (Natural range <>) of Signal;
+
+   Unmasked    : constant Signal_Set := (
+      SIGTRAP,
+      --  To enable debugging on multithreaded applications, mark SIGTRAP to
+      --  be kept unmasked.
+
+      SIGBUS,
+
+      SIGTTIN, SIGTTOU, SIGTSTP,
+      --  Keep these three signals unmasked so that background processes
+      --  and IO behaves as normal "C" applications
+
+      SIGPROF,
+      --  To avoid confusing the profiler
+
+      SIGKILL, SIGSTOP);
+      --  These two signals actually cannot be masked;
+      --  POSIX simply won't allow it.
+
+   Reserved    : constant Signal_Set :=
+   --  I am not sure why the following signal is reserved.
+   --  I guess they are not supported by this version of GNU/Hurd.
+     (0 .. 0 => SIGVTALRM);
+
+   type sigset_t is private;
+
+   --  From /usr/include/signal.h /usr/include/i386-gnu/bits/sigset.h
+   function sigaddset (set : access sigset_t; sig : Signal) return int;
+   pragma Import (C, sigaddset, "sigaddset");
+
+   function sigdelset (set : access sigset_t; sig : Signal) return int;
+   pragma Import (C, sigdelset, "sigdelset");
+
+   function sigfillset (set : access sigset_t) return int;
+   pragma Import (C, sigfillset, "sigfillset");
+
+   function sigismember (set : access sigset_t; sig : Signal) return int;
+   pragma Import (C, sigismember, "sigismember");
+
+   function sigemptyset (set : access sigset_t) return int;
+   pragma Import (C, sigemptyset, "sigemptyset");
+
+   --  sigcontext is architecture dependent, so define it private
+   type struct_sigcontext is private;
+
+   --  From /usr/include/i386-gnu/bits/sigaction.h: Note: arg. order differs
+   type struct_sigaction is record
+      sa_handler : System.Address;
+      sa_mask    : sigset_t;
+      sa_flags   : int;
+   end record;
+   pragma Convention (C, struct_sigaction);
+
+   type struct_sigaction_ptr is access all struct_sigaction;
+
+   --  From /usr/include/i386-gnu/bits/sigaction.h
+   SIG_BLOCK   : constant := 1;
+   SIG_UNBLOCK : constant := 2;
+   SIG_SETMASK : constant := 3;
+
+   --  From /usr/include/i386-gnu/bits/signum.h
+   SIG_ERR  : constant := 1;
+   SIG_DFL  : constant := 0;
+   SIG_IGN  : constant := 1;
+   SIG_HOLD : constant := 2;
+
+   --  From /usr/include/i386-gnu/bits/sigaction.h
+   SA_SIGINFO : constant := 16#0040#;
+   SA_ONSTACK : constant := 16#0001#;
+
+   function sigaction
+     (sig  : Signal;
+      act  : struct_sigaction_ptr;
+      oact : struct_sigaction_ptr) return int;
+   pragma Import (C, sigaction, "sigaction");
+
+   ----------
+   -- Time --
+   ----------
+
+   Time_Slice_Supported : constant Boolean := True;
+   --  Indicates whether time slicing is supported (i.e SCHED_RR is supported)
+
+   type timespec is private;
+
+   function nanosleep (rqtp, rmtp : access timespec) return int;
+   pragma Import (C, nanosleep, "nanosleep");
+
+   type clockid_t is new int;
+   CLOCK_REALTIME : constant clockid_t := 0;
+
+   --  From: /usr/include/time.h
+   function clock_gettime
+     (clock_id : clockid_t;
+      tp       : access timespec)
+      return int;
+   pragma Import (C, clock_gettime, "clock_gettime");
+
+   function To_Duration (TS : timespec) return Duration;
+   pragma Inline (To_Duration);
+
+   function To_Timespec (D : Duration) return timespec;
+   pragma Inline (To_Timespec);
+
+   --  From: /usr/include/unistd.h
+   function sysconf (name : int) return long;
+   pragma Import (C, sysconf);
+
+   --  From /usr/include/i386-gnu/bits/confname.h
+   SC_CLK_TCK          : constant := 2;
+   SC_NPROCESSORS_ONLN : constant := 84;
+
+   -------------------------
+   -- Priority Scheduling --
+   -------------------------
+   --  From /usr/include/i386-gnu/bits/sched.h
+
+   SCHED_OTHER : constant := 0;
+   SCHED_FIFO  : constant := 1;
+   SCHED_RR    : constant := 2;
+
+   function To_Target_Priority
+     (Prio : System.Any_Priority) return Interfaces.C.int;
+   --  Maps System.Any_Priority to a POSIX priority.
+
+   -------------
+   -- Process --
+   -------------
+
+   type pid_t is private;
+
+   --  From: /usr/include/signal.h
+   function kill (pid : pid_t; sig : Signal) return int;
+   pragma Import (C, kill, "kill");
+
+   --  From: /usr/include/unistd.h
+   function getpid return pid_t;
+   pragma Import (C, getpid, "getpid");
+
+   ---------
+   -- LWP --
+   ---------
+
+   --  From: /usr/include/pthread/pthread.h
+   function lwp_self return System.Address;
+   --  lwp_self does not exist on this thread library, revert to pthread_self
+   --  which is the closest approximation (with getpid). This function is
+   --  needed to share 7staprop.adb across POSIX-like targets.
+   pragma Import (C, lwp_self, "pthread_self");
+
+   -------------
+   -- Threads --
+   -------------
+
+   type Thread_Body is access
+     function (arg : System.Address) return System.Address;
+   pragma Convention (C, Thread_Body);
+
+   function Thread_Body_Access is new
+     Unchecked_Conversion (System.Address, Thread_Body);
+
+   --  From: /usr/include/bits/pthread.h:typedef int __pthread_t;
+   --  /usr/include/pthread/pthreadtypes.h:typedef __pthread_t pthread_t;
+   type pthread_t is new unsigned_long;
+   subtype Thread_Id        is pthread_t;
+
+   function To_pthread_t is new Unchecked_Conversion
+     (unsigned_long, pthread_t);
+
+   type pthread_mutex_t     is limited private;
+   type pthread_rwlock_t     is limited private;
+   type pthread_cond_t      is limited private;
+   type pthread_attr_t      is limited private;
+   type pthread_mutexattr_t is limited private;
+   type pthread_rwlockattr_t is limited private;
+   type pthread_condattr_t  is limited private;
+   type pthread_key_t       is private;
+
+   --  From /usr/include/pthread/pthreadtypes.h
+   PTHREAD_CREATE_DETACHED : constant := 1;
+   PTHREAD_CREATE_JOINABLE : constant := 0;
+
+   PTHREAD_SCOPE_PROCESS : constant := 1;
+   PTHREAD_SCOPE_SYSTEM  : constant := 0;
+
+   -----------
+   -- Stack --
+   -----------
+
+   --  From: /usr/include/i386-gnu/bits/sigstack.h
+   type stack_t is record
+      ss_sp    : System.Address;
+      ss_size  : size_t;
+      ss_flags : int;
+   end record;
+   pragma Convention (C, stack_t);
+
+   function sigaltstack
+     (ss  : not null access stack_t;
+      oss : access stack_t) return int;
+   pragma Import (C, sigaltstack, "sigaltstack");
+
+   Alternate_Stack : aliased System.Address;
+   --  This is a dummy definition, never used (Alternate_Stack_Size is null)
+
+   Alternate_Stack_Size : constant := 0;
+   --  No alternate signal stack is used on this platform
+
+   Stack_Base_Available : constant Boolean := False;
+   --  Indicates whether the stack base is available on this target
+
+   function Get_Stack_Base (thread : pthread_t) return Address;
+   pragma Inline (Get_Stack_Base);
+   --  returns the stack base of the specified thread. Only call this function
+   --  when Stack_Base_Available is True.
+
+   --  From: /usr/include/i386-gnu/bits/shm.h __getpagesize or getpagesize??
+   function Get_Page_Size return size_t;
+   function Get_Page_Size return Address;
+   pragma Import (C, Get_Page_Size, "__getpagesize");
+   --  Returns the size of a page
+
+   --  From /usr/include/i386-gnu/bits/mman.h
+   PROT_NONE  : constant := 0;
+   PROT_READ  : constant := 4;
+   PROT_WRITE : constant := 2;
+   PROT_EXEC  : constant := 1;
+   PROT_ALL   : constant := PROT_READ + PROT_WRITE + PROT_EXEC;
+   PROT_ON    : constant := PROT_NONE;
+   PROT_OFF   : constant := PROT_ALL;
+
+   --  From /usr/include/i386-gnu/bits/mman.h
+   function mprotect (addr : Address; len : size_t; prot : int) return int;
+   pragma Import (C, mprotect);
+
+   ---------------------------------------
+   -- Nonstandard Thread Initialization --
+   ---------------------------------------
+
+   procedure pthread_init;
+   pragma Inline (pthread_init);
+   --  This is a dummy procedure to share some GNULLI files
+
+   -------------------------
+   -- POSIX.1c  Section 3 --
+   -------------------------
+
+   --  From: /usr/include/signal.h:
+   --  sigwait (__const sigset_t *__restrict __set, int *__restrict __sig)
+   function sigwait (set : access sigset_t; sig : access Signal) return int;
+   pragma Import (C, sigwait, "sigwait");
+
+   --  From: /usr/include/pthread/pthread.h:
+   --  extern int pthread_kill (pthread_t thread, int signo);
+   function pthread_kill (thread : pthread_t; sig : Signal) return int;
+   pragma Import (C, pthread_kill, "pthread_kill");
+
+   --  From: /usr/include/i386-gnu/bits/sigthread.h
+   --  extern int pthread_sigmask (int __how, __const __sigset_t *__newmask,
+   --  __sigset_t *__oldmask) __THROW;
+   function pthread_sigmask
+     (how  : int;
+      set  : access sigset_t;
+      oset : access sigset_t) return int;
+   pragma Import (C, pthread_sigmask, "pthread_sigmask");
+
+   --------------------------
+   -- POSIX.1c  Section 11 --
+   --------------------------
+
+   --  From: /usr/include/pthread/pthread.h and
+   --  /usr/include/pthread/pthreadtypes.h
+   function pthread_mutexattr_init
+     (attr : access pthread_mutexattr_t) return int;
+   pragma Import (C, pthread_mutexattr_init, "pthread_mutexattr_init");
+
+   function pthread_mutexattr_destroy
+     (attr : access pthread_mutexattr_t) return int;
+   pragma Import (C, pthread_mutexattr_destroy, "pthread_mutexattr_destroy");
+
+   function pthread_mutex_init
+     (mutex : access pthread_mutex_t;
+      attr  : access pthread_mutexattr_t) return int;
+   pragma Import (C, pthread_mutex_init, "pthread_mutex_init");
+
+   function pthread_mutex_destroy (mutex : access pthread_mutex_t) return int;
+   pragma Import (C, pthread_mutex_destroy, "pthread_mutex_destroy");
+
+   function pthread_mutex_lock (mutex : access pthread_mutex_t) return int;
+   pragma Import (C, pthread_mutex_lock, "pthread_mutex_lock");
+
+   function pthread_mutex_unlock (mutex : access pthread_mutex_t) return int;
+   pragma Import (C, pthread_mutex_unlock, "pthread_mutex_unlock");
+
+   function pthread_rwlockattr_init
+     (attr : access pthread_rwlockattr_t) return int;
+   pragma Import (C, pthread_rwlockattr_init, "pthread_rwlockattr_init");
+
+   function pthread_rwlockattr_destroy
+     (attr : access pthread_rwlockattr_t) return int;
+   pragma Import (C, pthread_rwlockattr_destroy, "pthread_rwlockattr_destroy");
+   PTHREAD_RWLOCK_PREFER_READER_NP              : constant := 0;
+   PTHREAD_RWLOCK_PREFER_WRITER_NP              : constant := 1;
+   PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2;
+
+   function pthread_rwlockattr_setkind_np
+     (attr : access pthread_rwlockattr_t;
+      pref : int) return int;
+   pragma Import
+     (C, pthread_rwlockattr_setkind_np, "pthread_rwlockattr_setkind_np");
+
+   function pthread_rwlock_init
+     (mutex : access pthread_rwlock_t;
+      attr  : access pthread_rwlockattr_t) return int;
+   pragma Import (C, pthread_rwlock_init, "pthread_rwlock_init");
+
+   function pthread_rwlock_destroy
+     (mutex : access pthread_rwlock_t) return int;
+   pragma Import (C, pthread_rwlock_destroy, "pthread_rwlock_destroy");
+
+   function pthread_rwlock_rdlock (mutex : access pthread_rwlock_t) return int;
+   pragma Import (C, pthread_rwlock_rdlock, "pthread_rwlock_rdlock");
+
+   function pthread_rwlock_wrlock (mutex : access pthread_rwlock_t) return int;
+   pragma Import (C, pthread_rwlock_wrlock, "pthread_rwlock_wrlock");
+
+   function pthread_rwlock_unlock (mutex : access pthread_rwlock_t) return int;
+   pragma Import (C, pthread_rwlock_unlock, "pthread_rwlock_unlock");
+
+   function pthread_condattr_init
+     (attr : access pthread_condattr_t) return int;
+   pragma Import (C, pthread_condattr_init, "pthread_condattr_init");
+
+   function pthread_condattr_destroy
+     (attr : access pthread_condattr_t) return int;
+   pragma Import (C, pthread_condattr_destroy, "pthread_condattr_destroy");
+
+   function pthread_cond_init
+     (cond : access pthread_cond_t;
+      attr : access pthread_condattr_t) return int;
+   pragma Import (C, pthread_cond_init, "pthread_cond_init");
+
+   function pthread_cond_destroy (cond : access pthread_cond_t) return int;
+   pragma Import (C, pthread_cond_destroy, "pthread_cond_destroy");
+
+   function pthread_cond_signal (cond : access pthread_cond_t) return int;
+   pragma Import (C, pthread_cond_signal, "pthread_cond_signal");
+
+   function pthread_cond_wait
+     (cond  : access pthread_cond_t;
+      mutex : access pthread_mutex_t) return int;
+   pragma Import (C, pthread_cond_wait, "pthread_cond_wait");
+
+   function pthread_cond_timedwait
+     (cond    : access pthread_cond_t;
+      mutex   : access pthread_mutex_t;
+      abstime : access timespec) return int;
+   pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait");
+
+   Relative_Timed_Wait : constant Boolean := False;
+   --  pthread_cond_timedwait requires an absolute delay time
+
+   --------------------------
+   -- POSIX.1c  Section 13 --
+   --------------------------
+   --  From /usr/include/pthread/pthreadtypes.h
+
+   PTHREAD_PRIO_NONE    : constant := 0;
+   PTHREAD_PRIO_PROTECT : constant := 2;
+   PTHREAD_PRIO_INHERIT : constant := 1;
+
+   --  From: /usr/include/pthread/pthread.h
+   function pthread_mutexattr_setprotocol
+     (attr     : access pthread_mutexattr_t;
+      protocol : int) return int;
+   pragma Import (C, pthread_mutexattr_setprotocol,
+     "pthread_mutexattr_setprotocol");
+
+   function pthread_mutexattr_getprotocol
+     (attr     : access pthread_mutexattr_t;
+      protocol : access int) return int;
+   pragma Import (C, pthread_mutexattr_getprotocol,
+     "pthread_mutexattr_getprotocol");
+
+   function pthread_mutexattr_setprioceiling
+     (attr     : access pthread_mutexattr_t;
+      prioceiling : int) return int;
+   pragma Import (C, pthread_mutexattr_setprioceiling,
+     "pthread_mutexattr_setprioceiling");
+
+   function pthread_mutexattr_getprioceiling
+     (attr     : access pthread_mutexattr_t;
+      prioceiling : access int) return int;
+   pragma Import (C, pthread_mutexattr_getprioceiling,
+     "pthread_mutexattr_getprioceiling");
+
+   type struct_sched_param is record
+      sched_priority : int;  --  scheduling priority
+   end record;
+   pragma Convention (C, struct_sched_param);
+
+   function pthread_setschedparam
+     (thread : pthread_t;
+      policy : int;
+      param  : access struct_sched_param) return int;
+   pragma Import (C, pthread_setschedparam, "pthread_setschedparam");
+
+   function pthread_attr_setscope
+     (attr            : access pthread_attr_t;
+      contentionscope : int) return int;
+   pragma Import (C, pthread_attr_setscope, "pthread_attr_setscope");
+
+   function pthread_attr_getscope
+     (attr            : access pthread_attr_t;
+      contentionscope : access int) return int;
+   pragma Import (C, pthread_attr_getscope, "pthread_attr_getscope");
+
+   function pthread_attr_setinheritsched
+     (attr            : access pthread_attr_t;
+      inheritsched : int) return int;
+   pragma Import (C, pthread_attr_setinheritsched,
+     "pthread_attr_setinheritsched");
+
+   function pthread_attr_getinheritsched
+     (attr         : access pthread_attr_t;
+      inheritsched : access int) return int;
+   pragma Import (C, pthread_attr_getinheritsched,
+     "pthread_attr_getinheritsched");
+
+   function pthread_attr_setschedpolicy
+     (attr   : access pthread_attr_t;
+      policy : int) return int;
+   pragma Import (C, pthread_attr_setschedpolicy, "pthread_setschedpolicy");
+
+   function sched_yield return int;
+   pragma Import (C, sched_yield, "sched_yield");
+
+   ---------------------------
+   -- P1003.1c - Section 16 --
+   ---------------------------
+
+   function pthread_attr_init
+     (attributes : access pthread_attr_t) return int;
+   pragma Import (C, pthread_attr_init, "pthread_attr_init");
+
+   function pthread_attr_destroy
+     (attributes : access pthread_attr_t) return int;
+   pragma Import (C, pthread_attr_destroy, "pthread_attr_destroy");
+
+   function pthread_attr_setdetachstate
+     (attr        : access pthread_attr_t;
+      detachstate : int) return int;
+   pragma Import
+     (C, pthread_attr_setdetachstate, "pthread_attr_setdetachstate");
+
+   function pthread_attr_setstacksize
+     (attr      : access pthread_attr_t;
+      stacksize : size_t) return int;
+   pragma Import (C, pthread_attr_setstacksize, "pthread_attr_setstacksize");
+
+   --  From: /usr/include/pthread/pthread.h
+   function pthread_create
+     (thread        : access pthread_t;
+      attributes    : access pthread_attr_t;
+      start_routine : Thread_Body;
+      arg           : System.Address) return int;
+   pragma Import (C, pthread_create, "pthread_create");
+
+   procedure pthread_exit (status : System.Address);
+   pragma Import (C, pthread_exit, "pthread_exit");
+
+   function pthread_self return pthread_t;
+   pragma Import (C, pthread_self, "pthread_self");
+
+   --------------------------
+   -- POSIX.1c  Section 17 --
+   --------------------------
+
+   function pthread_setspecific
+     (key   : pthread_key_t;
+      value : System.Address) return int;
+   pragma Import (C, pthread_setspecific, "pthread_setspecific");
+
+   function pthread_getspecific (key : pthread_key_t) return System.Address;
+   pragma Import (C, pthread_getspecific, "pthread_getspecific");
+
+   type destructor_pointer is access procedure (arg : System.Address);
+   pragma Convention (C, destructor_pointer);
+
+   function pthread_key_create
+     (key        : access pthread_key_t;
+      destructor : destructor_pointer) return int;
+   pragma Import (C, pthread_key_create, "pthread_key_create");
+
+   --  From /usr/include/i386-gnu/bits/sched.h
+   --  1_024 == 1024??
+   CPU_SETSIZE : constant := 1_024;
+
+   type bit_field is array (1 .. CPU_SETSIZE) of Boolean;
+   for bit_field'Size use CPU_SETSIZE;
+   pragma Pack (bit_field);
+   pragma Convention (C, bit_field);
+
+   type cpu_set_t is record
+      bits : bit_field;
+   end record;
+   pragma Convention (C, cpu_set_t);
+
+   --  function pthread_setaffinity_np
+   --  (thread     : pthread_t;
+   --   cpusetsize : size_t;
+   --   cpuset     : access cpu_set_t) return int;
+   --   pragma Import (C, pthread_setaffinity_np,
+   --   "__gnat_pthread_setaffinity_np");
+
+private
+
+   type sigset_t is array (1 .. 4) of unsigned;
+
+   --  FIXME:
+   --  In GNU/Hurd the component sa_handler turns out to
+   --  be one a union type, and the selector is a macro:
+   --  #define sa_handler __sigaction_handler.sa_handler
+   --  #define sa_sigaction __sigaction_handler.sa_sigaction
+
+   --  In FreeBSD the component sa_handler turns out to
+   --  be one a union type, and the selector is a macro:
+   --  #define sa_handler __sigaction_u._handler
+   --  #define sa_sigaction __sigaction_u._sigaction
+
+   --  Should we add a signal_context type here ?
+   --  How could it be done independent of the CPU architecture ?
+   --  sigcontext type is opaque, so it is architecturally neutral.
+   --  It is always passed as an access type, so define it as an empty record
+   --  since the contents are not used anywhere.
+   type struct_sigcontext is null record;
+   pragma Convention (C, struct_sigcontext);
+
+   type pid_t is new int;
+
+   type time_t is new long;
+
+   type timespec is record
+      tv_sec  : time_t;
+      tv_nsec : long;
+   end record;
+   pragma Convention (C, timespec);
+
+   --  From: /usr/include/pthread/pthreadtypes.h:
+   --  typedef struct __pthread_attr pthread_attr_t;
+   --  /usr/include/i386-gnu/bits/thread-attr.h: struct __pthread_attr...
+   --  /usr/include/pthread/pthreadtypes.h: enum __pthread_contentionscope
+   --   enum __pthread_detachstate detachstate;
+   --   enum __pthread_inheritsched inheritsched;
+   --   enum __pthread_contentionscope contentionscope;
+   --   Not used: schedpolicy   : int;
+   type pthread_attr_t is record
+      schedparam    : struct_sched_param;
+      stackaddr     : System.Address;
+      stacksize     : size_t;
+      guardsize     : size_t;
+      detachstate   : int;
+      inheritsched  : int;
+      contentionscope : int;
+      schedpolicy   : int;
+   end record;
+   pragma Convention (C, pthread_attr_t);
+
+   --  From: /usr/include/pthread/pthreadtypes.h:
+   --  typedef struct __pthread_condattr pthread_condattr_t;
+   --  From: /usr/include/i386-gnu/bits/condition-attr.h:
+   --  struct __pthread_condattr {
+   --    enum __pthread_process_shared pshared;
+   --    __Clockid_T Clock;}
+   --  From: /usr/include/pthread/pthreadtypes.h:
+   --  enum __pthread_process_shared
+   type pthread_condattr_t is record
+      pshared : int;
+      clock   : clockid_t;
+   end record;
+   pragma Convention (C, pthread_condattr_t);
+
+   --  From: /usr/include/pthread/pthreadtypes.h:
+   --  typedef struct __pthread_mutexattr pthread_mutexattr_t; and
+   --  /usr/include/i386-gnu/bits/mutex-attr.h
+   --  struct __pthread_mutexattr {
+   --  int prioceiling;
+   --  enum __pthread_mutex_protocol protocol;
+   --  enum __pthread_process_shared pshared;
+   --  enum __pthread_mutex_type mutex_type;};
+   type pthread_mutexattr_t is record
+      prioceiling : int;
+      protocol    : int;
+      pshared     : int;
+      mutex_type  : int;
+   end record;
+   pragma Convention (C, pthread_mutexattr_t);
+
+   --  From: /usr/include/pthread/pthreadtypes.h
+   --  typedef struct __pthread_mutex pthread_mutex_t; and
+   --  /usr/include/i386-gnu/bits/mutex.h:
+   --  struct __pthread_mutex {
+   --  __pthread_spinlock_t __held;
+   --  __pthread_spinlock_t __lock;
+   --  /* in cthreads, mutex_init does not initialized the third
+   --    pointer, as such, we cannot rely on its value for anything.  */
+   --    char *cthreadscompat1;
+   --  struct __pthread *__queue;
+   --  struct __pthread_mutexattr *attr;
+   --  void *data;
+   --  /*  up to this point, we are completely compatible with cthreads
+   --    and what libc expects.  */
+   --    void *owner;
+   --  unsigned locks;
+   --  /* if null then the default attributes apply.  */
+   --    };
+
+   type pthread_mutex_t is record
+      held          : int;
+      lock          : int;
+      cthreadcompat : System.Address;
+      queue         : System.Address;
+      attr          : System.Address;
+      data          : System.Address;
+      owner         : System.Address;
+      locks         : unsigned;
+   end record;
+   pragma Convention (C, pthread_mutex_t);
+   --  pointer needed?
+   --  type pthread_mutex_t_ptr is access pthread_mutex_t;
+
+   --  From: /usr/include/pthread/pthreadtypes.h:
+   --  typedef struct __pthread_cond pthread_cond_t;
+   --  typedef struct __pthread_condattr pthread_condattr_t;
+   --  /usr/include/i386-gnu/bits/condition.h:struct __pthread_cond{}
+   --  pthread_condattr_t: see above!
+   --  /usr/include/i386-gnu/bits/condition.h:struct __pthread_condimpl *__impl;
+
+   type pthread_cond_t is record
+      lock       : int;
+      queue      : System.Address;
+      condattr   : System.Address;
+      impl       : System.Address;
+      data       : System.Address;
+   end record;
+   pragma Convention (C, pthread_cond_t);
+
+   --  From: /usr/include/pthread/pthreadtypes.h:
+   --  typedef __pthread_key pthread_key_t; and
+   --  /usr/include/i386-gnu/bits/thread-specific.h:
+   --  typedef int __pthread_key;
+
+   type pthread_key_t is new int;
+
+   --  From: /usr/include/i386-gnu/bits/rwlock-attr.h:
+   --  struct __pthread_rwlockattr {
+   --  enum __pthread_process_shared pshared; };
+
+   type pthread_rwlockattr_t is record
+      pshared : int;
+   end record;
+   pragma Convention (C, pthread_rwlockattr_t);
+
+   --  From: /usr/include/i386-gnu/bits/rwlock.h:
+   --  struct __pthread_rwlock {
+   --  __pthread_spinlock_t __held;
+   --  __pthread_spinlock_t __lock;
+   --  int readers;
+   --  struct __pthread *readerqueue;
+   --  struct __pthread *writerqueue;
+   --  struct __pthread_rwlockattr *__attr;
+   --  void *__data; };
+
+   type pthread_rwlock_t is record
+      held        : int;
+      lock        : int;
+      readers     : int;
+      readerqueue : System.Address;
+      writerqueue : System.Address;
+      attr        : pthread_rwlockattr_t;
+      data        : int;
+   end record;
+   pragma Convention (C, pthread_rwlock_t);

+end System.OS_Interface;
--- a/debian_rules.patch	2013-12-14 17:40:35.000000000 +0100
+++ b/debian/rules.patch	2013-12-17 22:10:04.000000000 +0100
@@ -145,9 +145,7 @@
   ifeq ($(DEB_TARGET_ARCH_OS),hurd)
     debian_patches += \
         gcc_ada_gcc-interface_Makefile.in \
-	ada-s-osinte-gnu.adb \
-	ada-s-osinte-gnu.ads \
-	ada-s-taprop-gnu.adb
+	ada-s-osinte-gnu.ads
   endif
 
   debian_patches += \

--- End Message ---
--- Begin Message ---
Source: gnat-4.8
Source-Version: 4.8.2-8

We believe that the bug you reported is fixed in the latest version of
gnat-4.8, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 732681@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Ludovic Brenta <lbrenta@debian.org> (supplier of updated gnat-4.8 package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Wed, 12 Feb 2014 00:40:45 +0100
Source: gnat-4.8
Binary: gnat-4.8-base gnat-4.8 gnat-4.8-sjlj libgnat-4.8 libgnat-4.8-dbg libgnatvsn4.8-dev libgnatvsn4.8 libgnatvsn4.8-dbg libgnatprj4.8-dev libgnatprj4.8 libgnatprj4.8-dbg
Architecture: source amd64
Version: 4.8.2-8
Distribution: unstable
Urgency: low
Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
Changed-By: Ludovic Brenta <lbrenta@debian.org>
Description: 
 gnat-4.8   - GNU Ada compiler
 gnat-4.8-base - GNU Ada compiler (common files)
 gnat-4.8-sjlj - GNU Ada compiler (setjump/longjump runtime library)
 libgnat-4.8 - runtime for applications compiled with GNAT (shared library)
 libgnat-4.8-dbg - runtime for applications compiled with GNAT (debugging symbols)
 libgnatprj4.8 - GNU Ada compiler Project Manager (shared library)
 libgnatprj4.8-dbg - GNU Ada compiler Project Manager (debugging symbols)
 libgnatprj4.8-dev - GNU Ada compiler Project Manager (development files)
 libgnatvsn4.8 - GNU Ada compiler selected components (shared library)
 libgnatvsn4.8-dbg - GNU Ada compiler selected components (debugging symbols)
 libgnatvsn4.8-dev - GNU Ada compiler selected components (development files)
Closes: 732681
Changes: 
 gnat-4.8 (4.8.2-8) unstable; urgency=low
 .
   [Svante Signell]
   * debian/patches/ada-hurd.diff: split a line that was too long in two.
     Closes: #732681.
 .
   Merge from gcc-4.8 (4.8.2-15) unstable; urgency=medium
 .
   * Update to SVN 20140209 (r207641) from the gcc-4_8-branch.
     - Fix inconsistent install paths between gccgo and go tool. LP: #1271340.
   * Update the ibm branch to SVN 20140207 (r207580).
   * armhf: Fix ffi_call_VFP with no VFP arguments (Will Newton).
   * Apply proposed patch for PR target/59799, allow passing arrays in
     registers on AArch64 (Michael Hudson).
   * gcc-4.8-base: Update gcc-4.7-base breaks for updates from wheezy.
     Fixes: #736607.
 .
   Merge from gcc-4.8 (4.8.2-14) unstable; urgency=medium
 .
   * Update to SVN 20140115 (r206629) from the gcc-4_8-branch.
   * Fix call frame information in ffi_closure_SYSV on AArch64.
   * Update powerpcspe patches (Roland Stigge). Fixes: #735316.
 .
   Merge from gcc-4.8 (4.8.2-13) unstable; urgency=medium
 .
   * Update to SVN 20140112 (r206564) from the gcc-4_8-branch.
     - Fix miscompilation due to wrong RTL-optimization (see
       PR rtl-optimization/59137). Fixes: #716635.
 .
   [ Aurelien Jarno ]
   * Reenable the testsuite on mips.
 .
   [ Matthias Klose ]
   * Add libgcc, libstdc++, libgfortran symbols files for ppc64el.
   * Update libitm symbols for non-default multilibs.
   * Add libgcc, libstdc++, libgfortran symbols files for arm64.
   * Fix PR target/59588 (AArch64), backport proposed patch. LP: #1263576.
   * Fix PR target/59744 (AArch64), taken from the trunk. LP: #1267761.
 .
   Merge from gcc-4.8 (4.8.2-12) unstable; urgency=medium
 .
   * Update to SVN 20140106 (r206351) from the gcc-4_8-branch.
   * Only apply m68k specific backports when targeting m68k.
Checksums-Sha1: 
 2fcd9a0263438e427e8168a83cd0c8ba9ee8d8e2 3244 gnat-4.8_4.8.2-8.dsc
 e84334029f9b3a6e727cd0d9fbebe32b4577e3e3 1367229 gnat-4.8_4.8.2-8.tar.gz
 45eb57eb7a2c293bb991fd30579830fa340913ec 180320 gnat-4.8-base_4.8.2-8_amd64.deb
 14acbe3d4476c88db66f7b6985f78ed535269cfd 880338 libgnat-4.8_4.8.2-8_amd64.deb
 2d2bac459db6ad296d629c9dc9273ed07b06501c 1680360 libgnat-4.8-dbg_4.8.2-8_amd64.deb
 bf4c59234a1ded3b295e955e3e4c0f64e8697c4a 1271740 libgnatvsn4.8-dev_4.8.2-8_amd64.deb
 49f566c4343c607cb19d1114bb4daf37a89b4025 241556 libgnatvsn4.8_4.8.2-8_amd64.deb
 8660f6ef1bbe15c2106b54c80ae90c3c8a33d5d1 369872 libgnatvsn4.8-dbg_4.8.2-8_amd64.deb
 d41247004f3b5b735b19cd62c86a820faab1c6bb 2883594 libgnatprj4.8-dev_4.8.2-8_amd64.deb
 c393fb9090ae1094edc741929dfeb008a3077517 580626 libgnatprj4.8_4.8.2-8_amd64.deb
 134efab72de6f8367cfb467ef8aa1403413e8a15 1284044 libgnatprj4.8-dbg_4.8.2-8_amd64.deb
 3c117844baf25edbb5ac6176259a2d24ca119407 9273330 gnat-4.8_4.8.2-8_amd64.deb
 57566755291fe3c7b84e69a30570fd9971ea594f 2933358 gnat-4.8-sjlj_4.8.2-8_amd64.deb
Checksums-Sha256: 
 8813d6b66f166a7f39291ac48b91daeee0eb3def969ab0c6e7af039b311db3bd 3244 gnat-4.8_4.8.2-8.dsc
 9b31292702a8fe1af17816b5516a8aef56a686e9f2c3dfdf196a9c86bfa97c01 1367229 gnat-4.8_4.8.2-8.tar.gz
 40adf1d79353d3e5d322f1fc8c7d32ec6cffb809d812d057eb9973a96b3035a0 180320 gnat-4.8-base_4.8.2-8_amd64.deb
 1eec2beb206d342e49051679e62dd2479a35ed156cff31336a1818ea4af29f9c 880338 libgnat-4.8_4.8.2-8_amd64.deb
 fbebb2a2d9e97cd14ed48cecabf8b754f553058e3b67a2d36961c5f183b1fe0e 1680360 libgnat-4.8-dbg_4.8.2-8_amd64.deb
 a9bfee57754d057efe6e2f7af547fe99d7cf28135734fcbf2dac97be8e8d3a83 1271740 libgnatvsn4.8-dev_4.8.2-8_amd64.deb
 93e736bbb624456bc876e5cd9639f976c0c23bcd3e8d6fdd9299772ad8f61727 241556 libgnatvsn4.8_4.8.2-8_amd64.deb
 74191b7746bba92ae8767e6abc3ece444418b0a7911588a0c20fc0ec54fc6205 369872 libgnatvsn4.8-dbg_4.8.2-8_amd64.deb
 4ac84daff4959bf99c772da483ad077e7feb35bf950d0e97c980a308355fe34d 2883594 libgnatprj4.8-dev_4.8.2-8_amd64.deb
 c75c60936c917af79549c3eef4e01294bdfd09855f668bdcbaff4bc9f181783c 580626 libgnatprj4.8_4.8.2-8_amd64.deb
 a640c435b61086e6b1896f6869e5d336dac3779f8c185af523e54f765ed7204f 1284044 libgnatprj4.8-dbg_4.8.2-8_amd64.deb
 d58871a369a9af82b920f3a0f9e4ff0102cade2edb84ada87328798b9da3584d 9273330 gnat-4.8_4.8.2-8_amd64.deb
 a1317a0d3aa899dce16d251910157cc27309d80629ab5f1f27f604016d812f6d 2933358 gnat-4.8-sjlj_4.8.2-8_amd64.deb
Files: 
 0a3eff5c3d8e6dc9f2661473755a9319 3244 devel optional gnat-4.8_4.8.2-8.dsc
 b0a4387406f245eae83d8e381559978f 1367229 devel optional gnat-4.8_4.8.2-8.tar.gz
 7ac8a8a6ea7da5e8a8643c423c624a8e 180320 libs optional gnat-4.8-base_4.8.2-8_amd64.deb
 7b9162e5a99e9df5eead81d0e38f02bf 880338 libs optional libgnat-4.8_4.8.2-8_amd64.deb
 85f5acf34e2e90f946a32bdf01b45171 1680360 debug extra libgnat-4.8-dbg_4.8.2-8_amd64.deb
 022d7e7ea9c9c5d8df5f9bd0bf5ebfc5 1271740 libdevel extra libgnatvsn4.8-dev_4.8.2-8_amd64.deb
 c05cf5ea2a1d4d6304b024f21e3cc772 241556 libs optional libgnatvsn4.8_4.8.2-8_amd64.deb
 d52ed16f94997ebbd1cd347bb3c01166 369872 debug extra libgnatvsn4.8-dbg_4.8.2-8_amd64.deb
 44e3c797f788b1d9894ce18a72a9ab5d 2883594 libdevel extra libgnatprj4.8-dev_4.8.2-8_amd64.deb
 b9890f89e1194014ea88d63b797c03da 580626 libs optional libgnatprj4.8_4.8.2-8_amd64.deb
 60ab17f8a410d54d1b1d13e9cf231664 1284044 debug extra libgnatprj4.8-dbg_4.8.2-8_amd64.deb
 ae9b7fb71395f61ff2c0c19a9096b9cd 9273330 devel optional gnat-4.8_4.8.2-8_amd64.deb
 8ca0604090043fbe9c3acc50b01177f2 2933358 devel extra gnat-4.8-sjlj_4.8.2-8_amd64.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iD8DBQFS+1OAx9kwJZ3/qtQRAhQhAJwOIdjWkPxye+FygVRMvePuEepaRQCcDQsF
W4IqzhVdZcumprjvpEKAxH0=
=7adU
-----END PGP SIGNATURE-----

--- End Message ---

Reply to: