From: Danh Doan <congdanhqx@gmail.com> To: Ramsay Jones <ramsay@ramsayjones.plus.com> Cc: git@vger.kernel.org Subject: Re: [PATCH v2 2/4] compat/regex: include alloca.h before undef it Date: Sun, 26 Apr 2020 08:10:13 +0700 [thread overview] Message-ID: <20200426011013.4dheltp2rumn3bad@danh.dev> (raw) In-Reply-To: <20200426005451.f7pyoiijgbk4hpsj@danh.dev> On 2020-04-26 07:54:51+0700, Danh Doan <congdanhqx@gmail.com> wrote: > On 2020-04-25 21:28:05+0100, Ramsay Jones <ramsay@ramsayjones.plus.com> wrote: > > > > > > On 24/04/2020 23:34, Danh Doan wrote: > > [snip] > > > > > OK, I've tried with my glibc box, it doesn't have that warning. > > > On musl, it warns: > > > > > > $ make compat/regex/regex.sp > > > GIT_VERSION = 2.26.2 > > > * new build flags > > > SP compat/regex/regex.c > > > /usr/include/alloca.h:14:9: warning: preprocessor token alloca redefined > > > compat/regex/regex.c:66:9: this was the original definition > > > compat/regex/regex_internal.c:925:1: error: symbol 're_string_context_at' redeclared with different type (originally declared at compat/regex/regex_internal.h:433) - different modifiers > > > > > > > > > > OK, I had a quick look at the <alloca.h> header file on a glibc > > system (linux) and new-lib system (cygwin) and they both do > > (more or less) the same thing: first #undef alloca, and then > > if being compiled by gcc, define alloca(size) to be __builtin_alloca(size). > > musl people don't do that. > They just go ahead define it, if any other header file requires > alloca, they will include alloca.h > > > So, even if <alloca.h> is #included after regex.c:66, it wouldn't > > be a problem. Since I don't have access to a musl based system, > > I don't know what that system header is doing. > > musl's alloca.h is available here: > > https://git.musl-libc.org/cgit/musl/tree/include/alloca.h > > > However, I said *even if* above, because I don't see why it is trying > > to #include <alloca.h> in the first place! ;-) > > I looked into my system again. The inclusion chain is: > > compat/regex/regex.c:77 > `-> compat/regex/regex_internal.h:26 > `-> /usr/include/stdlib.h:138 [*1*] > `-> /usr/include/alloca.h > > [*1*]: https://git.musl-libc.org/cgit/musl/tree/include/stdlib.h#n137 Sorry for the noise, but I should link to a specific tree instead of their master for future refererence. https://git.musl-libc.org/cgit/musl/tree/include/stdlib.h?id=8e452abae67db445fb6c3e37cd566c4788c2e8f3#n137 > > I don't know why _GNU_SOURCE and/or _BSD_SOURCE is defined. > > > $ 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 > > $ > > > > ... is not being set on the command-line. > > Here's the invocation of cc and cgcc: > > $ make V=1 compat/regex/regex.o > cc -o compat/regex/regex.o -c -MF compat/regex/.depend/regex.o.d -MQ compat/regex/regex.o -MMD -MP -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\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DICONV_OMITS_BOM -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 > $ make V=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\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DICONV_OMITS_BOM -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 > > > Hmm, do you have this set in config.mak, config.mak.autogen, or some other > > source? puzzled! ;-) > > I don't have `config.make.autogen`, > Here is config.mak > > $ cat config.mak > USE_ASCIIDOCTOR=Yes > DEVELOPER=1 > DEFAULT_TEST_TARGET=prove > prefix = /home/danh/.local > USE_LIBPCRE2=YesPlease > ICONV_OMITS_BOM=Yes > NO_REGEX=YesPlease > > > BTW, why are you compiling with NO_REGEX set anyway? > > Because I use musl-libc, and musl-libc doesn't have StartEnd > > -- > Danh -- Danh
next prev parent reply other threads:[~2020-04-26 1:10 UTC|newest] Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-04-23 13:47 [PATCH 0/4] fix make sparse warning Đoàn Trần Công Danh 2020-04-23 13:47 ` [PATCH 1/4] C: s/0/NULL/ for pointer type Đoàn Trần Công Danh 2020-04-24 0:39 ` Ramsay Jones 2020-04-24 0:54 ` Junio C Hamano 2020-04-24 1:09 ` Danh Doan 2020-04-24 1:54 ` Junio C Hamano 2020-05-14 21:37 ` Luc Van Oostenryck 2020-04-23 13:47 ` [PATCH 2/4] compat/regex: silence `make sparse` warning Đoàn Trần Công Danh 2020-04-24 0:51 ` Ramsay Jones 2020-04-24 1:04 ` Danh Doan 2020-04-23 13:47 ` [PATCH 3/4] graph.c: limit linkage of internal variable Đoàn Trần Công Danh 2020-04-24 0:52 ` Ramsay Jones 2020-04-23 13:47 ` [PATCH 4/4] progress.c: silence cgcc suggestion about internal linkage Đoàn Trần Công Danh 2020-04-24 0:58 ` Ramsay Jones 2020-04-24 5:54 ` Jeff King 2020-04-23 13:47 ` [PATCH 5/4] fmt-merge-msg.c: fix `make sparse` on next Đoàn Trần Công Danh 2020-04-23 23:10 ` [PATCH 0/4] fix make sparse warning Ramsay Jones 2020-04-23 23:58 ` Danh Doan 2020-04-24 16:38 ` Ramsay Jones 2020-04-24 15:12 ` [PATCH v2 0/4] Fix Sparse Warning Đoàn Trần Công Danh 2020-04-24 15:12 ` [PATCH v2 1/4] test-parse-pathspec-file.c: s/0/NULL/ for pointer type Đoàn Trần Công Danh 2020-04-24 15:12 ` [PATCH v2 2/4] compat/regex: include alloca.h before undef it Đoàn Trần Công Danh 2020-04-24 16:56 ` Ramsay Jones 2020-04-24 17:09 ` Danh Doan 2020-04-24 18:29 ` Ramsay Jones 2020-04-24 22:34 ` Danh Doan 2020-04-25 20:28 ` Ramsay Jones 2020-04-26 0:54 ` Danh Doan 2020-04-26 1:10 ` Danh Doan [this message] 2020-04-26 16:17 ` Ramsay Jones 2020-04-26 19:38 ` Ramsay Jones 2020-04-26 22:37 ` Junio C Hamano 2020-04-27 1:08 ` Danh Doan 2020-04-27 16:28 ` Ramsay Jones 2020-04-27 16:46 ` Danh Doan 2020-04-27 17:21 ` Ramsay Jones 2020-04-24 15:12 ` [PATCH v2 3/4] graph.c: limit linkage of internal variable Đoàn Trần Công Danh 2020-04-24 15:12 ` [PATCH v2 4/4] progress.c: silence cgcc suggestion about internal linkage Đoàn Trần Công Danh 2020-04-24 16:40 ` [PATCH v2 0/4] Fix Sparse Warning Ramsay Jones 2020-04-25 13:13 ` [PATCH 0/4] fix make sparse warning Johannes Schindelin 2020-04-26 3:32 ` Danh Doan 2020-04-26 16:24 ` Ramsay Jones 2020-05-01 20:02 ` Johannes Schindelin 2020-04-27 14:22 ` [PATCH v3 0/4] Partial fix `make sparse` Đoàn Trần Công Danh 2020-04-27 14:22 ` [PATCH v3 1/4] test-parse-pathspec-file.c: s/0/NULL/ for pointer type Đoàn Trần Công Danh 2020-04-27 14:22 ` [PATCH v3 2/4] compat/regex: move stdlib.h up in inclusion chain Đoàn Trần Công Danh 2020-04-27 16:41 ` Ramsay Jones 2020-04-27 14:22 ` [PATCH v3 3/4] graph.c: limit linkage of internal variable Đoàn Trần Công Danh 2020-04-27 14:22 ` [PATCH v3 4/4] progress.c: silence cgcc suggestion about internal linkage Đoàn Trần Công Danh 2020-05-01 20:09 ` Johannes Schindelin 2020-04-27 16:35 ` [PATCH v3 0/4] Partial fix `make sparse` Ramsay Jones
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 * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200426011013.4dheltp2rumn3bad@danh.dev \ --to=congdanhqx@gmail.com \ --cc=git@vger.kernel.org \ --cc=ramsay@ramsayjones.plus.com \ --subject='Re: [PATCH v2 2/4] compat/regex: include alloca.h before undef it' \ /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
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 NNTP newsgroup(s).