This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 05/10] Remove __need macros from errno.h (__need_Emath, __need_error_t).


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]