diff options
author | Ian Lance Taylor <ian@airs.com> | 2008-03-26 23:36:46 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 2008-03-26 23:36:46 +0000 |
commit | 04bf70729db030f7f0a4ec74699d1f052d13b06c (patch) | |
tree | ff902b1690d3b9b8004680946ef861b640235ebe /gold/gold.h | |
parent | daily update (diff) | |
download | binutils-gdb-04bf70729db030f7f0a4ec74699d1f052d13b06c.tar.gz binutils-gdb-04bf70729db030f7f0a4ec74699d1f052d13b06c.tar.bz2 binutils-gdb-04bf70729db030f7f0a4ec74699d1f052d13b06c.zip |
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.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gold/gold.h b/gold/gold.h index b34e0320b06..1b1a84c1b02 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> |