From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12530 invoked by alias); 27 Sep 2013 18:01:55 -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 12520 invoked by uid 89); 27 Sep 2013 18:01:55 -0000 Received: from sibelius.xs4all.nl (HELO glazunov.sibelius.xs4all.nl) (83.163.83.176) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Fri, 27 Sep 2013 18:01:55 +0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.7 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_40,SPAM_SUBJECT autolearn=no version=3.3.2 X-HELO: glazunov.sibelius.xs4all.nl Received: from glazunov.sibelius.xs4all.nl (kettenis@localhost [127.0.0.1]) by glazunov.sibelius.xs4all.nl (8.14.5/8.14.3) with ESMTP id r8RI1QQI011772; Fri, 27 Sep 2013 20:01:26 +0200 (CEST) Received: (from kettenis@localhost) by glazunov.sibelius.xs4all.nl (8.14.5/8.14.3/Submit) id r8RI1Qho003033; Fri, 27 Sep 2013 20:01:26 +0200 (CEST) Date: Fri, 27 Sep 2013 18:01:00 -0000 Message-Id: <201309271801.r8RI1Qho003033@glazunov.sibelius.xs4all.nl> From: Mark Kettenis To: nicolas.blanc@intel.com CC: gdb-patches@sourceware.org In-reply-to: <1380290903-28046-1-git-send-email-nicolas.blanc@intel.com> (message from Nicolas Blanc on Fri, 27 Sep 2013 16:08:23 +0200) Subject: Re: [PATCH] Function is_elf_target. References: <1380290903-28046-1-git-send-email-nicolas.blanc@intel.com> X-SW-Source: 2013-09/txt/msg00966.txt.bz2 > From: Nicolas Blanc > Date: Fri, 27 Sep 2013 16:08:23 +0200 > > 2013-27-09 Nicolas Blanc > > gdb/testsuite > * lib/gdb.exp (is_elf_target): New function. > > Signed-off-by: Nicolas Blanc > --- > > Hi Mark, > > I am sending this patch in response to . > > Some reviewers prefer a white list whereas others prefer a black list. So it looks like the right approach is > to compile a file and check if it is ELF. > > Please let me know if this change would be acceptable to you. That's even better! > gdb/testsuite/lib/gdb.exp | 39 +++++++++++++++++++++++++++++++++++++++ > 1 files changed, 39 insertions(+), 0 deletions(-) > > diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp > index 5e3331a..df83634 100644 > --- a/gdb/testsuite/lib/gdb.exp > +++ b/gdb/testsuite/lib/gdb.exp > @@ -1796,6 +1796,45 @@ proc supports_reverse {} { > return 0 > } > > +# Return 1 if target is ELF. > +gdb_caching_proc is_elf_target { > + set me "is_elf_target" > + > + set src [standard_temp_file is_elf_target[pid].c] > + set obj [standard_temp_file is_elf_target[pid].o] > + > + set fp_src [open $src "w"] > + puts $fp_src "int dummy () {return 0;}" > + close $fp_src > + > + verbose "$me: compiling testfile $src" 2 > + set lines [gdb_compile $src $obj object {quiet}] > + > + file delete $src > + > + if ![string match "" $lines] then { > + verbose "$me: testfile compilation failed, returning 0" 2 > + return 0 > + } > + > + set fp_obj [open $obj "r"] > + fconfigure $fp_obj -translation binary > + set data [read $fp_obj] > + close $fp_obj > + > + file delete $obj > + > + set ELFMAG "\u007FELF" > + > + if {[string compare -length 4 $data $ELFMAG] != 0} { > + verbose "$me: returning 0" 2 > + return 0 > + } > + > + verbose "$me: returning 1" 2 > + return 1 > +} > + > # Return 1 if target is ILP32. > # This cannot be decided simply from looking at the target string, > # as it might depend on externally passed compiler options like -m64. > -- > 1.7.6.5 > >