Fix installation permissions on BLIS and libflame libs (#12919)
* Fix installation permissions on BLIS and libflame libs * Fix undefined symbols
This commit is contained in:
		
							
								
								
									
										31
									
								
								var/spack/repos/builtin/packages/blis/Makefile_0.6.0.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								var/spack/repos/builtin/packages/blis/Makefile_0.6.0.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
From bc16ec7d1e2a30ce4a751255b70c9cbe87409e4f Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: "Field G. Van Zee" <field@cs.utexas.edu>
 | 
			
		||||
Date: Mon, 23 Sep 2019 15:37:33 -0500
 | 
			
		||||
Subject: [PATCH] Set execute bits of shared library at install-time.
 | 
			
		||||
 | 
			
		||||
Details:
 | 
			
		||||
- Modified the 0644 octal code used during installation of shared
 | 
			
		||||
  libraries to 0755 (for Linux/OSX only). Thanks to Adam J. Stewart
 | 
			
		||||
  for reporting this issue via #343.
 | 
			
		||||
---
 | 
			
		||||
 Makefile | 4 ++--
 | 
			
		||||
 1 file changed, 2 insertions(+), 2 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/Makefile b/Makefile
 | 
			
		||||
index 9cc81c9d..3c0e27f3 100644
 | 
			
		||||
--- a/Makefile
 | 
			
		||||
+++ b/Makefile
 | 
			
		||||
@@ -953,11 +953,11 @@ ifeq ($(IS_WIN),no)
 | 
			
		||||
 $(INSTALL_LIBDIR)/%.$(LIBBLIS_SO_MMB_EXT): $(BASE_LIB_PATH)/%.$(SHLIB_EXT) $(CONFIG_MK_FILE)
 | 
			
		||||
 ifeq ($(ENABLE_VERBOSE),yes)
 | 
			
		||||
 	$(MKDIR) $(@D)
 | 
			
		||||
-	$(INSTALL) -m 0644 $< $@
 | 
			
		||||
+	$(INSTALL) -m 0755 $< $@
 | 
			
		||||
 else
 | 
			
		||||
 	@echo "Installing $(@F) into $(INSTALL_LIBDIR)/"
 | 
			
		||||
 	@$(MKDIR) $(@D)
 | 
			
		||||
-	@$(INSTALL) -m 0644 $< $@
 | 
			
		||||
+	@$(INSTALL) -m 0755 $< $@
 | 
			
		||||
 endif
 | 
			
		||||
 
 | 
			
		||||
 else # ifeq ($(IS_WIN),yes)
 | 
			
		||||
@@ -73,6 +73,10 @@ class Blis(Package):
 | 
			
		||||
    provides('blas', when="+blas")
 | 
			
		||||
    provides('blas', when="+cblas")
 | 
			
		||||
 | 
			
		||||
    # Problems with permissions on installed libraries:
 | 
			
		||||
    # https://github.com/flame/blis/issues/343
 | 
			
		||||
    patch('Makefile_0.6.0.patch', when='@0.4.0:0.6.0')
 | 
			
		||||
 | 
			
		||||
    phases = ['configure', 'build', 'install']
 | 
			
		||||
 | 
			
		||||
    def configure(self, spec, prefix):
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,31 @@
 | 
			
		||||
From 4356779fe843fb30b3728f5fdab049c7291d89c6 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: "Field G. Van Zee" <field@cs.utexas.edu>
 | 
			
		||||
Date: Mon, 23 Sep 2019 15:15:15 -0500
 | 
			
		||||
Subject: [PATCH] Set execute bits of shared library at install-time.
 | 
			
		||||
 | 
			
		||||
Details:
 | 
			
		||||
- Modified the 0644 octal code used during installation of shared
 | 
			
		||||
  libraries to 0755. Thanks to Adam J. Stewart for reporting this
 | 
			
		||||
  issue in #24.
 | 
			
		||||
---
 | 
			
		||||
 Makefile | 4 ++--
 | 
			
		||||
 1 file changed, 2 insertions(+), 2 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/Makefile b/Makefile
 | 
			
		||||
index d856af4c..6bd8bdce 100644
 | 
			
		||||
--- a/Makefile
 | 
			
		||||
+++ b/Makefile
 | 
			
		||||
@@ -643,11 +643,11 @@ endif
 | 
			
		||||
 $(INSTALL_LIBDIR)/%.$(LIBFLAME_SO_MMB_EXT): $(BASE_LIB_PATH)/%.$(SHLIB_EXT) $(CONFIG_MK_FILE)
 | 
			
		||||
 ifeq ($(ENABLE_VERBOSE),yes)
 | 
			
		||||
 	$(MKDIR) $(@D)
 | 
			
		||||
-	$(INSTALL) -m 0644 $< $@
 | 
			
		||||
+	$(INSTALL) -m 0755 $< $@
 | 
			
		||||
 else
 | 
			
		||||
 	@echo "Installing $(@F) into $(INSTALL_LIBDIR)/"
 | 
			
		||||
 	@$(MKDIR) $(@D)
 | 
			
		||||
-	@$(INSTALL) -m 0644 $< $@
 | 
			
		||||
+	@$(INSTALL) -m 0755 $< $@
 | 
			
		||||
 endif
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
@@ -46,12 +46,20 @@ class Libflame(AutotoolsPackage):
 | 
			
		||||
 | 
			
		||||
    # TODO: Libflame prefers to defer to an external
 | 
			
		||||
    # LAPACK library for small problems. Is this to be
 | 
			
		||||
    # implemented in spack ?
 | 
			
		||||
    # implemented in spack?
 | 
			
		||||
 | 
			
		||||
    # There is a known issue with the makefile :
 | 
			
		||||
    # Libflame has a secondary dependency on BLAS:
 | 
			
		||||
    # https://github.com/flame/libflame/issues/24
 | 
			
		||||
    depends_on('blas')
 | 
			
		||||
 | 
			
		||||
    # There is a known issue with the makefile:
 | 
			
		||||
    # https://groups.google.com/forum/#!topic/libflame-discuss/lQKEfjyudOY
 | 
			
		||||
    patch('Makefile_5.1.0.patch', when='@5.1.0')
 | 
			
		||||
 | 
			
		||||
    # Problems with permissions on installed libraries:
 | 
			
		||||
    # https://github.com/flame/libflame/issues/24
 | 
			
		||||
    patch('Makefile_5.2.0.patch', when='@5.2.0')
 | 
			
		||||
 | 
			
		||||
    def flag_handler(self, name, flags):
 | 
			
		||||
        # -std=gnu99 at least required, old versions of GCC default to -std=c90
 | 
			
		||||
        if self.spec.satisfies('%gcc@:5.1') and name == 'cflags':
 | 
			
		||||
@@ -59,7 +67,10 @@ def flag_handler(self, name, flags):
 | 
			
		||||
        return (flags, None, None)
 | 
			
		||||
 | 
			
		||||
    def configure_args(self):
 | 
			
		||||
        config_args = []
 | 
			
		||||
        # Libflame has a secondary dependency on BLAS,
 | 
			
		||||
        # but doesn't know which library name to expect:
 | 
			
		||||
        # https://github.com/flame/libflame/issues/24
 | 
			
		||||
        config_args = ['LIBS=' + self.spec['blas'].libs.link_flags]
 | 
			
		||||
 | 
			
		||||
        if '+lapack2flame' in self.spec:
 | 
			
		||||
            config_args.append("--enable-lapack2flame")
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user