# # 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 # # 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) $(NM) -g -n $@ > $(basename $@).num $(SIZE) $@ endef endif define make-rel $(LDARGS) $(LD) $(LDFLAGS_INCOMPLETE) $(XLDFLAGS) -o $@ $(OBJS) endef