Re: [Gems-users] opal.so problem


Date: Wed, 15 Mar 2006 14:41:46 -0600
From: "Min Xu (Hsu)" <xu@xxxxxxxxxxx>
Subject: Re: [Gems-users] opal.so problem
Dave,

Now, I see. It is likely your error was caused by the compiler.
The function in question was not defined in your cache.o, but
in my cache.o it was defined. 

A little google search revealed that gcc 4.0.0 has a bug that
ignores template instantiation. Please try upgrade your compiler
to a newer version.

Or, you perhaps can work around this problem by changing this line

template class generic_cache_template<generic_cache_block_t>;

to this line

class generic_cache_template<generic_cache_block_t> foo;

Hope this helps,
-Min

On Wed, 15 Mar 2006 Dave wrote :
> Yes I do. Attached you will find the nm output from cache.o. I'm using gcc version 4.0.0 20050519 (Red Hat 4.0.0-8).
> 
> Thanks,
> 
> Dave
> 
> "Min Xu (Hsu)" <xu@xxxxxxxxxxx> wrote: Do you have these two lines in Cache.C?
> 
> // C++ template: explicit instantiation
> template class generic_cache_template;
> 
> If yes, can you dump the nm output from Cache.o to me?
> 
> On Mon, 13 Mar 2006 Dave wrote :
> > OK. 
> > 
> > The undefined symbol _ZN22generic_cache_templateI21generic_cache_block_tE9TagSearchEybbPPS0_Pj is in opal/x86-linux/obj/cache.o.
> > 
> > Dave
> > 
> > "Min Xu (Hsu)"  wrote: The .o files are in opal/x86_linux/obj, or a similar directory under
> > opal/x86-linux.
> > 
> > On Mon, 13 Mar 2006 Dave wrote :
> > > Min,
> > > 
> > > "nm" returns an error because it cannot find "a.out". There is no ".o" files in that directory (/home/GEMS/simics-2.2.19/x86-linux/lib/). I'm copying the output from opal compilation, maybe it helps to see at what step it fails.
> > > 
> > > > make module DESTINATION=MOSI_SMP_bcast
> > > Opal: building module
> > > make generated/generated
> > > make[1]: Entering directory `/home/GEMS/opal'
> > > make[1]: `generated/generated' is up to date.
> > > make[1]: Leaving directory `/home/GEMS/opal'
> > > make BUILD_FLAGS=-DSIMICS module_go
> > > make[1]: Entering directory `/home/GEMS/opal'
> > > Made module
> > > make[1]: Leaving directory `/home/GEMS/opal'
> > > Opal: Linking simics module
> > > cd ../simics/x86-linux/lib; make opal
> > > make[1]: Entering directory `/home/GEMS/simics-2.2.19/x86-linux/lib'
> > > === Building module "opal" using the 2.0 API ===
> > > gmake[2]: Circular /home/GEMS/simics/x86-linux/obj/include/simics/module_id.c <- /home/GEMS/simics/x86-linux/obj/include/simics/module_id.c dependency dropped.
> > > Creating dependencies: module_id.c
> > > Creating dependencies: opal.c
> > > gmake[2]: Circular /home/GEMS/simics/x86-linux/obj/include/simics/module_id.c <- /home/GEMS/simics/x86-linux/obj/include/simics/module_id.c dependency dropped.
> > > Creating exportmap.elf
> > > Compiling opal.c
> > > `-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead.
> > > /home/GEMS/simics/src/extensions/opal/opal.c:110: warning: ? defined but not used
> > > Compiling module_id.c 
> > > `-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead.
> > > Linking opal.so
> > > /home/GEMS/simics-2.2.19/x86-linux/lib/opal.so: /home/GEMS/simics-2.2.19/x86-linux/
> > > lib/opal.so: undefined symbol: _ZN22generic_cache_templateI21generic_cache_block_tE9TagSearchEy
> > > bbPPS0_Pj
> > > gmake[2]: *** [/home/GEMS/simics-2.2.19/x86-linux/lib/opal.so] Error 1
> > > gmake[2]: *** Deleting file `/home/GEMS/simics-2.2.19/x86-linux/lib/opal.so'
> > > make[1]: *** [opal] Error 2
> > > make[1]: Leaving directory `/home/GEMS/simics-2.2.19/x86-linux/lib'
> > > make: *** [module] Error 2
> > > 
> > > Thanks,
> > > 
> > > Dave
> > > 
> > > "Min Xu (Hsu)"  wrote: Dave,
> > > 
> > > The error seems to be related to generic_cache_template not being
> > > instantiated in none of the .C file, but still being called.
> > > Perhaps we have a bug that we may missed an instantiation statement
> > > (this is unlikely because the same code works here), or (more likely)
> > > we have a compiler incompatibility problem. 
> > > 
> > > To further determine the cause of the problem, can you use "nm"
> > > to find our which .o file calls the undefined the symbol?
> > > 
> > > -Min
> > > 
> > > On Sun, 12 Mar 2006 Dave wrote :
> > > > Hello All,
> > > > 
> > > > I'm trying to compile opal on a x86 Linux machine (make module DESTINATION=MOSI_SMP_bcast). (gems 1.2, simics 2.2.19, gcc 4.0.0). I'm getting some errors with the opal compilation as follows:
> > > > 
> > > > === Building module "opal" using the 2.0 API ===
> > > > gmake[2]: Circular /home/GEMS/simics/x86-linux/obj/include/simics/module_id.c <- /home/GEMS/simics/x86-linux/obj/include/simics/module_id.c dependency dropped.
> > > > Linking opal.so
> > > > /home/GEMS/simics-2.2.19/x86-linux/lib/opal.so: /home/GEMS/simics-2.2.19/x86-linux/lib/opal.so: undefined symbol: _ZN22generic_cache_templateI21generic_cache_block_tE9TagSearchEybbPPS0_Pj
> > > > gmake[2]: *** [/home/GEMS/simics-2.2.19/x86-linux/lib/opal.so] Error 1
> > > > gmake[2]: *** Deleting file `/home/GEMS/simics-2.2.19/x86-linux/lib/opal.so'
> > > > make[1]: *** [opal] Error 2
> > > > make[1]: Leaving directory `/home/GEMS/simics-2.2.19/x86-linux/lib'
> > > > make: *** [module] Error 2
> > > > 
> > > > 
> > > > Thank you for your help!
> > > > 
> > > > Dave
> > > > 
> > > >   
> > > > ---------------------------------
> > > > Yahoo! Mail
> > > > Bring photos to life! New PhotoMail  makes sharing a breeze. 
> > > > _______________________________________________
> > > > Gems-users mailing list
> > > > Gems-users@xxxxxxxxxxx
> > > > https://lists.cs.wisc.edu/mailman/listinfo/gems-users
> > > _______________________________________________
> > > Gems-users mailing list
> > > Gems-users@xxxxxxxxxxx
> > > https://lists.cs.wisc.edu/mailman/listinfo/gems-users
> > > 
> > > 
> > >   
> > > ---------------------------------
> > > Yahoo! Mail
> > > Bring photos to life! New PhotoMail  makes sharing a breeze. 
> > > _______________________________________________
> > > Gems-users mailing list
> > > Gems-users@xxxxxxxxxxx
> > > https://lists.cs.wisc.edu/mailman/listinfo/gems-users
> > _______________________________________________
> > Gems-users mailing list
> > Gems-users@xxxxxxxxxxx
> > https://lists.cs.wisc.edu/mailman/listinfo/gems-users
> > 
> > 
> >   
> > ---------------------------------
> > Brings words and photos together (easily) with
> >  PhotoMail  - it's free and works with Yahoo! Mail.
> > _______________________________________________
> > Gems-users mailing list
> > Gems-users@xxxxxxxxxxx
> > https://lists.cs.wisc.edu/mailman/listinfo/gems-users
> _______________________________________________
> Gems-users mailing list
> Gems-users@xxxxxxxxxxx
> https://lists.cs.wisc.edu/mailman/listinfo/gems-users
> 
> 
> 		
> ---------------------------------
> Yahoo! Travel
>  Find  great deals to the top 10 hottest destinations!
Content-Description: 1619165544-cache.txt
>          U __cxa_atexit
>          U __cxa_pure_virtual
>          U __dso_handle
> 000004b4 t _GLOBAL__I__ZN7cache_tC2EPKcP6mshr_tP11scheduler_t
>          U __gxx_personality_v0
> 0000045a t __tcf_0
> 0000046e t _Z41__static_initialization_and_destruction_0ii
>          U _ZN10out_intf_t8out_infoEPKcz
>          U _ZN22generic_cache_templateI21generic_cache_block_tE11DoAfterFillEPS0_j
> 00000000 W _ZN22generic_cache_templateI21generic_cache_block_tE12BlockAddressEy
> 00000000 W _ZN22generic_cache_templateI21generic_cache_block_tE12getBlockSizeEv
>          U _ZN22generic_cache_templateI21generic_cache_block_tE15DoBeforeReplaceEPS0_j
>          U _ZN22generic_cache_templateI21generic_cache_block_tE15DoWhenAccessHitEPS0_bb
> 00000000 W _ZN22generic_cache_templateI21generic_cache_block_tE15getBlockAddressERS0_
>          U _ZN22generic_cache_templateI21generic_cache_block_tE16DoWhenAccessMissEybb
> 00000000 W _ZN22generic_cache_templateI21generic_cache_block_tE3SetEy
> 00000000 W _ZN22generic_cache_templateI21generic_cache_block_tE3TagEy
>          U _ZN22generic_cache_templateI21generic_cache_block_tE4FillEybPbb
>          U _ZN22generic_cache_templateI21generic_cache_block_tE4ReadEyP8waiter_tbPb
>          U _ZN22generic_cache_templateI21generic_cache_block_tE5WriteEyP8waiter_t
> 00000000 W _ZN22generic_cache_templateI21generic_cache_block_tE7IsDirtyERS0_
> 00000000 W _ZN22generic_cache_templateI21generic_cache_block_tE7IsValidERS0_
> 00000000 W _ZN22generic_cache_templateI21generic_cache_block_tE8getStateERS0_
>          U _ZN22generic_cache_templateI21generic_cache_block_tE8PrefetchEy
> 00000000 W _ZN22generic_cache_templateI21generic_cache_block_tE8TagCheckEy
> 00000000 W _ZN22generic_cache_templateI21generic_cache_block_tE9same_lineEyy
>          U _ZN22generic_cache_templateI21generic_cache_block_tE9TagSearchEybbPPS0_Pj
>          U _ZN22generic_cache_templateI21generic_cache_block_tED0Ev
>          U _ZN22generic_cache_templateI21generic_cache_block_tED1Ev
> 00000188 T _ZN7cache_t10printStatsEP6pseq_t
> 000000c4 T _ZN7cache_tC1EPKcP6mshr_tP11scheduler_t
> 00000000 T _ZN7cache_tC2EPKcP6mshr_tP11scheduler_t
>          U _ZNSt8ios_base4InitC1Ev
>          U _ZNSt8ios_base4InitD1Ev
> 00000000 b _ZSt8__ioinit
> 00000000 V _ZTI22generic_cache_templateI21generic_cache_block_tE
> 00000000 V _ZTI7cache_t
> 00000000 V _ZTS22generic_cache_templateI21generic_cache_block_tE
> 00000000 V _ZTS7cache_t
> 00000000 V _ZTV22generic_cache_templateI21generic_cache_block_tE
> 00000000 V _ZTV7cache_t
>          U _ZTVN10__cxxabiv117__class_type_infoE
>          U _ZTVN10__cxxabiv120__si_class_type_infoE

> _______________________________________________
> Gems-users mailing list
> Gems-users@xxxxxxxxxxx
> https://lists.cs.wisc.edu/mailman/listinfo/gems-users
[← Prev in Thread] Current Thread [Next in Thread→]