+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.
# 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]
set rpathflags "$rpathflags -Wl,-rpath=$rpathdir"
}
}
+ foreach i [get_library_dirlist] {
+ set rpathflags "$rpathflags -Wl,-rpath=$i"
+ }
verbose "rpath_flags: $rpathflags"
return $rpathflags
}