* [PATCH,testsuite] fix remote-host testing for tests using shared libraries
@ 2009-11-12 15:44 Nathan Froyd
2009-11-12 15:55 ` Daniel Jacobowitz
0 siblings, 1 reply; 2+ messages in thread
From: Nathan Froyd @ 2009-11-12 15:44 UTC (permalink / raw)
To: gdb-patches
The patch below fixes various remote-host failures for tests that use
shared libraries. In normal testing, we link shared libraries using
absolute paths, so it's not a problem to find the libraries at runtime.
However, in remote-host testing, shared libraries are copied to the
remote host and linked against using relative paths. Therefore, we need
to specify -rpath to ensure that the library is found at runtime. The
patch just moves a bit of logic around and adds a remote_host check.
Tested with cross to powerpc-linux-gnu on mingw32 host. OK to commit?
-Nathan
* lib/gdb.exp (gdb_compile): Also set rpath for shlib=, on a
remote host.
Index: lib/gdb.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/lib/gdb.exp,v
retrieving revision 1.126
diff -u -u -r1.126 gdb.exp
--- lib/gdb.exp 10 Nov 2009 20:54:55 -0000 1.126
+++ lib/gdb.exp 12 Nov 2009 15:35:42 -0000
@@ -1734,6 +1734,7 @@
# "shlib=librarypath" in OPTIONS.
set new_options ""
set shlib_found 0
+ set shlib_load 0
foreach opt $options {
if [regexp {^shlib=(.*)} $opt dummy_var shlib_name] {
if [test_compiler_info "xlc-*"] {
@@ -1755,22 +1756,33 @@
}
}
} elseif { $opt == "shlib_load" } {
- if { ([istarget "*-*-mingw*"]
- || [istarget *-*-cygwin*]
- || [istarget *-*-pe*]
- || [istarget arm*-*-symbianelf*]
- || [istarget hppa*-*-hpux*])} {
- # Do not need anything.
- } elseif { [istarget *-*-openbsd*] } {
- lappend new_options "additional_flags=-Wl,-rpath,${outdir}"
- } else {
- lappend new_options "libs=-ldl"
- lappend new_options "additional_flags=-Wl,-rpath,\\\$ORIGIN"
- }
+ set shlib_load 1
} else {
lappend new_options $opt
}
}
+
+ # We typically link to shared libraries using an absolute path, and
+ # that's how they are found at runtime. If we are going to
+ # dynamically load one by basename, we must specify rpath. If we
+ # are using a remote host, DejaGNU will link to the shared library
+ # using a relative path, so again we must specify an rpath.
+ if { $shlib_load || ($shlib_found && [is_remote host]) } {
+ if { ([istarget "*-*-mingw*"]
+ || [istarget *-*-cygwin*]
+ || [istarget *-*-pe*]
+ || [istarget arm*-*-symbianelf*]
+ || [istarget hppa*-*-hpux*])} {
+ # Do not need anything.
+ } elseif { [istarget *-*-openbsd*] } {
+ lappend new_options "additional_flags=-Wl,-rpath,${outdir}"
+ } else {
+ if { $shlib_load } {
+ lappend new_options "libs=-ldl"
+ }
+ lappend new_options "additional_flags=-Wl,-rpath,\\\$ORIGIN"
+ }
+ }
set options $new_options
if [target_info exists gdb_stub] {
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: [PATCH,testsuite] fix remote-host testing for tests using shared libraries
2009-11-12 15:44 [PATCH,testsuite] fix remote-host testing for tests using shared libraries Nathan Froyd
@ 2009-11-12 15:55 ` Daniel Jacobowitz
0 siblings, 0 replies; 2+ messages in thread
From: Daniel Jacobowitz @ 2009-11-12 15:55 UTC (permalink / raw)
To: Nathan Froyd; +Cc: gdb-patches
On Thu, Nov 12, 2009 at 07:44:30AM -0800, Nathan Froyd wrote:
> The patch below fixes various remote-host failures for tests that use
> shared libraries. In normal testing, we link shared libraries using
> absolute paths, so it's not a problem to find the libraries at runtime.
> However, in remote-host testing, shared libraries are copied to the
> remote host and linked against using relative paths. Therefore, we need
> to specify -rpath to ensure that the library is found at runtime. The
> patch just moves a bit of logic around and adds a remote_host check.
>
> Tested with cross to powerpc-linux-gnu on mingw32 host. OK to commit?
OK.
--
Daniel Jacobowitz
CodeSourcery
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-11-12 15:55 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-11-12 15:44 [PATCH,testsuite] fix remote-host testing for tests using shared libraries Nathan Froyd
2009-11-12 15:55 ` Daniel Jacobowitz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox