[PATCH 05/10] Remove __need macros from errno.h (__need_Emath, __need_error_t).
Florian Weimer
fweimer@redhat.com
Wed May 10 07:31:00 GMT 2017
On 05/09/2017 11:38 PM, Joseph Myers wrote:
> On Tue, 9 May 2017, Zack Weinberg wrote:
>
>> diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
>> index 74f9a49b05..075c996f28 100644
>> --- a/misc/sys/cdefs.h
>> +++ b/misc/sys/cdefs.h
>> @@ -326,6 +326,13 @@
>> # define __attribute_artificial__ /* Ignore */
>> #endif
>>
>> +/* Force use of the initial-exec TLS model. */
>> +#if __GNUC_PREREQ (3,3)
>> +# define __attribute_tls_model_ie__ __attribute__ ((tls_model ("initial-exec")))
>
> This is not namespace-clean for an installed header (needs to be
> __tls_model__).
The larger problem is that we need to error out if __GLIBC_USE
(TLS_ERRNO) and the compiler does not support the initial-exec TLS model
because it cannot produce the required ABI for the errno symbol.
In my opinion, we could just decide that the NaCl port, if resurrected,
needs to implement __errno_location like the other ports. Then you
could drop the __GLIBC_USE (TLS_ERRNO) logic entirely, and you don't
need __attribute_tls_model_ie__, either.
Thanks,
Florian
More information about the Libc-alpha
mailing list