re PR target/12101 (i386 Solaris no longer works with GNU as?)

* configure.in (gcc_cv_as_ix86_cmov_sun_syntax): Check if
	assembler supports Sun syntax for cmov.
	* configure: Regenerate.
	* config.in: Likewise.
	* config/i386/i386.c: Rename CMOV_SUN_AS_SYNTAX to
	HAVE_AS_IX86_CMOV_SUN_SYNTAX.
	* config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Remove.
	Fixes PR target/12101.

From-SVN: r71089
This commit is contained in:
Rainer Orth 2003-09-04 21:38:59 +00:00 committed by Rainer Orth
parent 47ab33b220
commit f6f5dff2e1
6 changed files with 75 additions and 30 deletions

View File

@ -1,3 +1,14 @@
2003-09-04 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* configure.in (gcc_cv_as_ix86_cmov_sun_syntax): Check if
assembler supports Sun syntax for cmov.
* configure: Regenerate.
* config.in: Likewise.
* config/i386/i386.c: Rename CMOV_SUN_AS_SYNTAX to
HAVE_AS_IX86_CMOV_SUN_SYNTAX.
* config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Remove.
Fixes PR target/12101.
2003-09-04 Matt Austern <austern@apple.com>
* c-common.c (fname_as_string): Use lang_hooks.decl_printable_name

View File

@ -480,6 +480,9 @@
/* Define if your assembler uses the new HImode fild and fist notation. */
#undef HAVE_GAS_FILDS_FISTS
/* Define if your assembler supports the Sun syntax for cmov. */
#undef HAVE_AS_IX86_CMOV_SUN_SYNTAX
/* Define true if the assembler supports '.long foo@GOTOFF'. */
#undef HAVE_AS_GOTOFF_IN_DATA

View File

