On Thursday, 20 February 2014, at 12:42:43 (-0800),
David Race wrote:
> I have been working with mvapich2 and openmpi for installing
> slurm-native builds. Occasionally these appear to look in
> {exec_prefix}/lib64 rather than {exec_prefix}/lib. Is at the
> following logic consistent with SLURM installation assumption?
>
> Since slurm is building native applications rather than cross
> compiling, the default locations for the libraries will be
> {exec_prefix}/lib. In the case of the contrib code for perl5, since
> perl5 is compiled by default as 32 bit then the code for the 64 bit
> contrib code is specifically put into lib64.
lib64 is for multilib, not cross-compiling. Modern RPM-based
distributions use /usr/lib64 for *all* 64-bit libraries to facilitate
the installation of both 32- and 64-bit builds of the same libraries
on the same system. If you check /usr/lib64 on a RHEL6 system, for
example, you'll see all sorts of libraries.
SLURM installs its libs to /usr/lib64 by default when you build RHEL
RPMs. I suspect the same is true for SLES. And as I recall, the
OpenMPI RPMs likewise install into /usr/lib64 on 64-bit hosts.
Perl5 is not 32-bit by default; I'm not sure where that came from....
If you put 64-bit libraries into /usr/lib on a multilib-capable system
(which RHEL has been for ages), you can cause all sorts of error
messages to start happening (because 32-bit binaries will start trying
to load 64-bit libraries, potentially).
Michael
--
Michael Jennings <[email protected]>
Senior HPC Systems Engineer
High-Performance Computing Services
Lawrence Berkeley National Laboratory
Bldg 50B-3209E W: 510-495-2687
MS 050B-3209 F: 510-486-8615