Thanks for quoting that. But just to be pedantic, it says "unspecified" 
and "may"
so it is guidance.

The RTEMS' GCC (and llvm) configuration implicitly links in libc, the 
BSP library,
and the all RTEMS services including things in libpthread or librt on 
Linux. libm
is the only common library that a user would need to specify.  The flag 
-pthread
is accepted by the compiler.

FWIW RTEMS is a single process POSIX environment with ~1100 of the POSIX 
APIs.
The OS and application are one executable. We track POSIX APIs provided 
versus
multiple versions of POSIX, PSE5x, C99 and C11, FACE TS 2.1 and 3.0, and 
multiple
versions of SCA as part of our user facing documentation.

--joel

On 4/18/2019 10:54 AM, enh wrote:
> i think the requirement is only that the compiler accept -lpthread...
>
> "It is unspecified whether the libraries libc.a, libl.a, libm.a,
> libpthread.a, librt.a, [OB] [Option Start] libtrace.a, [Option End]
> libxnet.a, or liby.a exist as regular files. The implementation may
> accept as -l option-arguments names of objects that do not exist as
> regular files."
>
> Android has libpthread and librt in libc (though sadly libm is still 
> separate).
>
> On Thu, Apr 18, 2019 at 8:46 AM Joel Sherrill <joel.sherr...@oarcorp.com> 
> wrote:
>>
>>
>> On 4/18/2019 4:31 AM, Geoff Clare wrote:
>>> Shware Systems <shwares...@aol.com> wrote, on 17 Apr 2019:
>>>> On Wednesday, April 17, 2019 Geoff Clare <g...@opengroup.org> wrote:
>>>>
>>>>> ... does anyone know of an implementation
>>>>> that has pthreads and C11/C17 threads, with pthread_t and thrd_t defined
>>>>> as different types?
>>>> My implementation defines both as pointers, not int's, as 'typedef
>>>> thrd_t pthread_t;'. Since threads.h is 99% a subset of pthreads.h,
>>>> I see no reason to have them be different types, even as a breaking
>>>> change. What is missing is in pthreads.h, to account for the new
>>>> attributes C11 introduced, at least to mention them if support
>>>> isn't going to be added.
>>> What new attributes?  As far as I can see the only attribute a
>>> thread has in C17 (although it doesn't use that word) is whether it
>>> has been detached.
>>>
>>>> The major hassle I see is POSIX wants the
>>>> the threading stuff in libpthread, and C11 wants it in libc if the
>>>> threading option is enabled. IMO C11 should have let interfaces in
>>>> optional headers all be in header-specific libraries or libc, as an
>>>> implentation-defined choice, but they didn't.
>>> Last I knew the C standard says nothing at all about how programs
>>> are built.
>> Is there even a requirement to have libpthread in POSIX?
>>
>> --joel
>>


Reply via email to