From 4f9335cdd957ddfc4a25c6713843fccba7ec4c29 Mon Sep 17 00:00:00 2001 From: Laurent Guerby Date: Thu, 1 May 2003 14:14:35 +0000 Subject: re PR ada/10546 (GCC 3.3, Ada tasking not working on Red Hat Linux 9) 2003-05-01 Laurent Guerby PR ada/10546 * 5iosinte.ads: Increase pthread_cond_t size to match recent LinuxThread and NPTL version, merge from ACT. From-SVN: r66327 --- gcc/ada/5iosinte.ads | 33 ++++++++++++++++----------------- gcc/ada/ChangeLog | 6 ++++++ 2 files changed, 22 insertions(+), 17 deletions(-) (limited to 'gcc/ada') diff --git a/gcc/ada/5iosinte.ads b/gcc/ada/5iosinte.ads index 81b82ec..e112c8c 100644 --- a/gcc/ada/5iosinte.ads +++ b/gcc/ada/5iosinte.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1991-2001 Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2003 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- -- @@ -27,7 +27,7 @@ -- 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. -- +-- Extensive contributions were provided by Ada Core Technologies, Inc. -- -- -- ------------------------------------------------------------------------------ @@ -234,6 +234,11 @@ package System.OS_Interface is 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 -- ------------------------- @@ -443,11 +448,8 @@ package System.OS_Interface is private - type sigset_t is array (0 .. 31) of unsigned_long; + type sigset_t is array (0 .. 127) of unsigned_char; pragma Convention (C, sigset_t); - for sigset_t'Size use 1024; - -- This is for GNU libc version 2 but should be backward compatible with - -- other libc where sigset_t is smaller. type pid_t is new int; @@ -476,7 +478,7 @@ private stackaddr : System.Address; stacksize : size_t; end record; - pragma Convention (C_Pass_By_Copy, pthread_attr_t); + pragma Convention (C, pthread_attr_t); type pthread_condattr_t is record dummy : int; @@ -490,25 +492,22 @@ private type pthread_t is new unsigned_long; - type struct_pthread_queue is record - head : System.Address; - tail : System.Address; + type struct_pthread_fast_lock is record + status : long; + spinlock : int; end record; - pragma Convention (C, struct_pthread_queue); + pragma Convention (C, struct_pthread_fast_lock); type pthread_mutex_t is record - m_spinlock : int; + m_reserved : int; m_count : int; m_owner : System.Address; m_kind : int; - m_waiting : struct_pthread_queue; + m_lock : struct_pthread_fast_lock; end record; pragma Convention (C, pthread_mutex_t); - type pthread_cond_t is record - c_spinlock : int; - c_waiting : struct_pthread_queue; - end record; + type pthread_cond_t is array (0 .. 47) of unsigned_char; pragma Convention (C, pthread_cond_t); type pthread_key_t is new unsigned; diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index e0b9aa2..e3347ed 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,9 @@ +2003-05-01 Laurent Guerby + + PR ada/10546 + * 5iosinte.ads: Increase pthread_cond_t size to match recent + LinuxThread and NPTL version, merge from ACT. + 2003-04-28 Zack Weinberg * utils.c (convert): No need to clear TREE_CST_RTL. -- cgit v1.1