Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Paul Gilliam <pgilliam@us.ibm.com>
To: gdb-patches@sources.redhat.com
Cc: Wu Zhou <zhouwu@cn.ibm.com>, Daniel Jacobowitz <drow@false.org>
Subject: Re: [patch] update gdb.base/shreloc.exp to use new shared library infrastructure
Date: Fri, 29 Apr 2005 23:15:00 -0000	[thread overview]
Message-ID: <200504291617.53756.pgilliam@us.ibm.com> (raw)
In-Reply-To: <20050427155733.GB8399@nevyn.them.org>

On Wednesday 27 April 2005 08:57, Daniel Jacobowitz wrote:
> On Tue, Apr 19, 2005 at 04:31:06PM -0800, Paul Gilliam wrote:
> > On Thursday 14 April 2005 12:23, Daniel Jacobowitz wrote:
> > > On Wed, Apr 13, 2005 at 09:13:36AM -0800, Paul Gilliam wrote:
> > > > This patch updates gdb.base/shreloc.exp to use the new shared library infrastructure in
> > > > lib/gdb.exp.  All the stuff that has been cut from shlib-call.exp is now part of 'gdb-compile'
> > > > or 'gdb-compile-shlib' (new) in lib/gdb.exp.
> > > > 
> > > > This patch depends on the shared infrastructure patch:
> > > >         http://sources.redhat.com/ml/gdb-patches/2005-04/msg00096.html
> > > 
> > > Waitasec...
> > > 
> > > > ! set additional_flags "additional_flags=-shared"
> > > > ! 
> > > > ! if {([istarget "*pc-cygwin"] || [istarget "*pc-mingw32"]) } {
> > > > !     set additional_flags "${additional_flags} -Wl,--image-base,0x04000000"
> > > >   }
> > > 
> > > The common bits don't have support for cygwin/mingw32 DLLs.  So just
> > > removing this isn't right.
> > > 
> > > > !     set lib_opts  [list debug additional_flags=-qstatsym additional_flags=-qdbxextra]
> > > 
> > > Remind me what this option means?
> > > 
> > > 
> > Here is the next rev of the patch:
> > 
> > 2005-04-19  Paul Gilliam  <pgilliam@us.ibm.com>
> > 
> >         * gdb.base/shreloc.exp: Change to use new shared library infrastructure
> >         and update copyright date.
> 
> The changelog doesn't mention the xlc changes; it should.  The xlc
> changes need comments explaining both what the options do, and (the bit
> I haven't seen yet) why they are necessary for this test case.  You
> still removed the cygwin bits.
> 
> 

Here is the latest version of this patch.  I think I got what you are asking for except for comments explaining why
the xlc options are necessary for this test case.

My team-mate, Wu Zhou (who now has his own copyright assignment on-file with the FSF) could shed some light on this.

-=# Paul #=-

2005-04-29  Paul Gilliam  <pgilliam@us.ibm.com>

        * gdb.base/shreloc.exp: Change to use new shared library
        infrastructure and allow use of IBM's xlc compiler.

Index: gdb.base/shreloc.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/shreloc.exp,v
retrieving revision 1.2
diff -c -3 -p -r1.2 shreloc.exp
*** gdb.base/shreloc.exp	11 Nov 2003 17:58:28 -0000	1.2
--- gdb.base/shreloc.exp	29 Apr 2005 22:55:44 -0000
***************
*** 1,4 ****
! # Copyright (C) 2003 Free Software Foundation, Inc.
  #
  # 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
--- 1,4 ----
! # Copyright (C) 2003, 2005 Free Software Foundation, Inc.
  #
  # 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
***************
*** 15,23 ****
  # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  #
  
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
- 
  # Tests for shared object file relocation. If two shared objects have
  # the same load address (actually, overlapping load spaces), one of
  # them gets relocated at load-time. Check that gdb gets the right
--- 15,20 ----
*************** set prms_id 0
*** 40,71 ****
  set bug_id 0
  
  set workdir ${objdir}/${subdir}
  
! foreach module [list "shreloc" "shreloc1" "shreloc2"] {
!     if {[gdb_compile "${srcdir}/${subdir}/${module}.c" "${workdir}/${module}.o" object {debug}] != ""} {
! 	untested "Couldn't compile ${module}.c"
! 	return -1
!     }
  }
  
! set additional_flags "additional_flags=-shared"
  
  if {([istarget "*pc-cygwin"] || [istarget "*pc-mingw32"]) } {
!     set additional_flags "${additional_flags} -Wl,--image-base,0x04000000"
  }
  
! foreach module [list "shreloc1" "shreloc2"] {
!     if {[gdb_compile "${workdir}/${module}.o" "${workdir}/${module}.dll" executable [list debug $additional_flags]] != ""} {
! 	untested "Couldn't link ${module}.dll"
! 	return -1
!     }
  }
  
! if {[gdb_compile [list "${workdir}/shreloc.o" "${workdir}/shreloc1.dll" "${workdir}/shreloc2.dll"] "${workdir}/shreloc" executable debug] != ""} {
!     untested "Couldn't link shreloc executable"
      return -1
  }
  
  gdb_exit
  gdb_start
  gdb_reinitialize_dir $srcdir/$subdir
--- 37,89 ----
  set bug_id 0
  
  set workdir ${objdir}/${subdir}
+ set testfile "shreloc"
+ set libfile1 "shreloc1"
+ set libfile2 "shreloc2"
+ set srcfile $srcdir/$subdir/$testfile.c
+ set lib1src $srcdir/$subdir/$libfile1.c
+ set lib2src $srcdir/$subdir/$libfile2.c
+ set binfile $objdir/$subdir/$testfile
+ set lib1_sl $objdir/$subdir/$libfile1.sl
+ set lib2_sl $objdir/$subdir/$libfile2.sl
  
! if [get_compiler_info ${binfile}] {
!     return -1
  }
  
! set lib_opts "debug"
! set exec_opts [list debug shlib=$lib1_sl shlib=$lib2_sl]
  
  if {([istarget "*pc-cygwin"] || [istarget "*pc-mingw32"]) } {
!     lappend lib_opts "additional_flags=-Wl,--image-base,0x04000000"
  }
  
! if [test_compiler_info "xlc-*"] {
! 
!     # IBM's xlc compiler doesn't add static variables to the symtab by default;
!     # "-qstatsym" causes them to be added.
! 
!     lappend lib_opts "additional_flags=-qstatsym"
! 
!     # IBM's xlc compiler  will optimize un-used varialbes out of the symtab.
!     # "-qdbxextra" disable this default behavior.
! 
!     lappend lib_opts "additional_flags=-qdbxextra"
  }
  
! if { [gdb_compile_shlib $lib1src $lib1_sl $lib_opts] != ""} {
!     untested "Could not build $lib1_sl."
!     return -1
! } elseif { [gdb_compile_shlib $lib2src $lib2_sl $lib_opts] != ""} {
!     untested "Could not build $lib1_s2."
!     return -1
! } elseif { [gdb_compile $srcfile $binfile executable $exec_opts] != ""} {
!     untested "Could not build $binfile."
      return -1
  }
  
+ # Start with a fresh gdb.
+ 
  gdb_exit
  gdb_start
  gdb_reinitialize_dir $srcdir/$subdir


  reply	other threads:[~2005-04-29 23:15 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-04-13 17:14 Paul Gilliam
2005-04-14 19:23 ` Daniel Jacobowitz
2005-04-15 19:41   ` Paul Gilliam
2005-04-20  0:31   ` Paul Gilliam
2005-04-27 15:58     ` Daniel Jacobowitz
2005-04-29 23:15       ` Paul Gilliam [this message]
2005-04-30  9:06         ` Wu Zhou
2005-04-30 18:33           ` Daniel Jacobowitz
2005-05-01  4:19 Wu Zhou
2005-05-01  4:28 ` Daniel Jacobowitz
2005-05-01  4:36 Wu Zhou
2005-05-15 19:44 ` Daniel Jacobowitz
2005-05-01  4:45 Wu Zhou
2005-05-09  6:28 Wu Zhou
2005-05-17 13:32 Wu Zhou
2005-05-17 14:11 ` Daniel Jacobowitz
2005-05-17 15:15 Wu Zhou
2005-05-18  1:50 ` Daniel Jacobowitz
2005-05-18  3:20 Wu Zhou

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200504291617.53756.pgilliam@us.ibm.com \
    --to=pgilliam@us.ibm.com \
    --cc=drow@false.org \
    --cc=gdb-patches@sources.redhat.com \
    --cc=zhouwu@cn.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox