>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 
r...@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:
_______________________________________________
freebsd-bugs@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to