From 04bf70729db030f7f0a4ec74699d1f052d13b06c Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 26 Mar 2008 23:36:46 +0000 Subject: 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 * dwarf_reader.cc: Include * main.cc: Include . * options.cc: Include . * output.cc: Include . * script.cc: Include . * script.h: Include . * symtab.cc: Include and . * target-select.cc: Include . * version.cc: Include . * testsuite/testmain.cc: Include . * configure, config.in: Rebuild. --- gold/gold.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'gold/gold.h') 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 extern void gold_error_at_location(const Relocate_info*, 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 extern void gold_warning_at_location(const Relocate_info*, size_t, off_t, const char* format, ...) - ATTRIBUTE_PRINTF_4; + TEMPLATE_ATTRIBUTE_PRINTF_4; // This function is called to report an undefined symbol. template -- cgit v1.1