summaryrefslogtreecommitdiffstats
path: root/recipes/gcc/gcc-svn/debian/kbsd-gnu-ada.dpatch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/gcc/gcc-svn/debian/kbsd-gnu-ada.dpatch')
-rw-r--r--recipes/gcc/gcc-svn/debian/kbsd-gnu-ada.dpatch231
1 files changed, 231 insertions, 0 deletions
diff --git a/recipes/gcc/gcc-svn/debian/kbsd-gnu-ada.dpatch b/recipes/gcc/gcc-svn/debian/kbsd-gnu-ada.dpatch
new file mode 100644
index 0000000000..e159ec3fd0
--- /dev/null
+++ b/recipes/gcc/gcc-svn/debian/kbsd-gnu-ada.dpatch
@@ -0,0 +1,231 @@
+#! /bin/sh -e
+
+# Description: Ada support for GNU/k*BSD
+# Author: Aurelien Jarno <aurel32@debian.Org>
+# Status: submitted.
+
+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.
+
+--- src/gcc/ada/Makefile.in.orig 2008-02-09 13:03:14 +0100
++++ src/gcc/ada/Makefile.in 2008-02-09 13:03:33 +0100
+@@ -866,6 +866,8 @@
+ s-osinte.ads<s-osinte-kfreebsd-gnu.ads \
+ s-osprim.adb<s-osprim-posix.adb \
+ s-taprop.adb<s-taprop-linux.adb \
++ s-tasinf.ads<s-tasinf-linux.ads \
++ s-tasinf.adb<s-tasinf-linux.adb \
+ s-taspri.ads<s-taspri-posix.ads \
+ s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
+ system.ads<system-freebsd-x86.ads
+--- src/gcc/ada/s-osinte-kfreebsd-gnu.ads.orig 2008-02-09 12:18:43 +0100
++++ src/gcc/ada/s-osinte-kfreebsd-gnu.ads 2008-02-09 13:00:36 +0100
+@@ -223,7 +223,8 @@
+ function sysconf (name : int) return long;
+ pragma Import (C, sysconf);
+
+- SC_CLK_TCK : constant := 2;
++ SC_CLK_TCK : constant := 2;
++ SC_NPROCESSORS_ONLN : constant := 84;
+
+ -------------------------
+ -- Priority Scheduling --
+@@ -235,7 +236,7 @@
+
+ function To_Target_Priority
+ (Prio : System.Any_Priority) return Interfaces.C.int;
+- -- Maps System.Any_Priority to a POSIX priority.
++ -- Maps System.Any_Priority to a POSIX priority
+
+ -------------
+ -- Process --
+@@ -255,6 +256,7 @@
+
+ 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);
+@@ -438,12 +440,31 @@
+ 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");
+
++ 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;
+--- src/gcc/ada/adaint.c 2008-02-10 03:14:20 +0100
++++ src/gcc/ada/adaint.c 2008-02-09 18:22:02 +0100
+@@ -888,7 +888,7 @@
+ strcpy (path, "GNAT-XXXXXX");
+
+ #if (defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) \
+- || defined (linux)) && !defined (__vxworks)
++ || defined (linux) || defined(__GLIBC__)) && !defined (__vxworks)
+ return mkstemp (path);
+ #elif defined (__Lynx__)
+ mktemp (path);
+@@ -981,7 +981,7 @@
+ }
+
+ #elif defined (linux) || defined (__FreeBSD__) || defined (__NetBSD__) \
+- || defined (__OpenBSD__)
++ || defined (__OpenBSD__) || defined(__GLIBC__)
+ #define MAX_SAFE_PATH 1000
+ char *tmpdir = getenv ("TMPDIR");
+
+@@ -3001,7 +3001,7 @@
+ }
+ #endif
+
+-#if defined (linux)
++#if defined (linux) || defined(__GLIBC__)
+ /* pthread affinity support */
+
+ #ifdef CPU_SETSIZE
+--- src/gcc/ada/socket.c 2007-10-19 15:14:33 +0200
++++ src/gcc/ada/socket.c 2008-02-09 18:23:40 +0100
+@@ -206,7 +206,7 @@
+ struct hostent *rh;
+ int ri;
+
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ (void) gethostbyname_r (name, ret, buf, buflen, &rh, h_errnop);
+ #else
+ rh = gethostbyname_r (name, ret, buf, buflen, h_errnop);
+@@ -223,7 +223,7 @@
+ struct hostent *rh;
+ int ri;
+
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ (void) gethostbyaddr_r (addr, len, type, ret, buf, buflen, &rh, h_errnop);
+ #else
+ rh = gethostbyaddr_r (addr, len, type, ret, buf, buflen, h_errnop);
+@@ -239,7 +239,7 @@
+ struct servent *rh;
+ int ri;
+
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ (void) getservbyname_r (name, proto, ret, buf, buflen, &rh);
+ #else
+ rh = getservbyname_r (name, proto, ret, buf, buflen);
+@@ -255,7 +255,7 @@
+ struct servent *rh;
+ int ri;
+
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ (void) getservbyport_r (port, proto, ret, buf, buflen, &rh);
+ #else
+ rh = getservbyport_r (port, proto, ret, buf, buflen);
+--- src/gcc/ada/gsocket.h.orig 2008-02-10 11:50:18 +0100
++++ src/gcc/ada/gsocket.h 2008-02-10 11:50:38 +0100
+@@ -167,7 +167,7 @@
+
+ #if defined (_AIX) || defined (__FreeBSD__) || defined (__hpux__) || defined (__osf__) || defined (_WIN32) || defined (__APPLE__)
+ # define HAVE_THREAD_SAFE_GETxxxBYyyy 1
+-#elif defined (sgi) || defined (linux) || (defined (sun) && defined (__SVR4) && !defined (__vxworks))
++#elif defined (sgi) || defined (linux) || defined (__GLIBC__) || (defined (sun) && defined (__SVR4) && !defined (__vxworks))
+ # define HAVE_GETxxxBYyyy_R 1
+ #endif
+
+--- src/gcc/ada/sysdep.c.orig 2008-02-10 11:55:28 +0100
++++ src/gcc/ada/sysdep.c 2008-02-10 11:58:15 +0100
+@@ -342,7 +342,8 @@
+ || (defined (__osf__) && ! defined (__alpha_vxworks)) || defined (WINNT) \
+ || defined (__MACHTEN__) || defined (__hpux__) || defined (_AIX) \
+ || (defined (__svr4__) && defined (i386)) || defined (__Lynx__) \
+- || defined (__CYGWIN__) || defined (__FreeBSD__) || defined (__OpenBSD__)
++ || defined (__CYGWIN__) || defined (__FreeBSD__) || defined (__OpenBSD__) \
++ || defined (__GLIBC__)
+
+ #ifdef __MINGW32__
+ #if OLD_MINGW
+@@ -399,7 +400,8 @@
+ || (defined (__osf__) && ! defined (__alpha_vxworks)) \
+ || defined (__CYGWIN32__) || defined (__MACHTEN__) || defined (__hpux__) \
+ || defined (_AIX) || (defined (__svr4__) && defined (i386)) \
+- || defined (__Lynx__) || defined (__FreeBSD__) || defined (__OpenBSD__)
++ || defined (__Lynx__) || defined (__FreeBSD__) || defined (__OpenBSD__) \
++ || defined (__GLIBC__)
+ char c;
+ int nread;
+ int good_one = 0;
+@@ -418,7 +420,8 @@
+ #if defined(linux) || defined (sun) || defined (sgi) || defined (__EMX__) \
+ || defined (__osf__) || defined (__MACHTEN__) || defined (__hpux__) \
+ || defined (_AIX) || (defined (__svr4__) && defined (i386)) \
+- || defined (__Lynx__) || defined (__FreeBSD__) || defined (__OpenBSD__)
++ || defined (__Lynx__) || defined (__FreeBSD__) || defined (__OpenBSD__) \
++ || defined (__GLIBC__)
+ eof_ch = termios_rec.c_cc[VEOF];
+
+ /* If waiting (i.e. Get_Immediate (Char)), set MIN = 1 and wait for
+@@ -845,7 +848,7 @@
+ /* Darwin, Free BSD, Linux, Tru64, where there exists a component tm_gmtoff
+ in struct tm */
+ #elif defined (__APPLE__) || defined (__FreeBSD__) || defined (linux) ||\
+- (defined (__alpha__) && defined (__osf__))
++ (defined (__alpha__) && defined (__osf__)) || defined (__GLIBC__)
+ *off = tp->tm_gmtoff;
+
+ /* All other platforms: Treat all time values in GMT */
+--- src/gcc/ada/link.c.orig 2008-02-10 11:59:07 +0100
++++ src/gcc/ada/link.c 2008-02-10 11:59:14 +0100
+@@ -153,7 +153,7 @@
+ unsigned char __gnat_using_gnu_linker = 1;
+ const char *__gnat_object_library_extension = ".a";
+
+-#elif defined (linux)
++#elif defined (linux) || defined(__GLIBC__)
+ const char *__gnat_object_file_option = "";
+ const char *__gnat_run_path_option = "";
+ char __gnat_shared_libgnat_default = SHARED;