diff options
Diffstat (limited to 'debian/patches/ada-kfreebsd.diff')
-rw-r--r-- | debian/patches/ada-kfreebsd.diff | 286 |
1 files changed, 30 insertions, 256 deletions
diff --git a/debian/patches/ada-kfreebsd.diff b/debian/patches/ada-kfreebsd.diff index c01d834..0a9833e 100644 --- a/debian/patches/ada-kfreebsd.diff +++ b/debian/patches/ada-kfreebsd.diff @@ -1,208 +1,11 @@ -# DP: add support for GNU/kFreeBSD. +Description: add support for GNU/kFreeBSD and GNU/Hurd. + For now, it seems that BSD requires -lrt. + On other architectures, the library is ignored thanks to --as-needed. +Author: Ludovic Brenta <lbrenta@debian.org> +Author: Nicolas Boulenguez <nicolas@debian.org> -Index: b/src/gcc/ada/terminals.c -=================================================================== ---- a/src/gcc/ada/terminals.c -+++ b/src/gcc/ada/terminals.c -@@ -1071,7 +1071,8 @@ __gnat_setup_winsize (void *desc, int ro - /* On some system termio is either absent or including it will disable termios - (HP-UX) */ - #if !defined (__hpux__) && !defined (BSD) && !defined (__APPLE__) \ -- && !defined (__rtems__) -+ && ! defined (__FreeBSD_kernel__) && ! defined (__GNU__) \ -+ && ! defined (__rtems__) - # include <termio.h> - #endif - -Index: b/src/gcc/ada/s-osinte-kfreebsd-gnu.adb -=================================================================== ---- /dev/null -+++ b/src/gcc/ada/s-osinte-kfreebsd-gnu.adb -@@ -0,0 +1,158 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- -+-- -- -+-- S Y S T E M . O S _ I N T E R F A C E -- -+-- -- -+-- B o d y -- -+-- -- -+-- Copyright (C) 1991-1994, Florida State University -- -+-- Copyright (C) 1995-2006, AdaCore -- -+-- -- -+-- 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/kFreeBSD version of this package. -+ -+pragma Polling (Off); -+-- Turn off polling, we do not want ATC polling to take place during -+-- tasking operations. It causes infinite loops and other problems. -+ -+-- This package encapsulates all direct interfaces to OS services -+-- that are needed by children of System. -+ -+package body System.OS_Interface is -+ -+ -------------------- -+ -- Get_Stack_Base -- -+ -------------------- -+ -+ function Get_Stack_Base (thread : pthread_t) return Address is -+ pragma Warnings (Off, thread); -+ -+ begin -+ return Null_Address; -+ end Get_Stack_Base; -+ -+ ------------------ -+ -- pthread_init -- -+ ------------------ -+ -+ procedure pthread_init is -+ begin -+ null; -+ end pthread_init; -+ -+ ----------------------------------- -+ -- pthread_mutexattr_setprotocol -- -+ ----------------------------------- -+ -+ function pthread_mutexattr_setprotocol -+ (attr : access pthread_mutexattr_t; -+ protocol : int) return int is -+ pragma Unreferenced (attr, protocol); -+ begin -+ return 0; -+ end pthread_mutexattr_setprotocol; -+ -+ ----------------------------------- -+ -- pthread_mutexattr_getprotocol -- -+ ----------------------------------- -+ -+ function pthread_mutexattr_getprotocol -+ (attr : access pthread_mutexattr_t; -+ protocol : access int) return int is -+ pragma Unreferenced (attr, protocol); -+ begin -+ return 0; -+ end pthread_mutexattr_getprotocol; -+ -+ -------------------------------------- -+ -- pthread_mutexattr_setprioceiling -- -+ -------------------------------------- -+ -+ function pthread_mutexattr_setprioceiling -+ (attr : access pthread_mutexattr_t; -+ prioceiling : int) return int is -+ pragma Unreferenced (attr, prioceiling); -+ begin -+ return 0; -+ end pthread_mutexattr_setprioceiling; -+ -+ -------------------------------------- -+ -- pthread_mutexattr_getprioceiling -- -+ -------------------------------------- -+ -+ function pthread_mutexattr_getprioceiling -+ (attr : access pthread_mutexattr_t; -+ prioceiling : access int) return int is -+ pragma Unreferenced (attr, prioceiling); -+ begin -+ return 0; -+ end pthread_mutexattr_getprioceiling; -+ -+ ----------------- -+ -- To_Duration -- -+ ----------------- -+ -+ function To_Duration (TS : timespec) return Duration is -+ begin -+ return Duration (TS.tv_sec) + Duration (TS.tv_nsec) / 10#1#E9; -+ end To_Duration; -+ -+ ------------------------ -+ -- To_Target_Priority -- -+ ------------------------ -+ -+ function To_Target_Priority -+ (Prio : System.Any_Priority) return Interfaces.C.int -+ is -+ begin -+ return Interfaces.C.int (Prio); -+ end To_Target_Priority; -+ -+ ----------------- -+ -- To_Timespec -- -+ ----------------- -+ -+ function To_Timespec (D : Duration) return timespec is -+ S : time_t; -+ F : Duration; -+ -+ begin -+ S := time_t (Long_Long_Integer (D)); -+ F := D - Duration (S); -+ -+ -- If F has negative value due to a round-up, adjust for positive F -+ -- value. -+ -+ if F < 0.0 then -+ S := S - 1; -+ F := F + 1.0; -+ end if; -+ -+ return timespec'(tv_sec => S, -+ tv_nsec => long (Long_Long_Integer (F * 10#1#E9))); -+ end To_Timespec; -+ -+end System.OS_Interface; -Index: b/src/gcc/ada/gcc-interface/Makefile.in -=================================================================== ---- a/src/gcc/ada/gcc-interface/Makefile.in -+++ b/src/gcc/ada/gcc-interface/Makefile.in -@@ -1397,7 +1397,7 @@ ifeq ($(strip $(filter-out %86 kfreebsd% - a-intnam.ads<a-intnam-freebsd.ads \ - s-inmaop.adb<s-inmaop-posix.adb \ - s-intman.adb<s-intman-posix.adb \ -- s-osinte.adb<s-osinte-posix.adb \ -+ s-osinte.adb<s-osinte-kfreebsd-gnu.adb \ - s-osinte.ads<s-osinte-kfreebsd-gnu.ads \ - s-osprim.adb<s-osprim-posix.adb \ - s-taprop.adb<s-taprop-posix.adb \ -@@ -1457,7 +1457,7 @@ ifeq ($(strip $(filter-out x86_64 kfreeb - 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-posix.adb \ -+ s-osinte.adb<s-osinte-kfreebsd-gnu.adb \ - s-osinte.ads<s-osinte-kfreebsd-gnu.ads \ - s-osprim.adb<s-osprim-posix.adb \ - s-taprop.adb<s-taprop-posix.adb \ -Index: b/src/gcc/ada/s-osinte-kfreebsd-gnu.ads -=================================================================== ---- a/src/gcc/ada/s-osinte-kfreebsd-gnu.ads -+++ b/src/gcc/ada/s-osinte-kfreebsd-gnu.ads +--- a/src/gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads ++++ b/src/gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads @@ -45,6 +45,7 @@ package System.OS_Interface is pragma Preelaborate; @@ -211,18 +14,7 @@ Index: b/src/gcc/ada/s-osinte-kfreebsd-gnu.ads subtype int is Interfaces.C.int; subtype char is Interfaces.C.char; -@@ -206,9 +207,7 @@ package System.OS_Interface is - function nanosleep (rqtp, rmtp : access timespec) return int; - pragma Import (C, nanosleep, "nanosleep"); - -- type clockid_t is private; -- -- CLOCK_REALTIME : constant clockid_t; -+ type clockid_t is new int; - - function clock_gettime - (clock_id : clockid_t; -@@ -441,31 +440,25 @@ package System.OS_Interface is +@@ -437,31 +438,25 @@ package System.OS_Interface is PTHREAD_PRIO_PROTECT : constant := 2; PTHREAD_PRIO_INHERIT : constant := 1; @@ -231,59 +23,44 @@ Index: b/src/gcc/ada/s-osinte-kfreebsd-gnu.ads + -- Replace them with dummy versions. + function pthread_mutexattr_setprotocol - (attr : access pthread_mutexattr_t; - protocol : int) return int; +- (attr : access pthread_mutexattr_t; +- protocol : int) return int; - pragma Import - (C, pthread_mutexattr_setprotocol, "pthread_mutexattr_setprotocol"); ++ (ignored_attr : access pthread_mutexattr_t; ++ ignored_protocol : int) return int is (0); function pthread_mutexattr_getprotocol - (attr : access pthread_mutexattr_t; - protocol : access int) return int; +- (attr : access pthread_mutexattr_t; +- protocol : access int) return int; - pragma Import - (C, pthread_mutexattr_getprotocol, "pthread_mutexattr_getprotocol"); ++ (ignored_attr : access pthread_mutexattr_t; ++ ignored_protocol : access int) return int is (0); function pthread_mutexattr_setprioceiling - (attr : access pthread_mutexattr_t; - prioceiling : int) return int; +- (attr : access pthread_mutexattr_t; +- prioceiling : int) return int; - pragma Import - (C, pthread_mutexattr_setprioceiling, - "pthread_mutexattr_setprioceiling"); ++ (ignored_attr : access pthread_mutexattr_t; ++ ignored_prioceiling : int) return int is (0); function pthread_mutexattr_getprioceiling - (attr : access pthread_mutexattr_t; - prioceiling : access int) return int; +- (attr : access pthread_mutexattr_t; +- prioceiling : access int) return int; - pragma Import - (C, pthread_mutexattr_getprioceiling, - "pthread_mutexattr_getprioceiling"); ++ (ignored_attr : access pthread_mutexattr_t; ++ ignored_prioceiling : access int) return int is (0); type struct_sched_param is record sched_priority : int; -- scheduling priority -@@ -592,8 +585,8 @@ private - -- #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 ? -+ -- 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. -@@ -610,9 +603,6 @@ private - end record; - pragma Convention (C, timespec); - -- type clockid_t is new int; -- CLOCK_REALTIME : constant clockid_t := 0; -- - type pthread_attr_t is record - detachstate : int; - schedpolicy : int; -Index: b/src/gcc/ada/gsocket.h -=================================================================== --- a/src/gcc/ada/gsocket.h +++ b/src/gcc/ada/gsocket.h -@@ -243,6 +243,7 @@ +@@ -253,6 +253,7 @@ #endif #if defined (__FreeBSD__) || defined (__vxworks) || defined(__rtems__) \ @@ -291,16 +68,13 @@ Index: b/src/gcc/ada/gsocket.h || defined (__DragonFly__) || defined (__NetBSD__) || defined (__OpenBSD__) # define Has_Sockaddr_Len 1 #else -Index: b/src/gcc/ada/s-oscons-tmplt.c -=================================================================== --- a/src/gcc/ada/s-oscons-tmplt.c +++ b/src/gcc/ada/s-oscons-tmplt.c -@@ -1436,7 +1436,7 @@ CND(CLOCK_FASTEST, "Fastest clock") - CND(CLOCK_THREAD_CPUTIME_ID, "Thread CPU clock") +@@ -1705,6 +1705,7 @@ CND(CLOCK_THREAD_CPUTIME_ID, "Thread CPU - #if defined(__FreeBSD__) || (defined(_AIX) && defined(_AIXVERSION_530)) \ -- || defined(__DragonFly__) -+ || defined(__DragonFly__) || defined(__FreeBSD_kernel__) + #if defined(__linux__) || defined(__FreeBSD__) \ + || (defined(_AIX) && defined(_AIXVERSION_530)) \ ++ || defined(__FreeBSD_kernel__) \ + || defined(__DragonFly__) || defined(__QNX__) /** On these platforms use system provided monotonic clock instead of ** the default CLOCK_REALTIME. We then need to set up cond var attributes - ** appropriately (see thread.c). |