Browse Source

* baseboards/multi-sim.exp (get_library_dirlist): New.

(dynamic_linker_flag): Use get_library_dirlist to find dynamic
	linker.
	(rpath_flags): Use get_library_dirlist to set rpath.

Signed-off-by: Ben Elliston <bje@gnu.org>
dejagnu-1.6
Steve Ellcey 11 years ago
committed by Ben Elliston
parent
commit
4b6f509bec
  1. 7
      ChangeLog
  2. 27
      baseboards/multi-sim.exp

7
ChangeLog

@ -1,3 +1,10 @@
2015-05-14 Steve Ellcey <sellcey@imgtec.com>
* baseboards/multi-sim.exp (get_library_dirlist): New.
(dynamic_linker_flag): Use get_library_dirlist to find dynamic
linker.
(rpath_flags): Use get_library_dirlist to set rpath.
2015-05-12 Steve Ellcey <sellcey@imgtec.com>
* baseboards/generic-sim.exp: Check $DEJAGNU_SIM_OPTION.

27
baseboards/multi-sim.exp

@ -40,25 +40,37 @@ load_generic_config "sim"
# basic-sim.exp is a basic description for the standard Cygnus simulator.
load_base_board_description "basic-sim"
proc get_library_dirlist { args } {
global board
set compiler "[board_info $board compiler]"
set mflags "[board_info $board multilib_flags]"
set result [remote_exec host "$compiler $mflags --print-search-dirs"]
set regresult [regexp {(libraries: =)(\S*)} $result dummy1 dummy2 libdirlist]
if {$regresult == 0} {
perror "Could not find compilers library search path."
}
return [split $libdirlist :]
}
proc dynamic_linker_flag { args } {
global board
set compiler "[board_info $board compiler]"
set mflags "[board_info $board multilib_flags]"
set result [remote_exec host "$compiler $mflags --print-sysroot"]
set output [lindex $result 1]
set toutput [string trimright $output]
set dynlinkerdir "$toutput/usr/lib"
set dynlinker [glob -directory $dynlinkerdir ld-*.so]
foreach i [get_library_dirlist] {
set dynlinker [glob -nocomplain -directory $i ld-*.so]
if { $dynlinker != "" } break
}
verbose "dynamic_linker_flag: -Wl,--dynamic-linker=$dynlinker"
return "-Wl,--dynamic-linker=$dynlinker"
}
proc rpath_flags { args } {
global board
set compiler "[board_info $board compiler]"
set mflags "[board_info $board multilib_flags] [libgloss_include_flags] [newlib_include_flags] [libgloss_link_flags] [libgloss_link_flags]"
set rpathflags ""
set gccpath [get_multilibs]
foreach i {libgcc_s.so libstdc++.so libgfortran.so libatomic.so libc.so} {
foreach i {libgcc_s.so libstdc++.so libgfortran.so libatomic.so} {
set result [remote_exec host "$compiler $mflags --print-file-name=$i"]
set output [lindex $result 1]
set rpathdir [file dirname $output]
@ -86,6 +98,9 @@ proc rpath_flags { args } {
set rpathflags "$rpathflags -Wl,-rpath=$rpathdir"
}
}
foreach i [get_library_dirlist] {
set rpathflags "$rpathflags -Wl,-rpath=$i"
}
verbose "rpath_flags: $rpathflags"
return $rpathflags
}

Loading…
Cancel
Save