Re: [PATCH v2 2/4] compat/regex: include alloca.h before undef it
flat view
From: Danh Doan <hidden>
Date: 2020-04-24 17:09:20
On 2020-04-24 17:56:46+0100, Ramsay Jones [off-list ref] wrote:
On 24/04/2020 16:12, Đoàn Trần Công Danh wrote:quoted
Somewhere later in the code, we indirectly include alloca.h which will define alloca again, thus create a warning about redefinition of a preprocessor. Include it prior to define alloca in order to not define it again.So, on cygwin, this patch is not required. ie. I don't see any sparse errors/warnings for compat/regex/regex.c. Since cygwin uses a different c library (new-lib rather than glibc), I did a quick test on Linux, thus: $ sparse --version v0.6.1-191-gc51a0382 $ $ git checkout master Switched to branch 'master' Your branch is up-to-date with 'origin/master'. $ $ make clean GIT_VERSION = 2.26.2.266.ge870325ee8 ... $ $ make NO_REGEX=1 sparse >sp-out1 2>&1 $ $ diff sp-out sp-out1 0a1,2 > GIT_VERSION = 2.26.2.266.ge870325ee8 > * new build flags 12a15 > * new prefix flags 72a76 > GEN command-list.h 226a231 > SP compat/regex/regex.c $ $ make V=1 NO_REGEX=1 compat/regex/regex.sp cgcc -no-compile -Werror -Wall -Wdeclaration-after-statement -Wformat-security -Wold-style-definition -Woverflow -Wpointer-arith -Wstrict-prototypes -Wunused -Wvla -DENABLE_SHA256 -Wextra -Wmissing-prototypes -Wno-empty-body -Wno-missing-field-initializers -Wno-sign-compare -Wno-unused-parameter -g -O2 -Wall -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"x86_64\"" -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.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_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -Icompat/regex -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -DGAWK -DNO_MBSUPPORT \ compat/regex/regex.c $ So, again I don't see a problem. I guess it is possible that the version of sparse I am using (see above) has _also_ fixed this problem, in addition to the prototype attribute placement fix. Another option is that the version of glibc also matters. (I am on Linux Mint, which is based on Ubuntu 18.04 LTS) It would not be the first time that I have seen errors in system header files change from one release to the next ...
I'm using a Linux distro with musl libc. I guess it's the main culprit? I have another box with glibc, but it's mostly in Windows 10, because my sister is its main user. I'll take a look if it make that warning when my sister agree to leave that box to me. -- Danh