# # 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 makes the target dependent options file. # 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 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 $(LINK.c) $(AM_CFLAGS) $(AM_LDFLAGS) $(GCC_LD_LOC_OPTIONS) \ -o $@ \ $(LINK_OBJS) $(LINK_LIBS) $(NM) -g -n $@ > $(basename $@).num $(SIZE) $@ endef endif # Miscellaneous additions go here # BSP-specific tools PRINTDUMP=$(PROJECT_TOOLS)/print_dump