On 01/12/2020 07:49, Chris Johns wrote:

On 1/12/20 5:31 pm, Sebastian Huber wrote:
On 30/11/2020 21:43, Joel Sherrill wrote:
On Mon, Nov 30, 2020 at 1:06 PM Sebastian Huber
<sebastian.hu...@embedded-brains.de
<mailto:sebastian.hu...@embedded-brains.de>> wrote:
     On 30/11/2020 20:00, Joel Sherrill wrote:
     >     Applications can use something like:
     >
     >     #if __RTEMS_MAJOR__ >= 5
     >
     >     POSIX threads are always enabled ...
     >
     >     #endif
     >
     > This is a change to our public API that was completely unnecessary.
     >
     > We do not require changes to application code when it can be
     avoided.
     If you enable the POSIX API, then you don't have to change
     anything in
     your application. You can use now more of the POSIX API without
     having
     to enable it explicitly. It is up to you if you want to rely on
     this or not.


What about rtems-libbsd? It fails to build because of this flag having changed
meaning.

I think we broke a contract on what the meaning of a published
feature macro means.
Sorry, I still don't understand the problem. You always had to build libbsd with
a BSP which was configured with --enable-posix.

Since now more POSIX APIs are enabled by default, we may remove this check from
libbsd. However, this requires someone with enough time to implement and test 
this.
The semantics of what is being offered by the option has changed. Yes adding the
option does make things build but it is now inconsistent in what it covers and
how it is being detected and used. Papering over this only delays the point in
time we need to address it

What is offered by default changed. What didn't change is the meaning of RTEMS_POSIX_API define. What you want to do now is making use of the additional POSIX features enabled by default in RTEMS 5 and later. This is the problem we have to address. I suggested to use the __RTEMS_MAJOR__ to figure out what is enabled by default.


Can the enable-posix option be removed and always enabled? We minimise the
executable size automatically. Always being enabled means the option in the
header is always true and any dependent package or build system can happily
continue and be updated when it suites.
I didn't remove the RTEMS_POSIX_API completely, since the signals have an impact on the size of the Thread_Control and may pull in some extra code which is probably very seldom used (e.g. the sporadic server stuff). I tried hard to make sure that the additional POSIX features enabled now by default don't add an overhead to applications which don't use them. An increased Thread_Control size affects all applications.

Failing that can the default always be true?
Yes, this would be an option, but if we do this, then we make a change which impacts existing application configurations.

--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hub...@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to