Subject: Re: [PATCH] sparse: ignore warning from new glibc headers

From: Đoàn Trần Công Danh <[email-masked]>
Date: Thu, 18 Jul 2024 15:46:24 +0700

On 2024-07-18 09:39:44+0700, Đoàn Trần Công Danh <[email-masked]> wrote:
> On 2024-07-18 01:02:54+0100, Ramsay Jones <[email-masked]> wrote:
> > 
> > 
> > On 17/07/2024 23:53, Junio C Hamano wrote:
> > [snip]
> > > That's OK.  So in short, with a separate SP_EXTRA_FLAGS with "-Wno-vla",
> > > Luc's patch is a sufficient fix without any downsides, no?
> > > 
> > 
> > Yes, assuming you're only concerned with 'make sparse' usage.
> > 
> > BTW, I didn't expect it to take this long for this issue to come
> > back to the list! I expected it to almost immediately cause
> > problems with the sparse ci job, when the version of Ubuntu was
> > updated to the LTS (now previous LTS!). So, I just found a simple
> > solution for now (which turned into 2 years).
> 
> Well, yeah, -Wno-vla would work, I used that macro __STDC_NO_VLA__
> because I'm not sure Git want to use vla or not, so I only tried to
> disable it for system headers.

Eh, I replied too soon, -Wno-vla doesn't work with my compiler:

     $ rm -f builtin/am.sp && make V=1 builtin/am.sp
     cgcc -no-compile -I. -I.   -fstack-protector-strong -D_FORTIFY_SOURCE=2 -pipe -O2 -g -march=native  -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"x86_64\"" -DHAVE_ALLOCA_H  -DUSE_CURL_FOR_IMAP_SEND -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"git-compat-util.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DSHELL_PATH='"/bin/sh"'  \
            -Wsparse-error \
            -std=gnu99 -Wno-universal-initializer -Wno-vla builtin/am.c && \
     >builtin/am.sp
    builtin/am.c: note: in included file (through git-compat-util.h, builtin.h):
    /usr/include/regex.h:682:41: error: undefined identifier '__nmatch'
    /usr/include/regex.h:682:41: error: bad constant expression type
    make: *** [Makefile:3263: builtin/am.sp] Error 1

    $ gcc --version
    gcc (GCC) 13.2.0
    Copyright (C) 2023 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

-- 
Danh