ld: Fix issue where PROVIDE overrides defined symbol
[external/binutils.git] / gold / readsyms.cc
index 9974722..a76432e 100644 (file)
@@ -1,6 +1,6 @@
 // readsyms.cc -- read input file symbols for gold
 
-// Copyright 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+// Copyright (C) 2006-2018 Free Software Foundation, Inc.
 // Written by Ian Lance Taylor <iant@google.com>.
 
 // This file is part of gold.
@@ -602,6 +602,7 @@ Add_symbols::run(Workqueue*)
 
   if (!this->input_objects_->add_object(this->object_))
     {
+      this->object_->discard_decompressed_sections();
       gold_assert(this->sd_ != NULL);
       delete this->sd_;
       this->sd_ = NULL;
@@ -632,6 +633,7 @@ Add_symbols::run(Workqueue*)
        }
       this->object_->layout(this->symtab_, this->layout_, this->sd_);
       this->object_->add_symbols(this->symtab_, this->sd_, this->layout_);
+      this->object_->discard_decompressed_sections();
       delete this->sd_;
       this->sd_ = NULL;
       this->object_->release();