X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=binutils%2Ftestsuite%2Flib%2Fbinutils-common.exp;h=b1ede4cdf60607c09b62862e0e280565023a5acc;hb=506b86a4f5fe2aff90e62940a07c9e275d406cd4;hp=7de7d6796a5c4107cef6b28e57f18d4d56ca71e6;hpb=be570f06848d262853de218e0b24245c93cb402b;p=deliverable%2Fbinutils-gdb.git diff --git a/binutils/testsuite/lib/binutils-common.exp b/binutils/testsuite/lib/binutils-common.exp index 7de7d6796a..b1ede4cdf6 100644 --- a/binutils/testsuite/lib/binutils-common.exp +++ b/binutils/testsuite/lib/binutils-common.exp @@ -111,15 +111,16 @@ proc is_elf64 { binary_file } { global READELF global READELFFLAGS + set tmpfile [file dirname $binary_file]/readelf.out set readelf_size "" - catch "exec $READELF $READELFFLAGS -h $binary_file > readelf.out" got + catch "exec $READELF $READELFFLAGS -h $binary_file > $tmpfile" got if ![string match "" $got] then { return 0 } if { ![regexp "\n\[ \]*Class:\[ \]*ELF(\[0-9\]+)\n" \ - [file_contents readelf.out] nil readelf_size] } { + [file_contents $tmpfile] nil readelf_size] } { return 0 } @@ -130,6 +131,26 @@ proc is_elf64 { binary_file } { return 0 } +# 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. #