Proposed Pthread affinity APIs

Joel Sherrill joel.sherrill at OARcorp.com
Tue Nov 12 19:13:16 UTC 2013


Sorry. Missed a major point.

_GNU_SOURCE is transformed into multiple other
defines in features.h in glibc.

#ifdef  _GNU_SOURCE
# define __USE_GNU      1
#endif

Our sys/features.h does not have the comparable
ifdef. We are likely missing others as it turns
on about ten other feature flags in the glibc
features.h.

I guess we need to follow this pattern and add
_GNU_SOURCE to our sys/features.h. The others
need another round of thought.

--joel

On 11/12/2013 1:02 PM, Joel Sherrill wrote:
> On 11/12/2013 12:32 PM, Sebastian Huber wrote:
>> On 11/12/2013 03:11 PM, Joel Sherrill wrote:
>>> On 11/12/2013 2:27 AM, Sebastian Huber wrote:
>>>>> On 2013-11-11 21:30, Jennifer Averett wrote:
>>>>>>> @@ -206,6 +206,24 @@
>>>>>>>   int	_EXFUN(pthread_attr_setguardsize,
>>>>>>>   	(pthread_attr_t *__attr, size_t __guardsize));
>>>>>>>
>>>>>>> +#if defined(__USE_GNU) && defined(__rtems__)
>>>>>>> +/* POSIX thread APIs beyond the POSIX standard but provided in RTEMS
>>>>>>> + * for compatibility with GNU/Linux.
>>>>>>> + */
>>>>>
>>>>> Who is supposed to define this __USE_GNU?
>>>>>
>>> The application or implementation before including
>>> the header files.  This is common practice and how
>>> it is done in /usr/include/pthread.h on GNU/Linux.
>>>
>>> http://man7.org/linux/man-pages/man3/pthread_attr_setaffinity_np.3.html
>>>
>>> There are also other constants like thus __USE_XOPEN2K, __USE_BSD,
>>> and __USE_XOPEN2K8 are pretty common. It is similar to the STDC
>>> one but that's usually tripped by gcc, while these are application
>>> choices on what library API standard to adhere to.
>>>
>>> Sorry to sound pendantic but this is the common practice.
>>
>> Yes, exactly this is why I asked.  In the man page you have:
>>
>> *#define _GNU_SOURCE */* See feature_test_macros(7) */
>> *#include <pthread.h>*
>>
>> You use __USE_GNU.
>>
> 
> /usr/include/pthread.h on Linux has __USE_GNU.  I don't
> see a _USE_GNU in the .h files.
> 
> feature_test_macros(7) uses all _ versions.
> 
> I would guess the std C version is adding it.
> 
> 



-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherrill at OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
Support Available                (256) 722-9985



More information about the devel mailing list