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

Bug#341223: marked as done (gcc-4.0: Please add Ada support for GNU/kFreeBSD)



Your message dated Fri, 02 Dec 2005 11:32:28 -0800
with message-id <E1EiGdw-0001fc-51@spohr.debian.org>
and subject line Bug#341223: fixed in gcj-4.0 4.0.2-5j1
has caused the attached Bug report 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 I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--------------------------------------
Received: (at submit) by bugs.debian.org; 29 Nov 2005 11:27:19 +0000
>From aurel32@debian.org Tue Nov 29 03:27:19 2005
Return-path: <aurel32@debian.org>
Received: from farad.aurel32.net ([82.232.2.251])
	by spohr.debian.org with esmtp (Exim 4.50)
	id 1Eh3dm-00086p-Q2
	for submit@bugs.debian.org; Tue, 29 Nov 2005 03:27:19 -0800
Received: from hertz.aurel32.net ([2001:618:400:fc13:2e0:18ff:fea3:b80f])
	by farad.aurel32.net with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA:32)
	(Exim 4.50)
	id 1Eh3dl-0006W0-OB; Tue, 29 Nov 2005 12:27:17 +0100
Received: from aurel32 by hertz.aurel32.net with local (Exim 4.60)
	(envelope-from <aurel32@debian.org>)
	id 1Eh3dl-000169-MC; Tue, 29 Nov 2005 12:27:17 +0100
Content-Type: multipart/mixed; boundary="===============0425485224=="
MIME-Version: 1.0
From: Aurelien Jarno <aurel32@debian.org>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: gcc-4.0: Please add Ada support for GNU/kFreeBSD
X-Mailer: reportbug 3.17
Date: Tue, 29 Nov 2005 12:27:17 +0100
Message-Id: <E1Eh3dl-000169-MC@hertz.aurel32.net>
Delivered-To: submit@bugs.debian.org
X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2005_01_02 
	(1.212-2003-09-23-exp) on spohr.debian.org
X-Spam-Level: 
X-Spam-Status: No, hits=-3.4 required=4.0 tests=BAYES_44,FROM_ENDS_IN_NUMS,
	HAS_PACKAGE,RCVD_IN_SORBS autolearn=no 
	version=2.60-bugs.debian.org_2005_01_02

This is a multi-part MIME message sent by reportbug.

--===============0425485224==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Package: gcc-4.0
Version: 4.0.2-4
Severity: wishlist
Tags: patch

Hi,

Please find attached a patch to add Ada support for gcc-4.0 on
GNU/kFreeBSD. I haven't forwarded the patch upstream yet, I currently
only have a patch for gcc-3.4 and gcc-4.0, I am working on a patch for
gcc-4.1 as well as for CVS HEAD, then I will send it upstream.

Please also note that the patch also relax the build-dependency on
libc0.1, as we still have our old glibc (with some patches backported
from version 2.3.5).

Thanks in advance,
Aurelien

-- System Information:
Debian Release: testing/unstable
Architecture: kfreebsd-i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: GNU/kFreeBSD 5.4-1-686
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)

