+2015-10-26 Jerome Lambourg <lambourg@adacore.com>
+
+ * sysdep.c (__gnat_get_task_options): Refine the workaround for
+ the VX_USR_TASK_OPTION bug in VxWorks 7, as we cannot check the
+ value of VX_DEALLOC_TCB in RTP mode, the macro value not being
+ defined in the headers.
+ * g-arrspl.ads: Fix typo.
+
2015-10-26 Jerome Lambourg <lambourg@adacore.com>
* sysdep.c (__gnat_get_task_options): Workaround a VxWorks
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2013, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2015, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
-- The array which is a sequence of element
type Element_Set is private;
- -- This type represent a set of elements. This set does not defined a
+ -- This type represent a set of elements. This set does not define a
-- specific order of the elements. The conversion of a sequence to a
-- set and membership tests in the set is performed using the routines
-- To_Set and Is_In defined below.
type Slice_Set is private;
-- This type uses by-reference semantics. This is a set of slices as
-- returned by Create or Set routines below. The abstraction represents
- -- a set of items. Each item is a part of the original string named a
+ -- a set of items. Each item is a part of the original array named a
-- Slice. It is possible to access individual slices by using the Slice
-- routine below. The first slice in the Set is at the position/index
-- 1. The total number of slices in the set is returned by Slice_Count.
- VX_PRIVATE_UMASK as a user-definable option
This leads to VX_USR_TASK_OPTIONS allowing 0x8000 as VX_PRIVATE_UMASK but
taskCreate refusing this option (VX_DEALLOC_TCB is not allowed)
+
+ Note that the same error occurs in both RTP and Kernel mode, but
+ VX_DEALLOC_TCB is not defined in the RTP headers, so we need to
+ explicitely check if VX_PRIVATE_UMASK has value 0x8000
*/
-# if defined (VX_PRIVATE_UMASK) && (VX_DEALLOC_TCB == VX_PRIVATE_UMASK)
- options &= ~VX_DEALLOC_TCB;
+# if defined (VX_PRIVATE_UMASK) && (0x8000 == VX_PRIVATE_UMASK)
+ options &= ~VX_PRIVATE_UMASK;
# endif
options &= VX_USR_TASK_OPTIONS;
#endif