From: Wu Zhou <woodzltc@cn.ibm.com>
To: Daniel Jacobowitz <drow@false.org>
Cc: pgilliam@us.ibm.com, gdb-patches@sources.redhat.com
Subject: Re: [patch] update gdb.base/shreloc.exp to use new shared library infrastructure
Date: Tue, 17 May 2005 13:32:00 -0000 [thread overview]
Message-ID: <1116325202.4289c5520d703@imap.linux.ibm.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 6655 bytes --]
Quoting Daniel Jacobowitz <drow@false.org>:
> > Here goes the revised patch. Wishing that it will not get mangled any
> > more. Please review and comments.
> >
> > 2005-05-01 Paul Gilliam <pgilliam@us.ibm.com>
> > Wu Zhou <woodzltc@cn.ibm.com>
> >
> > * gdb.base/shreloc.exp: Use gdb_compile_shlib. Add support for
> > IBM's xlc compiler.
> > * gdb.base/shreloc1.c: Refer variable static_var_1 in fn_1.
> > * gdb.base/shreloc2.c: Refer variable static_var_2 in fn_2.
>
> Sorry about the delay. This patch is OK, but please change two things
> for me before you commit it: the correct term here is "reference"
> rather than "refer", and the ChangeLog entry should show where the
> changes take place. Like so:
>
> * gdb.base/shreloc.exp: Use gdb_compile_shlib. Add support for
> IBM's xlc compiler.
> * gdb.base/shreloc1.c (fn_1): Reference variable static_var_1.
> * gdb.base/shreloc2.c (fn_2): Reference variable static_var_2.
>
> So with that changelog, and "refered" changed to "referenced" in the
> patch, it is OK to commit.
>
Hi Daniel,
Thanks for pointing out these errors for me. Followed is the re-worked
patch.
2005-05-17 Paul Gilliam <pgilliam@us.ibm.com>
Wu Zhou <woodzltc@cn.ibm.com>
* gdb.base/shreloc.exp: Use gdb_compile_shlib. Add support for
IBM's xlc compiler.
* gdb.base/shreloc1.c (fn_1): Reference variable static_var_1.
* gdb.base/shreloc2.c (fn_2): Reference variable static_var_2.
Index: gdb.base/shreloc.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/shreloc.exp,v
retrieving revision 1.2
diff -c -p -r1.2 shreloc.exp
*** gdb.base/shreloc.exp 11 Nov 2003 17:58:28 -0000 1.2
--- gdb.base/shreloc.exp 17 May 2005 10:01:35 -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,86 ----
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 does not add static variables to the ELF symbol
! # table by default. We need this option to make the variables show
! # up in "maint print msymbols".
!
! lappend lib_opts "additional_flags=-qstatsym"
!
}
! 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
Index: gdb.base/shreloc1.c
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/shreloc1.c,v
retrieving revision 1.1
diff -c -p -r1.1 shreloc1.c
*** gdb.base/shreloc1.c 9 Jun 2003 21:23:53 -0000 1.1
--- gdb.base/shreloc1.c 17 May 2005 10:01:35 -0000
***************
*** 6,10 ****
static int static_var_1;
! ATTRIBUTES void fn_1 (int unused) { }
ATTRIBUTES int extern_var_1 = 0;
--- 6,10 ----
static int static_var_1;
! ATTRIBUTES void fn_1 (int referenced) { static_var_1 = referenced; }
ATTRIBUTES int extern_var_1 = 0;
Index: gdb.base/shreloc2.c
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/shreloc2.c,v
retrieving revision 1.1
diff -c -p -r1.1 shreloc2.c
*** gdb.base/shreloc2.c 9 Jun 2003 21:23:53 -0000 1.1
--- gdb.base/shreloc2.c 17 May 2005 10:01:35 -0000
***************
*** 6,10 ****
static int static_var_2;
! ATTRIBUTES void fn_2 (int unused) { }
ATTRIBUTES int extern_var_2 = 0;
--- 6,10 ----
static int static_var_2;
! ATTRIBUTES void fn_2 (int referenced) { static_var_2 = referenced; }
ATTRIBUTES int extern_var_2 = 0;
===========================End of the patch=========================
Cheers
- Wu Zhou
[-- Attachment #2: shreloc_v3.patch --]
[-- Type: application/octet-stream, Size: 5004 bytes --]
Index: gdb.base/shreloc.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/shreloc.exp,v
retrieving revision 1.2
diff -c -p -r1.2 shreloc.exp
*** gdb.base/shreloc.exp 11 Nov 2003 17:58:28 -0000 1.2
--- gdb.base/shreloc.exp 17 May 2005 10:01:35 -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,86 ----
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 does not add static variables to the ELF symbol
! # table by default. We need this option to make the variables show
! # up in "maint print msymbols".
!
! lappend lib_opts "additional_flags=-qstatsym"
!
}
! 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
Index: gdb.base/shreloc1.c
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/shreloc1.c,v
retrieving revision 1.1
diff -c -p -r1.1 shreloc1.c
*** gdb.base/shreloc1.c 9 Jun 2003 21:23:53 -0000 1.1
--- gdb.base/shreloc1.c 17 May 2005 10:01:35 -0000
***************
*** 6,10 ****
static int static_var_1;
! ATTRIBUTES void fn_1 (int unused) { }
ATTRIBUTES int extern_var_1 = 0;
--- 6,10 ----
static int static_var_1;
! ATTRIBUTES void fn_1 (int referenced) { static_var_1 = referenced; }
ATTRIBUTES int extern_var_1 = 0;
Index: gdb.base/shreloc2.c
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/shreloc2.c,v
retrieving revision 1.1
diff -c -p -r1.1 shreloc2.c
*** gdb.base/shreloc2.c 9 Jun 2003 21:23:53 -0000 1.1
--- gdb.base/shreloc2.c 17 May 2005 10:01:35 -0000
***************
*** 6,10 ****
static int static_var_2;
! ATTRIBUTES void fn_2 (int unused) { }
ATTRIBUTES int extern_var_2 = 0;
--- 6,10 ----
static int static_var_2;
! ATTRIBUTES void fn_2 (int referenced) { static_var_2 = referenced; }
ATTRIBUTES int extern_var_2 = 0;
next reply other threads:[~2005-05-17 10:21 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-05-17 13:32 Wu Zhou [this message]
2005-05-17 14:11 ` Daniel Jacobowitz
-- strict thread matches above, loose matches on Subject: below --
2005-05-18 3:20 Wu Zhou
2005-05-17 15:15 Wu Zhou
2005-05-18 1:50 ` Daniel Jacobowitz
2005-05-09 6:28 Wu Zhou
2005-05-01 4:45 Wu Zhou
2005-05-01 4:36 Wu Zhou
2005-05-15 19:44 ` Daniel Jacobowitz
2005-05-01 4:19 Wu Zhou
2005-05-01 4:28 ` Daniel Jacobowitz
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
2005-04-30 9:06 ` Wu Zhou
2005-04-30 18:33 ` Daniel Jacobowitz
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=1116325202.4289c5520d703@imap.linux.ibm.com \
--to=woodzltc@cn.ibm.com \
--cc=drow@false.org \
--cc=gdb-patches@sources.redhat.com \
--cc=pgilliam@us.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