Versions of packages gcc-4.0 depends on:
ii  binutils      2.16.1cvs20051117-1        The GNU assembler, linker and bina
ii  cpp-4.0       4.0.2-4                    The GNU C preprocessor
ii  gcc-4.0-base  4.0.2-4                    The GNU Compiler Collection (base 
ii  libc0.1       2.3-1+kbsd.14              GNU C Library: Shared libraries an
ii  libgcc1       1:4.0.2-4                  GCC support library

Versions of packages gcc-4.0 recommends:
ii  libc0.1-dev                2.3-1+kbsd.14 GNU C Library: Development Librari
ii  libmudflap0-dev            4.0.2-4       GCC mudflap support libraries (dev

-- no debconf information

--===============0425485224==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="gcc-4.0.diff"

Author: aurel32
Status: in BTS

diff -u gcc-4.0-4.0.2/debian/rules.defs gcc-4.0-4.0.2/debian/rules.defs
--- gcc-4.0-4.0.2/debian/rules.defs
+++ gcc-4.0-4.0.2/debian/rules.defs
@@ -450,7 +450,7 @@
 
 with_libgnat := yes
 ada_no_cpus := arm armeb m68k sh3 sh3eb sh4 sh4eb
-ada_no_systems := hurd-i386 kfreebsd-gnu knetbsd-gnu netbsdelf-gnu
+ada_no_systems := hurd-i386 knetbsd-gnu netbsdelf-gnu
 ifneq (, $(filter $(DEB_TARGET_ARCH_CPU),$(ada_no_cpus)))
   with_ada := disabled for architecure $(DEB_TARGET_ARCH_CPU)
 endif
diff -u gcc-4.0-4.0.2/debian/rules.patch gcc-4.0-4.0.2/debian/rules.patch
--- gcc-4.0-4.0.2/debian/rules.patch
+++ gcc-4.0-4.0.2/debian/rules.patch
@@ -105,7 +105,7 @@
 endif
 
 ifeq ($(DEB_TARGET_ARCH_OS),kfreebsd)
-  debian_patches += # kbsd-gnu
+  debian_patches += kbsd-gnu-ada
 endif
 ifeq ($(DEB_TARGET_ARCH_OS),knetbsd)
   debian_patches += # kbsd-gnu
diff -u gcc-4.0-4.0.2/debian/rules.conf gcc-4.0-4.0.2/debian/rules.conf
--- gcc-4.0-4.0.2/debian/rules.conf
+++ gcc-4.0-4.0.2/debian/rules.conf
@@ -42,7 +42,7 @@
     LIBC_DEV_DEP = libc0.3-dev$(LS)
   endif
   ifeq ($(DEB_TARGET_ARCH_OS),kfreebsd)
-    LIBC_DEV_DEP = libc0.1-dev$(LS)
+    LIBC_DEV_DEP = libc0.1-dev
   endif
   ifeq ($(DEB_TARGET_ARCH_OS),knetbsd)
     LIBC_DEV_DEP = libc0.1-dev$(LS)
only in patch2:
unchanged:
--- gcc-4.0-4.0.2.orig/debian/patches/kbsd-gnu-ada.dpatch
+++ gcc-4.0-4.0.2/debian/patches/kbsd-gnu-ada.dpatch
@@ -0,0 +1,588 @@
+#! /bin/sh -e
+
+# Description: Ada support for GNU/k*BSD 
+# Author: Aurelien Jarno <aurel32@debian.Org>
+# Status: not yet submitted upstream.
+
+dir=
+if [ $# -eq 3 -a "$2" = '-d' ]; then
+    pdir="-d $3"
+    dir="$3/"
+elif [ $# -ne 1 ]; then
+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+    exit 1
+fi
+case "$1" in
+    -patch)
+        patch $pdir -f --no-backup-if-mismatch -p1 < $0
+        ;;
+    -unpatch)
+        patch $pdir -f --no-backup-if-mismatch -R -p1 < $0
+        ;;
+    *)
+        echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+        exit 1
+esac
+exit 0
+
+# append the patch here and adjust the -p? flag in the patch calls.
+
+--- gcc-4.0.2.old/gcc/ada/Makefile.in	2005-04-07 22:03:50.000000000 +0200
++++ gcc-4.0.2.old/gcc/ada/Makefile.in	2005-11-28 21:14:23.000000000 +0100
+@@ -856,6 +856,32 @@
+   endif
+ endif
+ 
++ifeq ($(strip $(filter-out %86 kfreebsd%,$(arch) $(osys))),)
++  LIBGNAT_TARGET_PAIRS = \
++  a-intnam.ads<a-intnam-freebsd.ads \
++  a-numaux.adb<a-numaux-x86.adb \
++  a-numaux.ads<a-numaux-x86.ads \
++  s-inmaop.adb<s-inmaop-posix.adb \
++  s-intman.adb<s-intman-posix.adb \
++  g-soccon.ads<g-soccon-freebsd.ads \
++  s-mastop.adb<s-mastop-x86.adb \
++  s-osinte.adb<s-osinte-posix.adb \
++  s-osinte.ads<s-osinte-kfreebsd-gnu.ads \
++  s-osprim.adb<s-osprim-posix.adb \
++  s-taprop.adb<s-taprop-linux.adb \
++  s-taspri.ads<s-taspri-linux.ads \
++  s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
++  system.ads<system-freebsd-x86.ads
++
++  TOOLS_TARGET_PAIRS = mlib-tgt.adb<5lml-tgt.adb
++  SYMLIB = -laddr2line -lbfd -liberty $(LIBINTL)
++  THREADSLIB = -lpthread
++  GNATLIB_SHARED = gnatlib-shared-dual
++  GMEM_LIB = gmemlib
++  PREFIX_OBJS = $(PREFIX_REAL_OBJS)
++  LIBRARY_VERSION := $(LIB_VERSION)
++endif
++
+ ifeq ($(strip $(filter-out %86 freebsd%,$(arch) $(osys))),)
+   LIBGNAT_TARGET_PAIRS = \
+   a-intnam.ads<a-intnam-freebsd.ads \
+--- gcc-4.0.2.old/gcc/ada/s-osinte-kfreebsd-gnu.ads	2005-06-25 01:06:36.000000000 +0200
++++ gcc-4.0.2/gcc/ada/s-osinte-kfreebsd-gnu.ads	2005-06-25 01:06:03.000000000 +0200
+@@ -0,0 +1,521 @@
++------------------------------------------------------------------------------
++--                                                                          --
++--                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-2004, 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,  59 Temple Place - Suite 330,  Boston, --
++-- MA 02111-1307, 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/kFreeBSD (GNU/LinuxThreads) 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");
++
++   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 --
++   -----------
++
++   function errno return int;
++   pragma Import (C, errno, "__get_errno");
++
++   EAGAIN   : constant := 35;
++   EINTR    : constant := 4;
++   EINVAL   : constant := 22;
++   ENOMEM   : constant := 12;
++   EPERM    : constant := 1;
++   ETIMEDOUT    : constant := 60;
++
++   -------------
++   -- Signals --
++   -------------
++
++   Max_Interrupt : constant := 128;
++   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)
++   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
++   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.
++
++      SIGLTHRRES, SIGLTHRCAN, SIGLTHRDBG);
++      --  These three signals are used by GNU/LinuxThreads starting from
++      --  glibc 2.1 (future 2.2).
++
++   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/kFreeBSD.
++     (0 .. 0 => SIGVTALRM);
++
++   type sigset_t is private;
++
++   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;
++
++   type struct_sigaction is record
++      sa_handler : System.Address;
++      sa_flags   : int;
++      sa_mask    : sigset_t;
++   end record;
++   pragma Convention (C, struct_sigaction);
++
++   type struct_sigaction_ptr is access all struct_sigaction;
++
++   SIG_BLOCK   : constant := 1;
++   SIG_UNBLOCK : constant := 2;
++   SIG_SETMASK : constant := 3;
++
++   SIG_DFL : constant := 0;
++   SIG_IGN : constant := 1;
++
++   SA_SIGINFO : constant := 16#0040#;
++
++   function sigaction
++     (sig  : Signal;
++      act  : struct_sigaction_ptr;
++      oact : struct_sigaction_ptr) return int;
++   pragma Import (C, sigaction, "sigaction");
++
++   ----------
++   -- Time --
++   ----------
++
++   type timespec is private;
++
++   function To_Duration (TS : timespec) return Duration;
++   pragma Inline (To_Duration);
++
++   function To_Timespec (D : Duration) return timespec;
++   pragma Inline (To_Timespec);
++
++   type struct_timeval is private;
++
++   function To_Duration (TV : struct_timeval) return Duration;
++   pragma Inline (To_Duration);
++
++   function To_Timeval (D : Duration) return struct_timeval;
++   pragma Inline (To_Timeval);
++
++   function gettimeofday
++     (tv : access struct_timeval;
++      tz : System.Address := System.Null_Address) return int;
++   pragma Import (C, gettimeofday, "gettimeofday");
++
++   function sysconf (name : int) return long;
++   pragma Import (C, sysconf);
++
++   SC_CLK_TCK : constant := 2;
++
++   -------------------------
++   -- Priority Scheduling --
++   -------------------------
++
++   SCHED_FIFO  : constant := 1;
++   SCHED_OTHER : constant := 2;
++   SCHED_RR    : constant := 3;
++
++   -------------
++   -- Process --
++   -------------
++
++   type pid_t is private;
++
++   function kill (pid : pid_t; sig : Signal) return int;
++   pragma Import (C, kill, "kill");
++
++   function getpid return pid_t;
++   pragma Import (C, getpid, "getpid");
++
++   -------------
++   -- Threads --
++   -------------
++
++   type Thread_Body is access
++     function (arg : System.Address) return System.Address;
++
++   function Thread_Body_Access is new
++     Unchecked_Conversion (System.Address, Thread_Body);
++
++   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_cond_t      is limited private;
++   type pthread_attr_t      is limited private;
++   type pthread_mutexattr_t is limited private;
++   type pthread_condattr_t  is limited private;
++   type pthread_key_t       is private;
++
++   PTHREAD_CREATE_DETACHED : constant := 1;
++
++   -----------
++   -- Stack --
++   -----------
++
++   function Get_Stack_Base (thread : pthread_t) return Address;
++   pragma Inline (Get_Stack_Base);
++   --  This is a dummy procedure to share some GNULLI files
++
++   ---------------------------------------
++   -- Nonstandard Thread Initialization --
++   ---------------------------------------
++
++   procedure pthread_init;
++   pragma Inline (pthread_init);
++   --  This is a dummy procedure to share some GNULLI files
++
++   -------------------------
++   -- POSIX.1c  Section 3 --
++   -------------------------
++
++   function sigwait (set : access sigset_t; sig : access Signal) return int;
++   pragma Import (C, sigwait, "sigwait");
++
++   function pthread_kill (thread : pthread_t; sig : Signal) return int;
++   pragma Import (C, pthread_kill, "pthread_kill");
++
++   type sigset_t_ptr is access all sigset_t;
++
++   function pthread_sigmask
++     (how  : int;
++      set  : sigset_t_ptr;
++      oset : sigset_t_ptr) return int;
++   pragma Import (C, pthread_sigmask, "pthread_sigmask");
++
++   --------------------------
++   -- POSIX.1c  Section 11 --
++   --------------------------
++
++   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_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 --
++   --------------------------
++
++   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_setschedpolicy
++     (attr   : access pthread_attr_t;
++      policy : int) return int;
++   pragma Import
++     (C, pthread_attr_setschedpolicy, "pthread_attr_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");
++
++   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);
++
++   function pthread_key_create
++     (key        : access pthread_key_t;
++      destructor : destructor_pointer) return int;
++   pragma Import (C, pthread_key_create, "pthread_key_create");
++
++private
++
++   type sigset_t is array (1 .. 4) of unsigned;
++
++   --  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);
++
++   type struct_timeval is record
++      tv_sec  : time_t;
++      tv_usec : time_t;
++   end record;
++   pragma Convention (C, struct_timeval);
++
++   type pthread_attr_t is record
++      detachstate   : int;
++      schedpolicy   : int;
++      schedparam    : struct_sched_param;
++      inheritsched  : int;
++      scope         : int;
++      guardsize     : size_t;
++      stackaddr_set : int;
++      stackaddr     : System.Address;
++      stacksize     : size_t;
++   end record;
++   pragma Convention (C, pthread_attr_t);
++
++   type pthread_condattr_t is record
++      dummy : int;
++   end record;
++   pragma Convention (C, pthread_condattr_t);
++
++   type pthread_mutexattr_t is record
++      mutexkind : int;
++   end record;
++   pragma Convention (C, pthread_mutexattr_t);
++
++   type struct_pthread_fast_lock is record
++      status   : long;
++      spinlock : int;
++   end record;
++   pragma Convention (C, struct_pthread_fast_lock);
++
++   type pthread_mutex_t is record
++      m_reserved : int;
++      m_count    : int;
++      m_owner    : System.Address;
++      m_kind     : int;
++      m_lock     : struct_pthread_fast_lock;
++   end record;
++   pragma Convention (C, pthread_mutex_t);
++
++   type pthread_cond_t is array (0 .. 47) of unsigned_char;
++   pragma Convention (C, pthread_cond_t);
++
++   type pthread_key_t is new unsigned;
++
++end System.OS_Interface;

--===============0425485224==--

---------------------------------------
Received: (at 341223-close) by bugs.debian.org; 2 Dec 2005 19:42:16 +0000
>From katie@ftp-master.debian.org Fri Dec 02 11:42:16 2005
Return-path: <katie@ftp-master.debian.org>
Received: from katie by spohr.debian.org with local (Exim 4.50)
	id 1EiGdw-0001fc-51; Fri, 02 Dec 2005 11:32:28 -0800
From: Matthias Klose <doko@debian.org>
To: 341223-close@bugs.debian.org
X-Katie: $Revision: 1.60 $
Subject: Bug#341223: fixed in gcj-4.0 4.0.2-5j1
Message-Id: <E1EiGdw-0001fc-51@spohr.debian.org>
Sender: Archive Administrator <katie@ftp-master.debian.org>
Date: Fri, 02 Dec 2005 11:32:28 -0800
X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2005_01_02 
	(1.212-2003-09-23-exp) on spohr.debian.org
X-Spam-Level: 
X-Spam-Status: No, hits=-6.0 required=4.0 tests=BAYES_00,HAS_BUG_NUMBER 
	autolearn=no version=2.60-bugs.debian.org_2005_01_02
X-CrossAssassin-Score: 4

Source: gcj-4.0
Source-Version: 4.0.2-5j1

