| |
| proc ld_run { objects ldflags dest test } { |
| set ld_output [target_link $objects $dest $ldflags] |
| } |
| |
| proc readelf_run { exec flags dest test } { |
| set readelf [find_binutils_prog readelf] |
| verbose -log "$readelf $flags $exec > $dest" |
| catch "exec $readelf $flags $exec > $dest" readelf_output |
| } |
| |
| proc regexp_test { file1 file2 test } { |
| if [regexp_diff $file1 $file2] then { fail $test } else { pass $test } |
| } |
| |
| if [istarget microblaze*-*-elf] { |
| foreach file [lsort [glob -nocomplain -- $srcdir/$subdir/relax_size*.s]] { |
| set file [file rootname [file tail $file]] |
| gas_run "$file.s" "-o $file.o" "" |
| ld_run "$file.o" "-e 0 -N -relax" "$file.x" "linking $file.x" |
| readelf_run "$file.x" "-s" "$file.elf" "readelf -s $file.x" |
| regexp_test "$file.elf" "$srcdir/$subdir/$file.elf" "matching $file.elf" |
| } |
| } |