#
|
#
|
# Config file for the 7100 pa-risc simulator
|
# Config file for the 7100 pa-risc simulator
|
#
|
#
|
# $Id: simhppa.cfg,v 1.2 2001-09-27 12:02:52 chris Exp $
|
# $Id: simhppa.cfg,v 1.2 2001-09-27 12:02:52 chris Exp $
|
#
|
#
|
|
|
include $(RTEMS_ROOT)/make/custom/default.cfg
|
include $(RTEMS_ROOT)/make/custom/default.cfg
|
|
|
RTEMS_CPU=hppa1.1
|
RTEMS_CPU=hppa1.1
|
RTEMS_CPU_MODEL=hppa7200
|
RTEMS_CPU_MODEL=hppa7200
|
|
|
# This is the actual bsp directory used during the build process.
|
# This is the actual bsp directory used during the build process.
|
RTEMS_BSP_FAMILY=simhppa
|
RTEMS_BSP_FAMILY=simhppa
|
|
|
# This contains the compiler options necessary to select the CPU model
|
# This contains the compiler options necessary to select the CPU model
|
# and (hopefully) optimize for it.
|
# and (hopefully) optimize for it.
|
#
|
#
|
# Possibles:
|
# Possibles:
|
# -mpa-risc-1-1 -- HPPA 1.1 instead of 1.0
|
# -mpa-risc-1-1 -- HPPA 1.1 instead of 1.0
|
# -mportable-runtime
|
# -mportable-runtime
|
#
|
#
|
CPU_CFLAGS = -mpa-risc-1-1 -mportable-runtime
|
CPU_CFLAGS = -mpa-risc-1-1 -mportable-runtime
|
|
|
# Possibles:
|
# Possibles:
|
# -Wall -- lots of warnings
|
# -Wall -- lots of warnings
|
# -pipe -- compiler uses pipes to talk to phases (usually faster)
|
# -pipe -- compiler uses pipes to talk to phases (usually faster)
|
# -ansi -- ANSI C compliance
|
# -ansi -- ANSI C compliance
|
# -fasm -- ANSI, but allow inline assembler
|
# -fasm -- ANSI, but allow inline assembler
|
# -mgas -- we are using gas as assembler
|
# -mgas -- we are using gas as assembler
|
# -fno-keep-inline-functions -- do not emit any inlines as static
|
# -fno-keep-inline-functions -- do not emit any inlines as static
|
CFLAGS_DEFAULT = $(CPU_CFLAGS) -Wall -ansi -fasm -mgas
|
CFLAGS_DEFAULT = $(CPU_CFLAGS) -Wall -ansi -fasm -mgas
|
|
|
# optimize flag: typically -0, could use -O4 or -fast
|
# optimize flag: typically -0, could use -O4 or -fast
|
# -O4 is ok for RTEMS
|
# -O4 is ok for RTEMS
|
# NOTE: some level of -O may be actually required by inline assembler
|
# NOTE: some level of -O may be actually required by inline assembler
|
CFLAGS_OPTIMIZE_V=-O4 -fno-keep-inline-functions
|
CFLAGS_OPTIMIZE_V=-O4 -fno-keep-inline-functions
|
|
|
# This makes the target dependent options file.
|
# This makes the target dependent options file.
|
|
|
# NDEBUG (C library)
|
# NDEBUG (C library)
|
# if defined asserts do not generate code. This is commonly used
|
# if defined asserts do not generate code. This is commonly used
|
# as a command line option.
|
# as a command line option.
|
#
|
#
|
# RTEMS_TEST_NO_PAUSE (RTEMS tests)
|
# RTEMS_TEST_NO_PAUSE (RTEMS tests)
|
# do not pause between screens of output in the rtems tests
|
# do not pause between screens of output in the rtems tests
|
#
|
#
|
# RTEMS_DEBUG (RTEMS)
|
# RTEMS_DEBUG (RTEMS)
|
# If defined, debug checks in RTEMS and support library code are enabled.
|
# If defined, debug checks in RTEMS and support library code are enabled.
|
#
|
#
|
# SIMHPPA_FAST_IDLE (simhppa)
|
# SIMHPPA_FAST_IDLE (simhppa)
|
# If defined, speed up the clock ticks while the idle task is running so
|
# 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
|
# time spent in the idle task is minimized. This significantly reduces
|
# the wall time required to execute the RTEMS test suites.
|
# the wall time required to execute the RTEMS test suites.
|
#
|
#
|
|
|
define make-target-options
|
define make-target-options
|
@echo "/* #define NDEBUG 1 */ " >>$@
|
@echo "/* #define NDEBUG 1 */ " >>$@
|
@echo "#define RTEMS_TEST_NO_PAUSE 1" >>$@
|
@echo "#define RTEMS_TEST_NO_PAUSE 1" >>$@
|
@echo "/* #define RTEMS_DEBUG 1 */" >>$@
|
@echo "/* #define RTEMS_DEBUG 1 */" >>$@
|
@echo "#define SIMHPPA_FAST_IDLE 1 " >>$@
|
@echo "#define SIMHPPA_FAST_IDLE 1 " >>$@
|
endef
|
endef
|
|
|
#
|
#
|
# GNU ld options
|
# GNU ld options
|
# `-Tbss ORG'
|
# `-Tbss ORG'
|
# `-Tdata ORG'
|
# `-Tdata ORG'
|
# `-Ttext ORG'
|
# `-Ttext ORG'
|
# Use ORG as the starting address for--respectively--the `bss',
|
# Use ORG as the starting address for--respectively--the `bss',
|
# `data', or the `text' segment of the output file. ORG must be a
|
# `data', or the `text' segment of the output file. ORG must be a
|
# single hexadecimal integer; for compatibility with other linkers,
|
# single hexadecimal integer; for compatibility with other linkers,
|
# you may omit the leading `0x' usually associated with hexadecimal
|
# you may omit the leading `0x' usually associated with hexadecimal
|
# values.
|
# values.
|
|
|
# 'NODE' is set to 1 or 2 for multi cpu tests (ref: mptests/mp01/node1/Makefile)
|
# '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.
|
# 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)
|
# (NODE turns out to be a very common environment variable)
|
ifeq (,$(NODE))
|
ifeq (,$(NODE))
|
NODE=0
|
NODE=0
|
else
|
else
|
ifeq "$(origin NODE)" "environment"
|
ifeq "$(origin NODE)" "environment"
|
NODE=0
|
NODE=0
|
endif
|
endif
|
endif
|
endif
|
|
|
# XXX some/all of this should move into 'linkcmds'
|
# XXX some/all of this should move into 'linkcmds'
|
# single processor
|
# single processor
|
DATA_0_BASE=0x40001000
|
DATA_0_BASE=0x40001000
|
TEXT_0_BASE=0x00001000
|
TEXT_0_BASE=0x00001000
|
|
|
# first node (mptests number them from 1)
|
# first node (mptests number them from 1)
|
DATA_1_BASE=$(DATA_0_BASE)
|
DATA_1_BASE=$(DATA_0_BASE)
|
TEXT_1_BASE=$(TEXT_0_BASE)
|
TEXT_1_BASE=$(TEXT_0_BASE)
|
|
|
# second node (mptests number them from 1)
|
# second node (mptests number them from 1)
|
DATA_2_BASE=0x48001000
|
DATA_2_BASE=0x48001000
|
TEXT_2_BASE=0x08001000
|
TEXT_2_BASE=0x08001000
|
|
|
# for hpux ld
|
# for hpux ld
|
#LD_LOC_OPTIONS=-D $(DATA_$(NODE)_BASE) -R $(TEXT_$(NODE)_BASE)
|
#LD_LOC_OPTIONS=-D $(DATA_$(NODE)_BASE) -R $(TEXT_$(NODE)_BASE)
|
# for gnu ld
|
# for gnu ld
|
LD_LOC_OPTIONS=-Tdata $(DATA_$(NODE)_BASE) -Ttext $(TEXT_$(NODE)_BASE)
|
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) \
|
GCC_LD_LOC_OPTIONS=-W,l-T -W,ldata -W,l$(DATA_$(NODE)_BASE) \
|
-W,l-T -W,ltext -W,l$(TEXT_$(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
|
# 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
|
# 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.
|
# will be able to override parts of the compilers specs and link using gcc.
|
|
|
ifeq ($(RTEMS_USE_GCC272),yes)
|
ifeq ($(RTEMS_USE_GCC272),yes)
|
define make-exe
|
define make-exe
|
$(LDARGS) $(LD) $(LD_LOC_OPTIONS) $(XLDFLAGS) -a archive \
|
$(LDARGS) $(LD) $(LD_LOC_OPTIONS) $(XLDFLAGS) -a archive \
|
-o $@ -u atexit \
|
-o $@ -u atexit \
|
$(START_FILE) $(LINK_OBJS) --start-group $(LINK_LIBS) --end-group
|
$(START_FILE) $(LINK_OBJS) --start-group $(LINK_LIBS) --end-group
|
$(NM) -g -n $@ > $(basename $@).num
|
$(NM) -g -n $@ > $(basename $@).num
|
$(SIZE) $@
|
$(SIZE) $@
|
endef
|
endef
|
else
|
else
|
define make-exe
|
define make-exe
|
$(LINK.c) $(AM_CFLAGS) $(AM_LDFLAGS) $(GCC_LD_LOC_OPTIONS) \
|
$(LINK.c) $(AM_CFLAGS) $(AM_LDFLAGS) $(GCC_LD_LOC_OPTIONS) \
|
-o $@ \
|
-o $@ \
|
$(LINK_OBJS) $(LINK_LIBS)
|
$(LINK_OBJS) $(LINK_LIBS)
|
$(NM) -g -n $@ > $(basename $@).num
|
$(NM) -g -n $@ > $(basename $@).num
|
$(SIZE) $@
|
$(SIZE) $@
|
endef
|
endef
|
endif
|
endif
|
|
|
# Miscellaneous additions go here
|
# Miscellaneous additions go here
|
|
|
# BSP-specific tools
|
# BSP-specific tools
|
PRINTDUMP=$(PROJECT_TOOLS)/print_dump
|
PRINTDUMP=$(PROJECT_TOOLS)/print_dump
|
|
|