+# True if the object format is known to use RELA relocations.
+#
+proc is_rela { binary_file } {
+ global READELF
+ global READELFFLAGS
+
+ set tmpfile [file dirname $binary_file]/readelf.out
+ catch "exec $READELF $READELFFLAGS -S $binary_file > $tmpfile" got
+
+ if ![string match "" $got] then {
+ return 0
+ }
+
+ if { ![regexp "RELA" [file_contents $tmpfile]] } {
+ return 0
+ }
+
+ return 1
+}
+
+# True if the target matches TARGET, specified as a TCL procedure if
+# in square brackets or as machine triplet otherwise.
+#
+proc match_target { target } {
+ if [string match {\[*\]} $target] {
+ return $target
+ } else {
+ return [istarget $target]
+ }
+}
+