summaryrefslogtreecommitdiffstats
path: root/make/custom/simhppa.cfg
blob: 2426ebbae571ccd5187a7f86a6acf5fabe26d66e (plain) (blame)
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#
#  Config file for the 7100 pa-risc simulator
#
#  $Id$
#

include $(RTEMS_ROOT)/make/custom/default.cfg

RTEMS_CPU=hppa1.1
RTEMS_CPU_MODEL=hppa7200

# This is the actual bsp directory used during the build process.
RTEMS_BSP_FAMILY=simhppa

#  This contains the compiler options necessary to select the CPU model
#  and (hopefully) optimize for it.
#
#  Possibles:
#  -mpa-risc-1-1        -- HPPA 1.1 instead of 1.0
#  -mportable-runtime
#
CPU_CFLAGS = -mpa-risc-1-1 -mportable-runtime

# Possibles:
#  -Wall                -- lots of warnings
#  -pipe                -- compiler uses pipes to talk to phases (usually faster)
#  -ansi                -- ANSI C compliance
#  -fasm                -- ANSI, but allow inline assembler
#  -mgas                -- we are using gas as assembler
#  -fno-keep-inline-functions  -- do not emit any inlines as static
CFLAGS_DEFAULT = $(CPU_CFLAGS) -Wall -ansi -fasm -mgas

# optimize flag: typically -0, could use -O4 or -fast
# -O4 is ok for RTEMS
# NOTE: some level of -O may be actually required by inline assembler
CFLAGS_OPTIMIZE_V=-O4 -fno-keep-inline-functions

# This target does NOT support the TCP/IP stack so ignore requests
# to enable it.
HAS_NETWORKING=no

#  This makes the target dependent options file.

#  NDEBUG (C library)
#     if defined asserts do not generate code.  This is commonly used
#     as a command line option.
#
#  RTEMS_TEST_NO_PAUSE (RTEMS tests)
#     do not pause between screens of output in the rtems tests
#
#  RTEMS_DEBUG (RTEMS)
#     If defined, debug checks in RTEMS and support library code are enabled.
#
#  SIMHPPA_FAST_IDLE (simhppa)
#     If defined, speed up the clock ticks while the idle task is running so
#     time spent in the idle task is minimized.  This significantly reduces
#     the wall time required to execute the RTEMS test suites.
#

define make-target-options
	@echo "/* #define NDEBUG 1 */ "                     >>$@
	@echo "#define RTEMS_TEST_NO_PAUSE 1"               >>$@
	@echo "/* #define RTEMS_DEBUG  1 */"                >>$@
	@echo "#define SIMHPPA_FAST_IDLE  1 "               >>$@
endef

#
# GNU ld options
#   `-Tbss ORG'
#   `-Tdata ORG'
#   `-Ttext ORG'
#      Use ORG as the starting address for--respectively--the `bss',
#      `data', or the `text' segment of the output file.  ORG must be a
#      single hexadecimal integer; for compatibility with other linkers,
#      you may omit the leading `0x' usually associated with hexadecimal
#      values.

# 'NODE' is set to 1 or 2 for multi cpu tests (ref: mptests/mp01/node1/Makefile)
# If NODE is set as an environment variable, don't trust it, zero it out.
# (NODE turns out to be a very common environment variable)
ifeq (,$(NODE))
NODE=0
else
ifeq "$(origin NODE)" "environment"
NODE=0
endif
endif

# XXX some/all of this should move into 'linkcmds'
# single processor
DATA_0_BASE=0x40001000
TEXT_0_BASE=0x00001000

# first node (mptests number them from 1)
DATA_1_BASE=$(DATA_0_BASE)
TEXT_1_BASE=$(TEXT_0_BASE)

# second node (mptests number them from 1)
DATA_2_BASE=0x48001000
TEXT_2_BASE=0x08001000

# for hpux ld
#LD_LOC_OPTIONS=-D $(DATA_$(NODE)_BASE) -R $(TEXT_$(NODE)_BASE)
# for gnu ld
LD_LOC_OPTIONS=-Tdata $(DATA_$(NODE)_BASE) -Ttext $(TEXT_$(NODE)_BASE)
GCC_LD_LOC_OPTIONS=-W,l-T -W,ldata -W,l$(DATA_$(NODE)_BASE) \
                   -W,l-T -W,ltext -W,l$(TEXT_$(NODE)_BASE)


# The following are definitions of make-exe which will work using ld as
# is currently required.  It is expected that as of gcc 2.8, the end user
# will be able to override parts of the compilers specs and link using gcc.

ifeq ($(RTEMS_USE_GCC272),yes)
define make-exe
	$(LDARGS) $(LD) $(LD_LOC_OPTIONS) $(XLDFLAGS) -a archive \
	    -o $@ -u atexit \
	    $(START_FILE) $(LINK_OBJS) --start-group $(LINK_LIBS) --end-group
	$(NM) -g -n $@ > $(basename $@).num
	$(SIZE) $@
endef
else
define make-exe
	$(CC) $(CFLAGS) $(CFLAGS_LD) $(GCC_LD_LOC_OPTIONS) \
	    -o $(basename $@).exe \
	    $(LINK_OBJS) $(LINK_LIBS)
	$(NM) -g -n $@ > $(basename $@).num
	$(SIZE) $@
endef
endif

define make-rel
	$(LDARGS) $(LD) $(LDFLAGS_INCOMPLETE) $(XLDFLAGS) -o $@ $(OBJS)
endef