# Relocation test.
# This test is special because it exercises the linker's 

proc ld_test { objects ldflags dest test } {
    set ld_output [target_link $objects $dest $ldflags]
    if [string match "" $ld_output] then { pass $test } else { fail $test }
}


proc objdump_test { exec flags dest test } {
    set objcopy [find_binutils_prog objdump]
    verbose -log "$objcopy $flags $exec > $dest"
    catch "exec $objcopy $flags $exec > $dest" objdump_output
    if [string match "" $objdump_output] then { pass $test } else { fail $test }
}

proc regexp_test { file1 file2 test } {
    if [regexp_diff $file1 $file2] then { fail $test } else { pass $test }
}


global srcdir subdir
if [istarget mt-*] {
    gas_test "relocs1.s" {-o relocs1.o} {} {assembling relocs1}

    #    gas_test "relocs2.s" {-o relocs2.o} {} {assembling relocs2}
    #    ld_test {relocs1.o relocs2.o} {} {relocs.x} {linking relocs.x}
    #    objdump_test {relocs.x} {-ds} {relocs.dump} {disassembling relocs.x}
    #    regexp_test {relocs.dump} "$srcdir/$subdir/relocs.d" {matching disassembly}

    gas_test "relocs2.s" {-o relocs2.o} {} {assembling relocs2}
    ld_test {relocs1.o relocs2.o} {} {relocs.x} {linking relocs.x}
    objdump_test {relocs.x} {-ds} {relocs.dump} {disassembling relocs.x}
    regexp_test {relocs.dump} "$srcdir/$subdir/relocs.d" {matching disassembly}
}