We believe that the bug you reported is fixed in the latest version of
gcj-4.0, which is due to be installed in the Debian FTP archive:

gcj-4.0_4.0.2-5j1.diff.gz
  to pool/main/g/gcj-4.0/gcj-4.0_4.0.2-5j1.diff.gz
gcj-4.0_4.0.2-5j1.dsc
  to pool/main/g/gcj-4.0/gcj-4.0_4.0.2-5j1.dsc
gcj-4.0_4.0.2-5j1_hppa.deb
  to pool/main/g/gcj-4.0/gcj-4.0_4.0.2-5j1_hppa.deb
gcj-4.0_4.0.2-5j1_i386.deb
  to pool/main/g/gcj-4.0/gcj-4.0_4.0.2-5j1_i386.deb
gcj-4.0_4.0.2-5j1_powerpc.deb
  to pool/main/g/gcj-4.0/gcj-4.0_4.0.2-5j1_powerpc.deb
gcj-4.0_4.0.2.orig.tar.gz
  to pool/main/g/gcj-4.0/gcj-4.0_4.0.2.orig.tar.gz
gij-4.0_4.0.2-5j1_hppa.deb
  to pool/main/g/gcj-4.0/gij-4.0_4.0.2-5j1_hppa.deb
gij-4.0_4.0.2-5j1_i386.deb
  to pool/main/g/gcj-4.0/gij-4.0_4.0.2-5j1_i386.deb
