summaryrefslogtreecommitdiffstats
path: root/make/custom/simhppa.cfg
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--make/custom/simhppa.cfg145
1 files changed, 145 insertions, 0 deletions
diff --git a/make/custom/simhppa.cfg b/make/custom/simhppa.cfg
new file mode 100644
index 0000000000..0976b4d3f6
--- /dev/null
+++ b/make/custom/simhppa.cfg
@@ -0,0 +1,145 @@
+#
+# 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
+
+# Define this to yes if this target supports multiprocessor environments.
+HAS_MP=yes
+
+# This target does NOT support the KA9Q TCP/IP stack so ignore requests
+# to enable it.
+HAS_KA9Q=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
+#
+# STACK_CHECKER_ON (RTEMS support code)
+# If defined, stack bounds checking is enabled.
+#
+# STACK_CHECKER_REPORT_USAGE (RTEMS support code)
+# If this and STACK_CHECKER_ON are defined, then a report on stack usage
+# per task is printed when the program exits.
+#
+# 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 STACK_CHECKER_ON 1 */" >>$@
+ @echo "/* #define STACK_CHECKER_REPORT_USAGE 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)
+ $(NM) -g -n $@ > $(basename $@).num
+ $(SIZE) $@
+endef
+endif
+
+define make-rel
+ $(LDARGS) $(LD) $(LDFLAGS_INCOMPLETE) $(XLDFLAGS) -o $@ $(OBJS)
+endef