// resolve.cc -- symbol resolution for gold
-// Copyright (C) 2006-2015 Free Software Foundation, Inc.
+// Copyright (C) 2006-2017 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>.
// This file is part of gold.
this->is_ordinary_shndx_ = is_ordinary;
// Don't override st_type from plugin placeholder symbols.
if (object->pluginobj() == NULL)
- {
- // Turn IFUNC symbols from shared libraries into normal FUNC symbols.
- elfcpp::STT type = sym.get_st_type();
- if (object->is_dynamic() && type == elfcpp::STT_GNU_IFUNC)
- type = elfcpp::STT_FUNC;
- this->type_ = type;
- }
+ this->type_ = sym.get_st_type();
this->binding_ = sym.get_st_bind();
this->override_visibility(sym.get_st_visibility());
this->nonvis_ = sym.get_st_nonvis();
// table.
gold_error(_("invalid STB_LOCAL symbol in external symbols"));
bits = global_flag;
+ break;
default:
// Any target which wants to handle STB_LOOS, etc., needs to
{
Sized_target<size, big_endian>* sized_target;
sized_target = parameters->sized_target<size, big_endian>();
- sized_target->resolve(to, sym, object, version);
- return;
+ if (sized_target->resolve(to, sym, object, version))
+ return;
}
if (!object->is_dynamic())