summaryrefslogtreecommitdiffstats
path: root/debian/patches/ada-kfreebsd.diff
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:22:56 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:22:56 +0000
commit3f472a4e5ca21e3ddb13737473e636b2b11a408a (patch)
tree7db1ab317884b9f6e04b6e13737c1679879cb97a /debian/patches/ada-kfreebsd.diff
parentAdding upstream version 13.2.0. (diff)
downloadgcc-13-3f472a4e5ca21e3ddb13737473e636b2b11a408a.tar.xz
gcc-13-3f472a4e5ca21e3ddb13737473e636b2b11a408a.zip
Adding debian version 13.2.0-10.debian/13.2.0-10debian
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/patches/ada-kfreebsd.diff')
-rw-r--r--debian/patches/ada-kfreebsd.diff70
1 files changed, 70 insertions, 0 deletions
diff --git a/debian/patches/ada-kfreebsd.diff b/debian/patches/ada-kfreebsd.diff
new file mode 100644
index 0000000..9a926da
--- /dev/null
+++ b/debian/patches/ada-kfreebsd.diff
@@ -0,0 +1,70 @@
+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>
+
+--- a/src/gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads
++++ b/src/gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads
+@@ -46,6 +46,7 @@ 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;
+@@ -438,31 +439,25 @@ package System.OS_Interface is
+ PTHREAD_PRIO_PROTECT : constant := 2;
+ PTHREAD_PRIO_INHERIT : constant := 1;
+
++ -- GNU/kFreeBSD does not support Thread Priority Protection or Thread
++ -- Priority Inheritance and lacks some pthread_mutexattr_* functions.
++ -- Replace them with dummy versions.
++
+ function pthread_mutexattr_setprotocol
+- (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;
+- 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;
+- 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;
+- 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
+--- a/src/gcc/ada/s-oscons-tmplt.c
++++ b/src/gcc/ada/s-oscons-tmplt.c
+@@ -1970,6 +1970,7 @@ CND(CLOCK_THREAD_CPUTIME_ID, "Thread CPU
+
+ #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