gij-4.0_4.0.2-5j1_powerpc.deb
  to pool/main/g/gcj-4.0/gij-4.0_4.0.2-5j1_powerpc.deb
libgcj-common_4.0.2-5j1_all.deb
  to pool/main/g/gcj-4.0/libgcj-common_4.0.2-5j1_all.deb
libgcj6-awt_4.0.2-5j1_hppa.deb
  to pool/main/g/gcj-4.0/libgcj6-awt_4.0.2-5j1_hppa.deb
libgcj6-awt_4.0.2-5j1_i386.deb
  to pool/main/g/gcj-4.0/libgcj6-awt_4.0.2-5j1_i386.deb
libgcj6-awt_4.0.2-5j1_powerpc.deb
  to pool/main/g/gcj-4.0/libgcj6-awt_4.0.2-5j1_powerpc.deb
libgcj6-common_4.0.2-5j1_all.deb
  to pool/main/g/gcj-4.0/libgcj6-common_4.0.2-5j1_all.deb
libgcj6-dbg_4.0.2-5j1_hppa.deb
  to pool/main/g/gcj-4.0/libgcj6-dbg_4.0.2-5j1_hppa.deb
libgcj6-dbg_4.0.2-5j1_i386.deb
  to pool/main/g/gcj-4.0/libgcj6-dbg_4.0.2-5j1_i386.deb
libgcj6-dbg_4.0.2-5j1_powerpc.deb
  to pool/main/g/gcj-4.0/libgcj6-dbg_4.0.2-5j1_powerpc.deb
