From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12222 invoked by alias); 22 Nov 2007 20:57:23 -0000 Received: (qmail 12173 invoked by uid 367); 22 Nov 2007 20:57:23 -0000 Date: Thu, 22 Nov 2007 20:57:00 -0000 Message-ID: <20071122205723.12158.qmail@sourceware.org> From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Pre-check each antlr file separately; handle GCJ's stray semicolon error. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: d7c815e89593b5133268c9574950ca09b01eb6c7 X-Git-Newrev: 23d35ae52512823d608fb46136564301948b5fe1 Mailing-List: contact frysk-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: frysk-cvs-owner@sourceware.org Reply-To: frysk@sourceware.org X-SW-Source: 2007-q4/txt/msg00434.txt.bz2 The branch, master has been updated via 23d35ae52512823d608fb46136564301948b5fe1 (commit) from d7c815e89593b5133268c9574950ca09b01eb6c7 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 23d35ae52512823d608fb46136564301948b5fe1 Author: Andrew Cagney Date: Thu Nov 22 15:56:40 2007 -0500 Pre-check each antlr file separately; handle GCJ's stray semicolon error. frysk-common/ChangeLog 2007-11-22 Andrew Cagney * Makefile.rules (.g.antlred): Compile each file separatly. * antlr-warnings.awk: Recognize the error "An empty declaration". ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 5 ++ frysk-common/Makefile.rules | 139 ++++++++++++++++++++++---------------- frysk-common/antlr-warnings.awk | 2 +- 3 files changed, 86 insertions(+), 60 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index fe624dc..7c46f6f 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,3 +1,8 @@ +2007-11-22 Andrew Cagney + + * Makefile.rules (.g.antlred): Compile each file separatly. + * antlr-warnings.awk: Recognize the error "An empty declaration". + 2007-11-15 Andrew Cagney * antlr-warnings.awk: Delete references to ExprAST. diff --git a/frysk-common/Makefile.rules b/frysk-common/Makefile.rules index bae9e3d..7c78f16 100644 --- a/frysk-common/Makefile.rules +++ b/frysk-common/Makefile.rules @@ -489,72 +489,93 @@ ANTLR = $(JAVA) \ SUFFIXES += .antlred .g .g.antlred: - mkdir -p $*.tmp - b=`basename $*` ; \ - d=`dirname $*` ; \ - cd $$d ; \ - $(ANTLR) -o $$b.tmp @abs_srcdir@/$*.g - @echo "Setting up generated files ..." ; \ - d=$*.tmp ; for gen in $$d/*.java ; do \ + @echo "" + @echo Creating working directory ... + @echo "" + @d=`dirname $*` ; t=$*.tmp ; set -xe ; \ + mkdir -p $$t/$$d + @echo "" + @echo Running antlr in output directory to pick up previously generated files ... + @echo "" + @d=`dirname $*` ; t=$*.tmp ; set -xe ; \ + cd $$d ; $(ANTLR) -o `basename $$t`/$$d @abs_srcdir@/$*.g + @echo "" + @echo Setting up generated files ... + @echo "" + @b=`basename $*` ; d=`dirname $*` ; t=$*.tmp ; set -xe ; \ + for gen in $$t/$$d/*.java ; do \ b=`basename $$gen .java` ; \ - ( set -x ; mv $$gen $$d/$$b.gen ) ; \ - ( set -x ; rm -f $$d/../$$b.java ) ; \ - for f in @abs_srcdir@/`dirname $$d`/$$b.sed /dev/null ; do \ - if test -r $$f ; then \ - ( set -x ; cp $$f $$d/$$b.sed ) ; \ - break ; \ - fi ; \ - done ; \ + mv $$gen $$t/$$b.gen ; \ + i=@abs_srcdir@/$$d/$$b.sed ; \ + o=$$t/$$b.sed ; \ + if test -r $$i ; then \ + cp $$i $$o.sed ; \ + else \ + cp /dev/null $$o ; \ + fi ; \ done - @edits=true ; d=$*.tmp ; \ + @echo "" + @echo Running repeated builds ... + @echo "" + @d=`dirname $*` ; t=$*.tmp ; set -xe ; \ + edits=true ; \ while $$edits ; do \ edits=false ; \ - echo "Applying fixes ..." ; \ - for gen in $$d/*.gen ; do \ + for gen in $$t/*.gen ; do \ b=`basename $$gen .gen` ; \ - ( set -x ; sed -f $$d/$$b.sed $$gen > $$d/$$b.java ) \ - || exit 1 ; \ - done ; \ - echo "Parsing compiler warnings ..." ; \ - rm -f $$d/*.antlr-fixes ; \ - ( set -x ; rm -rf $$d/classes ; mkdir -p $$d/classes ) ; \ - if test "x@HAVE_ECJ_TRUE@" = x ; then \ - ( set -x ; $(GIJ) 2>&1 \ - --classpath $(ECJ_JAR):$(CLASSPATH) \ - org.eclipse.jdt.internal.compiler.batch.Main \ - \ - -d $$d/classes \ - -warn:+semicolon \ - -sourcepath $(SOURCEPATH) \ - -classpath $(CLASSPATH) \ - $$d/*.java ) ; \ - else \ - ( set -x ; $(GCJCOMPILE) 2>&1 \ - -C \ - -d $$d/classes \ - $$d/*.java ) ; \ - fi | ( set -x ; cd $$d ; $(AWK) \ - -f @abs_srcdir@/common/antlr-warnings.awk ) ; \ - echo "Merging `sort -n $$d/*.antlr-fixes 2>/dev/null | uniq | wc -l` fixes" ; \ - for fix in $$d/*.antlr-fixes ; do \ - b=`basename $$fix .antlr-fixes` ; \ - test -r "$$d/$$b.sed" || continue ; \ - ( set -x ; sort -n $$d/$$b.sed $$fix | uniq > $$d/$$b.tmp ) ; \ - if ( set -x ; cmp -s $$d/$$b.tmp $$d/$$b.sed ) ; then \ - echo "***" ; \ - echo "*** $$d/$$b.sed already contains all fixes!" ; \ - echo "*** Assuming errors are real." ; \ - echo "***" ; \ - continue ; \ - fi ; \ - mv -f $$d/$$b.tmp $$d/$$b.sed ; \ - edits=true ; \ + echo "Applying fixes for $$b ..." ; \ + for fix in $$t/*.sed ; do \ + f=`basename $$fix .sed` ; \ + sed -f $$fix $$t/$$f.gen > $$t/$$d/$$f.java ; \ + done ; \ + echo "Parsing compiler warnings from $$b..." ; \ + rm -f $$t/*.antlr-fixes ; \ + rm -rf $$t/classes ; mkdir -p $$t/classes ; \ + if test "x@HAVE_ECJ_TRUE@" = y ; then \ + $(GIJ) 2>&1 \ + --classpath $(ECJ_JAR):$(CLASSPATH) \ + org.eclipse.jdt.internal.compiler.batch.Main \ + \ + -d $$t/classes \ + -warn:+semicolon \ + -sourcepath $$t:$(SOURCEPATH) \ + -classpath $(CLASSPATH) \ + $$t/$$d/$$b.java || true ; \ + else \ + $(GCJCOMPILE) 2>&1 \ + -C \ + -I $$t \ + -d $$t/classes \ + $$t/$$d/$$b.java || true ; \ + fi | ( \ + cd $$t ; \ + $(AWK) -f @abs_srcdir@/common/antlr-warnings.awk \ + ) ; \ + echo "Merging `sort -n $$t/*.antlr-fixes 2>/dev/null | uniq | wc -l` fixes" ; \ + for fix in $$t/*.antlr-fixes ; do \ + b=`basename $$fix .antlr-fixes` ; \ + test -r "$$t/$$b.sed" || continue ; \ + sort -n $$t/$$b.sed $$fix | uniq > $$t/$$b.tmp ; \ + if ( set -x ; cmp -s $$t/$$b.tmp $$t/$$b.sed ) ; then \ + echo "***" ; \ + echo "*** $$t/$$b.sed already contains all fixes!" ; \ + echo "*** Assuming errors are real." ; \ + echo "***" ; \ + continue ; \ + fi ; \ + mv -f $$t/$$b.tmp $$t/$$b.sed ; \ + edits=true ; \ + done ; \ done ; \ done || true - @echo Installing generated files files ... ; \ - ( cd $*.tmp ; for f in *.java *.txt ; do \ - ( set -x ; cp $$f ../$$f ) ; \ - done ) + @echo "" + @echo Installing generated files files ... + @echo "" + @d=`dirname $*` ; t=$*.tmp ; set -xe ; \ + for f in $$t/$$d/*.java $$t/$$d/*.txt ; do \ + b=`basename $$f` ; \ + cp $$f $$d/$$b ; \ + done rm -rf $*.antlred touch $*.antlred diff --git a/frysk-common/antlr-warnings.awk b/frysk-common/antlr-warnings.awk index f77e3c0..8b40149 100644 --- a/frysk-common/antlr-warnings.awk +++ b/frysk-common/antlr-warnings.awk @@ -107,7 +107,7 @@ function sed_comment(code) { return "s," code ",// " code "," } -prob ~ /Unnecessary semicolon/ { +prob ~ /Unnecessary semicolon/ || prob ~ /An empty declaration is a deprecated feature/ { if (code ~ /};/) { sed = "s,};,} // ;," } else if (code ~ /;;$/) { hooks/post-receive -- frysk system monitor/debugger