1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
#
# Copyright (C) 2014 Linaro, Inc
#
# This program is free software; you can redistribute it and/or modify
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# DejaGnu is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with DejaGnu; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
# Load the generic configuration for this board. This will define a basic
# set of routines used to communicate with the board.
load_generic_config "sim"
# No multilib flags needed by default.
process_multilib_options ""
if { [board_info $board obj_format] == "pe" } {
set additional_options "-Wl,-oformat,pe-aarch64-little,--image-base,0"
# set_board_info uses_underscores 1
} else {
set additional_options ""
}
# basic-sim.exp is a basic description for the standard Cygnus simulator.
load_base_board_description "basic-sim"
# The name of the directory in the build tree where the simulator lives.
setup_sim aarch64
# When testing GCC in tree, the libgloss spec files aren't in a known location,
# so we have to find them in the sysroot. FIXME: this may change in the near
# future, but for now it works.
set compiler "[find_gcc]"
set ret [local_exec "$compiler --print-sysroot" "" "" $timeout]
if { [lindex $ret 0] == 0 } {
set sysroot "[lindex $ret 1]"
# Strip the CR or LF off the end of the line as returned by GCC
regsub -all "\[\n\r\]+" $sysroot "" sysroot
}
set specdir "$sysroot/usr/lib"
# set library path environment variable for qemu
set env(QEMU_LD_PREFIX) $sysroot
# The basic set of flags needed to build "hello world" for this
# board. This board uses libgloss and newlib.
# For bare metal we use libgloss, but for linux hosts this is wrong.
if { [ istarget "aarch64*-none-*"] } {
set_board_info cflags "-specs=$specdir/rdimon.specs"
set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags] $additional_options"
} else {
set_board_info ldflags "-lpthread -ldl"
}
# This board doesn't use a linker script.
set_board_info ldscript ""
# The simulator doesn't return exit statuses and we need to indicate this.
#set_board_info needs_status_wrapper 1
# Used by a few gcc.c-torture testcases to delimit how large the stack can
# be.
#set_board_info gcc,stack_size 16384
# No support for signals.
set_board_info gdb,nosignals 1
# More time is needed to compile PlumHall tests
set_board_info gcc,timeout 800
# Make this variable go away, we don't need it.
unset additional_options
|