[PATCH v4] Use a proper C tokenizer to implement the obsolete typedefs test.
Carlos O'Donell
carlos@redhat.com
Tue Mar 12 03:47:00 GMT 2019
On 3/11/19 8:59 PM, Zack Weinberg wrote:
> On Mon, Mar 11, 2019 at 2:57 PM Carlos O'Donell <carlos@redhat.com> wrote:
>>> * scripts/check-obsolete-constructs.py: New test script.
>>> * scripts/check-installed-headers.sh: Remove tests for
>>> obsolete typedefs, superseded by check-obsolete-constructs.py.
>>> * Rules: Run scripts/check-obsolete-constructs.py over $(headers)
>>> as a special test. Update commentary.
>>> * posix/bits/types.h (__SQUAD_TYPE, __S64_TYPE): Define as __int64_t.
>>> (__UQUAD_TYPE, __U64_TYPE): Define as __uint64_t.
>>> Update commentary.
>>> * posix/sys/types.h (__u_intN_t): Remove.
>>> (u_int8_t): Typedef using __uint8_t.
>>> (u_int16_t): Typedef using __uint16_t.
>>> (u_int32_t): Typedef using __uint32_t.
>>> (u_int64_t): Typedef using __uint64_t.
>>
>> OK for master if you:
>> - Fix the conditional in check-installed-headers.sh.
>>
>> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
>
> Is it now the convention that we put Reviewed-by: lines into the final
> commit message, or just that we say that on the mailing list?
Please ad the reviewed-by lines into the final commit message.
I would like to see this become the way in which we more accurately
track reviewer participation and highlight the value of reviewers
to everyone investing in glibc.
>>> if $cc_cmd -fsyntax-only $lang_mode "$cih_test_c" 2>&1
>>> - then
>>> - includes=$($cc_cmd -fsyntax-only -H $lang_mode \
>>> - "$cih_test_c" 2>&1 | sed -ne 's/^[.][.]* //p')
>>> - for h in $includes; do
>>> - # Don't repeat work.
>>> - eval 'case "$h" in ('"$already"') continue;; esac'
>>> -
>>> - if grep -qE "$obsolete_type_re" "$h"; then
>>> - echo "*** Obsolete types detected:"
>>> - grep -HE "$obsolete_type_re" "$h"
>>> - failed=1
>>> - fi
>>> - already="$already|$h"
>>> - done
>>> - else
>>> - failed=1
>>> + then :
>>> + else failed=1
>>
>> Why not 'if ! $cc_cmd ...' ? Which avoids the odd empty if block e.g. ":".
>
> `if ! ...` is not portable shell, despite being included in the POSIX
> shell language. See
> https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Limitations-of-Builtins.html
> (under `!`) `if command_1; then :; else command_2; fi` is the
> alternative idiom I learned back in the days of SunOS 4.
Holy snicker doodles. #TIL.
> Possibly `if ! ...` is portable enough for this script, but I try not
> to think about whether semi-portable shell constructs are portable
> enough for the current script.
>
> Do you still want me to change it?
No.
--
Cheers,
Carlos.
More information about the Libc-alpha
mailing list