libgcj6-dev_4.0.2-5j1_hppa.deb
  to pool/main/g/gcj-4.0/libgcj6-dev_4.0.2-5j1_hppa.deb
libgcj6-dev_4.0.2-5j1_i386.deb
  to pool/main/g/gcj-4.0/libgcj6-dev_4.0.2-5j1_i386.deb
libgcj6-dev_4.0.2-5j1_powerpc.deb
  to pool/main/g/gcj-4.0/libgcj6-dev_4.0.2-5j1_powerpc.deb
libgcj6-src_4.0.2-5j1_all.deb
  to pool/main/g/gcj-4.0/libgcj6-src_4.0.2-5j1_all.deb
libgcj6_4.0.2-5j1_hppa.deb
  to pool/main/g/gcj-4.0/libgcj6_4.0.2-5j1_hppa.deb
libgcj6_4.0.2-5j1_i386.deb
  to pool/main/g/gcj-4.0/libgcj6_4.0.2-5j1_i386.deb
libgcj6_4.0.2-5j1_powerpc.deb
  to pool/main/g/gcj-4.0/libgcj6_4.0.2-5j1_powerpc.deb



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 341223@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Matthias Klose <doko@debian.org> (supplier of updated gcj-4.0 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@debian.org)


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

Format: 1.7
Date: Thu,  1 Dec 2005 22:38:34 +0100
Source: gcj-4.0
Binary: lib64gcj6 gij-4.0 lib32gcj6-dev libgcj6 libgcj6-src libgcj6-awt libgcj6-dev lib32gcj6-dbg libgcj-common libgcj6-common gcj-4.0 libgcj6-dbg lib32gcj6
Architecture: all hppa i386 powerpc source 
Version: 4.0.2-5j1
Distribution: unstable
Urgency: low
Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
Changed-By: Matthias Klose <doko@debian.org>
Description: 
 gcj-4.0    - The GNU compiler for Java(TM)
 gij-4.0    - The GNU Java bytecode interpreter
 libgcj6    - Java runtime library for use with gcj
 libgcj6-awt - AWT peer runtime libraries for use with gcj
 libgcj6-dbg - Debugging symbols for libraries provided in libgcj6-dev
 libgcj6-dev - Java development headers and static library for use with gcj
