[ET Trac] [Einstein Toolkit] #1923: make utils and simfactory ignore HWLOC=BUILD and try to copy hwloc executables from /usr/bin

Einstein Toolkit trac-noreply at einsteintoolkit.org
Mon Jun 20 11:33:20 CDT 2016


#1923: make utils and simfactory ignore HWLOC=BUILD and try to copy hwloc
executables from /usr/bin
------------------------------------+---------------------------------------
  Reporter:  vassilios.mewes@…      |       Owner:                     
      Type:  defect                 |      Status:  new                
  Priority:  unset                  |   Milestone:                     
 Component:  SimFactory             |     Version:  development version
Resolution:                         |    Keywords:                     
------------------------------------+---------------------------------------

Comment (by knarf):

 This mix is certainly not wanted. Some observations:

 For reference: the files that are copied from /usr/bin are also present in
 the built version. With that, the question is still why some of the files
 are taken from /usr/bin and some from the built version. Could it be that
 by default they are taken from /usr/bin, but in case some of them are not
 present there, the built version is used? To answer that, it would be
 interesting to know whether, e.g., /usr/bin/hwloc-assembler exists.

 In the thorn itself I don't see why, e.g., hwloc-assembler and hwloc-ls
 should be treated any different. Both are mentioned as standard hwloc
 binaries.

 Looking at
 https://build.barrywardell.net/job/EinsteinToolkitReleased/101/consoleFull
 I find "-L/usr/lib" in GENERAL_LIBRARIES, as well as -Wl,-rpath,/usr/lib.
 I wouldn't expect that there, but I am also not sure if this is related.
 Both LAPACK and BLAS define their dir to be /usr/lib, but both should be
 stripped in their configure.sh script (and from the output it looks like
 that happens).

 GENERAL_LIBRARIES also looks odd because of paths for PETSc and hwloc to
 appear multiple times (but could be due to dependencies).

 The option list adds LIBS=-L/usr/lib64, which looks not right, but since
 this is lib64 and not lib it might also not be related.

 Also, /usr/lib appears in INC_DIRS_F, which is strange, and points to MPI
 (only difference between INC_DIRS and INC_DIRS_F are MPI related). Looking
 at the output from when PETSc is built, at this point:
 MPI_LIB_DIRS=/usr/lib. That shouldn't happen.

 Looking at MPI's configure script, it does seem to strip
 $ENV{MPI_LIB_DIRS}. However, I don't know why it does contain this line:

 {{{
 print "HWLOC_DIR       = $ENV{HWLOC_DIR}\n";
 }}}

 What does MPI have to do with HWLOC? But then, this isn't HWLOC_LIB_DIRS,
 and shouldn't cause the problem mentioned in this ticket.

 One problem, I believe, is found in detect.pl of MPI:
 {{{
 sub strip_lib_dirs {
     my $dirlist = shift;
     my @dirs = split / /, $dirlist;
     map { s{//}{/}g } @dirs;
     @dirs = grep { !m{^/(usr/(local/)?)?lib(64?)/?$} } @dirs;
     return join ' ', @dirs;
 }
 }}}

 The regex does not trigger on /usr/lib paths, but should. Thus, MPI adds
 /usr/lib to the -L options.

 Now, whether and/or why this might trigger the hwloc-util problem I don't
 know. At this point I am probably at least as confused as you are reading
 this. Too many things look iffy:

 - MPI sets HWLOC_DIR
 - MPI doesn't strip paths properly
 - The option lists adds /usr/lib64 (shouldn't be necessary, but who knows)

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1923#comment:1>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list