aboutsummaryrefslogtreecommitdiff
path: root/build2/cc/link.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-07-29 10:29:59 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-07-29 10:29:59 +0200
commit2b922df93fcea9e3fad8e24b39c7fe579085d3ac (patch)
treec2c8171427fb960b808f0446e30651bb0b9bfe08 /build2/cc/link.cxx
parent1ece46928dcd77d47b4875ac7edadb0c6d30c959 (diff)
Refine utility library semantics with "see through" theme
Diffstat (limited to 'build2/cc/link.cxx')
-rw-r--r--build2/cc/link.cxx10
1 files changed, 6 insertions, 4 deletions
diff --git a/build2/cc/link.cxx b/build2/cc/link.cxx
index 1a5424b..25b6a28 100644
--- a/build2/cc/link.cxx
+++ b/build2/cc/link.cxx
@@ -1038,11 +1038,12 @@ namespace build2
return;
}
- auto imp = [for_install] (const file&, bool la)
+ auto imp = [for_install] (const file& l, bool la)
{
// If we are not installing, then we only need to rpath interface
- // libraries (they will include rpath's for their implementations).
- // Otherwise, we have to do this recursively.
+ // libraries (they will include rpath's for their implementations)
+ // Otherwise, we have to do this recursively. In both cases we also
+ // want to see through utility libraries.
//
// The rpath-link part is tricky: ideally we would like to get only
// implementations and only of shared libraries. We are not interested
@@ -1052,7 +1053,8 @@ namespace build2
// we are going to rpath-link all of them which should be harmless
// except for some noise on the command line.
//
- return for_install ? !la : false;
+ //
+ return (for_install ? !la : false) || l.is_a<libux> ();
};
// Package the data to keep within the 2-pointer small std::function