From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 106938 invoked by alias); 29 Jun 2017 19:40:38 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 106918 invoked by uid 89); 29 Jun 2017 19:40:37 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.1 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_HELO_PASS,SPF_SOFTFAIL autolearn=ham version=3.3.2 spammy= X-HELO: simark.ca Received: from simark.ca (HELO simark.ca) (158.69.221.121) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 29 Jun 2017 19:40:35 +0000 Received: by simark.ca (Postfix, from userid 112) id 689FA1E5E5; Thu, 29 Jun 2017 15:40:33 -0400 (EDT) Received: from simark.ca (localhost [127.0.0.1]) by simark.ca (Postfix) with ESMTP id 2ADB11E185; Thu, 29 Jun 2017 15:40:32 -0400 (EDT) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Thu, 29 Jun 2017 19:40:00 -0000 From: Simon Marchi To: Jan Kratochvil Cc: gdb-patches@sourceware.org, Victor Leschuk Subject: Re: [PATCH v3 1/5] cc-with-tweaks.sh: Use gdb-add-index.sh In-Reply-To: <149790573738.20186.9976823318110510912.stgit@host1.jankratochvil.net> References: <149790572259.20186.14601775821404892582.stgit@host1.jankratochvil.net> <149790573738.20186.9976823318110510912.stgit@host1.jankratochvil.net> Message-ID: X-Sender: simon.marchi@polymtl.ca User-Agent: Roundcube Webmail/1.3.0 X-IsSubscribed: yes X-SW-Source: 2017-06/txt/msg00798.txt.bz2 Hi Jan, On 2017-06-19 22:55, Jan Kratochvil wrote: > Hi, > > currently contrib/cc-with-tweaks.sh is calling for its -i option > objcopy itself > instead of using contrib/gdb-add-index.sh which does the same. > > With DWARF-5 .debug_names the commands are more complicated (as now > also > .debug_str needs to be modified) and so I have decided to rather reuse > contrib/gdb-add-index.sh instead of duplicating its code > in contrib/cc-with-tweaks.sh. > > The problem is when no index is produced whether > contrib/cc-with-tweaks.sh > should fail or not. As originally contrib/cc-with-tweaks.sh was more > quiet > (=successful) than contrib/gdb-add-index.sh and so after this patch the > testsuite runs with an index would "regress". I have tried to keep the > behavior unchanged. Some cases still error with: > Ada is not currently supported by the index > But some cases (such as some trivial gdb.dwarf2/ testcases with no > DWARF data > to index) produce no index while the testcases still PASS now instead > of: > -PASS: gdb.arch/i386-bp_permanent.exp: stack pointer value matches > +gdb compile failed, gdb-add-index.sh: No index was created for > /quadgdb/testsuite.unix.-m64/outputs/gdb.arch/i386-bp_permanent/i386-bp_permanent > +gdb-add-index.sh: [Was there no debuginfo? Was there already an > index?] > +UNTESTED: gdb.arch/i386-bp_permanent.exp: failed to compile > > > Jan > > > gdb/ChangeLog > 2017-05-26 Jan Kratochvil > > * contrib/cc-with-tweaks.sh (t, GDB_ADD_INDEX): New variables. > <$want_index>: Call $GDB_ADD_INDEX. > --- > gdb/contrib/cc-with-tweaks.sh | 40 > ++++++++++++++++++++++++++-------------- > 1 file changed, 26 insertions(+), 14 deletions(-) > > diff --git a/gdb/contrib/cc-with-tweaks.sh > b/gdb/contrib/cc-with-tweaks.sh > index 7d39c00..c5a8088 100755 > --- a/gdb/contrib/cc-with-tweaks.sh > +++ b/gdb/contrib/cc-with-tweaks.sh > @@ -74,6 +74,8 @@ DWP=${DWP:-dwp} > have_link=unknown > next_is_output_file=no > output_file=a.out > +t=/tmp/cc-with-tweaks.$$ > +rm -f $t > > want_index=false > want_dwz=false > @@ -93,6 +95,25 @@ while [ $# -gt 0 ]; do > shift > done > > +if [ "$want_index" = true ]; then > + if [ -z "$GDB_ADD_INDEX" ] > + then Nit: use the same style ("then" on same line or next line) for all ifs. > + if [ -f ./contrib/gdb-add-index.sh ] > + then > + GDB_ADD_INDEX="./contrib/gdb-add-index.sh" > + elif [ -f ../contrib/gdb-add-index.sh ] > + then > + GDB_ADD_INDEX="../contrib/gdb-add-index.sh" > + elif [ -f ../../contrib/gdb-add-index.sh ] > + then > + GDB_ADD_INDEX="../../contrib/gdb-add-index.sh" > + else > + echo "$myname: unable to find usable contrib/gdb-add-index.sh" >&2 > + exit 1 > + fi > + fi > +fi This strategy doesn't work for out of tree builds. Perhaps cooking up something based on $0 would be better? I see that the GDB variable is auto-detected the same way, but the gdb binary is found in the build directory, so it works for the tests, whereas gdb-add-index.sh is in the source directory. I think it would still be nice to improve how GDB is auto-detected (in another patch), because one currently can't call the cc-with-tweaks.sh script from anywhere: $ cd / && /home/emaisin/src/binutils-gdb/gdb/contrib/cc-with-tweaks.sh cc-with-tweaks.sh: unable to find usable gdb > + > for arg in "$@" > do > if [ "$next_is_output_file" = "yes" ] > @@ -152,20 +173,11 @@ if [ "$want_objcopy_compress" = true ]; then > fi > > if [ "$want_index" = true ]; then > - $GDB --batch-silent -nx -ex "set auto-load no" -ex "file > $output_file" -ex "save gdb-index $output_dir" > - rc=$? > - [ $rc != 0 ] && exit $rc > - > - # GDB might not always create an index. Cope. > - if [ -f "$index_file" ] > - then > - $OBJCOPY --add-section .gdb_index="$index_file" \ > - --set-section-flags .gdb_index=readonly \ > - "$output_file" "$output_file" > - rc=$? > - else > - rc=0 > - fi > + # Filter out these messages which would stop dejagnu testcase run: > + # echo "$myname: No index was created for $file" 1>&2 > + # echo "$myname: [Was there no debuginfo? Was there already an > index?]" 1>&2 > + GDB=$GDB $GDB_ADD_INDEX "$output_file" 2>&1|grep -v > "^${GDB_ADD_INDEX##*/}: " >&2 > + rc=${PIPESTATUS[0]} Is PIPESTATUS bash specific? If so, we should probably change the interpreter to #!/usr/bin/env bash The CC/CXX_FOR_TARGET variables in cc-with-tweaks.exp also use /bin/sh explicitly, I think it those can just be removed. Thanks, Simon