| OLD | NEW |
| 1 // symtab.cc -- the gold symbol table | 1 // symtab.cc -- the gold symbol table |
| 2 | 2 |
| 3 // Copyright 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. | 3 // Copyright 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. |
| 4 // Written by Ian Lance Taylor <iant@google.com>. | 4 // Written by Ian Lance Taylor <iant@google.com>. |
| 5 | 5 |
| 6 // This file is part of gold. | 6 // This file is part of gold. |
| 7 | 7 |
| 8 // This program is free software; you can redistribute it and/or modify | 8 // This program is free software; you can redistribute it and/or modify |
| 9 // it under the terms of the GNU General Public License as published by | 9 // it under the terms of the GNU General Public License as published by |
| 10 // the Free Software Foundation; either version 3 of the License, or | 10 // the Free Software Foundation; either version 3 of the License, or |
| (...skipping 2709 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2720 const std::set<std::string> &exceptions) const | 2720 const std::set<std::string> &exceptions) const |
| 2721 { | 2721 { |
| 2722 const char* const real_prefix = "__real_"; | 2722 const char* const real_prefix = "__real_"; |
| 2723 int undef_count = 0; | 2723 int undef_count = 0; |
| 2724 for (Symbol_table_type::const_iterator p = this->table_.begin(); | 2724 for (Symbol_table_type::const_iterator p = this->table_.begin(); |
| 2725 p != this->table_.end(); | 2725 p != this->table_.end(); |
| 2726 ++p) | 2726 ++p) |
| 2727 { | 2727 { |
| 2728 Symbol *sym = p->second; | 2728 Symbol *sym = p->second; |
| 2729 if (sym->is_undefined() && | 2729 if (sym->is_undefined() && |
| 2730 sym->in_reg() && |
| 2730 sym->binding() != elfcpp::STB_WEAK && | 2731 sym->binding() != elfcpp::STB_WEAK && |
| 2731 exceptions.count(sym->name()) == 0 && | 2732 exceptions.count(sym->name()) == 0 && |
| 2732 // @TODO(pdox): If --wrap is to be a supported user-visible feature, | 2733 // @TODO(pdox): If --wrap is to be a supported user-visible feature, |
| 2733 // then it should be implemented properly in the LLVM plugin. | 2734 // then it should be implemented properly in the LLVM plugin. |
| 2734 // For now, since we need to use --wrap for the self-build, just | 2735 // For now, since we need to use --wrap for the self-build, just |
| 2735 // ignore the undefined symbols that result from --wrap. | 2736 // ignore the undefined symbols that result from --wrap. |
| 2736 strncmp(sym->name(), real_prefix, strlen(real_prefix)) != 0) | 2737 strncmp(sym->name(), real_prefix, strlen(real_prefix)) != 0) |
| 2737 { | 2738 { |
| 2738 gold_undefined_symbol(sym); | 2739 gold_undefined_symbol(sym); |
| 2739 undef_count++; | 2740 undef_count++; |
| (...skipping 826 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3566 | 3567 |
| 3567 #ifdef HAVE_TARGET_64_BIG | 3568 #ifdef HAVE_TARGET_64_BIG |
| 3568 template | 3569 template |
| 3569 void | 3570 void |
| 3570 Warnings::issue_warning<64, true>(const Symbol* sym, | 3571 Warnings::issue_warning<64, true>(const Symbol* sym, |
| 3571 const Relocate_info<64, true>* relinfo, | 3572 const Relocate_info<64, true>* relinfo, |
| 3572 size_t relnum, off_t reloffset) const; | 3573 size_t relnum, off_t reloffset) const; |
| 3573 #endif | 3574 #endif |
| 3574 | 3575 |
| 3575 } // End namespace gold. | 3576 } // End namespace gold. |
| OLD | NEW |