This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
> The patch is corrupted by line wrapping, 48 lines and some are not trivial > to recover. Sorry, I hope the attached patch will apply correctly. I made small changes, one of them is to remove completely the email sending part of the update-web-ari.sh script as several person spoke up against it in its present form. Concerning the new create-web-ari-in-src.sh, this is indeed a new script (hence the 2012 copyright only) and it is just a way to be able to generate the ARI index.html web page without any parameters. It basically only give default parameters to update-web-ari.sh script, which requires four parameters. I hope this clarifies some of your questions. Concerning Sergio's suggestion to separate out the awk script into a separate file, I would like to minimize the changes relative to the existing ss cvs repository files. About the use of dirname, I think that direname is like basename part of coreutils, and basename is already use several times inside update-web-ari script in ss. I agree that being made public and thus available to many users, it would be nice to chack availability, and add a workaround, but I have no precise how to do it, probably using a configure or Makefile could help here . Note that gdb directory cvonfigure script seems to contain both dirname and basename... I hope you will be able to generate a ARI web page, and give more feedbacks, Pierre Muller as unofficial ARI maintainer The ChangeLog entry is unchanged: 2012-05-26 Pierre Muller <muller@ics.u-strasbg.fr> * contrib/ari/create-web-ari-in-src.sh: New file. * contrib/ari/gdb_ari.sh: New file. * contrib/ari/gdb_find.sh: New file. * contrib/ari/update-web-ari.sh: New file. The patch is in the attached file ari.patch To help to show what changed, here is the output of diff -u -p -u ../../../ss ./contrib./ari (../../../ss is the location of my ss checkout) $ cat diff-to-ss only in ./contrib/ari: create-web-ari-in-src.sh diff -b -u -p ../../ss/gdb_ari.sh ./contrib/ari/gdb_ari.sh --- ../../ss/gdb_ari.sh 2012-05-26 13:59:56.744837000 +0200 +++ ./contrib/ari/gdb_ari.sh 2012-05-26 13:47:46.183454200 +0200 @@ -1,9 +1,31 @@ #!/bin/sh +# GDB script to list of problems using awk. +# +# Copyright (C) 2002-2012 Free Software Foundation, Inc. +# +# This file is part of GDB. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Make certain that the script is not running in an internationalized +# environment. + LANG=c ; export LANG LC_ALL=c ; export LC_ALL -# Permenant checks take the form: +# Permanent checks take the form: # Do not use XXXX, ISO C 90 implies YYYY # Do not use XXXX, instead use YYYY''. @@ -564,7 +586,7 @@ Function name starts lower case but has editCase_full_line = $0 } -# Only function implemenation should be on first column +# Only function implementation should be on first column BEGIN { doc["function call in first column"] = "\ Function name in first column should be restricted to function implementation" category["function call in first column"] = ari_code @@ -676,15 +698,16 @@ FNR == 1 { } } -BEGIN { doc["inline"] = "\ -Do not use the inline attribute; \ -since the compiler generally ignores this, better algorithm selection \ -is needed to improved performance" - category["inline"] = ari_code -} -/(^|[^_[:alnum:]])inline([^_[:alnum:]]|$)/ { - fail("inline") -} +# Commented out, but left inside sources, just in case. +# BEGIN { doc["inline"] = "\ +# Do not use the inline attribute; \ +# since the compiler generally ignores this, better algorithm selection \ +# is needed to improved performance" +# category["inline"] = ari_code +# } +# /(^|[^_[:alnum:]])inline([^_[:alnum:]]|$)/ { +# fail("inline") +# } # This test is obsolete as this type # has been deprecated and finally suppressed from GDB sources Seulement dans ../../ss: gdb_ari.sh~ Seulement dans ../../ss: gdb_copyright.sh Seulement dans ../../ss: gdb_find.log diff -b -u -p ../../ss/gdb_find.sh ./contrib/ari/gdb_find.sh --- ../../ss/gdb_find.sh 2011-03-21 23:52:35.465984900 +0100 +++ ./contrib/ari/gdb_find.sh 2012-05-26 13:47:46.183454200 +0200 @@ -1,5 +1,31 @@ #!/bin/sh +# GDB script to create list of files to check using gdb_ari.sh. +# +# Copyright (C) 2003-2012 Free Software Foundation, Inc. +# +# This file is part of GDB. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Make certain that the script is not running in an internationalized +# environment. + +LANG=C ; export LANG +LC_ALL=C ; export LC_ALL + + # A find that prunes files that GDB users shouldn't be interested in. # Use sort to order files alphabetically. Only in ./contrib/ari: update-web-ari.sh Only in ../../ss: update-web-cvs-ari This is because I choose to add a .sh suffix to update-web-ari script. $ diff -b -u -p ../../ss/update-web-ari ./contrib/ari/update-web-ari.sh --- ../../ss/update-web-ari 2011-03-15 17:38:23.893984500 +0100 +++ ./contrib/ari/update-web-ari.sh 2012-05-26 13:47:46.199054300 +0200 @@ -1,10 +1,25 @@ #!/bin/sh -x -# TODO: setjmp.h, setjmp and longjmp. - +# GDB script to create GDB ARI web page. +# +# Copyright (C) 2001-2012 Free Software Foundation, Inc. +# +# This file is part of GDB. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. -PATH=/bin:/usr/bin:/usr/local/bin:$HOME/bin -export PATH +# TODO: setjmp.h, setjmp and longjmp. # Direct stderr into stdout but still hang onto stderr (/dev/fd/3) exec 3>&2 2>&1 @@ -18,7 +33,7 @@ ECHO () # Really mindless usage if test $# -ne 4 then - echo "Usage: $0 <snapshot> <tmpdir> <destdir> <project>" 1>&2 + echo "Usage: $0 <snapshot/sourcedir> <tmpdir> <destdir> <project>" 1>&2 exit 1 fi snapshot=$1 ; shift @@ -26,6 +41,13 @@ tmpdir=$1 ; shift wwwdir=$1 ; shift project=$1 ; shift +# Try to create destination directory if it doesn't exist yet +if [ ! -d ${wwwdir} ] +then + mkdir -p ${wwwdir} +fi + +# Fail if destination directory doesn't exist or is not writable if [ ! -w ${wwwdir} -o ! -d ${wwwdir} ] then echo ERROR: Can not write to directory ${wwwdir} >&2 @@ -56,7 +78,6 @@ check_werror_p=true update_doc_p=true update_web_p=true - if awk --version 2>&1 </dev/null | grep -i gnu > /dev/null then AWK=awk @@ -72,14 +93,25 @@ then fi -# unpack the tar-ball -if ${unpack_source_p} -then +# If the first parameter is a directory, +#we just use it as the extracted source +if [ -d ${snapshot} ] +then + module=${project} + srcdir=${snapshot} + aridir=${srcdir}/${module}/ari + unpack_source_p=false + delete_source_p=false + version_in=${srcdir}/${module}/version.in +else + # unpack the tar-ball + if ${unpack_source_p} + then # Was it previously unpacked? if ${delete_source_p} || test ! -d ${tmpdir}/${module}* then /bin/rm -rf "${tmpdir}" - /bin/mkdir ${tmpdir} + /bin/mkdir -p ${tmpdir} if [ ! -d ${tmpdir} ] then echo "Problem creating work directory" @@ -93,12 +125,16 @@ then * ) ECHO Bad file ${snapshot} ; exit 1 ;; esac | tar xf - fi + fi + + module=`basename ${snapshot}` + module=`basename ${module} .bz2` + module=`basename ${module} .tar` + srcdir=`echo ${tmpdir}/${module}*` + aridir=${HOME}/ss + version_in=${srcdir}/gdb/version.in fi -module=`basename ${snapshot}` -module=`basename ${module} .bz2` -module=`basename ${module} .tar` -srcdir=`echo ${tmpdir}/${module}*` -version_in=${srcdir}/gdb/version.in + if [ ! -r ${version_in} ] then echo ERROR: missing version file 1>&2 @@ -140,9 +176,9 @@ fi if ${check_indent_p} && test -d "${srcdir}" then printf "Analizing file indentation:" 1>&2 - ( cd "${srcdir}" && /bin/sh $HOME/ss/gdb_find.sh ${project} | while read f + ( cd "${srcdir}" && /bin/sh ${aridir}/gdb_find.sh ${project} | while read f do - if /bin/sh $HOME/ss/gdb_indent.sh < ${f} 2>/dev/null | cmp -s - ${f} + if /bin/sh ${aridir}/gdb_indent.sh < ${f} 2>/dev/null | cmp -s - ${f} then : else @@ -173,8 +209,8 @@ then node=`uname -n` echo "`date`: Using source lines ${srcf}" 1>&2 echo "`date`: Checking source code" 1>&2 - ( cd "${srcdir}" && /bin/sh $HOME/ss/gdb_find.sh "${project}" | \ - xargs /bin/sh $HOME/ss/gdb_ari.sh -Werror -Wall --print-idx --src=${srcf} + ( cd "${srcdir}" && /bin/sh ${aridir}/gdb_find.sh "${project}" | \ + xargs /bin/sh ${aridir}/gdb_ari.sh -Werror -Wall --print-idx --src=${srcf} ) > ${bugf} # Remove things we are not interested in to signal by email # gdbarch changes are not important here @@ -213,24 +249,6 @@ then email_suffix="`date`" fi - if [ "${node}" = "sourceware.org" ]; then - warning_email=gdb-patches@sourceware.org - else - warning_email=muller@sourceware.org - fi - - # Check if ${diff} is not empty - if [ -s ${diff} ]; then - # Send an email to muller@sourceware.org - mutt -s "New ARI warning ${email_suffix}" \ - ${warning_email} < ${wwwdir}/mail-message - else - if [ -s ${wwwdir}/${mail-message} ]; then - # Send an email to muller@sourceware.org - mutt -s "ARI warning list change ${email_suffix}" \ - muller@sourceware.org < ${wwwdir}/mail-message - fi - fi fi @@ -363,7 +381,7 @@ then cd ${wwwdir} rm -f ari.doc ari.idx ari.doc.bug # Generate an extra file containing all the bugs that the ARI can detect. - /bin/sh $HOME/ss/gdb_ari.sh -Werror -Wall --print-idx --print-doc >> ari.doc.bug + /bin/sh ${aridir}/gdb_ari.sh -Werror -Wall --print-idx --print-doc >> ari.doc.bug cat ari.*.bug | $AWK > ari.idx ' BEGIN { FS=": *" @@ -701,7 +719,7 @@ END { # Make the scripts available -cp $HOME/ss/gdb_*.sh ${wwwdir} +cp ${aridir}/gdb_*.sh ${wwwdir} # Compute the ARI index - ratio of zero vs non-zero problems. indexes=`awk '
Attachment:
ari.patch
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |