[Bug 1474958] Review Request: lammps - Large-scale Atomic/ Molecular Massively Parallel Simulator

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.redhat.com/show_bug.cgi?id=1474958



--- Comment #15 from Christoph Junghans <junghans@xxxxxxxxx> ---
(In reply to Antonio Trande from comment #14)
> (In reply to Christoph Junghans from comment #13)
> > I saw that before for other mpi-enabled packages, if I recall correctly mock
> > has no support for mpi and hence doesn't do a "module load
> > mpi/openmpi-x86_64", which would prepend /usr/lib64/openmpi/lib to
> > LD_LIBRARY_PATH (see module show "mpi/openmpi-x86_64") and fix the above
> > issue. rpath aren't allowed for mpi packages either, so I am not sure how
> > you want to fix.
> > 
> > And setting CXX and friends won't change anything as mpicxx is internally
> > just adding the same include paths and libraries to the flags:
> > $ mpicxx --showme
> > g++ -I/usr/include/openmpi-x86_64 -pthread -Wl,-rpath
> > -Wl,/usr/lib64/openmpi/lib -Wl,--enable-new-dtags -L/usr/lib64/openmpi/lib
> > -lmpi_cxx -lmpi
> 
> All MPI files are compiled with MPI compilers as required by the guidelines;
https://fedoraproject.org/wiki/Packaging:MPI doesn't list CC=mpicc as a must
item and it would also be a really bad idea in general, e.g. for codes, which
have mixed serial and parallel code. (Which isn't the case for LAMMPS though).

> Sundials MPI libraries for example do not need to load any module in Mock:
> 
> $ mock --no-clean -r fedora-rawhide-x86_64 --shell 'ldd
> /usr/lib64/openmpi/lib/libsundials_nvecparallel.so.2'
> Start: shell
> 	linux-vdso.so.1 (0x00007fff9e309000)
> 	libm.so.6 => /lib64/libm.so.6 (0x00007fa6b2969000)
> 	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa6b274a000)
> 	libgomp.so.1 => /lib64/libgomp.so.1 (0x00007fa6b251b000)
> 	libklu.so.1 => /lib64/libklu.so.1 (0x00007fa6b22e6000)
> 	libHYPRE.so.0.0 => /usr/lib64/openmpi/lib/libHYPRE.so.0.0
> (0x00007fa6b1c62000)
> 	libmpi.so.20 => /usr/lib64/openmpi/lib/libmpi.so.20 (0x00007fa6b195f000)
> 	libc.so.6 => /lib64/libc.so.6 (0x00007fa6b157a000)
> 	/lib64/ld-linux-x86-64.so.2 (0x0000558ae39ba000)
> 	libdl.so.2 => /lib64/libdl.so.2 (0x00007fa6b1376000)
> 	libamd.so.2 => /lib64/libamd.so.2 (0x00007fa6b116a000)
> 	libcolamd.so.2 => /lib64/libcolamd.so.2 (0x00007fa6b0f62000)
> 	libbtf.so.1 => /lib64/libbtf.so.1 (0x00007fa6b0d5e000)
> 	libsuitesparseconfig.so.4 => /lib64/libsuitesparseconfig.so.4
> (0x00007fa6b0b59000)
> 	libopenblas.so.0 => /lib64/libopenblas.so.0 (0x00007fa6ae77a000)
> 	libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fa6ae3f2000)
> 	libsuperlu.so.5.1 => /lib64/libsuperlu.so.5.1 (0x00007fa6ae17a000)
> 	libmpi_cxx.so.20 => /usr/lib64/openmpi/lib/libmpi_cxx.so.20
> (0x00007fa6adf5f000)
> 	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fa6add48000)
> 	libopen-rte.so.20 => /usr/lib64/openmpi/lib/libopen-rte.so.20
> (0x00007fa6adabc000)
> 	libopen-pal.so.20 => /usr/lib64/openmpi/lib/libopen-pal.so.20
> (0x00007fa6ad808000)
> 	librt.so.1 => /lib64/librt.so.1 (0x00007fa6ad600000)
> 	libutil.so.1 => /lib64/libutil.so.1 (0x00007fa6ad3fd000)
> 	libhwloc.so.5 => /lib64/libhwloc.so.5 (0x00007fa6ad1c1000)
> 	libgfortran.so.4 => /lib64/libgfortran.so.4 (0x00007fa6acde5000)
> 	libsatlas.so.3 => /usr/lib64/atlas/libsatlas.so.3 (0x00007fa6abfea000)
> 	libnuma.so.1 => /lib64/libnuma.so.1 (0x00007fa6abddf000)
> 	libltdl.so.7 => /lib64/libltdl.so.7 (0x00007fa6abbd5000)
> 	libquadmath.so.0 => /lib64/libquadmath.so.0 (0x00007fa6ab995000)
> 
> Understand your doubts, so you can also ask any better clarification on
> devel mailing list.
Ok, I got it.
$ objdump -x libsundials_nvecparallel.so.2 | grep R.*PATH
  RUNPATH              /usr/lib64/openmpi/lib
which comes from the "-Wl,-rpath -Wl,/usr/lib64/openmpi/lib
-Wl,--enable-new-dtags" in mpicxx, so reading
https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#Beware_of_Rpath,
I am a bit unsure if only RPATH is contempt or RUNPATH as well.

Anyhow, we can get the same behavior as in sundials by adding
-DCMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING="%{__global_ldflags} -Wl,-rpath
-Wl,/usr/lib64/openmpi/lib -Wl,--enable-new-dtags". Is that ok with you?

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component
_______________________________________________
package-review mailing list -- package-review@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to package-review-leave@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite Conditions]     [KDE Users]

  Powered by Linux