aboutsummaryrefslogtreecommitdiff
path: root/gold/reloc.cc
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2007-09-04 20:00:53 +0000
committerIan Lance Taylor <iant@google.com>2007-09-04 20:00:53 +0000
commit193a53d920ac7248cf6a3d8e36f74e9b9100b93b (patch)
treefe5c87514693b22f2705d4f8d92fd94d7978781e /gold/reloc.cc
parent64707334c75cdf16a0c2d317fc381c9b158beed9 (diff)
downloadfsf-binutils-gdb-193a53d920ac7248cf6a3d8e36f74e9b9100b93b.zip
fsf-binutils-gdb-193a53d920ac7248cf6a3d8e36f74e9b9100b93b.tar.gz
fsf-binutils-gdb-193a53d920ac7248cf6a3d8e36f74e9b9100b93b.tar.bz2
Add support for --enable-target to control which template
specializations we generate.
Diffstat (limited to 'gold/reloc.cc')
-rw-r--r--gold/reloc.cc48
1 files changed, 48 insertions, 0 deletions
diff --git a/gold/reloc.cc b/gold/reloc.cc
index 76ab196..cf7ee30 100644
--- a/gold/reloc.cc
+++ b/gold/reloc.cc
@@ -611,128 +611,176 @@ Copy_relocs<size, big_endian>::emit(
// Instantiate the templates we need. We could use the configure
// script to restrict this to only the ones for implemented targets.
+#ifdef HAVE_TARGET_32_LITTLE
template
void
Sized_relobj<32, false>::do_read_relocs(Read_relocs_data* rd);
+#endif
+#ifdef HAVE_TARGET_32_BIG
template
void
Sized_relobj<32, true>::do_read_relocs(Read_relocs_data* rd);
+#endif
+#ifdef HAVE_TARGET_64_LITTLE
template
void
Sized_relobj<64, false>::do_read_relocs(Read_relocs_data* rd);
+#endif
+#ifdef HAVE_TARGET_64_BIG
template
void
Sized_relobj<64, true>::do_read_relocs(Read_relocs_data* rd);
+#endif
+#ifdef HAVE_TARGET_32_LITTLE
template
void
Sized_relobj<32, false>::do_scan_relocs(const General_options& options,
Symbol_table* symtab,
Layout* layout,
Read_relocs_data* rd);
+#endif
+#ifdef HAVE_TARGET_32_BIG
template
void
Sized_relobj<32, true>::do_scan_relocs(const General_options& options,
Symbol_table* symtab,
Layout* layout,
Read_relocs_data* rd);
+#endif
+#ifdef HAVE_TARGET_64_LITTLE
template
void
Sized_relobj<64, false>::do_scan_relocs(const General_options& options,
Symbol_table* symtab,
Layout* layout,
Read_relocs_data* rd);
+#endif
+#ifdef HAVE_TARGET_64_BIG
template
void
Sized_relobj<64, true>::do_scan_relocs(const General_options& options,
Symbol_table* symtab,
Layout* layout,
Read_relocs_data* rd);
+#endif
+#ifdef HAVE_TARGET_32_LITTLE
template
void
Sized_relobj<32, false>::do_relocate(const General_options& options,
const Symbol_table* symtab,
const Layout* layout,
Output_file* of);
+#endif
+#ifdef HAVE_TARGET_32_BIG
template
void
Sized_relobj<32, true>::do_relocate(const General_options& options,
const Symbol_table* symtab,
const Layout* layout,
Output_file* of);
+#endif
+#ifdef HAVE_TARGET_64_LITTLE
template
void
Sized_relobj<64, false>::do_relocate(const General_options& options,
const Symbol_table* symtab,
const Layout* layout,
Output_file* of);
+#endif
+#ifdef HAVE_TARGET_64_BIG
template
void
Sized_relobj<64, true>::do_relocate(const General_options& options,
const Symbol_table* symtab,
const Layout* layout,
Output_file* of);
+#endif
+#ifdef HAVE_TARGET_32_LITTLE
template
class Copy_relocs<32, false>;
+#endif
+#ifdef HAVE_TARGET_32_BIG
template
class Copy_relocs<32, true>;
+#endif
+#ifdef HAVE_TARGET_64_LITTLE
template
class Copy_relocs<64, false>;
+#endif
+#ifdef HAVE_TARGET_64_BIG
template
class Copy_relocs<64, true>;
+#endif
+#ifdef HAVE_TARGET_32_LITTLE
template
void
Copy_relocs<32, false>::emit<elfcpp::SHT_REL>(
Output_data_reloc<elfcpp::SHT_REL, true, 32, false>*);
+#endif
+#ifdef HAVE_TARGET_32_BIG
template
void
Copy_relocs<32, true>::emit<elfcpp::SHT_REL>(
Output_data_reloc<elfcpp::SHT_REL, true, 32, true>*);
+#endif
+#ifdef HAVE_TARGET_64_LITTLE
template
void
Copy_relocs<64, false>::emit<elfcpp::SHT_REL>(
Output_data_reloc<elfcpp::SHT_REL, true, 64, false>*);
+#endif
+#ifdef HAVE_TARGET_64_BIG
template
void
Copy_relocs<64, true>::emit<elfcpp::SHT_REL>(
Output_data_reloc<elfcpp::SHT_REL, true, 64, true>*);
+#endif
+#ifdef HAVE_TARGET_32_LITTLE
template
void
Copy_relocs<32, false>::emit<elfcpp::SHT_RELA>(
Output_data_reloc<elfcpp::SHT_RELA , true, 32, false>*);
+#endif
+#ifdef HAVE_TARGET_32_BIG
template
void
Copy_relocs<32, true>::emit<elfcpp::SHT_RELA>(
Output_data_reloc<elfcpp::SHT_RELA, true, 32, true>*);
+#endif
+#ifdef HAVE_TARGET_64_LITTLE
template
void
Copy_relocs<64, false>::emit<elfcpp::SHT_RELA>(
Output_data_reloc<elfcpp::SHT_RELA, true, 64, false>*);
+#endif
+#ifdef HAVE_TARGET_64_BIG
template
void
Copy_relocs<64, true>::emit<elfcpp::SHT_RELA>(
Output_data_reloc<elfcpp::SHT_RELA, true, 64, true>*);
+#endif
} // End namespace gold.