On 27/04/2020 17:46, Danh Doan wrote: [snip] > It looks like <alloca.h> is GNU's invention. > > *BSD defined it in <stdlib.h>: > https://www.freebsd.org/cgi/man.cgi?alloca > https://man.openbsd.org/alloca > https://netbsd.gw.com/cgi-bin/man-cgi?alloca+3+NetBSD-current Yeah, that would make sense. It's been about 25 years since I used a BSD based system (Hmm, Irix changed its base from AT&T to BSD at one point; or was it the other way round - I forget!) >> As it happens, even on glibc systems, the <alloca.h> header is included >> by the <stdlib.h> header, unless you take steps to suppress it. So, we >> would have had the same issue, if it wasn't for the aforementioned >> '#undef alloca' the the glibc header file. > >>From above information, I think it's fine to include <stdlib.h> first. > It's AT&T Unix's invention and everyone seems to follow it (except Windows, > but the lack of complains from our Windows friends may signify that > their alloca is fine already). > > I've sent it already for v3. Yep, looks good. >> When I need to look at pp output, while debugging things like this, >> I cherry-pick a patch to the Makefile: >> >> $ git diff >> diff --git a/Makefile b/Makefile >> index 6d5cee270c..cd8753bf54 100644 >> --- a/Makefile >> +++ b/Makefile >> @@ -2423,6 +2423,9 @@ $(ASM_OBJ): %.o: %.S GIT-CFLAGS $(missing_dep_dirs) >> %.s: %.c GIT-CFLAGS FORCE >> $(QUIET_CC)$(CC) -o $@ -S $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $< >> >> +%.i: %.c GIT-CFLAGS FORCE >> + $(QUIET_CC)$(CC) $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) -E $< >$*.i >> + >> ifdef USE_COMPUTED_HEADER_DEPENDENCIES >> # Take advantage of gcc's on-the-fly dependency generation >> # See <http://gcc.gnu.org/gcc-3.0/features.html>. >> @@ -2474,7 +2477,7 @@ http-walker.sp http-walker.s http-walker.o: EXTRA_CPPFLAGS = -DNO_EXPAT >> endif >> >> ifdef NO_REGEX >> -compat/regex/regex.sp compat/regex/regex.o: EXTRA_CPPFLAGS = \ >> +compat/regex/regex.i compat/regex/regex.sp compat/regex/regex.o: EXTRA_CPPFLAGS = \ >> -DGAWK -DNO_MBSUPPORT >> endif >> >> $ > > I think it's worth to have this included. `.s` rules is there, anyway. Hmm, I can't remember if I ever actually submitted a patch; I've had this patch floating in my git repo for about 10 years or so! ;-) I don't use it very often, but it's very useful when needed. ATB, Ramsay Jones