summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark W. Krentel <krentel@rice.edu>2019-06-20 16:43:25 -0500
committerElizabeth Fischer <elizabeth.fischer@columbia.edu>2019-06-20 17:43:25 -0400
commita76bacd594a24921914c24b72db2e6f4e7854e60 (patch)
tree1253ef13f5f69a3323d0e1708459b98335969201
parent686eaff30ce582d59807e22fdf7b82df7bad2e55 (diff)
downloadspack-a76bacd594a24921914c24b72db2e6f4e7854e60.tar.gz
spack-a76bacd594a24921914c24b72db2e6f4e7854e60.tar.bz2
spack-a76bacd594a24921914c24b72db2e6f4e7854e60.tar.xz
spack-a76bacd594a24921914c24b72db2e6f4e7854e60.zip
boost: add variant for symbol visibility (#11801)
Starting with 1.69.0, boost added a bjam option for the default symbol visibility. Up to 1.68.0, the value was always 'global'. 1.69.0 changed the default to 'hidden' but added an option. Most packages will work with hidden and won't notice. But some packages may discover that an interface that they rely on is now hidden and inaccessible. https://boostorg.github.io/build/manual/develop/index.html#bbv2.builtin.features.visibility
-rw-r--r--var/spack/repos/builtin/packages/boost/package.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py
index f62d66db1b..d646967da0 100644
--- a/var/spack/repos/builtin/packages/boost/package.py
+++ b/var/spack/repos/builtin/packages/boost/package.py
@@ -129,6 +129,12 @@ class Boost(Package):
description='Generate position-independent code (PIC), useful '
'for building static libraries')
+ # https://boostorg.github.io/build/manual/develop/index.html#bbv2.builtin.features.visibility
+ variant('visibility', values=('global', 'protected', 'hidden'),
+ default='hidden', multi=False,
+ description='Default symbol visibility in compiled libraries '
+ '(1.69.0 or later)')
+
depends_on('icu4c', when='+icu')
depends_on('python', when='+python')
depends_on('mpi', when='+mpi')
@@ -335,6 +341,10 @@ class Boost(Package):
if cxxflags:
options.append('cxxflags="{0}"'.format(' '.join(cxxflags)))
+ # Visibility was added in 1.69.0.
+ if spec.satisfies('@1.69.0:'):
+ options.append('visibility=%s' % spec.variants['visibility'].value)
+
return threading_opts
def add_buildopt_symlinks(self, prefix):