Skip to content
Todd Gamblin edited this page Jul 23, 2015 · 11 revisions

Participants

  • Todd Gamblin (LLNL)
  • Jim Galarowicz (LLNL)
  • Mike Collette (LLNL)

Contributions

  • Mark Miller contributing better HDF5 package, other FastMath packages
  • zsh from Tom Scogland
  • CBTF from Krell Institute folks

Bugs

  • Can't pass input to Spack Executable class for commands that need it on stdin (add input/output parameters), e.g.:

    cat = which('cat')
    cat(input='foo.txt')
    
  • Large RPATH expression in CBTF build breaks CMake

    -- Installing: /usr/global/tools/openspeedshop/oss-dev/new_spack_fork/spack/opt/spack/chaos_5_x86_64_ib/gcc-4.4.7/openspeedshop-2.1-cbtf-ofxen7abe4ahtejzpoeinzfe3oj5xx3m/lib64/libopenss-message.so
     RegularExpression::compile(): Expression too big.
    
    • Spack currently adds entire DAG to RPATH. Probably overkill.
      • Should we only add direct dependencies to RPATHs?

      • Suggested implementation in package.py:

        @property                                                                                                    
        def rpath(self):                                                                                             
            """Get the rpath this package links with, as a list of paths."""                                         
            rpaths = [self.prefix.lib, self.prefix.lib64]                                                            
            rpaths.extend(self.spec[d].prefix.lib for d in self.spec.dependencies                                    
                          if os.path.isdir(self.spec[d].prefix.lib))                                                      
            rpaths.extend(self.spec[d].prefix.lib64 for d in self.spec.dependencies                                  
                          if os.path.isdir(self.spec[d].prefix.lib64))                                                    
            return rpaths  
        
      • Relies on dependency libraries to have RPATHS for their deps (reasonable)

    • Other options:
      • Should we shorten Spack install paths and use links for descriptive hierarchy?

Discussion Items

  • Mark Miller proposes investigating common variant names for common options:
    • shared/static
    • debug/optimized
    • fortran variants
    • 32/64 bit
      • Todd: should probably be an architecture thing, not a variant)
        • should we support linking 64-bit binaries with 32-bit binaries?
        • does that even work?
      • Mike: this probably refers to length of variables, NOT arch.
        • e.g.: Hypre has a 64-bit int compile option.
        • Todd: ok I understand this better now.
    • Todd: 2-d, 3-d variants
  • Mark Miller wants a way to understand a compiler's Fortran name mangling
    • Suggest deferring this until we get into guarantees about ABI compatibility bt/w compilers.
    • Spack should be able to have rules about consistency, pick reasonable compiler/arg combinations.
  • RPM generation a big issue for TOSS 3.
    • Want to use Spack to generate RPMs for potentially many locations, including /usr/*** and /opt
    • How to generate RPMs for many ecosystems like this?
      • How to account for dependency RPMs and how to know what's on the system?
  • Mike C having issues with Boost
    • Jim, too.
    • Missing library in boost build.
    • Mike says there is a file that needs modifying in the boost build so that b2 will use different compilers.
      • Todd: consider using Boost-cmake?
  • Mark suggested changing names of spack compilers to spack-cc, spack-cxx, etc.
    • Mike doesn't want to have his packages disrupted too much
    • Suggest gradually phasing in spack-cc, etc. and keeping cc in the meantime
  • Mike having issues with clang + Python on BG/Q
    • other 8 configurations are fine
    • breaks the first time with no particular error msg (just after patching?)
    • running build a second time makes it work.
Clone this wiki locally