OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [binutils-2.20.1/] [gas/] [testsuite/] [gas/] [elf/] [elf.exp] - Blame information for rev 219

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 205 julius
#
2
# elf tests
3
#
4
 
5
proc run_elf_list_test { name suffix opts readelf_opts readelf_pipe } {
6
    global READELF
7
    global srcdir subdir
8
    set testname "elf $name list"
9
    set file $srcdir/$subdir/$name
10
    gas_run ${name}.s "$opts -o dump.o" ">&dump.out"
11
    if { ![string match "" $opts]
12
          && [regexp_diff "dump.out" "${file}.l"] } then {
13
        fail $testname
14
        verbose "output is [file_contents "dump.out"]" 2
15
        return
16
    }
17
    send_log "$READELF $readelf_opts dump.o $readelf_pipe > dump.out\n"
18
    set status [gas_host_run "$READELF $readelf_opts dump.o" ">readelf.out"]
19
    if { [lindex $status 0] != 0 || ![string match "" [lindex $status 1]] } then {
20
        send_log "[lindex $status 1]\n"
21
        fail $testname
22
        return
23
    }
24
    catch "exec cat readelf.out $readelf_pipe > dump.out\n" comp_output
25
    if ![string match "" $comp_output] then {
26
        send_log "$comp_output\n"
27
        fail $testname
28
        return
29
    }
30
    verbose_eval {[file_contents "dump.out"]} 3
31
    if { [regexp_diff "dump.out" "${file}.e${suffix}"] } then {
32
        fail $testname
33
        verbose "output is [file_contents "dump.out"]" 2
34
        return
35
    }
36
    pass $testname
37
}
38
 
39
# We're testing bits in obj-elf -- don't run on anything else.
40
if { ([istarget "*-*-*elf*"]
41
      || [istarget "*-*-linux*"]
42
      || [istarget "m6811-*"]
43
      || [istarget "m6812-*"]
44
      || [istarget "sparc*-*-solaris*"]
45
      || [istarget "mips*-*-irix6*"]
46
      || [istarget "arm*-*-eabi"])
47
     && ![istarget *-*-linux*aout*]
48
     && ![istarget *-*-linux*coff*]
49
     && ![istarget *-*-linux*oldld*]
50
     && ![istarget sh64*-*-linux*]
51
} then {
52
    set target_machine ""
53
    if {[istarget "mips*-*-*"]} then {
54
        set target_machine -mips
55
    }
56
    if {[istarget m32r*-*-*]} then {
57
        set target_machine -m32r
58
    }
59
    if {[istarget "score-*-*"]} then {
60
        set target_machine -score
61
    }
62
    if {[istarget "xtensa*-*-*"]} then {
63
        set target_machine -xtensa
64
    }
65
    if { ([istarget "*arm*-*-*"]
66
          || [istarget "xscale*-*-*"]) } {
67
 
68
        if { ([istarget "*-*-*eabi"]
69
              || [istarget "*-*-linux-*"]
70
              || [istarget "*-*-symbianelf"])} then {
71
            set target_machine -armeabi
72
        } else {
73
            set target_machine -armelf
74
        }
75
    }
76
 
77
    # The MN10300 and Xtensa ports disable the assembler's call frame
78
    # optimization because it interfers with link-time relaxation of
79
    # function prologues.
80
    if {![istarget "mn10300-*-*"]
81
        && ![istarget "xtensa*-*-*"]
82
        && ![istarget "am3*-*-*"]} then {
83
      run_dump_test "ehopt0"
84
    }
85
    case $target_triplet in {
86
        { m68k-*-* m68[03]??-*-* } {
87
            run_dump_test "file" { { as "--defsym m68k=1" } }
88
        }
89
        { mmix-*-* } {
90
            run_dump_test "file" { { as "--defsym mmix=1" } }
91
        }
92
        { xtensa*-*-* } {
93
            run_dump_test "file" { { as "--rename-section file.s=file.c" } }
94
        }
95
        default {
96
            run_dump_test "file"
97
        }
98
    }
99
    run_dump_test "group0a"
100
    run_dump_test "group0b"
101
    run_dump_test "group1a"
102
    run_dump_test "group1b"
103
    case $target_triplet in {
104
        { alpha*-*-* } { }
105
        { cr16*-*-* } { }
106
        { crx*-*-* } { }
107
        { h8300-*-* } { }
108
        { hppa*-*-* } { }
109
        { iq2000*-*-* } { }
110
        { mips*-*-* } { }
111
        { mn10200-*-* } { }
112
        { mn10300-*-* } { }
113
        { *c54x*-*-* } { }
114
        default {
115
            # The next test can fail if the target does not convert fixups
116
            # against ordinary symbols into relocations against section symbols.
117
            # This is usually revealed by the error message:
118
            #  symbol `sym' required but not present
119
            run_dump_test redef
120
            run_dump_test equ-reloc
121
        }
122
    }
123
    run_dump_test "section0"
124
    run_dump_test "section1"
125
    run_elf_list_test "section2" "$target_machine" "-al" "-s" ""
126
    run_dump_test "section3"
127
    run_dump_test "section4"
128
    run_elf_list_test "section5" "" "-al" "-SW" "| grep \" \\\\.test\\\[0-9\\\]\""
129
    run_dump_test "struct"
130
    run_dump_test "symtab"
131
    run_dump_test "symver"
132
 
133
    # The MSP port sets the ELF header's OSABI field to ELFOSABI_STANDALONE.
134
    # The non-eabi ARM ports sets it to ELFOSABI_ARM.
135
    # So for these targets we cannot include an IFUNC symbol type
136
    # in the symbol type test.
137
    if {   [istarget "msp*-*-*"]
138
        || [istarget "arm*-*-*"]
139
        || [istarget "xscale*-*-*"]} then {
140
            run_elf_list_test "type-noifunc" "" "" "-s" "| grep \"1 \\\[FONTC\\\]\""
141
    } else {
142
            run_dump_test ifunc-1
143
            run_elf_list_test "type" "" "" "-s" "| grep \"1 \\\[FIONTCU\\\]\""
144
    }
145
 
146
    run_dump_test "section6"
147
    run_dump_test "section7"
148
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.