aboutsummaryrefslogtreecommitdiff
path: root/gold/powerpc.cc
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2012-08-14 03:39:03 +0000
committerAlan Modra <amodra@gmail.com>2012-08-14 03:39:03 +0000
commit921b53228fa18e00beca6b19b3aa43c23903b900 (patch)
tree58e756620d247965ed65e394bd8d40aae46253f4 /gold/powerpc.cc
parenta6f7924a8348ef6344ea114278fb2befcd3118e1 (diff)
downloadgdb-921b53228fa18e00beca6b19b3aa43c23903b900.zip
gdb-921b53228fa18e00beca6b19b3aa43c23903b900.tar.gz
gdb-921b53228fa18e00beca6b19b3aa43c23903b900.tar.bz2
* target.h (Target::output_section_name): New function.
(Target::do_output_section_name): New function. * layout.cc (Layout::choose_output_section): Call the above. * powerpc.cc (Target_powerpc::do_output_section_name): New function.
Diffstat (limited to 'gold/powerpc.cc')
-rw-r--r--gold/powerpc.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/gold/powerpc.cc b/gold/powerpc.cc
index 3c84fd6..35cf834 100644
--- a/gold/powerpc.cc
+++ b/gold/powerpc.cc
@@ -125,6 +125,19 @@ class Target_powerpc : public Sized_target<size, big_endian>
bool needs_special_offset_handling,
size_t local_symbol_count,
const unsigned char* plocal_symbols);
+
+ // Map input .toc section to output .got section.
+ const char*
+ do_output_section_name(const Relobj*, const char* name, size_t* plen) const
+ {
+ if (size == 64 && strcmp(name, ".toc") == 0)
+ {
+ *plen = 4;
+ return ".got";
+ }
+ return NULL;
+ }
+
// Finalize the sections.
void
do_finalize_sections(Layout*, const Input_objects*, Symbol_table*);