@ -7020,8 +7020,8 @@ get_some_local_dynamic_name_1 (rtx *px, void *data ATTRIBUTE_UNUSED)
C -- print opcode suffix for set/cmov insn.
c -- like C, but print reversed condition
F,f -- likewise, but for floating-point.
O -- if CMOV_SUN_AS_SYNTAX, expand to "w.", "l." or "q.", otherwise
nothing
O -- if HAVE_AS_IX86_CMOV_SUN_SYNTAX, expand to "w.", "l." or "q.",
otherwise nothing
R -- print the prefix for register names.
z -- print the opcode suffix for the size of the current operand.
* -- print a star (in certain assembler syntax)
@ -7222,7 +7222,7 @@ print_operand (FILE *file, rtx x, int code)
}
return;
case 'O':
#ifdef CMOV_SUN_AS_SYNTAX
#ifdef HAVE_AS_IX86_CMOV_SUN_SYNTAX
if (ASSEMBLER_DIALECT == ASM_ATT)
{
switch (GET_MODE (x))
@ -7242,7 +7242,7 @@ print_operand (FILE *file, rtx x, int code)
put_condition_code (GET_CODE (x), GET_MODE (XEXP (x, 0)), 0, 0, file);
return;
case 'F':
#ifdef CMOV_SUN_AS_SYNTAX
#ifdef HAVE_AS_IX86_CMOV_SUN_SYNTAX
if (ASSEMBLER_DIALECT == ASM_ATT)
putc ('.', file);
#endif
@ -7261,7 +7261,7 @@ print_operand (FILE *file, rtx x, int code)
put_condition_code (GET_CODE (x), GET_MODE (XEXP (x, 0)), 1, 0, file);
return;
case 'f':
#ifdef CMOV_SUN_AS_SYNTAX
#ifdef HAVE_AS_IX86_CMOV_SUN_SYNTAX
if (ASSEMBLER_DIALECT == ASM_ATT)
putc ('.', file);
#endif

View File

@ -1,5 +1,5 @@
/* Target definitions for GNU compiler for Intel 80386 running Solaris 2
Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Contributed by Fred Fish (fnf@cygnus.com).
@ -20,8 +20,6 @@ along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#define CMOV_SUN_AS_SYNTAX 1
/* The Solaris 2.0 x86 linker botches alignment of code sections.
It tries to align to a 16 byte boundary by padding with 0x00000090
ints, rather than 0x90 bytes (nop). This generates trash in the

71
gcc/configure vendored
View File

@ -6949,12 +6949,39 @@ if test $gcc_cv_as_ix86_filds_fists = yes; then
#define HAVE_GAS_FILDS_FISTS 1
EOF
fi
echo $ac_n "checking assembler for cmov syntax""... $ac_c" 1>&6
echo "configure:6956: checking assembler for cmov syntax" >&5
if eval "test \"`echo '$''{'gcc_cv_as_ix86_cmov_sun_syntax'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
gcc_cv_as_ix86_cmov_sun_syntax=no
if test x$gcc_cv_as != x; then
echo 'cmovl.l %edx, %eax' > conftest.s
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:6963: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_ix86_cmov_sun_syntax=yes
else
echo "configure: failed program was" >&5
cat conftest.s >&5
fi
rm -f conftest.o conftest.s
fi
fi
echo "$ac_t""$gcc_cv_as_ix86_cmov_sun_syntax" 1>&6
if test $gcc_cv_as_ix86_cmov_sun_syntax = yes; then
cat >> confdefs.h <<\EOF
#define HAVE_AS_IX86_CMOV_SUN_SYNTAX 1
EOF
fi
# This one is used unconditionally by i386.[ch]; it is to be defined
# to 1 if the feature is present, 0 otherwise.
echo $ac_n "checking assembler for GOTOFF in data""... $ac_c" 1>&6
echo "configure:6958: checking assembler for GOTOFF in data" >&5
echo "configure:6985: checking assembler for GOTOFF in data" >&5
if eval "test \"`echo '$''{'gcc_cv_as_ix86_gotoff_in_data'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -6969,7 +6996,7 @@ fi
nop
.data
.long .L0@GOTOFF' > conftest.s
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:6973: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:7000: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_ix86_gotoff_in_data=yes
else
@ -6990,7 +7017,7 @@ EOF
ia64*-*-*)
echo $ac_n "checking assembler for ltoffx and ldxmov relocs""... $ac_c" 1>&6
echo "configure:6994: checking assembler for ltoffx and ldxmov relocs" >&5
echo "configure:7021: checking assembler for ltoffx and ldxmov relocs" >&5
if eval "test \"`echo '$''{'gcc_cv_as_ia64_ltoffx_ldxmov_relocs'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -7004,7 +7031,7 @@ fi
addl r15 = @ltoffx(x#), gp
;;
ld8.mov r16 = [r15], x#' > conftest.s
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:7008: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:7035: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_ia64_ltoffx_ldxmov_relocs=yes
else
@ -7034,7 +7061,7 @@ fi
mfcr 3,128"
echo $ac_n "checking assembler for mfcr field support""... $ac_c" 1>&6
echo "configure:7038: checking assembler for mfcr field support" >&5
echo "configure:7065: checking assembler for mfcr field support" >&5
if eval "test \"`echo '$''{'gcc_cv_as_powerpc_mfcrf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -7045,7 +7072,7 @@ else
fi
elif test x$gcc_cv_as != x; then
echo "$conftest_s" > conftest.s
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:7049: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:7076: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_powerpc_mfcrf=yes
else
@ -7067,7 +7094,7 @@ fi
mips*-*-*)
echo $ac_n "checking assembler for explicit relocation support""... $ac_c" 1>&6
echo "configure:7071: checking assembler for explicit relocation support" >&5
echo "configure:7098: checking assembler for explicit relocation support" >&5
if eval "test \"`echo '$''{'gcc_cv_as_mips_explicit_relocs'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -7078,7 +7105,7 @@ else
fi
elif test x$gcc_cv_as != x; then
echo ' lw $4,%gp_rel(foo)($4)' > conftest.s
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:7082: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:7109: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_mips_explicit_relocs=yes
else
@ -7124,7 +7151,7 @@ if test x"$insn" != x; then
.loc 1 3 0
$insn"
echo $ac_n "checking assembler for dwarf2 debug_line support""... $ac_c" 1>&6
echo "configure:7128: checking assembler for dwarf2 debug_line support" >&5
echo "configure:7155: checking assembler for dwarf2 debug_line support" >&5
if eval "test \"`echo '$''{'gcc_cv_as_dwarf2_debug_line'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -7136,7 +7163,7 @@ else
fi
elif test x$gcc_cv_as != x; then
echo "$conftest_s" > conftest.s
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:7140: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:7167: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
# ??? This fails with non-gnu grep. Maybe use objdump?
if grep debug_line conftest.o > /dev/null 2>&1; then
@ -7158,7 +7185,7 @@ echo "$ac_t""$gcc_cv_as_dwarf2_debug_line" 1>&6
# by DW_AT_decl_file. Approximate this test by testing if
# the assembler bitches if the same index is assigned twice.
echo $ac_n "checking assembler for buggy dwarf2 .file directive""... $ac_c" 1>&6
echo "configure:7162: checking assembler for buggy dwarf2 .file directive" >&5
echo "configure:7189: checking assembler for buggy dwarf2 .file directive" >&5
if eval "test \"`echo '$''{'gcc_cv_as_dwarf2_file_buggy'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -7166,7 +7193,7 @@ else
if test x$gcc_cv_as != x; then
echo ' .file 1 "foo.s"
.file 1 "bar.s"' > conftest.s
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:7170: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:7197: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_dwarf2_file_buggy=yes
else
@ -7189,7 +7216,7 @@ EOF
fi
echo $ac_n "checking assembler for --gdwarf2 option""... $ac_c" 1>&6
echo "configure:7193: checking assembler for --gdwarf2 option" >&5
echo "configure:7220: checking assembler for --gdwarf2 option" >&5
if eval "test \"`echo '$''{'gcc_cv_as_gdwarf2_flag'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -7201,7 +7228,7 @@ else
fi
elif test x$gcc_cv_as != x; then
echo "$insn" > conftest.s
if { ac_try='$gcc_cv_as --gdwarf2 -o conftest.o conftest.s >&5'; { (eval echo configure:7205: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as --gdwarf2 -o conftest.o conftest.s >&5'; { (eval echo configure:7232: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_gdwarf2_flag=yes
else
@ -7221,7 +7248,7 @@ EOF
fi
echo $ac_n "checking assembler for --gstabs option""... $ac_c" 1>&6
echo "configure:7225: checking assembler for --gstabs option" >&5
echo "configure:7252: checking assembler for --gstabs option" >&5
if eval "test \"`echo '$''{'gcc_cv_as_gstabs_flag'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -7233,12 +7260,12 @@ else
fi
elif test x$gcc_cv_as != x; then
echo "$insn" > conftest.s
if { ac_try='$gcc_cv_as --gstabs -o conftest.o conftest.s >&5'; { (eval echo configure:7237: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as --gstabs -o conftest.o conftest.s >&5'; { (eval echo configure:7264: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
# The native Solaris 9/Intel assembler doesn't understand --gstabs
# and warns about it, but still exits successfully. So check for
# this.
if { ac_try='$gcc_cv_as --gstabs -o conftest.o conftest.s 2>&1 | grep -i warning > /dev/null'; { (eval echo configure:7242: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as --gstabs -o conftest.o conftest.s 2>&1 | grep -i warning > /dev/null'; { (eval echo configure:7269: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then :
else gcc_cv_as_gstabs_flag=yes
fi
@ -7260,7 +7287,7 @@ fi
fi
echo $ac_n "checking linker read-only and read-write section mixing""... $ac_c" 1>&6
echo "configure:7264: checking linker read-only and read-write section mixing" >&5
echo "configure:7291: checking linker read-only and read-write section mixing" >&5
gcc_cv_ld_ro_rw_mix=unknown
if test $in_tree_ld = yes ; then
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10 -o "$gcc_cv_gld_major_version" -gt 2 \
@ -7299,7 +7326,7 @@ fi
echo "$ac_t""$gcc_cv_ld_ro_rw_mix" 1>&6
echo $ac_n "checking linker PT_GNU_EH_FRAME support""... $ac_c" 1>&6
echo "configure:7303: checking linker PT_GNU_EH_FRAME support" >&5
echo "configure:7330: checking linker PT_GNU_EH_FRAME support" >&5
gcc_cv_ld_eh_frame_hdr=no
if test $in_tree_ld = yes ; then
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 12 -o "$gcc_cv_gld_major_version" -gt 2 \
@ -7321,7 +7348,7 @@ fi
echo "$ac_t""$gcc_cv_ld_eh_frame_hdr" 1>&6
echo $ac_n "checking linker position independent executable support""... $ac_c" 1>&6
echo "configure:7325: checking linker position independent executable support" >&5
echo "configure:7352: checking linker position independent executable support" >&5
gcc_cv_ld_pie=no
if test $in_tree_ld = yes ; then
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 15 -o "$gcc_cv_gld_major_version" -gt 2 \
@ -7346,7 +7373,7 @@ echo "$ac_t""$gcc_cv_ld_pie" 1>&6
case "$target" in
mips*-*-*)
echo $ac_n "checking whether libgloss uses STARTUP directives consistently""... $ac_c" 1>&6
echo "configure:7350: checking whether libgloss uses STARTUP directives consistently" >&5
echo "configure:7377: checking whether libgloss uses STARTUP directives consistently" >&5
gcc_cv_mips_libgloss_startup=no
gcc_cv_libgloss_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/libgloss
if test "x$exec_prefix" = xNONE; then
@ -7548,7 +7575,7 @@ fi
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
echo "configure:7552: checking whether to enable maintainer-specific portions of Makefiles" >&5
echo "configure:7579: 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"

View File

@ -2263,6 +2263,12 @@ changequote([,])dnl
[AC_DEFINE(HAVE_GAS_FILDS_FISTS, 1,
[Define if your assembler uses the new HImode fild and fist notation.])])
gcc_GAS_CHECK_FEATURE([cmov syntax],
gcc_cv_as_ix86_cmov_sun_syntax,,,
[cmovl.l %edx, %eax],,
[AC_DEFINE(HAVE_AS_IX86_CMOV_SUN_SYNTAX, 1,
[Define if your assembler supports the Sun syntax for cmov.])])
# This one is used unconditionally by i386.[ch]; it is to be defined
# to 1 if the feature is present, 0 otherwise.
gcc_GAS_CHECK_FEATURE([GOTOFF in data],