unofficial mirror of libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Florian Weimer <fweimer@redhat.com>
To: Adhemerval Zanella <adhemerval.zanella@linaro.org>,
	libc-alpha@sourceware.org
Subject: Re: [PATCH v8 1/8] nptl: Add C11 threads thrd_* functions
Date: Thu, 12 Jul 2018 20:24:59 +0200	[thread overview]
Message-ID: <8c257a2d-60b4-e12d-28a5-d7a4fc4408de@redhat.com> (raw)
In-Reply-To: <c834f9a0-0441-35f4-abff-4a283a2baf25@linaro.org>

On 07/12/2018 07:52 PM, Adhemerval Zanella wrote:
> 
> 
> On 12/07/2018 13:46, Florian Weimer wrote:
>> On 02/02/2018 06:04 PM, Adhemerval Zanella wrote:
>>
>>> diff --git a/include/stdc-predef.h b/include/stdc-predef.h
>>> index c569759..c2ab78a 100644
>>> --- a/include/stdc-predef.h
>>> +++ b/include/stdc-predef.h
>>> @@ -57,7 +57,4 @@
>>>       - 3 additional Zanabazar Square characters */
>>>    #define __STDC_ISO_10646__        201706L
>>>    -/* We do not support C11 <threads.h>.  */
>>> -#define __STDC_NO_THREADS__        1
>>
>> Should we do this only if we know that the compiler has _Thread_local support (based on a GCC and __cplusplus version check)?
> 
> It seems reasonable, since its a installed header.  Do we need to
> check for __cplusplus too? Shouldn't __GNUC_PREREQ (4.9) be suffice?

I think we can use __thread instead of _Thread_local with even older 
compilers, and also factor in __cplusplus if it is recent enough 
(essentially 2011 and later) for the !__GNUC__ case.

Maybe it's sufficient to say

#if !defined (__GNUC__) && !defined (__cpluscplus) \
   &&  __cplusplus < 201103L)
# define __STDC_NO_THREADS__        1
#endif

On the other hand, maybe your original change is right because in C11, 
_Thread_local support is not optional.  Implementations are required to 
recognize the keyword (and presumably ignore it) even if they define 
__STDC_NO_THREADS__.  And our <threads.h> will generally work fine even 
if the compiler does not actually support _Thread_local.  So I'd say go 
with your original change.

(But I do think you need to do something about thread_local in the C++ 
case, independently of this discussion.)

