Patch - Add pthread affinity for RTEMS
Corinna Vinschen
vinschen@redhat.com
Wed Nov 27 10:30:00 GMT 2013
On Nov 26 14:04, Joel Sherrill wrote:
> On 11/25/2013 4:07 AM, Corinna Vinschen wrote:
> > On Nov 23 16:42, Joel Sherrill wrote:
> >> On 11/23/2013 3:39 PM, Corinna Vinschen wrote:
> >>> We don't actually utilize _GNU_SOURCE or __USE_GNU in newlib so
> >>> far, except in libc/sys/linux. We just don't have the detailed
> >>> features.h in place as glibc has. What we really have is
> >>> _POSIX_SOURCE and __STRICT_ANSI__, and a teensy little bit of
> >>> __XSI_VISIBLE, __POSIX_VISIBLE and __BSD_VISIBLE. The last three
> >>> are only rarely used, and we shouldn't start using them or others
> >>> more often, unless we have the matching feature test macros defined
> >>> in features.h along the lines (but not necessarily identical to)
> >>> glibc. IMHO.
> >>
> >> Unfortunately, these really are the glibc APIs and provided to
> >> increase compatibility between RTEMS and GNU/Linux.
> >>
> >> I would like to see us move more to the feature macros and away
> >> from the list of OSes we have now. I know it is a lot of details
> >> though.
> >
> > I'm all for defining a formal feature macro system in features.h, but...
> >
> >> In this case, this is a GNU extension and is intentionally so.
> >> If we just mark it with __rtems__, we are not following glibc.
> >
> > ...we didn't set this detailed system up yet. What I'm trying to
> > say is just this. Shouldn't we fist make sure to set up our formal
> > feature test macro system in features.h and only then introduce the
> > newly defined macros?
>
> OK. features.h has pretty thorough POSIX features for RTEMS,
> XMK, and Cygwin. There is an svr4 define which I don't know
> what trips.
> But the bottom section has this comment:
>
> /* Per the permission given in POSIX.1-2008 section 2.2.1, define
> * _POSIX_C_SOURCE if _XOPEN_SOURCE is defined and _POSIX_C_SOURCE is not.
> * (_XOPEN_SOURCE indicates that XSI extensions are desired by an
> application.)
> * This permission is first granted in 2008, but use it for older ones,
> also.
> * Allow for _XOPEN_SOURCE to be empty (from the earliest form of it,
> before it
> * was required to have specific values).
> */
>
> I take that to mean _POSIX_C_SOURCE and _XOPEN_SOURCE
> can be used or derived from.
>
> features.h doesn't look in too bad of a shape. cdefs.h is
> from FreeBSD and interprets those and gives us
> ___XSI_VISIBLE, __POSIX_VISIBLE, __ISO_C_VISIBLE,
> and __BSD_VISIBLE.
This is pretty new. I hadn't taken in that we have this stuff for a few
months now and I expected it in features.h, as in glibc, rather than
in sys/cdefs.h as on BSD. Oh well.
> We are just asking to add a trip for __GNU_VISIBLE and use
> it.
Well, sure. __GNU_VISIBLE is an internal macro, though. We should add
a _GNU_SOURCE enabling expression in sys/cdefs.h as well. AFAICS it
should be something like everything else plus __GNU_VISIBLE:
#if defined(_GNU_SOURCE)
#define __POSIX_VISIBLE 200809
#define __XSI_VISIBLE 700
#define __BSD_VISIBLE 1
#define __ISO_C_VISIBLE 2011
#define __GNU_VISIBLE 1
I'm just not sure where exactly to add it. In theory it should override
all other choices except _POSIX_C_SOURCE, maybe.
Corinna
--
Corinna Vinschen
Cygwin Maintainer
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/newlib/attachments/20131127/992f5b01/attachment.sig>
More information about the Newlib
mailing list