In gdb_compile we have:
...
lappend new_options "ldflags=-Wl,-rpath,\\\$ORIGIN"
...
and we could improve readability by using {} rather than "":
...
lappend new_options {ldflags=-Wl,-rpath,\$ORIGIN}
...
But rather than manually adding escapes in a string, add a new proc
escape_for_host that care of this for us, allowing us to write:
...
lappend new_options [escape_for_host {ldflags=-Wl,-rpath,$ORIGIN}]
...
Tested on x86_64-linux.
global gdb_saved_set_unbuffered_mode_obj
set gdb_saved_set_unbuffered_mode_obj ""
+# Escape STR sufficiently for use on host commandline.
+
+proc escape_for_host { str } {
+ set map {
+ {$} {\$}
+ }
+
+ return [string map $map $str]
+}
+
# Compile source files specified by SOURCE into a binary of type TYPE at path
# DEST. gdb_compile is implemented using DejaGnu's target_compile, so the type
# parameter and most options are passed directly to it.
if { $shlib_load } {
lappend new_options "libs=-ldl"
}
- lappend new_options "ldflags=-Wl,-rpath,\\\$ORIGIN"
+ lappend new_options [escape_for_host {ldflags=-Wl,-rpath,$ORIGIN}]
}
}
set options $new_options