aboutsummaryrefslogtreecommitdiff
path: root/gold/gold.h
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>2008-03-26 23:36:46 +0000
committerIan Lance Taylor <ian@airs.com>2008-03-26 23:36:46 +0000
commit04bf70729db030f7f0a4ec74699d1f052d13b06c (patch)
treeff902b1690d3b9b8004680946ef861b640235ebe /gold/gold.h
parent5bac7f0ac44be66d537d4a226ad654c625aefec8 (diff)
downloadfsf-binutils-gdb-04bf70729db030f7f0a4ec74699d1f052d13b06c.zip
fsf-binutils-gdb-04bf70729db030f7f0a4ec74699d1f052d13b06c.tar.gz
fsf-binutils-gdb-04bf70729db030f7f0a4ec74699d1f052d13b06c.tar.bz2
PR gold/5986
Fix problems building gold with gcc 4.3.0. * gold.h (TEMPLATE_ATTRIBUTE_PRINTF_4): Define. (gold_error_at_location, gold_warning_at_location): Use it. * configure.ac: Check whether we can compile and use a template function with a printf attribute. * x86_64.cc (Target_x86_64::do_code_fill): Swap out a 32-bit value when jumping over bytes. * object.cc: Instantiate Object::read_section_data. * debug.h: Include <cstring> * dwarf_reader.cc: Include <algorithm> * main.cc: Include <cstring>. * options.cc: Include <cstring>. * output.cc: Include <cstring>. * script.cc: Include <cstring>. * script.h: Include <string>. * symtab.cc: Include <cstring> and <algorithm>. * target-select.cc: Include <cstring>. * version.cc: Include <string>. * testsuite/testmain.cc: Include <cstdlib>. * configure, config.in: Rebuild.
Diffstat (limited to 'gold/gold.h')
-rw-r--r--gold/gold.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/gold/gold.h b/gold/gold.h
index b34e032..1b1a84c 100644
--- a/gold/gold.h
+++ b/gold/gold.h
@@ -157,13 +157,21 @@ gold_error(const char* msg, ...) ATTRIBUTE_PRINTF_1;
extern void
gold_warning(const char* msg, ...) ATTRIBUTE_PRINTF_1;
+// Work around a bug in gcc 4.3.0. http://gcc.gnu.org/PR35546 . This
+// can probably be removed after the bug has been fixed for a while.
+#ifdef HAVE_TEMPLATE_ATTRIBUTES
+#define TEMPLATE_ATTRIBUTE_PRINTF_4 ATTRIBUTE_PRINTF_4
+#else
+#define TEMPLATE_ATTRIBUTE_PRINTF_4
+#endif
+
// This function is called to issue an error at the location of a
// reloc.
template<int size, bool big_endian>
extern void
gold_error_at_location(const Relocate_info<size, big_endian>*,
size_t, off_t, const char* format, ...)
- ATTRIBUTE_PRINTF_4;
+ TEMPLATE_ATTRIBUTE_PRINTF_4;
// This function is called to issue a warning at the location of a
// reloc.
@@ -171,7 +179,7 @@ template<int size, bool big_endian>
extern void
gold_warning_at_location(const Relocate_info<size, big_endian>*,
size_t, off_t, const char* format, ...)
- ATTRIBUTE_PRINTF_4;
+ TEMPLATE_ATTRIBUTE_PRINTF_4;
// This function is called to report an undefined symbol.
template<int size, bool big_endian>