Provide Task_Info.Number_Of_Processors on Solaris
gcc/ada: * libgnarl/s-osinte__solaris.ads (sysconf): Declare. (SC_NPROCESSORS_ONLN): Define. * libgnarl/s-tasinf__solaris.ads (Number_Of_Processors): Declare. * libgnarl/s-tasinf__solaris.adb (N_CPU): New variable. (Number_Of_Processors): New function. gcc/testsuite: * gnat.dg/system_info1.adb: Sort dg-do target list. Add *-*-solaris2.*. From-SVN: r276049
This commit is contained in:
parent
193410e311
commit
e254277236
@ -1,3 +1,11 @@
|
||||
2019-09-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
* libgnarl/s-osinte__solaris.ads (sysconf): Declare.
|
||||
(SC_NPROCESSORS_ONLN): Define.
|
||||
* libgnarl/s-tasinf__solaris.ads (Number_Of_Processors): Declare.
|
||||
* libgnarl/s-tasinf__solaris.adb (N_CPU): New variable.
|
||||
(Number_Of_Processors): New function.
|
||||
|
||||
2019-09-23 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* gcc-interface/trans.c (Regular_Loop_to_gnu): Do not rotate the loop
|
||||
|
@ -259,6 +259,11 @@ package System.OS_Interface is
|
||||
function To_Timespec (D : Duration) return timespec;
|
||||
pragma Inline (To_Timespec);
|
||||
|
||||
function sysconf (name : int) return long;
|
||||
pragma Import (C, sysconf);
|
||||
|
||||
SC_NPROCESSORS_ONLN : constant := 15;
|
||||
|
||||
-------------
|
||||
-- Process --
|
||||
-------------
|
||||
|
@ -84,4 +84,23 @@ package body System.Task_Info is
|
||||
return (False, False);
|
||||
end Unbound_Thread_Attributes;
|
||||
|
||||
N_CPU : Natural := 0;
|
||||
pragma Atomic (N_CPU);
|
||||
-- Cache CPU number. Use pragma Atomic to avoid a race condition when
|
||||
-- setting N_CPU in Number_Of_Processors below.
|
||||
|
||||
--------------------------
|
||||
-- Number_Of_Processors --
|
||||
--------------------------
|
||||
|
||||
function Number_Of_Processors return Positive is
|
||||
begin
|
||||
if N_CPU = 0 then
|
||||
N_CPU := Natural
|
||||
(OS_Interface.sysconf (OS_Interface.SC_NPROCESSORS_ONLN));
|
||||
end if;
|
||||
|
||||
return N_CPU;
|
||||
end Number_Of_Processors;
|
||||
|
||||
end System.Task_Info;
|
||||
|
@ -139,4 +139,7 @@ package System.Task_Info is
|
||||
|
||||
Unspecified_Task_Info : constant Task_Info_Type := null;
|
||||
|
||||
function Number_Of_Processors return Positive;
|
||||
-- Returns the number of processors on the running host
|
||||
|
||||
end System.Task_Info;
|
||||
|
@ -1,3 +1,8 @@
|
||||
2019-09-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
* gnat.dg/system_info1.adb: Sort dg-do target list.
|
||||
Add *-*-solaris2.*.
|
||||
|
||||
2019-09-23 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* gnat.dg/specs/compile_time1.ads: New test.
|
||||
|
@ -3,7 +3,7 @@
|
||||
-- both 32bit and 64bit Windows. Additional configurations where the
|
||||
-- feature was verified to work can opt-in.
|
||||
|
||||
-- { dg-do run { target *-*-mingw* *-*-linux* } }
|
||||
-- { dg-do run { target *-*-linux* *-*-mingw* *-*-solaris2.* } }
|
||||
|
||||
with System.Multiprocessors;
|
||||
with System.Task_Info;
|
||||
|
Loading…
Reference in New Issue
Block a user