diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fe49c242265..e48f8d4cf17 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-06-07 Nathan Sidwell + + * configure.in (sparc*-*-*): Check assembler R_SPARC_UA32 support. + * configure: Rebuilt. + 2001-06-07 Andreas Jaeger * emit-rtl.c (operand_subword): Remove unused variable. diff --git a/gcc/configure b/gcc/configure index 12cd174b979..f35c7d1444c 100755 --- a/gcc/configure +++ b/gcc/configure @@ -2052,7 +2052,7 @@ EOF fi # Find some useful tools -for ac_prog in mawk gawk nawk awk +for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -7171,11 +7171,54 @@ EOF fi fi + echo $ac_n "checking assembler R_SPARC_UA32 relocation support""... $ac_c" 1>&6 +echo "configure:7176: checking assembler R_SPARC_UA32 relocation support" >&5 +if eval "test \"`echo '$''{'gcc_cv_as_ua32_reloc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + + gcc_cv_as_ua32_reloc= + cat >conftest.s << EOF + .byte 0x1 + .uaword foo +EOF + if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then + if (readelf -r conftest.o > conftest.elf) 2>/dev/null ; then + true + elif (elfdump -r conftest.o > conftest.elf) 2>/dev/null ; then + true + elif (`dirname $gcc_cv_as`/readelf -r conftest.o > conftest.elf) 2>/dev/null ; then + true + elif (`dirname $gcc_cv_as`/elfdump -r conftest.o > conftest.elf) 2>/dev/null ; then + true + else + gcc_cv_as_ua32_reloc=unknown + fi + if test x$gcc_cv_as_ua32_reloc = x && test `grep -c R_SPARC_UA32 conftest.elf` = 1 ; then + gcc_cv_as_ua32_reloc=yes + else + gcc_cv_as_ua32_reloc=no + fi + else + gcc_cv_as_ua32_reloc=unknown + fi + rm -f conftest.s conftest.o conftest.elf + +fi + +echo "$ac_t""$gcc_cv_as_ua32_reloc" 1>&6 + if test "x$gcc_cv_as_ua32_reloc" = xno; then + { echo "configure: error: Assembler does not support R_SPARC_UA32 correctly. +Please use native assembler or upgrade to binutils >= 2.11.1" 1>&2; exit 1; } + elif test "x$gcc_cv_as_ua32_reloc" != xyes ; then + echo "configure: warning: Cannot determine whether assembler supports R_SPARC_UA32 correctly. +The resulting compiler might not produce useable executables." 1>&2 + fi ;; i[34567]86-*-*) echo $ac_n "checking assembler instructions""... $ac_c" 1>&6 -echo "configure:7179: checking assembler instructions" >&5 +echo "configure:7222: checking assembler instructions" >&5 gcc_cv_as_instructions= if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2; then @@ -7204,7 +7247,7 @@ EOF esac echo $ac_n "checking assembler dwarf2 debug_line support""... $ac_c" 1>&6 -echo "configure:7208: checking assembler dwarf2 debug_line support" >&5 +echo "configure:7251: checking assembler dwarf2 debug_line support" >&5 gcc_cv_as_dwarf2_debug_line=no # ??? Not all targets support dwarf2 debug_line, even within a version # of gas. Moreover, we need to emit a valid instruction to trigger any @@ -7389,7 +7432,7 @@ fi echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 -echo "configure:7393: checking whether to enable maintainer-specific portions of Makefiles" >&5 +echo "configure:7436: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" diff --git a/gcc/configure.in b/gcc/configure.in index 0c9117ad98a..0b89592e1ab 100644 --- a/gcc/configure.in +++ b/gcc/configure.in @@ -1587,6 +1587,42 @@ changequote([, ]) [Define if your assembler supports offsetable %lo().]) fi fi + AC_CACHE_CHECK([assembler R_SPARC_UA32 relocation support], + gcc_cv_as_ua32_reloc, [ + gcc_cv_as_ua32_reloc= + cat >conftest.s << EOF + .byte 0x1 + .uaword foo +EOF + if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then + if (readelf -r conftest.o > conftest.elf) 2>/dev/null ; then + true + elif (elfdump -r conftest.o > conftest.elf) 2>/dev/null ; then + true + elif (`dirname $gcc_cv_as`/readelf -r conftest.o > conftest.elf) 2>/dev/null ; then + true + elif (`dirname $gcc_cv_as`/elfdump -r conftest.o > conftest.elf) 2>/dev/null ; then + true + else + gcc_cv_as_ua32_reloc=unknown + fi + if test x$gcc_cv_as_ua32_reloc = x && test `grep -c R_SPARC_UA32 conftest.elf` = 1 ; then + gcc_cv_as_ua32_reloc=yes + else + gcc_cv_as_ua32_reloc=no + fi + else + gcc_cv_as_ua32_reloc=unknown + fi + rm -f conftest.s conftest.o conftest.elf + ]) + if test "x$gcc_cv_as_ua32_reloc" = xno; then + AC_MSG_ERROR([Assembler does not support R_SPARC_UA32 correctly. +Please use native assembler or upgrade to binutils >= 2.11.1]) + elif test "x$gcc_cv_as_ua32_reloc" != xyes ; then + AC_MSG_WARN([Cannot determine whether assembler supports R_SPARC_UA32 correctly. +The resulting compiler might not produce useable executables.]) + fi ;; changequote(,)dnl