OLD | NEW |
1 // symtab.h -- the gold symbol table -*- C++ -*- | 1 // symtab.h -- the gold symbol table -*- C++ -*- |
2 | 2 |
3 // Copyright 2006, 2007, 2008, 2009 Free Software Foundation, Inc. | 3 // Copyright 2006, 2007, 2008, 2009 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 1470 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1481 | 1481 |
1482 // Adjust NAME and *NAME_KEY for wrapping. | 1482 // Adjust NAME and *NAME_KEY for wrapping. |
1483 const char* | 1483 const char* |
1484 wrap_symbol(const char* name, Stringpool::Key* name_key); | 1484 wrap_symbol(const char* name, Stringpool::Key* name_key); |
1485 | 1485 |
1486 // Whether we should override a symbol, based on flags in | 1486 // Whether we should override a symbol, based on flags in |
1487 // resolve.cc. | 1487 // resolve.cc. |
1488 static bool | 1488 static bool |
1489 should_override(const Symbol*, unsigned int, Object*, bool*); | 1489 should_override(const Symbol*, unsigned int, Object*, bool*); |
1490 | 1490 |
| 1491 // Report a problem in symbol resolution. |
| 1492 static void |
| 1493 report_resolve_problem(bool is_error, const char* msg, const Symbol* to, |
| 1494 Object* object); |
| 1495 |
1491 // Override a symbol. | 1496 // Override a symbol. |
1492 template<int size, bool big_endian> | 1497 template<int size, bool big_endian> |
1493 void | 1498 void |
1494 override(Sized_symbol<size>* tosym, | 1499 override(Sized_symbol<size>* tosym, |
1495 const elfcpp::Sym<size, big_endian>& fromsym, | 1500 const elfcpp::Sym<size, big_endian>& fromsym, |
1496 unsigned int st_shndx, bool is_ordinary, | 1501 unsigned int st_shndx, bool is_ordinary, |
1497 Object* object, const char* version); | 1502 Object* object, const char* version); |
1498 | 1503 |
1499 // Whether we should override a symbol with a special symbol which | 1504 // Whether we should override a symbol with a special symbol which |
1500 // is automatically defined by the linker. | 1505 // is automatically defined by the linker. |
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1732 const Sized_symbol<size>* | 1737 const Sized_symbol<size>* |
1733 Symbol_table::get_sized_symbol(const Symbol* sym) const | 1738 Symbol_table::get_sized_symbol(const Symbol* sym) const |
1734 { | 1739 { |
1735 gold_assert(size == parameters->target().get_size()); | 1740 gold_assert(size == parameters->target().get_size()); |
1736 return static_cast<const Sized_symbol<size>*>(sym); | 1741 return static_cast<const Sized_symbol<size>*>(sym); |
1737 } | 1742 } |
1738 | 1743 |
1739 } // End namespace gold. | 1744 } // End namespace gold. |
1740 | 1745 |
1741 #endif // !defined(GOLD_SYMTAB_H) | 1746 #endif // !defined(GOLD_SYMTAB_H) |
OLD | NEW |