Thanks,
Florian

  reply	other threads:[~2018-07-12 18:25 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-02 17:04 [PATCH v8 0/8] Add support for ISO C threads.h Adhemerval Zanella
2018-02-02 17:04 ` [PATCH v8 1/8] nptl: Add C11 threads thrd_* functions Adhemerval Zanella
2018-02-08 13:49   ` Gabriel F. T. Gomes
2018-02-09 10:56     ` Adhemerval Zanella
2018-02-26 12:28       ` Gabriel F. T. Gomes
2018-07-06 12:46   ` Florian Weimer
2018-07-10 19:26     ` Adhemerval Zanella
2018-07-11 15:49       ` Szabolcs Nagy
2018-07-11 16:24         ` Adhemerval Zanella
2018-07-12 12:18           ` Florian Weimer
2018-07-12 17:38             ` Adhemerval Zanella
2018-07-13  7:03               ` Florian Weimer
2018-07-12 16:46   ` Florian Weimer
2018-07-12 17:52     ` Adhemerval Zanella
2018-07-12 18:24       ` Florian Weimer [this message]
2018-07-12 19:19         ` Adhemerval Zanella
2018-07-12 19:26           ` Florian Weimer
2018-07-12 19:41             ` Adhemerval Zanella
2018-07-12 19:32       ` Adhemerval Zanella
2018-07-12 19:35         ` Florian Weimer
2018-07-12 19:43           ` Adhemerval Zanella
2018-07-13  9:45   ` Florian Weimer
2018-07-13 12:59     ` Adhemerval Zanella
2018-07-13 13:04       ` Florian Weimer
2018-07-13 13:18         ` Adhemerval Zanella
2018-07-13 13:21           ` Florian Weimer
2018-07-13  9:48   ` Florian Weimer
2018-07-25  7:20   ` Andreas Schwab
2018-07-25  7:38     ` Florian Weimer
2018-07-25 10:29     ` Joseph Myers
2018-02-02 17:04 ` [PATCH v8 2/8] nptl: Add C11 threads mtx_* functions Adhemerval Zanella
2018-07-06 12:51   ` Florian Weimer
2018-07-10 12:35     ` Adhemerval Zanella
2018-07-12 18:39       ` Florian Weimer
2018-07-12 20:30         ` Adhemerval Zanella
2018-07-12 20:38           ` Florian Weimer
2018-07-13 13:08             ` Adhemerval Zanella
2018-07-13 13:10               ` Florian Weimer
2018-07-24 12:04   ` Adhemerval Zanella
2018-07-24 16:04     ` Carlos O'Donell
2018-02-02 17:04 ` [PATCH v8 3/8] nptl: Add C11 threads call_once functions Adhemerval Zanella
2018-07-13  9:32   ` Florian Weimer
2018-02-02 17:04 ` [PATCH v8 4/8] nptl: Add C11 threads cnd_* functions Adhemerval Zanella
2018-02-02 17:04 ` [PATCH v8 5/8] nptl: Add C11 threads tss_* functions Adhemerval Zanella
2018-07-12 16:48   ` Florian Weimer
2018-07-12 20:32     ` Adhemerval Zanella
2018-07-12 20:37       ` Florian Weimer
2018-02-02 17:04 ` [PATCH v8 6/8] nptl: Add abilist symbols for C11 threads Adhemerval Zanella
2018-07-13  9:50   ` Florian Weimer
2018-07-13 15:49     ` Adhemerval Zanella
2018-07-13 17:49       ` Florian Weimer
2018-07-13 18:47         ` Adhemerval Zanella
2018-07-13 19:56           ` Florian Weimer
2018-07-13 21:09             ` Adhemerval Zanella
2018-07-14 13:50               ` Florian Weimer
2018-07-18 17:40         ` Joseph Myers
2018-07-18 20:02           ` Adhemerval Zanella
2018-07-18 21:19           ` Florian Weimer
2018-02-02 17:04 ` [PATCH v8 7/8] nptl: Add test cases for ISO " Adhemerval Zanella
2018-07-13  9:31   ` Florian Weimer
2018-07-13 13:10     ` Adhemerval Zanella
2018-07-13 13:11       ` Florian Weimer
2018-07-13 13:29         ` Adhemerval Zanella
2018-07-17 13:53           ` Adhemerval Zanella
2018-02-02 17:04 ` [PATCH v8 8/8] Add manual documentation for threads.h Adhemerval Zanella
2018-06-27 13:39 ` [PATCH v8 0/8] Add support for ISO C threads.h Adhemerval Zanella
2018-07-19 17:46   ` Adhemerval Zanella
2018-07-19 18:43     ` Carlos O'Donell
2018-07-19 19:12       ` Rical Jasan
2018-07-19 19:58         ` Adhemerval Zanella
2018-07-21  0:26           ` Rical Jasan
2018-07-21  2:11             ` Carlos O'Donell
2018-07-21  6:22               ` Rical Jasan
2018-07-21 13:40                 ` Adhemerval Zanella
2018-07-19 21:26       ` Joseph Myers
2018-07-20 12:32         ` Adhemerval Zanella
2018-07-20 13:22           ` Rical Jasan
2018-07-20 13:54             ` Rical Jasan
2018-07-20 14:04               ` Carlos O'Donell
2018-07-20 15:02             ` [PATCH v8 0/8] Add support for ISO C threads.h [thrd_exit] Rical Jasan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/libc/involved.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8c257a2d-60b4-e12d-28a5-d7a4fc4408de@redhat.com \
    --to=fweimer@redhat.com \
    --cc=adhemerval.zanella@linaro.org \
    --cc=libc-alpha@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).