#2514 accepted enhancement

Make POSIX API mandatory (except signals and the sporadic server)

Reported by: Sebastian Huber Owned by: Sebastian Huber
Priority: normal Milestone: 4.12.0
Component: posix Version:
Severity: normal Keywords:
Cc:

Description (last modified by Sebastian Huber)

The POSIX API is currently a build-time configuration option. In general it is beneficial to avoid build-time configuration options since this reduces the testing scope.

Applications not using the POSIX API should observe only a minimal overhead due to this change.

This enhancement depends on #2408.

Attachments (1)

0001-RTEMS-Self-contained-POSIX-objects.patch (5.7 KB) - added by Sebastian Huber on Oct 5, 2017 at 5:20:56 AM.

Download all attachments as: .zip

Change History (30)

comment:1 Changed on Jan 7, 2016 at 9:10:38 AM by Sebastian Huber

Description: modified (diff)

comment:2 Changed on Jan 8, 2016 at 8:02:42 AM by Sebastian Huber <sebastian.huber@…>

In fe100e16117c36c40e99a853d09cd8dcf98dbff0/rtems:

score: Add fatal errors for NULL entry init tasks

This simplifies the global construction.

Update #2514.

comment:3 Changed on Jan 8, 2016 at 8:37:30 AM by Sebastian Huber

In [44e987192e47910b8551a8f9409e9cd6133695d1/rtems]:

score: Avoid dead code in global construction

Update #2514.

Last edited on Jan 8, 2016 at 8:38:01 AM by Sebastian Huber (previous) (diff)

comment:4 Changed on Jan 11, 2016 at 7:47:12 AM by Sebastian Huber <sebastian.huber@…>

In ccd54344d904b657123e4e4ba795a32212382be2/rtems:

score: Introduce Thread_Entry_information

This avoids potential dead code in _Thread_Handler(). It gets rid of
the dangerous function pointer casts.

Update #2514.

comment:5 Changed on Jan 26, 2016 at 9:26:22 AM by Sebastian Huber <sebastian.huber@…>

In 885c342e043f2281a0bc707cd0bc59726d1c4b79/rtems:

mpci: Update due to API changes

Update due to API changes introduced by
ccd54344d904b657123e4e4ba795a32212382be2.

Update #2514.

comment:6 Changed on Jan 31, 2017 at 9:13:49 AM by Sebastian Huber

Milestone: 4.125.0
Version: 4.12

comment:7 Changed on May 11, 2017 at 10:05:24 AM by Sebastian Huber

The signals implementation has some (severe) defects:

#2100
#2263
#2607
#2716
#2690

Fixing them is a major work package. I suggest to enable the non-signal related stuff of the POSIX API by default.

Last edited on May 11, 2017 at 10:05:44 AM by Sebastian Huber (previous) (diff)

comment:8 Changed on Oct 5, 2017 at 12:34:58 PM by Sebastian Huber <sebastian.huber@…>

In 76d9db3/rtems-source-builder:

4.12: Update to Newlib 2.5.0.20170922

The time_t is now a 64-bit signed integer.

This update includes a patch to introduce the self-contained POSIX
synchronization objects.

Update #2514.
Update #3111.
Update #3112.
Update #3113.
Update #3114.
Update #3115.
Update #3116.

comment:9 Changed on Oct 5, 2017 at 12:35:53 PM by Sebastian Huber <sebastian.huber@…>

In e46a075/rtems:

Enforce compatible Newlib version

This Newlib check ensures that we have a 64-bit time_t and
self-contained POSIX synchronization objects.

Update #2514.
Update #3111.
Update #3112.
Update #3113.
Update #3114.
Update #3115.
Update #3116.

comment:10 Changed on Oct 5, 2017 at 12:36:18 PM by Sebastian Huber <sebastian.huber@…>

In c090db7/rtems:

posix: Implement self-contained POSIX semaphores

For semaphore object pointer and object validation see
POSIX_SEMAPHORE_VALIDATE_OBJECT().

Destruction or close of a busy semaphore returns an error status. The
object is not flushed.

POSIX semaphores are now available in all configurations and no longer
depend on --enable-posix.

Update #2514.
Update #3116.

comment:11 Changed on Oct 5, 2017 at 12:36:31 PM by Sebastian Huber <sebastian.huber@…>

In e67929c/rtems:

posix: Implement self-contained POSIX barriers

POSIX barriers are now available in all configurations and no longer
depend on --enable-posix.

Update #2514.
Update #3114.

comment:12 Changed on Oct 5, 2017 at 12:36:43 PM by Sebastian Huber <sebastian.huber@…>

In 89fc9345/rtems:

posix: Implement self-contained POSIX rwlocks

POSIX rwlocks are now available in all configurations and no longer
depend on --enable-posix.

Update #2514.
Update #3115.

comment:13 Changed on Oct 5, 2017 at 12:36:56 PM by Sebastian Huber <sebastian.huber@…>

