Merge pull request #1059 from epfl-scitas/packages/mpi_wrappers_with_rpath
MPI : have wrappers set RPATH instead of RUNPATH
This commit is contained in:
		@@ -23,15 +23,14 @@
 | 
				
			|||||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 | 
					# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 | 
				
			||||||
##############################################################################
 | 
					##############################################################################
 | 
				
			||||||
from spack import *
 | 
					from spack import *
 | 
				
			||||||
import os
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Mpich(Package):
 | 
					class Mpich(Package):
 | 
				
			||||||
    """MPICH is a high performance and widely portable implementation of
 | 
					    """MPICH is a high performance and widely portable implementation of
 | 
				
			||||||
       the Message Passing Interface (MPI) standard."""
 | 
					       the Message Passing Interface (MPI) standard."""
 | 
				
			||||||
    homepage = "http://www.mpich.org"
 | 
					    homepage = "http://www.mpich.org"
 | 
				
			||||||
    url      = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz"
 | 
					    url = "http://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4.tar.gz"
 | 
				
			||||||
    list_url   = "http://www.mpich.org/static/downloads/"
 | 
					    list_url = "http://www.mpich.org/static/downloads/"
 | 
				
			||||||
    list_depth = 2
 | 
					    list_depth = 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    version('3.2',   'f414cfa77099cd1fa1a5ae4e22db508a')
 | 
					    version('3.2',   'f414cfa77099cd1fa1a5ae4e22db508a')
 | 
				
			||||||
@@ -42,7 +41,8 @@ class Mpich(Package):
 | 
				
			|||||||
    version('3.1',   '5643dd176499bfb7d25079aaff25f2ec')
 | 
					    version('3.1',   '5643dd176499bfb7d25079aaff25f2ec')
 | 
				
			||||||
    version('3.0.4', '9c5d5d4fe1e17dd12153f40bc5b6dbc0')
 | 
					    version('3.0.4', '9c5d5d4fe1e17dd12153f40bc5b6dbc0')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    variant('verbs', default=False, description='Build support for OpenFabrics verbs.')
 | 
					    variant('verbs', default=False,
 | 
				
			||||||
 | 
					            description='Build support for OpenFabrics verbs.')
 | 
				
			||||||
    variant('pmi', default=True, description='Build with PMI support')
 | 
					    variant('pmi', default=True, description='Build with PMI support')
 | 
				
			||||||
    variant('hydra', default=True, description='Build the hydra process manager')
 | 
					    variant('hydra', default=True, description='Build the hydra process manager')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -57,9 +57,9 @@ def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
 | 
				
			|||||||
        spack_env.set('MPICH_FC', spack_fc)
 | 
					        spack_env.set('MPICH_FC', spack_fc)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def setup_dependent_package(self, module, dep_spec):
 | 
					    def setup_dependent_package(self, module, dep_spec):
 | 
				
			||||||
        self.spec.mpicc  = join_path(self.prefix.bin, 'mpicc')
 | 
					        self.spec.mpicc = join_path(self.prefix.bin, 'mpicc')
 | 
				
			||||||
        self.spec.mpicxx = join_path(self.prefix.bin, 'mpic++')
 | 
					        self.spec.mpicxx = join_path(self.prefix.bin, 'mpic++')
 | 
				
			||||||
        self.spec.mpifc  = join_path(self.prefix.bin, 'mpif90')
 | 
					        self.spec.mpifc = join_path(self.prefix.bin, 'mpif90')
 | 
				
			||||||
        self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77')
 | 
					        self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def install(self, spec, prefix):
 | 
					    def install(self, spec, prefix):
 | 
				
			||||||
@@ -92,7 +92,6 @@ def install(self, spec, prefix):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        self.filter_compilers()
 | 
					        self.filter_compilers()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    def filter_compilers(self):
 | 
					    def filter_compilers(self):
 | 
				
			||||||
        """Run after install to make the MPI compilers use the
 | 
					        """Run after install to make the MPI compilers use the
 | 
				
			||||||
           compilers that Spack built the package with.
 | 
					           compilers that Spack built the package with.
 | 
				
			||||||
