+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
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 --
-------------
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;
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;
+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.
-- 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;