// resolve.cc -- symbol resolution for gold
-// Copyright 2006, 2007 Free Software Foundation, Inc.
+// Copyright 2006, 2007, 2008 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>.
// This file is part of gold.
{
*adjust_common_sizes = false;
- unsigned int tobits = symbol_to_bits(to->binding(),
- (to->source() == Symbol::FROM_OBJECT
- && to->object()->is_dynamic()),
- to->shndx(),
- to->type());
+ unsigned int tobits;
+ if (to->source() == Symbol::FROM_OBJECT)
+ tobits = symbol_to_bits(to->binding(),
+ to->object()->is_dynamic(),
+ to->shndx(),
+ to->type());
+ else
+ tobits = symbol_to_bits(to->binding(), false, elfcpp::SHN_ABS,
+ to->type());
// FIXME: Warn if either but not both of TO and SYM are STT_TLS.
gold_assert(!from->has_plt_offset_);
gold_assert(!from->has_warning_);
gold_assert(!from->is_copied_from_dynobj_);
+ gold_assert(!from->is_forced_local_);
}
// Override a symbol with a special symbol.
}
while (ssym != tosym);
}
+ if (tosym->binding() == elfcpp::STB_LOCAL)
+ this->force_local(tosym);
}
// Instantiate the templates we need. We could use the configure