diff options
author | Jerome Lambourg <lambourg@adacore.com> | 2018-05-22 13:26:49 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2018-05-22 13:26:49 +0000 |
commit | 9820b3897803c38f66f8515dc15cdb3e10c7ad20 (patch) | |
tree | 5200ed8a157dd822e2fb3d68b2ae0a75efe2ef6f /gcc/ada/adaint.c | |
parent | 817659c5f32786062f09befbf7132723441556b6 (diff) | |
download | gcc-9820b3897803c38f66f8515dc15cdb3e10c7ad20.zip gcc-9820b3897803c38f66f8515dc15cdb3e10c7ad20.tar.gz gcc-9820b3897803c38f66f8515dc15cdb3e10c7ad20.tar.bz2 |
[Ada] Fix retrieval of number of CPUs on QNX
Although the sysconf SC_NPROCESSORS_ONLN is also defined by the API, the
only documented way to retrieve the number of CPUs is by using the syspage.
This also better organise the QNX-specific macros in adaint.c
2018-05-22 Jerome Lambourg <lambourg@adacore.com>
gcc/ada/
* adaint.c: Reorganize QNX-specific macros, use syspage to retreive the
number of CPUs.
From-SVN: r260531
Diffstat (limited to 'gcc/ada/adaint.c')
-rw-r--r-- | gcc/ada/adaint.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c index 3b0aea9..9e0919e 100644 --- a/gcc/ada/adaint.c +++ b/gcc/ada/adaint.c @@ -39,7 +39,9 @@ #define _THREAD_SAFE /* Use 64 bit Large File API */ -#ifndef _LARGEFILE_SOURCE +#if defined (__QNX__) +#define _LARGEFILE64_SOURCE 1 +#elif !defined(_LARGEFILE_SOURCE) #define _LARGEFILE_SOURCE #endif #define _FILE_OFFSET_BITS 64 @@ -81,8 +83,8 @@ #define __BSD_VISIBLE 1 #endif -#if defined (__QNX__) -#define _LARGEFILE64_SOURCE 1 +#ifdef __QNX__ +#include <sys/syspage.h> #endif #ifdef IN_RTS @@ -2350,9 +2352,12 @@ __gnat_number_of_cpus (void) #if defined (__linux__) || defined (__sun__) || defined (_AIX) \ || defined (__APPLE__) || defined (__FreeBSD__) || defined (__OpenBSD__) \ - || defined (__DragonFly__) || defined (__NetBSD__) || defined (__QNX__) + || defined (__DragonFly__) || defined (__NetBSD__) cores = (int) sysconf (_SC_NPROCESSORS_ONLN); +#elif defined (__QNX__) + cores = (int) _syspage_ptr->num_cpu; + #elif defined (__hpux__) struct pst_dynamic psd; if (pstat_getdynamic (&psd, sizeof (psd), 1, 0) != -1) |