Re: [Gems-users] Questions


Date: Thu, 10 Apr 2008 14:39:22 -0500 (CDT)
From: Xuan Qi <xqi@xxxxxxxxxxx>
Subject: Re: [Gems-users] Questions
where did you install simics? Make sure SIMICS_INCLUDE_ROOT points to
the right directory.

In my case, I install simics under ~/simics-3.0.31/. So in my
Makefile.common, SIMICS_INCLUDE_ROOT := ~/simics-3.0.31/src/include

Best regards,
Xuan Qi


On Thu, 10 Apr 2008, Mario Raffo wrote:

Dear Sirs


I think I've made the thinks from bullet 2 at file:
$GEMS/common/Makefile.common

I'm sending the file with the changes I made, the most important is:
SIMICS_INCLUDE_ROOT := /opt/virtutech/simics-3.0.31/src/include

I' some person know that problem I will appreciate your help.....


.SECONDARY:
.PRECIOUS: %/created

GEMS_ROOT = ~/gems-2.1
include $(GEMS_ROOT)/common/Makefile.simics_version

HOST_TYPE := $(shell $(GEMS_ROOT)/scripts/calc_host.sh)
SIMICS_ROOT := $(GEMS_ROOT)/simics
SLICC_ROOT := $(GEMS_ROOT)/slicc
PROTOCOL_ROOT := $(GEMS_ROOT)/protocols
OPAL_ROOT := $(GEMS_ROOT)/opal

ifeq ($(SIMICS_VERSION),2.2.X)
 SIMICS_ROOT := $(GEMS_ROOT)/simics
 SIMICS_EXEC_ROOT := /dev/null22
 SIMICS_INCLUDE_ROOT := /dev/null22
else
ifeq ($(SIMICS_VERSION),3.0.31)
 SIMICS_ROOT := /dev/null30
 SIMICS_EXEC_ROOT := $(GEMS_ROOT)/simics
 # NOTE: This variable must be updated to point to the src/include directory
 # of your Simics 3.0 installation

# CAMBIO 12:57PM
# SIMICS_INCLUDE_ROOT := $(GEMS_ROOT)/simics_exec/src/include
# SIMICS_INCLUDE_ROOT := ~/gems-2.1/simics_exec/src/include
#cambio 09/04/08 11:20pm
 SIMICS_INCLUDE_ROOT := /opt/virtutech/simics-3.0.31/src/include


else
 SIMICS_ROOT := /dev/blah
 SIMICS_EXEC_ROOT := /dev/foo
 SIMICS_INCLUDE_ROOT := /dev/bar
endif
endif

SLICC := $(GEMS_ROOT)/slicc/$(HOST_TYPE)/bin/slicc.exec

OBJ_DIR := $(HOST_TYPE)/obj
BIN_DIR := $(HOST_TYPE)/bin

OBJ = $(addprefix $(OBJ_DIR)/,$(SRC_C:.c=.o) $(SRC_CPP:.C=.o))
DEP = $(addprefix $(OBJ_DIR)/,$(SRC_C:.c=.d) $(SRC_CPP:.C=.d))

VPATH_INCLUDES := $(patsubst %,-I%,$(subst :, ,$(VPATH)))
WARN_FLAGS := -Wall -W -Wwrite-strings -Woverloaded-virtual -Wno-unused
#-Wshadow -Wold-style-cast -Wundef -Wconversion

SHELL := /bin/sh
# define the following to see more error about the parser (when parsing
parser.y)
YACC := bison
YFLAGS := --verbose --defines
LEX := flex
LFLAGS :=


# make sure simics is configured to use the same version of gcc as below.
# for last drop of performance, you could try to reduce code size with
template
# repository. This takes much longer to build.
#LDFLAGS += -frepo
# file to check for: ../simics/config/host-flags.x86-linux
#                    ../simics/x86-linux/config/host-config
#                    ../simics/x86-linux/config/host-config.h

#CC_VERSION=3.4.1
CC_VERSION=4.2


ifeq ($(HOST_TYPE),amd64-linux)
 #CC =  /s/gcc-3.4.1/bin/g++
 #CC =  /usr/bin/g++
 CC =  /usr/bin/g++-4.2


 OPT_FLAGS = -m64 -march=opteron -fPIC
 LDFLAGS += -ggdb -g3 -Wl,-R/s/gcc-3.4.1/lib64
 MODULE_LDFLAGS += -Wl,-R/s/gcc-3.4.1/lib64

