Date: | Wed, 15 Nov 2006 23:04:38 +0100 |
---|---|
From: | "Patrick De Pinguin" <patrickdepinguin@xxxxxxxxx> |
Subject: | [Gems-users] compiling ruby and opal with gcc 4.1.1 |
Hi, I am trying to compile ruby and opal using a gcc version 4 compiler. With Ruby I received some "extra qualification" errors, which were solved using the following patch: diff -uNr -x generated -x html -x module gems-1.3.1-orig/ruby/common/NetDest.h gems-1.3.1/ruby/common/NetDest.h --- gems-1.3.1-orig/ruby/common/NetDest.h 2006-09-25 16:31:09.000000000 +0200 +++ gems-1.3.1/ruby/common/NetDest.h 2006-11-15 16:44:02.000000000 +0100 @@ -137,13 +137,13 @@ // Private Methods // returns a value >= MachineType_base_level("this machine") and < MachineType_base_level("next highest machine") - int NetDest::vecIndex(MachineID m) const { + int vecIndex(MachineID m) const { int vec_index = MachineType_base_level(m.type); assert(vec_index < m_bits.size()); return vec_index; } - NodeID NetDest::bitIndex(NodeID index) const { + NodeID bitIndex(NodeID index) const { return index; } diff -uNr -x generated -x html -x module gems-1.3.1-orig/ruby/nuca/GenericNUCAPredictor.h gems-1.3.1/ruby/nuca/GenericNUCAPredictor.h --- gems-1.3.1-orig/ruby/nuca/GenericNUCAPredictor.h 2006-09-25 16:31:07.000000000 +0200 +++ gems-1.3.1/ruby/nuca/GenericNUCAPredictor.h 2006-11-15 16:44:02.000000000 +0100 @@ -35,7 +35,7 @@ class GenericNUCAPredictor { public: - GenericNUCAPredictor::GenericNUCAPredictor(AbstractChip* chip_ptr, NodeID m_id); + GenericNUCAPredictor(AbstractChip* chip_ptr, NodeID m_id); ~GenericNUCAPredictor(); // determines which L2 cache banks to send the initial L1 request For Opal, I also get these "extra qualification" errors, but correcting these is a little less trivial. There were problems in opal/system/dx.h, opal/system/ix.h, and opal/common/listalloc.h I think that the error in listalloc.h is not a problem (fixed as above). The file dx.h is included from dx.C and dynamic.h. In dynamic.h, dx.h is included from within the class, so we get the "extra qualification" error. In dx.C however, this is not the case, and removing the dynamic_inst_t:: generates other errors. I was able to get by this, by copying the dx.h file to dx2.h, removing the dynamic_inst_t:: only in one of the two. The file dynamic.h should include the version without the qualifier, and dx.C the version with it. However, other errors appear, which I don't know how to solve: Opal: building module make generated/generated make[1]: Entering directory `/home/thomas/kth/thesis/simulation/gems- 1.3.1/opal' make[1]: `generated/generated' is up to date. make[1]: Leaving directory `/home/thomas/kth/thesis/simulation/gems-1.3.1/opal' make BUILD_FLAGS=-DSIMICS module_go make[1]: Entering directory `/home/thomas/kth/thesis/simulation/gems- 1.3.1/opal' /usr/bin/g++ -o x86-linux/obj/dx.o -c system/dx.C -DGEMS_32_BIT -DADD_ARCH_TO_API -DSIMICS_3_0 -DTARGET_SPARC_V9 -DTARGET_ULTRA -DTARGET_VA_BITS=64 -DTARGET_PA_BITS=64 -DYY_NO_UNPUT -Wall -W -Wwrite-strings -Woverloaded-virtual -Wno-unused -march=i686 -g -ggdb -g3 -O3 -march=pentium-m -pipe -DSIMICS -DIS_OPAL -DVERIFY_SIMICS -DRETIRE_ZERO_TOLERANCE -DREDECODE_EACH -Icommon -Ifetch -Isparc -Isystem -Imodule -Itrace -Itester -I../common/ioutil -Igenerated -I/mnt/linuxshare/simics- 3.0.22/src/include -I/mnt/linuxshare/simics-3.0.22/src/include/simics -I/mnt/linuxshare/simics-3.0.22/src/include/simics/core -I/mnt/linuxshare/simics-3.0.22/src/include/simics/arch -I/mnt/linuxshare/simics-3.0.22/src/include/simics/util In file included from system/dx.C:71: system/dx.h:59:1: warning: "DX_RETURNT" redefined In file included from system/dynamic.h:425, from common/hfacore.h:107, from system/dx.C:67: system/dx2.h:59:1: warning: this is the location of the previous definition system/wait.h:118: warning: 'class waiter_t' has virtual functions but non-virtual destructor system/wait.h:285: warning: 'class tail_waiter_t' has virtual functions but non-virtual destructor common/directbp.h:83: warning: 'class direct_predictor_t' has virtual functions but non-virtual destructor system/memop.h:279: warning: 'class load_interface_t' has virtual functions but non-virtual destructor system/mshr.h:182: warning: 'class miss_t' has virtual functions but non-virtual destructor system/cache.h:88: warning: 'class cache_t' has virtual functions but non-virtual destructor system/dx.h:63: error: declaration of 'void dynamic_inst_t::dx_add()' outside of class is not definition system/dx.h:64: error: declaration of 'void dynamic_inst_t::dx_addcc()' outside of class is not definition system/dx.h:65: error: declaration of 'void dynamic_inst_t::dx_addc()' outside of class is not definition system/dx.h:66: error: declaration of 'void dynamic_inst_t::dx_addccc()' outside of class is not definition system/dx.h:67: error: declaration of 'void dynamic_inst_t::dx_and()' outside of class is not definition system/dx.h:68: error: declaration of 'void dynamic_inst_t::dx_andcc()' outside of class is not definition system/dx.h:69: error: declaration of 'void dynamic_inst_t::dx_andn()' outside of class is not definition system/dx.h:70: error: declaration of 'void dynamic_inst_t::dx_andncc()' outside of class is not definition system/dx.h:71: error: declaration of 'void dynamic_inst_t::dx_fba()' outside of class is not definition system/dx.h:72: error: declaration of 'void dynamic_inst_t::dx_ba()' outside of class is not definition ........ and so on. I don't know if all this is clear. Does someone know how to solve this problem? I use gems version 1.3.1 gcc 4.1.1 |
[← Prev in Thread] | Current Thread | [Next in Thread→] |
---|---|---|
|
Previous by Date: | Re: [Gems-users] magic breakpoints in Java, Luke Yen |
---|---|
Next by Date: | Re: [Gems-users] MAI, Dan Gibson |
Previous by Thread: | [Gems-users] Compile-time problems, nikolaos |
Next by Thread: | [Gems-users] Could Opal simulate MIPS?, hongxia sun |
Indexes: | [Date] [Thread] |