Re: [Gems-users] Error loading ruby!


Date: Mon, 25 Sep 2006 08:02:58 -0500
From: Dan Gibson <degibson@xxxxxxxx>
Subject: Re: [Gems-users] Error loading ruby!
I agree with Derin's assessment. Ruby DOES look for "phys_mem0" in a checkpoint. Some targets, especially Simics 3.x targets, now name their physical memory object "phys_mem".

I suggest you make the changes outlined by Derin.

Regards,
Dan Gibson

mehmetderin.harmanci@xxxxxxx wrote:
Hello,

  If you're trying to compile on a different machine because of the error
 you had before (that is physical memory not found) I'll suggest not to
 continue. The error you had before, I think, has nothing to do with
 compilation. I had the same error before.

  The "Physical memory object not found" error was in my case, and probably
 in your case also, a mismatch in the name of the physical memory object
 given by simics and the name of looked up by Ruby. More precisely Ruby
 always checks the presence of a physical memory object by looking for an
 object name "phys_mem0". If Simics has a physical memory object but it
 by chance did not name it as "phys_mem0" ruby gives this error. This
 was the case when I was using the cashew configuration for the sunfire.


 In file $GEMS/ruby/module/ruby.c   the line which reads

 phys_mem0 = SIM_get_object("phys_mem0");  (in my distribution this is line 258)


 looks for the Simics physical memory object. If the returned value (thus
 phys_mem0 is NULL the error you have is printed on the terminal. In my case
 the actual name of the simics physical memory object was "phys_mem" instead
 of "phys_mem0". So I added the following lines just below the code I point
 above:

 if( phys_mem0 = NULL)
     phys_mem0 = SIM_get_object("phys_mem");


  If you would like to know what name simics has chosen for the physical
  memory object type  list-objects  in the simics prompt and look in the
  second coloumn for a name which has the pattern similar to phys_mem or
  phys_mem0. You should call the SIM_get_object with the physical memory
  object name you find in this listing instead of calling it with
  "phys_mem0" (as I did above with the if code).

  Hope this helps,

  Derin Harmanci.





Quoting Ranjith Subramanian <ranjith@xxxxxxxxxx>:

  
I tried building and loading ruby on an Intel nocona core but I get the
error: "undefined symbol: ctrl_exception_start". I've installed
simics3.0.19 and gems.1.3.

I think my specification of CC in Makefile.common is incorrect. I
modified $GEMS/common/Makefile.common as follows:
CC_VERSION=3.4.4

ifeq ($(HOST_TYPE),amd64-linux)
  #CC =  /s/gcc-3.4.1/bin/g++
  CC =  /usr/bin/g++
  OPT_FLAGS = -m64 -march=nocona -fPIC
#  OPT_FLAGS = -m64 -march=opteron -fPIC
  LDFLAGS += -ggdb -g3
#  LDFLAGS += -ggdb -g3 -Wl,-R/s/gcc-3.4.1/lib64
#  MODULE_LDFLAGS += -Wl,-R/s/gcc-3.4.1/lib64
  SPECIAL_FLAGS += -DGEMS_64_BIT
else

and I modified $GEMS/ruby/modules/Makefile as
 # add -m64 and library paths if needed
CC_VERSION=3.4.4
HOST_TYPE = $(shell $(CALC_HOST))
ifeq ($(HOST_TYPE),x86-linux)
  MODULE_LDFLAGS += -m32
  # if using a non-native compiler, specify runtime paths to libstdc++
and other system libraries
  # MODULE_LDFLAGS += -Wl,-R/s/gcc-$(CC_VERSION)/lib
else
ifeq ($(HOST_TYPE),amd64-linux)
  MODULE_LDFLAGS += -m64
#gcc-$(CC_VERSION)/lib64
else

I'm not sure what should replace -R/s/gcc-$(CC_VERSION)/lib. Since I'm
using the native compiler I decided to comment it out. Is this correct?

***
bash-3.00$ ./simics -stall
Checking out a license... done: academic license.

simics> read-configuration ../../../../chkpt/cashew.conf
simics> instruction-fetch-mode instruction-fetch-trace
[cpu0 info] Note that on this cpu, instruction-fetch-trace is
implemented using instruction-cache-access-trace with a suitable cache
line size.
simics> istc-diable
unknown command 'istc-diable'.
simics> istc-disbale
unknown command 'istc-disbale'.
simics> istc-disable
Turning I-STC off and flushing old data
simics> dstc-disable
Turning D-STC off and flushing old data
simics> load-module ruby
Error loading module 'ruby': Failed to load module 'ruby'
('/tmp/ranji/gems/wkspc/x86-linux/lib/ruby.so'): "undefined symbol:
ctrl_exception_start"
simics>


The final few lines of ouput when I built RUBY with the MOSI_SMP_bcast
protocol

***
=== Building module "ruby" ===
ls:

    
/tmp/ranji/gems/wkspc/modules/../../ruby/x86-linux/generated/MOSI_SMP_bcast/obj/*.o:
  
No such file or directory
ls:

    
/tmp/ranji/gems/wkspc/modules/../../ruby/x86-linux/generated/MOSI_SMP_bcast/obj/*.o:
  
No such file or directory
make[2]: Entering directory
`/tmp/ranji/gems/wkspc/x86-linux/obj/modules/ruby'
        module_id.c
DEP     module_id.d
DEP     ruby.d
make[2]: Leaving directory
`/tmp/ranji/gems/wkspc/x86-linux/obj/modules/ruby'
ls:

    
/tmp/ranji/gems/wkspc/modules/../../ruby/x86-linux/generated/MOSI_SMP_bcast/obj/*.o:
  
No such file or directory
ls:

    
/tmp/ranji/gems/wkspc/modules/../../ruby/x86-linux/generated/MOSI_SMP_bcast/obj/*.o:
  
No such file or directory
make[2]: Entering directory
`/tmp/ranji/gems/wkspc/x86-linux/obj/modules/ruby'
Using the Simics 3.0 API for ruby module
CC      ruby.o
/tmp/ranji/gems/wkspc/modules/ruby/ruby.c:108: warning: 'mm_id' defined
but not used
CC      module_id.o
CCLD    ruby.so
        mod_ruby_commands.py
make[2]: Leaving directory
`/tmp/ranji/gems/wkspc/x86-linux/obj/modules/ruby'
make[1]: Leaving directory `/tmp/ranji/gems/wkspc'
Ruby: Moving simics module
make BUILD_FLAGS=-DSIMICS movemodule
make[1]: Entering directory `/tmp/ranji/gems/ruby'
../scripts/prepare_simics_home.sh ../simics/home/MOSI_SMP_bcast amd64-linux
make[1]: Leaving directory `/tmp/ranji/gems/ruby'
Ruby: my work is done here...

***

Any help will be greatly appreciated.

Ranjith
_______________________________________________
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.


    


_______________________________________________
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→]