In 5222488/rtems:

posix: Implement self-contained POSIX condvar

POSIX condition variables are now available in all configurations and no
longer depend on --enable-posix.

Update #2514.
Update #3113.

comment:14 Changed on Oct 5, 2017 at 12:37:09 PM by Sebastian Huber <sebastian.huber@…>

In de59c065/rtems:

posix: Implement self-contained POSIX mutex

POSIX mutexes are now available in all configurations and no longer
depend on --enable-posix.

Update #2514.
Update #3112.

comment:15 Changed on Oct 10, 2017 at 5:43:49 AM by Sebastian Huber <sebastian.huber@…>

In af9115f3/rtems:

posix: Simplify POSIX_API_Control

Return stack area via pthread_getattr_np().

Simplify

  • pthread_attr_setaffinity_np(), and
  • pthread_attr_getaffinity_np()

and let the scheduler do the more sophisticated error checks.

Make

  • pthread_setaffinity_np(),
  • pthread_getaffinity_np(),
  • pthread_attr_setaffinity_np(), and
  • pthread_attr_getaffinity_np()

available in all configurations.

Update #2514.
Close #3145.
Close #3168.

comment:16 Changed on Oct 10, 2017 at 5:44:03 AM by Sebastian Huber <sebastian.huber@…>

In da9f5f1/rtems:

posix: Remove rtems_pthread_attribute_compare()

Update #2514.
Close #3174.

comment:17 Changed on Oct 10, 2017 at 5:44:17 AM by Sebastian Huber <sebastian.huber@…>

In 8c5267a/rtems:

posix: Simplify pthread_attr_setstack()

Simplify

  • pthread_attr_setstack(), and
  • pthread_attr_setstacksize().

Update #2514.

comment:18 Changed on Oct 10, 2017 at 5:44:29 AM by Sebastian Huber <sebastian.huber@…>

In 4f9ed26/rtems:

posix: Constify default thread processor affinity

Set default thread processor affinity to all processors of the
pre-allocated set. This allows to constify the
_POSIX_Threads_Default_attributes.

Update #2514.

comment:19 Changed on Oct 10, 2017 at 5:44:43 AM by Sebastian Huber <sebastian.huber@…>

In bd5be58f/rtems:

posix: Unconditional thread attribute support

Update #2514.

comment:20 Changed on Oct 11, 2017 at 5:39:29 AM by Sebastian Huber <sebastian.huber@…>

In a3ad4af/rtems:

posix: Validate affinity sets by the scheduler

Update #2514.

comment:21 Changed on Oct 11, 2017 at 5:39:43 AM by Sebastian Huber <sebastian.huber@…>

In b2dbb634/rtems:

score: Remove CPU_set_Control

Use Processor_mask instead.

Update #2514.

comment:22 Changed on Oct 11, 2017 at 6:34:14 AM by Sebastian Huber <sebastian.huber@…>

In 16aaf73b/rtems:

smpaffinity01: Fix test case

Update #2514.

comment:23 Changed on Oct 11, 2017 at 12:09:24 PM by Sebastian Huber

Component: unspecifiedposix
Milestone: 5.04.12.0
Status: newaccepted
Summary: Make POSIX API mandatoryMake POSIX API mandatory (except signals and the sporadic server)

comment:24 Changed on Oct 12, 2017 at 5:20:28 AM by Sebastian Huber <sebastian.huber@…>

In 58500540/rtems:

posix: Fix const qualifier warning

Update #2514.
Update #3179.

comment:25 Changed on Oct 18, 2017 at 6:52:20 AM by Sebastian Huber <sebastian.huber@…>

In 2be22d4/rtems:

posix: Move POSIX_API_Control::thread

This member is only used by the sporadic server support.

Update #2514.

comment:26 Changed on Oct 18, 2017 at 6:52:32 AM by Sebastian Huber <sebastian.huber@…>

In 3f3f424/rtems:

posix: Remove POSIX_API_Control::schedparam

Move sporadic server scheduler parameters to
POSIX_API_Control::Sporadic. Remove redundant scheduler priority
parameter.

Update #2514.

comment:27 Changed on Oct 18, 2017 at 6:52:44 AM by Sebastian Huber <sebastian.huber@…>

In 37eb717/rtems:

posix: Simplify _POSIX_Threads_Create_extension()

Move unblocked signals initialization to pthread_create().

Update #2514.

comment:28 Changed on Oct 18, 2017 at 7:34:22 AM by Sebastian Huber <sebastian.huber@…>

In dbb30e26/rtems:

posix: Fix POSIX disabled build

Update #2514.

comment:29 Changed on Oct 23, 2017 at 5:13:34 AM by Sebastian Huber <sebastian.huber@…>

In eeb8d83/rtems:

posix: Fix POSIX disabled build

Update #2514.

Note: See TracTickets for help on using tickets.