From 1c7cbb302b1c6e41eb0c5cecfc655532f1919cba Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 28 Jul 2017 13:46:26 +0200 Subject: Implement support for linking whole archive --- build2/algorithm.cxx | 34 ++++++++-------------------------- 1 file changed, 8 insertions(+), 26 deletions(-) (limited to 'build2/algorithm.cxx') diff --git a/build2/algorithm.cxx b/build2/algorithm.cxx index fa9787b..5e18441 100644 --- a/build2/algorithm.cxx +++ b/build2/algorithm.cxx @@ -19,32 +19,6 @@ using namespace butl; namespace build2 { - const target* - search_existing (const prerequisite& p) - { - assert (phase == run_phase::match); // Could be relaxed. - - const target* r (p.target.load (memory_order_consume)); - - if (r == nullptr) - { - const prerequisite_key& pk (p.key ()); - r = pk.proj ? import_existing (pk) : search_existing_target (pk); - - if (r != nullptr) - { - const target* e (nullptr); - if (!p.target.compare_exchange_strong ( - e, r, - memory_order_release, - memory_order_consume)) - assert (e == r); - } - } - - return r; - } - const target& search (const target& t, const prerequisite_key& pk) { @@ -62,6 +36,14 @@ namespace build2 return create_new_target (pk); } + const target* + search_existing (const prerequisite_key& pk) + { + assert (phase == run_phase::match || phase == run_phase::execute); + + return pk.proj ? import_existing (pk) : search_existing_target (pk); + } + const target& search (const target& t, name n, const scope& s) { -- cgit v1.1