Closes: 323133 333100 341107 341223
Changes: 
 gcj-4.0 (4.0.2-5j1) unstable; urgency=low
 .
   * Upload as gcj-4.0.
 .
 gcc-4.0 (4.0.2-5) unstable; urgency=low
 .
   * Update to SVN 20051201, taken from the gcc-4_0-branch.
     - Fix PR c++/21123, ICE in cp_expr_size. Closes: #323133, #333100.
   * Fix libgcj6 dependency. Ubuntu #19935.
   * When built as gcj, run only the libjava testsuite.
   * Loosen package dependencies, when java packages are built from
     separate sources.
   * Fix gcj hppa build, when java packages are built from separate sources.
   * Add a dependency on libc-dev for all compilers / -dev packages except
     gcc (which can be used for kernel builds without libc-dev).
   * libffi4-dev: Fix package description (closes: #341107).
   * On amd64, install 32bit libraries into /emul/ia32-linux/usr/lib.
     Addresses: #341147.
   * Add Ada support for GNU/kFreeBSD (Aurelien Jarno). Closes: #341223.
   * Fix installation of biarch libstdc++ headers on amd64.
   * libjava-xml-transform: Update from classpath trunk, needed for
     eclipse (Michael Koch).
 .
 gcc-4.0 (4.0.2-4ubuntu3) dapper; urgency=low
 .
   * Do not build the java packages from this source package, avoiding
     dependencies on X.
   * Fix libjava biarch builds.
 .
 gcc-4.0 (4.0.2-4ubuntu2) dapper; urgency=low
 .
   * Add libxt-dev as a build dependency. autoconf explicitely checks
     for X11/Intrinsic.h.
 .
 gcc-4.0 (4.0.2-4ubuntu1) dapper; urgency=low
 .
   * Update to SVN 20051119, taken from the gcc-4_0-branch.
   * Fix FTBFS in biarch builds on 32bit kernels.
   * Remove obsolete patches: gcc-alpha-ada_fix, alpha-ada.
   * Fix installation of biarch libstdc++ headers (Ubuntu #19655).
   * Build-depend on expect-tcl8.3 on hppa as well.
   * Fix references to manuals in gnat(1). Ubuntu #19772.
   * Remove build dependency on xlibs-dev, add libxtst-dev.
   * Merge *-config-ml patches into one config-ml patch, configure the biarch
     libs in debian/rules.defs.
   * debian/gcj-wrapper: Accept -Xss.
Files: 
 001ce64be32228cdea7ac4fe726a25c2 33076 devel optional gij-4.0_4.0.2-5j1_powerpc.deb
 0d9babbdb6d88ca292141fd99cefe4ae 6436284 libdevel optional libgcj6-src_4.0.2-5j1_all.deb
 151cf96529c9aa0f7c1f29ffd0ab4da2 30292 devel optional gij-4.0_4.0.2-5j1_i386.deb
 26a9e9441d65c46ea6ef88dc26c4d3d8 9023938 libdevel extra libgcj6-dbg_4.0.2-5j1_hppa.deb
 27ee267b01793e0dd0d2f389583601e8 310628 libs optional libgcj6-awt_4.0.2-5j1_hppa.deb
 285b925326b7c92c93cf8aa7a9ee068c 8120606 libdevel optional libgcj6-dev_4.0.2-5j1_i386.deb
 296038e4f6955e391f3d49b19cbf8552 5121976 libs optional libgcj6_4.0.2-5j1_i386.deb
 3d33f95d512117d7765983c32febd998 2756758 devel optional gcj-4.0_4.0.2-5j1_powerpc.deb
 566065bd001576a01631d52327dabcad 30858 devel optional gij-4.0_4.0.2-5j1_hppa.deb
 5689b0c38323bf103f923b4752053ff1 3119564 libs optional libgcj6-common_4.0.2-5j1_all.deb
 61042ebd25143dcd14ad4e7c53d9764d 7599326 libdevel extra libgcj6-dbg_4.0.2-5j1_i386.deb
 6288a0eae9889768312a8f50c1509381 2474230 devel optional gcj-4.0_4.0.2-5j1_i386.deb
 696b30edaf3c8967ba1443c9cf800bd8 31743090 devel standard gcj-4.0_4.0.2.orig.tar.gz
 6a34669f78942376ba8d0112a9a0b2a5 2383650 devel optional gcj-4.0_4.0.2-5j1_hppa.deb
 777e53d24d91e5e389ce2107ca3ae8aa 8644746 libdevel extra libgcj6-dbg_4.0.2-5j1_powerpc.deb
 80688fb5383b0ba9df22ce909bc8df07 253736 libs optional libgcj6-awt_4.0.2-5j1_powerpc.deb
 9189c5e3d307d76be872b31d5fbe8fda 8559030 libdevel optional libgcj6-dev_4.0.2-5j1_powerpc.deb
 ae14ac2b33d8c126e418176d5d5cdb16 6844084 libs optional libgcj6_4.0.2-5j1_hppa.deb
 b88511ae7f0717dc16c43e7b58e5b4d5 1176 libs optional libgcj-common_4.0.2-5j1_all.deb
 bae6d22b86aae1a45c7370d14659f997 843287 devel standard gcj-4.0_4.0.2-5j1.diff.gz
 e70b563180dad14e7906929e9b282882 2716 devel standard gcj-4.0_4.0.2-5j1.dsc
 d843fffce406cc0fe3b8d597f9a2447c 225794 libs optional libgcj6-awt_4.0.2-5j1_i386.deb
 f89296d83ee228cf450d47c118097d00 9997760 libdevel optional libgcj6-dev_4.0.2-5j1_hppa.deb
 fd541020b665502c37bbe4278a162e0a 5377922 libs optional libgcj6_4.0.2-5j1_powerpc.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFDkJx1StlRaw+TLJwRAinGAKCHxWuYxTvn4EUzUCBrpUbzmpmulgCfTXa4
xjcVBTc4WvA3Gimq11X+JIY=
=5jUU
-----END PGP SIGNATURE-----



Reply to: