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

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gdb/] [gdb-6.8/] [gdb/] [testsuite/] [lib/] [java.exp] - Blame information for rev 25

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 25 jlechner
# This test code is part of GDB, the GNU debugger.
2
 
3
# Copyright 1998, 1999, 2000, 2003, 2004, 2006, 2007, 2008
4
# Free Software Foundation, Inc.
5
 
6
# This program is free software; you can redistribute it and/or modify
7
# it under the terms of the GNU General Public License as published by
8
# the Free Software Foundation; either version 3 of the License, or
9
# (at your option) any later version.
10
#
11
# This program is distributed in the hope that it will be useful,
12
# but WITHOUT ANY WARRANTY; without even the implied warranty of
13
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
# GNU General Public License for more details.
15
#
16
# You should have received a copy of the GNU General Public License
17
# along with this program.  If not, see .
18
 
19
load_lib "libgloss.exp"
20
 
21
# GCJ_UNDER_TEST is the compiler under test.
22
 
23
global tmpdir
24
 
25
if ![info exists tmpdir] {
26
    set tmpdir "/tmp"
27
}
28
 
29
set java_initialized 0
30
 
31
#
32
# Build the status wrapper library as needed.
33
#
34
proc java_init { args } {
35
    global wrapper_file;
36
    global wrap_compile_flags;
37
    global java_initialized
38
    global GCJ_UNDER_TEST
39
    global TOOL_EXECUTABLE
40
    global env
41
 
42
    if { $java_initialized == 1 } { return; }
43
 
44
    if ![info exists GCJ_UNDER_TEST] {
45
        if [info exists TOOL_EXECUTABLE] {
46
            set GCJ_UNDER_TEST $TOOL_EXECUTABLE;
47
        } else {
48
            if [info exists env(GCJ)] {
49
                set GCJ_UNDER_TEST $env(GCJ)
50
            } else {
51
                global tool_root_dir
52
                global target_alias
53
 
54
                if ![is_remote host] {
55
                    set file [lookfor_file $tool_root_dir gcj];
56
                    if { $file == "" } {
57
                        set file [lookfor_file $tool_root_dir gcc/gcj];
58
                    }
59
                    if { $file != "" } {
60
                        set CC "$file -B[file dirname $file]/ --specs=$tool_root_dir/$target_alias/libjava/libgcj-test.spec";
61
                    } else {
62
                        set CC [transform gcj];
63
                    }
64
                } else {
65
                    set CC [transform gcj]
66
                }
67
                set GCJ_UNDER_TEST $CC
68
            }
69
        }
70
    }
71
 
72
    set wrapper_file "";
73
    set wrap_compile_flags "";
74
    if [target_info exists needs_status_wrapper] {
75
        set result [build_wrapper "testglue.o"];
76
        if { $result != "" } {
77
            set wrapper_file [lindex $result 0];
78
            set wrap_compile_flags [lindex $result 1];
79
        } else {
80
            warning "Status wrapper failed to build."
81
        }
82
    }
83
 
84
    set java_initialized 1
85
}
86
 
87
#
88
# Run the test specified by srcfile and resultfile. compile_args and
89
# exec_args are options telling this proc how to work.
90
#
91
proc compile_java_from_source { srcfile binfile compile_args } {
92
    global GCJ_UNDER_TEST
93
    global runtests
94
    global java_initialized
95
 
96
    if { $java_initialized != 1 } { java_init }
97
 
98
    set errname [file rootname [file tail $srcfile]]
99
    if {! [runtest_file_p $runtests $errname]} {
100
        return
101
    }
102
 
103
    set args "compiler=$GCJ_UNDER_TEST"
104
    lappend args "additional_flags=--main=[file rootname [file tail $srcfile]]"
105
    if { $compile_args != "" } {
106
        lappend args "additional_flags=$compile_args"
107
    }
108
 
109
    if { $compile_args != "" } {
110
        set errname "$errname $compile_args"
111
    }
112
 
113
    set x [target_compile $srcfile ${binfile} executable $args]
114
    if { $x != "" } {
115
        verbose "target_compile failed: $x" 2
116
        return "$errname compilation from source";
117
    }
118
}
119
 
120
# Local Variables:
121
# tcl-indent-level:4
122
# End:

powered by: WebSVN 2.1.0

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