1 2 proc ld_run { objects ldflags dest test } { 3 set ld_output [target_link $objects $dest $ldflags] 4 } 5 6 proc readelf_run { exec flags dest test } { 7 set readelf [find_binutils_prog readelf] 8 verbose -log "$readelf $flags $exec > $dest" 9 catch "exec $readelf $flags $exec > $dest" readelf_output 10 } 11 12 proc regexp_test { file1 file2 test } { 13 if [regexp_diff $file1 $file2] then { fail $test } else { pass $test } 14 } 15 16 global srcdir subdir 17 if [istarget microblaze*-*-elf] { 18 foreach file [lsort [glob -nocomplain -- $srcdir/$subdir/relax_size*.s]] { 19 set file [file rootname [file tail $file]] 20 gas_run "$file.s" "-o $file.o" "" 21 ld_run "$file.o" "-e 0 -N -relax" "$file.x" "linking $file.x" 22 readelf_run "$file.x" "-s" "$file.elf" "readelf -s $file.x" 23 regexp_test "$file.elf" "$srcdir/$subdir/$file.elf" "matching $file.elf" 24 } 25 } 26