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/configure | |
parent | 5bac7f0ac44be66d537d4a226ad654c625aefec8 (diff) | |
download | gdb-04bf70729db030f7f0a4ec74699d1f052d13b06c.zip gdb-04bf70729db030f7f0a4ec74699d1f052d13b06c.tar.gz 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/configure')
-rwxr-xr-x | gold/configure | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/gold/configure b/gold/configure index 45e84d9..01cdf16 100755 --- a/gold/configure +++ b/gold/configure @@ -4666,6 +4666,16 @@ echo "$as_me: error: bad value ${enableval} for --enable-werror" >&2;} esac fi; +# Enable -Wno-format by default when using gcc on mingw +case "${host}" in + *-*-mingw32*) + if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then + GCC_WARN_CFLAGS="$GCC_WARN_CFLAGS -Wno-format" + fi + ;; + *) ;; +esac + # Enable -Werror by default when using gcc if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then ERROR_ON_WARNING=yes @@ -6233,6 +6243,63 @@ fi done +# gcc 4.3.0 doesn't recognize the printf attribute on a template +# function. Check for that. This is gcc bug 35546. This test can +# probably be removed after the bug has been fixed for a while. +echo "$as_me:$LINENO: checking whether we can use attributes with template functions" >&5 +echo $ECHO_N "checking whether we can use attributes with template functions... $ECHO_C" >&6 +if test "${gold_cv_template_attribute+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF + +template<typename T> extern void foo(const char*, ...) + __attribute__ ((__format__ (__printf__, 1, 2))); +template<typename T> void foo(const char* format, ...) {} +void bar() { foo<int>("%s\n", "foo"); } + +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gold_cv_template_attribute=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +gold_cv_template_attribute=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $gold_cv_template_attribute" >&5 +echo "${ECHO_T}$gold_cv_template_attribute" >&6 +if test "$gold_cv_template_attribute" = "yes"; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_TEMPLATE_ATTRIBUTES 1 +_ACEOF + +fi + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' |