This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Fix Ada bootstrap for Darwin9 and earlier.
- From: Iain Sandoe <iain at sandoe dot co dot uk>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Cc: Eric Botcazou <ebotcazou at adacore dot com>, derodat at adacore dot com
- Date: Sun, 23 Dec 2018 11:26:48 +0000
- Subject: [PATCH] Fix Ada bootstrap for Darwin9 and earlier.
Hi,
This is a bootstrap regression on 7,8 and trunk for Ada on [X86 and PowerPC] Darwin9 (and earlier, although I don’t test much there).
Changes were made to __gnat_lwp_self to use a facility that’s only available from Darwin10 onwards.
The patch makes this conditional on the target Darwin version.
OK for trunk?
Open branches?
Iain
gcc/ada/
* adaint.c (__gnat_lwp_self): Ensure that the system interface used
is available on the target.
gcc/ada/adaint.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
index 54a1d6e..0af8ca4 100644
--- a/gcc/ada/adaint.c
+++ b/gcc/ada/adaint.c
@@ -3174,9 +3174,13 @@ __gnat_lwp_self (void)
#endif
#if defined (__APPLE__)
-#include <mach/thread_info.h>
-#include <mach/mach_init.h>
-#include <mach/thread_act.h>
+# if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1060
+# include <mach/thread_info.h>
+# include <mach/mach_init.h>
+# include <mach/thread_act.h>
+# else
+# include <pthread.h>
+# endif
/* System-wide thread identifier. Note it could be truncated on 32 bit
hosts.
@@ -3184,6 +3188,7 @@ __gnat_lwp_self (void)
void *
__gnat_lwp_self (void)
{
+#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1060
thread_identifier_info_data_t data;
mach_msg_type_number_t count = THREAD_IDENTIFIER_INFO_COUNT;
kern_return_t kret;
@@ -3194,6 +3199,9 @@ __gnat_lwp_self (void)
return (void *)(uintptr_t)data.thread_id;
else
return 0;
+#else
+ return (void *)pthread_mach_thread_np (pthread_self ());
+#endif
}
#endif
--
2.8.1