CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Installation (http://www.cfd-online.com/Forums/openfoam-installation/)
-   -   LAM trouble with tru64 (http://www.cfd-online.com/Forums/openfoam-installation/57698-lam-trouble-tru64.html)

matthias December 2, 2005 10:21

Hi, i have compiled OpenFOA
 
Hi,

i have compiled OpenFOAM with the GNU gcc 4.0.2 compiler but i had to use the system ld and as. After compilation of all without errors, LAM doesn't work. During the run, i get this error: wsp05:/tmp_mnt/usr/user4/foam/foam/OpenFOAM/OpenFOAM-1.2/src/lam-7.1.1>lamboot
336827:/usr/user4/foam/OpenFOAM/OpenFOAM-1.2/src/lam-7.1.1/platforms/tru64GccOpt /bin/lamboot: /sbin/loader: Error: liblam.so.0: symbol "sem_wait" unresolved
336827:/usr/user4/foam/OpenFOAM/OpenFOAM-1.2/src/lam-7.1.1/platforms/tru64GccOpt /bin/lamboot: /sbin/loader: Fatal Error: Load of "/usr/user4/foam/OpenFOAM/OpenFOAM-1.2/src/lam-7.1.1/platforms/tru64GccOpt/bin/l amboot" failed: Unresolved symbol name

Then i tried to compile LAM again and i didn't disable the static library. In this case i can start lamboot, but all the solvers don't start and show the same errors like above.
After that i added the following options to the lam configure
--enable-shared
--disable-static
--without-fc

Now recompiling LAM and it is the same like at the beginning. Again:
wsp05:/tmp_mnt/usr/user4/foam/foam/OpenFOAM/OpenFOAM-1.2/src/lam-7.1.1>lamboot
336827:/usr/user4/foam/OpenFOAM/OpenFOAM-1.2/src/lam-7.1.1/platforms/tru64GccOpt /bin/lamboot: /sbin/loader: Error: liblam.so.0: symbol "sem_wait" unresolved
336827:/usr/user4/foam/OpenFOAM/OpenFOAM-1.2/src/lam-7.1.1/platforms/tru64GccOpt /bin/lamboot: /sbin/loader: Fatal Error: Load of "/usr/user4/foam/OpenFOAM/OpenFOAM-1.2/src/lam-7.1.1/platforms/tru64GccOpt/bin/l amboot" failed: Unresolved symbol name

What went wrong?
Or don't can i use LAM with tru64 on decAlpha's?

mfg,

Matthias

jasonb December 2, 2005 10:33

Hi, I don't know anythging
 
Hi,

I don't know anythging about this platform, but I had a similar problem building lam-7.1.1 on the Solaris/UltraSparc platform. My problem was libtool was incorrectly building the shared libraries. I fixed this by editing the top level libtool (located in LAMHOME) shared library build commands. In the Solaris case libtool was not correctly passing the build commands to the linker, which was giving me undefined symbols. Maybe you are having a similar problem?

Jason

matthias December 2, 2005 13:39

Hi Jason, thanks for the hi
 
Hi Jason,

thanks for the hint. Can you explain to me, what changes you have done? I looked into the libtool file and there are a lot of options, which you can set.
I know its not the same platform, but maybe i can get an idea by your settings!
And i don't know the commands for shared librarys on tru64. When i lookup the compiler messages then i see, that he is using an option called "-shared" (stands for building shared libraries). So i don't know, if there are another options to change or if you can only use this one.

mfg,
Matthias

jasonb December 3, 2005 07:28

Matthias, Under Solaris lib
 
Matthias,

Under Solaris libtool was setting the flag whole_archive_flag_spec incorrectly.

libtool originally set this to be

whole_archive_flag_spec="-z allextract\$convenience -z defaultextract"

I changed this to read

whole_archive_flag_spec="-Wl,-z -Wl,allextract\$convenience -Wl,-z -Wl,defaultextract"

The -Wl flag instructs gcc to pass the following flags to the linker. Making this change fixed my shared library build problem.

Hope this helps.

Jason

matthias December 4, 2005 12:10

It seems, that you cannot comp
 
It seems, that you cannot compile LAM with shared libraries under tru64. So, i build static ones and it's working. But when i try to start a solver like simpleFoam then i get the following error:
296459:/usr/user4/foam/OpenFOAM/OpenFOAM-1.2/applications/bin/tru64GccOpt/simple Foam: /sbin/loader: Error: libPstream.so: symbol "_ZN4PMPI9Intracomm10current_opE" unresolved
296459:/usr/user4/foam/OpenFOAM/OpenFOAM-1.2/applications/bin/tru64GccOpt/simple Foam: /sbin/loader: Fatal Error: Load of "/usr/user4/foam/OpenFOAM/OpenFOAM-1.2/applications/bin/tru64GccOpt/simpleFoam" failed: Unresolved symbol name

Then i rebuild the libPstream. (compiling+linking), but it's the same.

How can i reach that OpenFOAM works together with static LAM libraries? Or have i done another error?

mattijs December 5, 2005 06:17

Do a c++filt on that symbol an
 
Do a c++filt on that symbol and check where it comes from. Sounds like you haven't linked in some of the lam/mpi libraries.

Just a silly idea: do you have a native mpi on that Dec? Maybe you can use that? The only thing you have to do is recompile the Pstream/mpi files with the correct include paths and mpi libraries.

The rest of OpenFOAM just uses libPstream.so and never includes or links any mpi file.

matthias December 5, 2005 09:36

Now I have included all lam/mp
 
Now I have included all lam/mpi libraries, exiting in the directory, in the path. The error is gone but a new one was shown.

194333:/usr/user4/foam/OpenFOAM/OpenFOAM-1.2/applications/bin/tru64GccOpt/simple Foam: /sbin/loader: Error: libPstream.so: symbol "MPI_Dims_create" unresolved
194333:/usr/user4/foam/OpenFOAM/OpenFOAM-1.2/applications/bin/tru64GccOpt/simple Foam: /sbin/loader: Fatal Error: Load of "/usr/user4/foam/OpenFOAM/OpenFOAM-1.2/applications/bin/tru64GccOpt/simpleFoam" failed: Unresolved symbol name


I included the libraries in the mplibLAM file of the rules-directory, it looks so:

PLIBS = -L$(LAM_ARCH_PATH)/lib -lmpi -llam -llammpi++ -llamf77mpi -llammpio -lpthread -lutil

When i look for this symbol it is in the llam or lammpi++ library, so i think it should work now. Do i have to include another libraries, which are not in the LAM path?

@Mattijs, The tru64 on our decAlpha's has no native MPI. Compaq/HP has some native MPI stuff for shared memory only.

mattijs December 6, 2005 14:18

You'll have to hunt for the li
 
You'll have to hunt for the library that symbol ("MPI_Dims_create") is in. Use 'nm' and 'grep'. The library will probably be one under the lam tree or in /usr/lib


All times are GMT -4. The time now is 00:31.