Date: Tue, 9 Oct 2012 10:57:55 +1100 (EST) From: Peter Jeremy <peter@rulingia.com> To: FreeBSD-gnats-submit@FreeBSD.org Cc: peter@server.rulingia.com Subject: bin/172534: [patch] FICL - correct handling of bare comment lines Message-ID: <201210082357.q98Nvt4e080415@server.rulingia.com> Resent-Message-ID: <201210092230.q99MUHI0043491@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 172534
>Category: bin
>Synopsis: [patch] FICL - correct handling of bare comment lines
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Tue Oct 09 22:30:16 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator: Peter Jeremy
>Release: FreeBSD 8.3-STABLE amd64
>Organization:
n/a
>Environment:
System: FreeBSD server.rulingia.com 8.3-STABLE FreeBSD 8.3-STABLE #18 r237444M: Sun Jul 8 10:47:08 EST 2012 root@server.rulingia.com:/var/obj/usr/src/sys/server amd64
>Description:
Various forth files in sys/boot/ficl/softwords/ are converted
to a C string code for embedding into the FICL binary using an
awk script softcore.awk. This script fails to strip out
comments that consist of a sole backslash. Whilst this isn't
a problem for the standard set of SOFTWORDS, the
not-normally-included oo.fr contains comments in the
array-init definition that cause softcore.awk to emit the
string "\ " - which gcc rejects.
>How-To-Repeat:
# cd /sys/boot/ficl
uncomment the line 'SOFTWORDS+= oo.fr classes.fr' in Makefile
# make testmain
fails with:
(cd /home/peter/forth/boot/ficl/softwords; cat softcore.fr jhlocal.fr marker.fr freebsd.fr ficllocal.fr ifbrack.fr oo.fr classes.fr | awk -f softcore.awk -v datestamp="`LC_ALL=C date`") > softcore.c
cc -O2 -pipe -ffreestanding -mpreferred-stack-boundary=2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -std=gnu99 -m32 -march=i386 -I. -I/home/peter/forth/boot/ficl -I/home/peter/forth/boot/ficl/i386 -I/home/peter/forth/boot/ficl/../common -c softcore.c
softcore.c:917:5: warning: unknown escape sequence: '\040'
softcore.c:917:5: warning: unknown escape sequence: '\040'
>Fix:
According to diff on stable-8, the following patch does not
result in any change to the default softcore.c and only
removes the two "\ " lines when the optional object-oriented
words are added.
Index: sys/boot/ficl/softwords/softcore.awk
===================================================================
--- sys/boot/ficl/softwords/softcore.awk (revision 241347)
+++ sys/boot/ficl/softwords/softcore.awk (working copy)
@@ -75,7 +75,7 @@
{
gsub(/\t/, " "); # replace each tab with 4 spaces
gsub(/\"/, "\\\""); # escape quotes
- gsub(/\\[[:space:]]+$/, ""); # toss empty comments
+ gsub(/\\[[:space:]]*$/, ""); # toss empty comments
}
# strip out empty lines
>Release-Note:
>Audit-Trail:
>Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201210082357.q98Nvt4e080415>
