Hi,
I'm new at Einstein/Cactus and am having trouble at link time when following the tutorial instructions (https://docs.einsteintoolkit.org/et-docs/Tutorial_for_New_Users#Any_Problems...)
I've gotten to the point where the output of: ./simfactory/sim build --optionlist=simfactory/optionlists/generic.cfg --thornlist=manifest/einsteintoolkit.th
Says: Creating cactus_sim in /g/g23/mohror1/Einstein/Cactus/exe from ... (followed by lots of names of thorns)
Then, I get a load of undefined reference errors, the first two of which are: /g/g23/mohror1/Einstein/Cactus/configs/sim/lib/libthorn_CactusBindings.a(EOSG_Polytrope_Functions.c.o): In function `CCTK_Wrapper_FtoC_EOS_GP_DPDIE': EOSG_Polytrope_Functions.c:(.text+0xe): undefined reference to `eos_gp_dpdie_' /g/g23/mohror1/Einstein/Cactus/configs/sim/lib/libthorn_CactusBindings.a(EOSG_Polytrope_Functions.c.o): In function `CCTK_Wrapper_FtoC_EOS_GP_IntEn': EOSG_Polytrope_Functions.c:(.text+0x2e): undefined reference to `eos_gp_inten_'
In configs/sim/lib there is a libthorn_EOSG_Polytrope.a which I believe should contain these symbols. However, when I do an 'nm' of the library, the symbols are undefined: configs/sim/lib/libthorn_EOSG_Polytrope.a:
EOS_GP_Setup.c.o: U CCTK_Warn U EOS_GP_Inverse_SetArray U EOS_GP_SetArray 0000000000000000 T EOS_GP_Startup U EOS_RegisterCall U Util_TableCreate U Util_TableSetInt U Util_TableSetString
EOS_GP.c.o: 0000000000000000 T EOS_GP_Inverse_SetArray 00000000000000e0 T EOS_GP_SetArray U eos_gp_cs2_ U eos_gp_dpdie_ U eos_gp_dpdrho_ U eos_gp_inten_ U eos_gp_inv_cs2_ U eos_gp_inv_dpdie_ U eos_gp_inv_dpdrho_ U eos_gp_inv_inten_ U eos_gp_inv_rho_ U eos_gp_pressure_
Any ideas on what I'm doing wrong? (I'm using gcc/g++/gfortran on a Linux cluster)
Thanks, -- Kathryn
On Thu, Feb 24, 2011 at 12:36:32PM -0800, Mohror, Kathryn wrote:
In configs/sim/lib there is a libthorn_EOSG_Polytrope.a which I believe should contain these symbols. However, when I do an 'nm' of the library, the symbols are undefined: configs/sim/lib/libthorn_EOSG_Polytrope.a:
EOS_GP_Setup.c.o: U CCTK_Warn U EOS_GP_Inverse_SetArray U EOS_GP_SetArray 0000000000000000 T EOS_GP_Startup U EOS_RegisterCall U Util_TableCreate U Util_TableSetInt U Util_TableSetString
EOS_GP.c.o: 0000000000000000 T EOS_GP_Inverse_SetArray 00000000000000e0 T EOS_GP_SetArray U eos_gp_cs2_ U eos_gp_dpdie_ U eos_gp_dpdrho_ U eos_gp_inten_ U eos_gp_inv_cs2_ U eos_gp_inv_dpdie_ U eos_gp_inv_dpdrho_ U eos_gp_inv_inten_ U eos_gp_inv_rho_ U eos_gp_pressure_
Below I show the output for the same file for my installation. It contains the sections you mention, but also the defined functions. Can you double-check that libthorn_EOSG_Polytrope.a doesn't contain the symbols from EOS_GP.F90.o in your case?
Frank Loeffler
libthorn_EOSG_Polytrope.a:
EOS_GP_Setup.c.o: U CCTK_Warn U EOS_GP_Inverse_SetArray U EOS_GP_SetArray 0000000000000000 T EOS_GP_Startup U EOS_RegisterCall U Util_TableCreate U Util_TableSetInt U Util_TableSetString
EOS_GP.c.o: 0000000000000000 T EOS_GP_Inverse_SetArray 0000000000000120 T EOS_GP_SetArray U eos_gp_cs2_ U eos_gp_dpdie_ U eos_gp_dpdrho_ U eos_gp_inten_ U eos_gp_inv_cs2_ U eos_gp_inv_dpdie_ U eos_gp_inv_dpdrho_ U eos_gp_inv_inten_ U eos_gp_inv_rho_ U eos_gp_pressure_
EOS_GP.F90.o: 0000000000000000 r .LC1 U __eos_gp_scalars_MOD_eos_gamma_local U __eos_gp_scalars_MOD_eos_k_cgs U __eos_gp_scalars_MOD_p_geom_factor U __eos_gp_scalars_MOD_rho_geom_factor U __eos_gp_scalars_MOD_rho_geom_factor_inv 0000000000000f50 T eos_gp_cs2_ 0000000000000000 T eos_gp_dpdie_ 0000000000001200 T eos_gp_dpdrho_ 0000000000001570 T eos_gp_inten_ 00000000000005a0 T eos_gp_inv_cs2_ 00000000000002d0 T eos_gp_inv_dpdie_ 0000000000000870 T eos_gp_inv_dpdrho_ 0000000000000a60 T eos_gp_inv_inten_ 0000000000000d30 T eos_gp_inv_rho_ 0000000000001840 T eos_gp_pressure_ U pow
...
Hi, Thanks for the reply. Yes, I verified that the symbols were not there. However, based on the output of nm from your installation, I noted that there were no symbols from any Fortran source files in any of my libraries. It turns out that I had somehow managed to not specify FPP in my .cfg file. I fixed that problem and was able to compile/link.
Kathryn
-----Original Message----- From: Frank Loeffler [mailto:knarf@cct.lsu.edu] Sent: Friday, February 25, 2011 6:48 AM To: Mohror, Kathryn Cc: users@einsteintoolkit.org Subject: Re: [Users] link problems
On Thu, Feb 24, 2011 at 12:36:32PM -0800, Mohror, Kathryn wrote:
In configs/sim/lib there is a libthorn_EOSG_Polytrope.a which I believe
should contain these symbols. However, when I do an 'nm' of the library, the symbols are undefined:
configs/sim/lib/libthorn_EOSG_Polytrope.a:
EOS_GP_Setup.c.o: U CCTK_Warn U EOS_GP_Inverse_SetArray U EOS_GP_SetArray 0000000000000000 T EOS_GP_Startup U EOS_RegisterCall U Util_TableCreate U Util_TableSetInt U Util_TableSetString
EOS_GP.c.o: 0000000000000000 T EOS_GP_Inverse_SetArray 00000000000000e0 T EOS_GP_SetArray U eos_gp_cs2_ U eos_gp_dpdie_ U eos_gp_dpdrho_ U eos_gp_inten_ U eos_gp_inv_cs2_ U eos_gp_inv_dpdie_ U eos_gp_inv_dpdrho_ U eos_gp_inv_inten_ U eos_gp_inv_rho_ U eos_gp_pressure_
Below I show the output for the same file for my installation. It contains the sections you mention, but also the defined functions. Can you double-check that libthorn_EOSG_Polytrope.a doesn't contain the symbols from EOS_GP.F90.o in your case?
Frank Loeffler
libthorn_EOSG_Polytrope.a:
EOS_GP_Setup.c.o: U CCTK_Warn U EOS_GP_Inverse_SetArray U EOS_GP_SetArray 0000000000000000 T EOS_GP_Startup U EOS_RegisterCall U Util_TableCreate U Util_TableSetInt U Util_TableSetString
EOS_GP.c.o: 0000000000000000 T EOS_GP_Inverse_SetArray 0000000000000120 T EOS_GP_SetArray U eos_gp_cs2_ U eos_gp_dpdie_ U eos_gp_dpdrho_ U eos_gp_inten_ U eos_gp_inv_cs2_ U eos_gp_inv_dpdie_ U eos_gp_inv_dpdrho_ U eos_gp_inv_inten_ U eos_gp_inv_rho_ U eos_gp_pressure_
EOS_GP.F90.o: 0000000000000000 r .LC1 U __eos_gp_scalars_MOD_eos_gamma_local U __eos_gp_scalars_MOD_eos_k_cgs U __eos_gp_scalars_MOD_p_geom_factor U __eos_gp_scalars_MOD_rho_geom_factor U __eos_gp_scalars_MOD_rho_geom_factor_inv 0000000000000f50 T eos_gp_cs2_ 0000000000000000 T eos_gp_dpdie_ 0000000000001200 T eos_gp_dpdrho_ 0000000000001570 T eos_gp_inten_ 00000000000005a0 T eos_gp_inv_cs2_ 00000000000002d0 T eos_gp_inv_dpdie_ 0000000000000870 T eos_gp_inv_dpdrho_ 0000000000000a60 T eos_gp_inv_inten_ 0000000000000d30 T eos_gp_inv_rho_ 0000000000001840 T eos_gp_pressure_ U pow
...
Hi Kathryn,
On Sat, Feb 26, 2011 at 11:02:53AM -0800, Mohror, Kathryn wrote:
Hi, Thanks for the reply. Yes, I verified that the symbols were not there. However, based on the output of nm from your installation, I noted that there were no symbols from any Fortran source files in any of my libraries. It turns out that I had somehow managed to not specify FPP in my .cfg file. I fixed that problem and was able to compile/link.
It's great that it now works for you. It's however also strange, that it didn't complain about the missing FPP when trying to compile Fortran files. But I guess now that it is working we should leave it like that.
Frank
users@lists.einsteintoolkit.org