@@ -102,18 +101,20 @@ def filter_compilers(self):
 | 
				
			|||||||
           be bound to whatever compiler they were built with.
 | 
					           be bound to whatever compiler they were built with.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        bin = self.prefix.bin
 | 
					        bin = self.prefix.bin
 | 
				
			||||||
        mpicc  = os.path.join(bin, 'mpicc')
 | 
					        mpicc = join_path(bin, 'mpicc')
 | 
				
			||||||
        mpicxx = os.path.join(bin, 'mpicxx')
 | 
					        mpicxx = join_path(bin, 'mpicxx')
 | 
				
			||||||
        mpif77 = os.path.join(bin, 'mpif77')
 | 
					        mpif77 = join_path(bin, 'mpif77')
 | 
				
			||||||
        mpif90 = os.path.join(bin, 'mpif90')
 | 
					        mpif90 = join_path(bin, 'mpif90')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        spack_cc  = os.environ['CC']
 | 
					        # Substitute Spack compile wrappers for the real
 | 
				
			||||||
        spack_cxx = os.environ['CXX']
 | 
					        # underlying compiler
 | 
				
			||||||
        spack_f77 = os.environ['F77']
 | 
					        kwargs = {'ignore_absent': True, 'backup': False, 'string': True}
 | 
				
			||||||
        spack_fc  = os.environ['FC']
 | 
					        filter_file(env['CC'], self.compiler.cc,  mpicc,  **kwargs)
 | 
				
			||||||
 | 
					        filter_file(env['CXX'], self.compiler.cxx, mpicxx, **kwargs)
 | 
				
			||||||
 | 
					        filter_file(env['F77'], self.compiler.f77, mpif77, **kwargs)
 | 
				
			||||||
 | 
					        filter_file(env['FC'], self.compiler.fc,  mpif90, **kwargs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        kwargs = { 'ignore_absent' : True, 'backup' : False, 'string' : True }
 | 
					        # Remove this linking flag if present
 | 
				
			||||||
        filter_file('CC="%s"' % spack_cc , 'CC="%s"'  % self.compiler.cc,  mpicc,  **kwargs)
 | 
					        # (it turns RPATH into RUNPATH)
 | 
				
			||||||
        filter_file('CXX="%s"'% spack_cxx, 'CXX="%s"' % self.compiler.cxx, mpicxx, **kwargs)
 | 
					        for wrapper in (mpicc, mpicxx, mpif77, mpif90):
 | 
				
			||||||
        filter_file('F77="%s"'% spack_f77, 'F77="%s"' % self.compiler.f77, mpif77, **kwargs)
 | 
					            filter_file('-Wl,--enable-new-dtags', '', wrapper, **kwargs)
 | 
				
			||||||
        filter_file('FC="%s"' % spack_fc , 'FC="%s"'  % self.compiler.fc,  mpif90, **kwargs)
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,7 +23,6 @@
 | 
				
			|||||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 | 
					# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 | 
				
			||||||
##############################################################################
 | 
					##############################################################################
 | 
				
			||||||
from spack import *
 | 
					from spack import *
 | 
				
			||||||
import os
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Mvapich2(Package):
 | 
					class Mvapich2(Package):
 | 
				
			||||||
@@ -245,27 +244,20 @@ def filter_compilers(self):
 | 
				
			|||||||
           be bound to whatever compiler they were built with.
 | 
					           be bound to whatever compiler they were built with.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        bin = self.prefix.bin
 | 
					        bin = self.prefix.bin
 | 
				
			||||||
        mpicc  = os.path.join(bin, 'mpicc')
 | 
					        mpicc  = join_path(bin, 'mpicc')
 | 
				
			||||||
        mpicxx = os.path.join(bin, 'mpicxx')
 | 
					        mpicxx = join_path(bin, 'mpicxx')
 | 
				
			||||||
        mpif77 = os.path.join(bin, 'mpif77')
 | 
					        mpif77 = join_path(bin, 'mpif77')
 | 
				
			||||||
        mpif90 = os.path.join(bin, 'mpif90')
 | 
					        mpif90 = join_path(bin, 'mpif90')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        spack_cc  = os.environ['CC']
 | 
					        # Substitute Spack compile wrappers for the real
 | 
				
			||||||
        spack_cxx = os.environ['CXX']
 | 
					        # underlying compiler
 | 
				
			||||||
        spack_f77 = os.environ['F77']
 | 
					        kwargs = {'ignore_absent': True, 'backup': False, 'string': True}
 | 
				
			||||||
        spack_fc  = os.environ['FC']
 | 
					        filter_file(env['CC'], self.compiler.cc, mpicc, **kwargs)
 | 
				
			||||||
 | 
					        filter_file(env['CXX'], self.compiler.cxx, mpicxx, **kwargs)
 | 
				
			||||||
 | 
					        filter_file(env['F77'], self.compiler.f77, mpif77, **kwargs)
 | 
				
			||||||
 | 
					        filter_file(env['FC'], self.compiler.fc, mpif90, **kwargs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        kwargs = {
 | 
					        # Remove this linking flag if present
 | 
				
			||||||
            'ignore_absent': True,
 | 
					        # (it turns RPATH into RUNPATH)
 | 
				
			||||||
            'backup': False,
 | 
					        for wrapper in (mpicc, mpicxx, mpif77, mpif90):
 | 
				
			||||||
            'string': True
 | 
					            filter_file('-Wl,--enable-new-dtags', '', wrapper, **kwargs)
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        filter_file('CC="%s"' % spack_cc,
 | 
					 | 
				
			||||||
                    'CC="%s"' % self.compiler.cc, mpicc, **kwargs)
 | 
					 | 
				
			||||||
        filter_file('CXX="%s"' % spack_cxx,
 | 
					 | 
				
			||||||
                    'CXX="%s"' % self.compiler.cxx, mpicxx, **kwargs)
 | 
					 | 
				
			||||||
        filter_file('F77="%s"' % spack_f77,
 | 
					 | 
				
			||||||
                    'F77="%s"' % self.compiler.f77, mpif77, **kwargs)
 | 
					 | 
				
			||||||
        filter_file('FC="%s"' % spack_fc,
 | 
					 | 
				
			||||||
                    'FC="%s"' % self.compiler.fc, mpif90, **kwargs)
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -73,20 +73,27 @@ class Openmpi(Package):
 | 
				
			|||||||
    patch('configure.patch', when="@1.10.0:1.10.1")
 | 
					    patch('configure.patch', when="@1.10.0:1.10.1")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    variant('psm', default=False, description='Build support for the PSM library.')
 | 
					    variant('psm', default=False, description='Build support for the PSM library.')
 | 
				
			||||||
    variant('psm2', default=False, description='Build support for the Intel PSM2 library.')
 | 
					    variant('psm2', default=False,
 | 
				
			||||||
    variant('pmi', default=False, description='Build support for PMI-based launchers')
 | 
					            description='Build support for the Intel PSM2 library.')
 | 
				
			||||||
    variant('verbs', default=_verbs_dir() is not None, description='Build support for OpenFabrics verbs.')
 | 
					    variant('pmi', default=False,
 | 
				
			||||||
 | 
					            description='Build support for PMI-based launchers')
 | 
				
			||||||
 | 
					    variant('verbs', default=_verbs_dir() is not None,
 | 
				
			||||||
 | 
					            description='Build support for OpenFabrics verbs.')
 | 
				
			||||||
    variant('mxm', default=False, description='Build Mellanox Messaging support')
 | 
					    variant('mxm', default=False, description='Build Mellanox Messaging support')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    variant('thread_multiple', default=False, description='Enable MPI_THREAD_MULTIPLE support')
 | 
					    variant('thread_multiple', default=False,
 | 
				
			||||||
 | 
					            description='Enable MPI_THREAD_MULTIPLE support')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # TODO : variant support for alps, loadleveler  is missing
 | 
					    # TODO : variant support for alps, loadleveler  is missing
 | 
				
			||||||
    variant('tm', default=False, description='Build TM (Torque, PBSPro, and compatible) support')
 | 
					    variant('tm', default=False,
 | 
				
			||||||
    variant('slurm', default=False, description='Build SLURM scheduler component')
 | 
					            description='Build TM (Torque, PBSPro, and compatible) support')
 | 
				
			||||||
 | 
					    variant('slurm', default=False,
 | 
				
			||||||
 | 
					            description='Build SLURM scheduler component')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    variant('sqlite3', default=False, description='Build sqlite3 support')
 | 
					    variant('sqlite3', default=False, description='Build sqlite3 support')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    variant('vt', default=True, description='Build support for contributed package vt')
 | 
					    variant('vt', default=True,
 | 
				
			||||||
 | 
					            description='Build support for contributed package vt')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # TODO : support for CUDA is missing
 | 
					    # TODO : support for CUDA is missing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -97,8 +104,7 @@ class Openmpi(Package):
 | 
				
			|||||||
    depends_on('sqlite', when='+sqlite3')
 | 
					    depends_on('sqlite', when='+sqlite3')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def url_for_version(self, version):
 | 
					    def url_for_version(self, version):
 | 
				
			||||||
        return "http://www.open-mpi.org/software/ompi/v%s/downloads/openmpi-%s.tar.bz2" % (version.up_to(2), version)
 | 
					        return "http://www.open-mpi.org/software/ompi/v%s/downloads/openmpi-%s.tar.bz2" % (version.up_to(2), version)  # NOQA: ignore=E501
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
 | 
					    def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
 | 
				
			||||||
        spack_env.set('OMPI_CC', spack_cc)
 | 
					        spack_env.set('OMPI_CC', spack_cc)
 | 
				
			||||||
@@ -107,14 +113,15 @@ def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
 | 
				
			|||||||
        spack_env.set('OMPI_F77', spack_f77)
 | 
					        spack_env.set('OMPI_F77', spack_f77)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def setup_dependent_package(self, module, dep_spec):
 | 
					    def setup_dependent_package(self, module, dep_spec):
 | 
				
			||||||
        self.spec.mpicc  = join_path(self.prefix.bin, 'mpicc')
 | 
					        self.spec.mpicc = join_path(self.prefix.bin, 'mpicc')
 | 
				
			||||||
        self.spec.mpicxx = join_path(self.prefix.bin, 'mpic++')
 | 
					        self.spec.mpicxx = join_path(self.prefix.bin, 'mpic++')
 | 
				
			||||||
        self.spec.mpifc  = join_path(self.prefix.bin, 'mpif90')
 | 
					        self.spec.mpifc = join_path(self.prefix.bin, 'mpif90')
 | 
				
			||||||
        self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77')
 | 
					        self.spec.mpif77 = join_path(self.prefix.bin, 'mpif77')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @property
 | 
					    @property
 | 
				
			||||||
    def verbs(self):
 | 
					    def verbs(self):
 | 
				
			||||||
        # Up through version 1.6, this option was previously named --with-openib
 | 
					        # Up through version 1.6, this option was previously named
 | 
				
			||||||
 | 
					        # --with-openib
 | 
				
			||||||
        if self.spec.satisfies('@:1.6'):
 | 
					        if self.spec.satisfies('@:1.6'):
 | 
				
			||||||
            return 'openib'
 | 
					            return 'openib'
 | 
				
			||||||
        # In version 1.7, it was renamed to be --with-verbs
 | 
					        # In version 1.7, it was renamed to be --with-verbs
 | 
				
			||||||
@@ -143,7 +150,7 @@ def install(self, spec, prefix):
 | 
				
			|||||||
            '--with-psm2' if '+psm2' in spec else '--without-psm2',
 | 
					            '--with-psm2' if '+psm2' in spec else '--without-psm2',
 | 
				
			||||||
            '--with-mxm' if '+mxm' in spec else '--without-mxm',
 | 
					            '--with-mxm' if '+mxm' in spec else '--without-mxm',
 | 
				
			||||||
            # Other options
 | 
					            # Other options
 | 
				
			||||||
            '--enable-mpi-thread-multiple' if '+thread_multiple' in spec else '--disable-mpi-thread-multiple',
 | 
					            '--enable-mpi-thread-multiple' if '+thread_multiple' in spec else '--disable-mpi-thread-multiple',  # NOQA: ignore=E501
 | 
				
			||||||
            '--with-pmi' if '+pmi' in spec else '--without-pmi',
 | 
					            '--with-pmi' if '+pmi' in spec else '--without-pmi',
 | 
				
			||||||
            '--with-sqlite3' if '+sqlite3' in spec else '--without-sqlite3',
 | 
					            '--with-sqlite3' if '+sqlite3' in spec else '--without-sqlite3',
 | 
				
			||||||
            '--enable-vt' if '+vt' in spec else '--disable-vt'
 | 
					            '--enable-vt' if '+vt' in spec else '--disable-vt'
 | 
				
			||||||
@@ -161,7 +168,7 @@ def install(self, spec, prefix):
 | 
				
			|||||||
        # use this for LANL builds, but for LLNL builds, we need:
 | 
					        # use this for LANL builds, but for LLNL builds, we need:
 | 
				
			||||||
        #     "--with-platform=contrib/platform/llnl/optimized"
 | 
					        #     "--with-platform=contrib/platform/llnl/optimized"
 | 
				
			||||||
        if self.version == ver("1.6.5") and '+lanl' in spec:
 | 
					        if self.version == ver("1.6.5") and '+lanl' in spec:
 | 
				
			||||||
            config_args.append("--with-platform=contrib/platform/lanl/tlcc2/optimized-nopanasas")
 | 
					            config_args.append("--with-platform=contrib/platform/lanl/tlcc2/optimized-nopanasas")  # NOQA: ignore=E501
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if not self.compiler.f77 and not self.compiler.fc:
 | 
					        if not self.compiler.f77 and not self.compiler.fc:
 | 
				
			||||||
            config_args.append("--enable-mpi-fortran=no")
 | 
					            config_args.append("--enable-mpi-fortran=no")
 | 
				
			||||||
@@ -181,40 +188,33 @@ def filter_compilers(self):
 | 
				
			|||||||
           be bound to whatever compiler they were built with.
 | 
					           be bound to whatever compiler they were built with.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        kwargs = {'ignore_absent': True, 'backup': False, 'string': False}
 | 
					        kwargs = {'ignore_absent': True, 'backup': False, 'string': False}
 | 
				
			||||||
        dir = os.path.join(self.prefix, 'share/openmpi/')
 | 
					        wrapper_basepath = join_path(self.prefix, 'share', 'openmpi')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        cc_wrappers = ['mpicc-vt-wrapper-data.txt', 'mpicc-wrapper-data.txt',
 | 
					        wrappers = [
 | 
				
			||||||
                       'ortecc-wrapper-data.txt', 'shmemcc-wrapper-data.txt']
 | 
					            ('mpicc-vt-wrapper-data.txt', self.compiler.cc),
 | 
				
			||||||
 | 
					            ('mpicc-wrapper-data.txt', self.compiler.cc),
 | 
				
			||||||
 | 
					            ('ortecc-wrapper-data.txt', self.compiler.cc),
 | 
				
			||||||
 | 
					            ('shmemcc-wrapper-data.txt', self.compiler.cc),
 | 
				
			||||||
 | 
					            ('mpic++-vt-wrapper-data.txt', self.compiler.cxx),
 | 
				
			||||||
 | 
					            ('mpic++-wrapper-data.txt', self.compiler.cxx),
 | 
				
			||||||
 | 
					            ('ortec++-wrapper-data.txt', self.compiler.cxx),
 | 
				
			||||||
 | 
					            ('mpifort-vt-wrapper-data.txt', self.compiler.fc),
 | 
				
			||||||
 | 
					            ('mpifort-wrapper-data.txt', self.compiler.fc),
 | 
				
			||||||
 | 
					            ('shmemfort-wrapper-data.txt', self.compiler.fc),
 | 
				
			||||||
 | 
					            ('mpif90-vt-wrapper-data.txt', self.compiler.fc),
 | 
				
			||||||
 | 
					            ('mpif90-wrapper-data.txt', self.compiler.fc),
 | 
				
			||||||
 | 
					            ('mpif77-vt-wrapper-data.txt',  self.compiler.f77),
 | 
				
			||||||
 | 
					            ('mpif77-wrapper-data.txt',  self.compiler.f77)
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        cxx_wrappers = ['mpic++-vt-wrapper-data.txt', 'mpic++-wrapper-data.txt',
 | 
					        for wrapper_name, compiler in wrappers:
 | 
				
			||||||
                        'ortec++-wrapper-data.txt']
 | 
					            wrapper = join_path(wrapper_basepath, wrapper_name)
 | 
				
			||||||
 | 
					            if not os.path.islink(wrapper):
 | 
				
			||||||
        fc_wrappers = ['mpifort-vt-wrapper-data.txt',
 | 
					                # Substitute Spack compile wrappers for the real
 | 
				
			||||||
                       'mpifort-wrapper-data.txt', 'shmemfort-wrapper-data.txt']
 | 
					                # underlying compiler
 | 
				
			||||||
 | 
					                match = 'compiler=.*'
 | 
				
			||||||
        for wrapper in cc_wrappers:
 | 
					                substitute = 'compiler={compiler}'.format(compiler=compiler)
 | 
				
			||||||
            filter_file('compiler=.*', 'compiler=%s' % self.compiler.cc,
 | 
					                filter_file(match, substitute, wrapper, **kwargs)
 | 
				
			||||||
                        os.path.join(dir, wrapper), **kwargs)
 | 
					                # Remove this linking flag if present
 | 
				
			||||||
 | 
					                # (it turns RPATH into RUNPATH)
 | 
				
			||||||
        for wrapper in cxx_wrappers:
 | 
					                filter_file('-Wl,--enable-new-dtags', '', wrapper, **kwargs)
 | 
				
			||||||
            filter_file('compiler=.*', 'compiler=%s' % self.compiler.cxx,
 | 
					 | 
				
			||||||
                        os.path.join(dir, wrapper), **kwargs)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        for wrapper in fc_wrappers:
 | 
					 | 
				
			||||||
            filter_file('compiler=.*', 'compiler=%s' % self.compiler.fc,
 | 
					 | 
				
			||||||
                        os.path.join(dir, wrapper), **kwargs)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # These are symlinks in newer versions, so check that here
 | 
					 | 
				
			||||||
        f77_wrappers = ['mpif77-vt-wrapper-data.txt', 'mpif77-wrapper-data.txt']
 | 
					 | 
				
			||||||
        f90_wrappers = ['mpif90-vt-wrapper-data.txt', 'mpif90-wrapper-data.txt']
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        for wrapper in f77_wrappers:
 | 
					 | 
				
			||||||
            path = os.path.join(dir, wrapper)
 | 
					 | 
				
			||||||
            if not os.path.islink(path):
 | 
					 | 
				
			||||||
                filter_file('compiler=.*', 'compiler=%s' % self.compiler.f77,
 | 
					 | 
				
			||||||
                            path, **kwargs)
 | 
					 | 
				
			||||||
        for wrapper in f90_wrappers:
 | 
					 | 
				
			||||||
            path = os.path.join(dir, wrapper)
 | 
					 | 
				
			||||||
            if not os.path.islink(path):
 | 
					 | 
				
			||||||
                filter_file('compiler=.*', 'compiler=%s' % self.compiler.fc,
 | 
					 | 
				
			||||||
                            path, **kwargs)
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user