else
ifeq ($(HOST_TYPE),v9-sol8-64)
 # CC = purify -best-effort -leaks-at-exit=yes -chain-length="15"
/s/gcc-3.4.1/bin/g++ -static
 # CC = /s/gcc-3.4.3/bin/g++ -I/s/getopt-0/include
 CC = g++ -I/s/getopt-0/include
 OPT_FLAGS = -m64 -mcpu=v9 -DUSE_DIRENT
 LDFLAGS += -m64 -L/s/getopt-0/lib -lgetopt
else
ifeq ($(HOST_TYPE),x86-linux)
 #CC =  /s/gcc-3.4.1/bin/g++
 #CC =  /usr/bin/g++
 CC =  /usr/bin/g++-4.2

 OPT_FLAGS = -march=i686
 LDFLAGS += -ggdb -g3
else
 CC = /dev/null
endif
endif
endif

# optionally, you could hard code library paths here, though not recommended
#LDFLAGS += -Wl,-Ryour/path/here

# debug flags
# g1 - g3 product minimal to maximal debug info
OPT_FLAGS += -g -ggdb -g3

# other flags
#OPT_FLAGS += -O0 -w
#OPT_FLAGS += -O0 -Wall -pedantic-errors -Wno-long-long
#OPT_FLAGS += -O0 -DNO_VECTOR_BOUNDS_CHECKS
#OPT_FLAGS += -O1
#OPT_FLAGS += -O2 -finline-functions

OPT_FLAGS += -O2 -finline-functions -DNO_VECTOR_BOUNDS_CHECKS
-DMULTIFACET_NO_OPT_WARN

CP := /bin/cp -f
MV := /bin/mv -f
RM := /bin/rm -f
LN := /bin/ln -f

ifeq ($(TARGET_MACHINE_TYPE),SPARC)
 SPECIAL_FLAGS += -DSPARC
endif

ifeq ($(SIMICS_VERSION),2.2.X)
 SPECIAL_FLAGS += -DSIMICS22X
else
ifeq ($(SIMICS_VERSION),3.0)
 SPECIAL_FLAGS += -DADD_ARCH_TO_API -DSIMICS30
else
 SPECIAL_FLAGS += -stopcompile # Not really a flag, but something should
complain with an
                               # error in this case
endif
endif

LDFLAGS += -lz
CFLAGS = $(SPECIAL_FLAGS) $(WARN_FLAGS) $(OPT_FLAGS) $(BUILD_FLAGS)
$(DEBUG_FLAGS) $(VPATH_INCLUDES) $(INCLUDES)
DEPEND_FLAGS = -MM -MG

# Rules for generating the object files and dependence files
$(OBJ_DIR)/%.o: %.C $(OBJ_DIR)/created
	$(CC) -o $@ -c $< $(CFLAGS)

$(OBJ_DIR)/%.o: %.c $(OBJ_DIR)/created
	$(CC) -o $@ -c $< $(CFLAGS)

$(OBJ_DIR)/%.d: %.C $(OBJ_DIR)/created
	$(SHELL) -ec '$(CC) $(DEPEND_FLAGS) $(CFLAGS) $< | sed -e
'\''s@^\(.*\)\.o:@$@:@'\'' | sed -e '\''s@^\(.*\)\.d:@\1.d \1.o:@'\'' >
$@ #'

$(OBJ_DIR)/%.d: %.c $(OBJ_DIR)/created
	$(SHELL) -ec '$(CC) $(DEPEND_FLAGS) $(CFLAGS) $< | sed -e
'\''s@^\(.*\)\.o:@$@:@'\'' | sed -e '\''s@^\(.*\)\.d:@\1.d \1.o:@'\'' >
$@ #'

.l.c:
	$(error wrong rule)

.y.c:
	$(error wrong rule)

# Rule to make sure we create the directories as needed
%/created:
	mkdir -p $(dir $@)
	touch $@

.PHONY: all clean tags



Regards

Eng. Mario Raffo
MSc. Student on Microelectronics
São Paulo University


You will need to specify the location of the headers (Point 7, bullet 2
on the Setup for Simics 3.0.x page) and set your SIMICS_VERSION flag in
Makefile.SIMICS_VERSION appropriately (bullet 1).

Regards,
Dan

Mario Raffo wrote:
Dear Sirs


I'm a student from São Paulo University. I will use the GEMS, but I've
some problems:

I've do the instructions for install simics and gems:
http://www.cs.wisc.edu/gems/doc/gems-wiki/moin.cgi/Setup_for_Simics_3.0.X

But when I' want do the instructions for the next link:
http://www.cs.wisc.edu/gems/doc/gems-wiki/moin.cgi/QuickStart

And if I do :
cd $GEMS/ruby
make PROTOCOL=MOSI_SMP_bcast DESTINATION=MOSI_SMP_bcast
I see the next on screen:

Ruby: Building protocol: MOSI_SMP_bcast
Ruby: Making slicc
cd ../slicc; make
make[1]: Entering directory `/root/gems-2.1/slicc'
SLICC: Running flex and bison
make generated/generated
make[2]: Entering directory `/root/gems-2.1/slicc'
make[2]: `generated/generated' is up to date.
make[2]: Leaving directory `/root/gems-2.1/slicc'
SLICC: Building slicc executable
make x86-linux/bin/slicc.exec
make[2]: Entering directory `/root/gems-2.1/slicc'
make[2]: `x86-linux/bin/slicc.exec' is up to date.
make[2]: Leaving directory `/root/gems-2.1/slicc'
make[1]: Leaving directory `/root/gems-2.1/slicc'
Ruby: Running slicc
make generated/MOSI_SMP_bcast/generated
make[1]: Entering directory `/root/gems-2.1/ruby'
make[1]: `generated/MOSI_SMP_bcast/generated' is up to date.
make[1]: Leaving directory `/root/gems-2.1/ruby'
Ruby: Generating ruby objects
make x86-linux/generated/MOSI_SMP_bcast/bin/tester.exec
make[1]: Entering directory `/root/gems-2.1/ruby'
make[1]: Circular x86-linux/generated/MOSI_SMP_bcast/obj/init.o <-
default_param.h dependency dropped.
make[1]: *** No rule to make target `simics/api.h', needed by
`x86-linux/generated/MOSI_SMP_bcast/obj/attrparse.o'.  Stop.
make[1]: Leaving directory `/root/gems-2.1/ruby'
make: *** [all] Error 2




And if I do :
cd $GEMS/opal
make module DESTINATION=MOSI_SMP_bcast
I see the next on screen:

Opal: building module
make generated/generated
make[1]: Entering directory `/root/gems-2.1/opal'
make[1]: `generated/generated' is up to date.
make[1]: Leaving directory `/root/gems-2.1/opal'
make BUILD_FLAGS=-DSIMICS module_go
make[1]: Entering directory `/root/gems-2.1/opal'
make[1]: *** No rule to make target `simics/api.h', needed by
`x86-linux/obj/ccops.o'.  Stop.
make[1]: Leaving directory `/root/gems-2.1/opal'
make: *** [module] Error 2



At this moment I don't know very well if I have problems with a wrong
mistake at installation process, probably in the Makefiles


$GEMS/common/Makefile.simics_version
$GEMS/common/Makefile.common
$GEMS/ruby/module/Makefile
$GEMS/opal/module/Makefile
$GEMS/tourmaline/module/Makefile


The mistakes at ruby and opal are (in my opinion) that don't have access
to 'simics/api.h', but I've this file at next directory:
/opt/virtutech/simics-3.0.31/src/include/simics


If any person know this problem...... I will appreciate your help.....

Regards

Eng. Mario Raffo
MSc. Student on Microelectronics
São Paulo University





--
http://www.cs.wisc.edu/~gibson [esc]:wq!

_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding
"site:https://lists.cs.wisc.edu/archive/gems-users/"; to your search.



--
This message was scanned for spam and viruses by BitDefender.
For more information please visit http://linux.bitdefender.com/





--
This message was scanned for spam and viruses by BitDefender.
For more information please visit http://linux.bitdefender.com/

_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/"; to your search.

[← Prev in Thread] Current Thread [Next in Thread→]