diff mbox series

[COMMITTED,4/9] ada: Small fixes for FreeBSD

Message ID 20240902082430.1863631-4-poulhies@adacore.com
State New
Headers show
Series [COMMITTED,1/9] ada: Remove repeated guards in validity checks | expand

Commit Message

Marc Poulhiès Sept. 2, 2024, 8:24 a.m. UTC
From: Patrick Bernardi <bernardi@adacore.com>

Size of pthread data types now need to be defined for FreeBSD ports.
Traceback support for AArch64 FreeBSD is now defined.

gcc/ada/

	* s-oscons-tmplt.c: Define sizes of pthread data types on FreeBSD.
	* tracebak.c: Use GCC unwinder and adjust PC appropriately on
	aarch64-freebsd.

Tested on x86_64-pc-linux-gnu, committed on master.

---
 gcc/ada/s-oscons-tmplt.c | 9 ++++++---
 gcc/ada/tracebak.c       | 5 +++--
 2 files changed, 9 insertions(+), 5 deletions(-)
diff mbox series

Patch

diff --git a/gcc/ada/s-oscons-tmplt.c b/gcc/ada/s-oscons-tmplt.c
index 946da3466f0..96eb99dfdac 100644
--- a/gcc/ada/s-oscons-tmplt.c
+++ b/gcc/ada/s-oscons-tmplt.c
@@ -1997,8 +1997,10 @@  CND(CLOCK_THREAD_CPUTIME_ID, "Thread CPU clock")
 CNS(CLOCK_RT_Ada, "")
 #endif
 
-#if defined (__APPLE__) || defined (__linux__) || defined (__ANDROID__) \
-  || defined (__QNX__) || defined (__rtems__) || defined (DUMMY)
+#if defined (__APPLE__) || defined (__ANDROID__) || defined (DUMMY) \
+  || defined (__FreeBSD__) || defined (__linux__) \
+  || defined (__QNX__) || defined (__rtems__)
+
 /*
 
    --  Sizes of pthread data types
@@ -2041,7 +2043,8 @@  CND(PTHREAD_RWLOCKATTR_SIZE, "pthread_rwlockattr_t")
 CND(PTHREAD_RWLOCK_SIZE,     "pthread_rwlock_t")
 CND(PTHREAD_ONCE_SIZE,       "pthread_once_t")
 
-#endif /* __APPLE__ || __linux__ || __ANDROID__ || __rtems__ */
+#endif /* __APPLE__ || __ANDROID__ || __FreeBSD ||__linux__
+          || __QNX__|| __rtems__ */
 
 /*
 
diff --git a/gcc/ada/tracebak.c b/gcc/ada/tracebak.c
index 13ab70718ce..da940d1c77e 100644
--- a/gcc/ada/tracebak.c
+++ b/gcc/ada/tracebak.c
@@ -564,9 +564,10 @@  is_return_from(void *symbol_addr, void *ret_addr)
 #error Unhandled QNX architecture.
 #endif
 
-/*------------------- aarch64-linux or aarch64-rtems -----------------*/
+/*------------------- aarch64 FreeBSD, Linux, RTEMS -----------------*/
 
-#elif (defined (__aarch64__) && (defined (__linux__) || defined (__rtems__)))
+#elif (defined (__aarch64__) && (defined (__FreeBSD__) || \
+       defined (__linux__) || defined (__rtems__)))
 
 #define USE_GCC_UNWINDER
 #define PC_ADJUST -4