summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/gcc/package.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py
index a9fed4d8dd..c005cd581a 100644
--- a/var/spack/repos/builtin/packages/gcc/package.py
+++ b/var/spack/repos/builtin/packages/gcc/package.py
@@ -92,6 +92,10 @@ class Gcc(AutotoolsPackage):
filter_file(r"'@.*@'", "'@[[:alnum:]]*@'", 'libjava/configure',
string=True)
+ # Make libgcc_s relocatable
+ filter_file(r"@shlib_slibdir@", "@rpath",
+ 'libgcc/config/t-slibgcc-darwin', string=True)
+
enabled_languages = set(('c', 'c++', 'fortran', 'java', 'objc'))
if spec.satisfies("@4.7.1:") and sys.platform != 'darwin' and \
@@ -172,6 +176,11 @@ class Gcc(AutotoolsPackage):
for line in lines:
out.write(line + "\n")
if line.startswith("*link:"):
- out.write("-rpath %s/lib:%s/lib64 \\\n" %
- (self.prefix, self.prefix))
+ if sys.platform == 'darwin':
+ out.write("-rpath %s/lib -rpath %s/lib64 "
+ r"-headerpad_max_install_names \n" %
+ (self.prefix, self.prefix))
+ else:
+ out.write(r"-rpath %s/lib:%s/lib64 \n" %
+ (self.prefix, self.prefix))
set_install_permissions(specs_file)