Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
gawk problem during build, and patches
- X-seq: zsh-workers 7392
- From: Ed Osinski <osinski@xxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxxxxxx
- Subject: gawk problem during build, and patches
- Date: Fri, 6 Aug 1999 19:31:07 -0400
- Mailing-list: contact zsh-workers-help@xxxxxxxxxxxxxx; run by ezmlm
While building zsh 3.0.6, I got the following:
gawk -f ./rlimits.awk /usr/include/sys/resource.h > rlimits.h
gcc -c -I.. -I. -I. -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -Wall -Wno-implicit -Wmissing-prototypes -O2 builtin.c
In file included from builtin.c:3679:
rlimits.h:7: parse error at null character
When I looked at rlimits.h, I see:
-----------------------------------------------------------
/** rlimits.h **/
/** architecture-customized limits for zsh **/
#define ZSH_NLIMITS 7
static char *recs[ZSH_NLIMITS+1] = {
cputime ,
filesize ,
datasize ,
stacksize ,
coredumpsize ,
descriptors ,
vmemorysize ,
NULL
};
-----------------------------------------------------------
signames.h had similar problems. The culprits were lines like
printf("\t%c%s%c,\n", 034, lim[i], 034)
in the .awk files. Somehow, the 034 was not being interpreted as a
quote ("). I have gawk 3.0.4 installed, but I see that I configured
it with the --enable-non-decimal-data switch. I assume this means
that 034 is taken to be an octal number, which is not intended. I
changed the .awk files to just use \" in the format string instead of
%c and a parameter. I've included patches below. (I'm not a
subscriber to the list, so if there are any problems, please send me
email.)
- Ed
-----------------------------------------------------------
*** Src/rlimits.awk~ Wed Apr 28 01:21:43 1999
--- Src/rlimits.awk Fri Aug 6 18:51:54 1999
***************
*** 63,69 ****
if (msg[i] == "") {
badlimit++
! printf("\t%c%s%c,\n", 034, lim[i], 034)
} else
! printf("\t%c%s%c,\n", 034, msg[i], 034)
print "\tNULL"
print "};"
--- 63,69 ----
if (msg[i] == "") {
badlimit++
! printf("\t\"%s\",\n", lim[i])
} else
! printf("\t\"%s\",\n", msg[i])
print "\tNULL"
print "};"
-----------------------------------------------------------
*** Src/signames.awk~ Wed Apr 28 01:21:45 1999
--- Src/signames.awk Fri Aug 6 18:54:32 1999
***************
*** 52,63 ****
END {
ps = "%s"
! ifdstr = sprintf("#ifdef USE_SUSPENDED\n\t%csuspended%s%c,\n%selse\n\t%cstopped%s%c,\n#endif\n", 034, ps, 034, "#", 034, ps, 034)
! printf("%s\n%s\n\n%s\t%d\n\n%s\n\n%s\n\t%c%s%c,\n", "/** signals.h **/", "/** architecture-customized signals.h for zsh **/", "#define SIGCOUNT", max, "#ifdef GLOBALS", "char *sigmsg[SIGCOUNT+2] = {", 034, "done", 034)
for (i = 1; i <= 0 + max; i++)
if (msg[i] == "") {
if (sig[i] == "")
! printf("\t%c%c,\n", 034, 034)
else if (sig[i] == "STOP")
printf ifdstr, " (signal)", " (signal)"
--- 52,63 ----
END {
ps = "%s"
! ifdstr = sprintf("#ifdef USE_SUSPENDED\n\t\"suspended%s\",\n%selse\n\t\"stopped%s\",\n#endif\n", ps, "#", ps)
! printf("%s\n%s\n\n%s\t%d\n\n%s\n\n%s\n\t\"%s\",\n", "/** signals.h **/", "/** architecture-customized signals.h for zsh **/", "#define SIGCOUNT", max, "#ifdef GLOBALS", "char *sigmsg[SIGCOUNT+2] = {", "done")
for (i = 1; i <= 0 + max; i++)
if (msg[i] == "") {
if (sig[i] == "")
! printf "\t\"\",\n"
else if (sig[i] == "STOP")
printf ifdstr, " (signal)", " (signal)"
***************
*** 69,87 ****
printf ifdstr, " (tty output)", " (tty output)"
else
! printf("\t%cSIG%s%c,\n", 034, sig[i], 034)
} else
! printf("\t%c%s%c,\n", 034, msg[i], 034)
print "\tNULL"
print "};"
print ""
printf "char *sigs[SIGCOUNT+4] = {\n"
! printf("\t%cEXIT%c,\n", 034, 034)
for (i = 1; i <= 0 + max; i++)
if (sig[i] == "")
! printf("\t%c%d%c,\n", 034, i, 034)
else
! printf("\t%c%s%c,\n", 034, sig[i], 034)
! printf("\t%cZERR%c,\n", 034, 034)
! printf("\t%cDEBUG%c,\n", 034, 034)
print "\tNULL"
print "};"
--- 69,87 ----
printf ifdstr, " (tty output)", " (tty output)"
else
! printf("\t\"SIG%s\",\n", sig[i])
} else
! printf("\t\"%s\",\n", msg[i])
print "\tNULL"
print "};"
print ""
printf "char *sigs[SIGCOUNT+4] = {\n"
! printf "\t\"EXIT\",\n"
for (i = 1; i <= 0 + max; i++)
if (sig[i] == "")
! printf("\t\"%d\",\n", i)
else
! printf("\t\"%s\",\n", sig[i])
! printf "\t\"ZERR\",\n"
! printf "\t\"DEBUG\",\n"
print "\tNULL"
print "};"
-----------------------------------------------------------
Messages sorted by:
Reverse Date,
Date,
Thread,
Author