[PATCH 1/5] posix: Sync regex code with gnulib

Adhemerval Zanella adhemerval.zanella@linaro.org
Wed Jan 20 11:27:22 GMT 2021



On 19/01/2021 23:55, Paul Eggert wrote:
> On 1/19/21 7:43 AM, Bruno Haible wrote:
>> Adhemerval Zanella wrote:
>>> -# if (__GNUC__ >= 7) || (__clang_major__ >= 10)
>>> +# if (__GNUC__ >= 7) || (defined __clang_major__ &&__clang_major__ >= 10)
>> I would write it as:
>>
>> +# if (__GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
> 
> This line should be used only if _LIBC is defined, so we can simplify it to just "#if __GNUC__ >= 7" and thus not worry about Clang.
> 
> I see that Gnulib wasn't consistent about this, so I installed the attached patch to Gnulib to fix the issue here and elsewhere. The idea is that the Gnulib regex_internal.h can be copied back to glibc, and that the other uses in Gnulib should be similar.

Thanks, I will check with a bootstrap build and sync regex_internal.h
with glibc.

> 
> On 1/19/21 6:43 AM, Adhemerval Zanella wrote:
> 
>> Paul, this seemed to a common pattern scatter on multiple file in gnulib.
>> Wouldn't be better to consolidate it on cdefs.h?
> 
> We could append something like the following to cdefs.h, and switch to __attribute_fallthrough__ for modules shared between the two systems. Is that something you'd like to pursue? (We should also sync Gnulib cdefs.h back to glibc of course.)
> 
> #if defined __STDC_VERSION__ && 201710L < __STDC_VERSION__
> # define __attribute_fallthrough__ [[__fallthrough__]]
> #elif __GNUC_PREREQ (7, 0) || __glibc_has_attribute (__fallthrough__)
> # define __attribute_fallthrough__ __attribute__ ((__fallthrough__))
> #else
> # define __attribute_fallthrough__ ((void) 0)
> #endif

Yes, for 2.34 I will send some patches to sync the remaining gnulib
files and document from our part the shared files.


More information about the Libc-alpha mailing list