rtems waf, examples, and RTEMS_POSIX_API
Sebastian Huber
sebastian.huber at embedded-brains.de
Tue Dec 1 07:33:31 UTC 2020
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.huber at embedded-brains.de
>>> <mailto:sebastian.huber at 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.hubere at 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/
More information about the devel
mailing list