configure.in (HAVE_AS_GOTOFF_IN_DATA): New x86 check.

* configure.in (HAVE_AS_GOTOFF_IN_DATA): New x86 check.
        * configure, config.in: Rebuild.

        * config/i386/i386.c (ix86_output_addr_vec_elt): New.
        (ix86_output_addr_diff_elt): New.
        * config/i386/i386.h (ASM_OUTPUT_ADDR_VEC_ELT): Use them.
        (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
        (JUMP_TABLES_IN_TEXT_SECTION): New.
        * config/i386/i386.md (tablejump): Handle HAVE_AS_GOTOFF_IN_DATA.
        * config/i386/i386-protos.h: Update.

        * config/i386/386bsd.h, config/i386/beos-elf.h,
        config/i386/freebsd-aout.h, config/i386/freebsd.h,
        config/i386/i386-interix.h, config/i386/i386elf.h,
        config/i386/linux.h, config/i386/netbsd-elf.h,
        config/i386/netbsd.h, config/i386/openbsd.h,
        config/i386/ptx4-i.h, config/i386/rtemself.h,
        config/i386/sco5.h, config/i386/sysv4.h, config/i386/x86-64.h
        (ASM_OUTPUT_ADDR_DIFF_ELT, JUMP_TABLES_IN_TEXT_SECTION): Remove.

From-SVN: r46303
This commit is contained in:
Richard Henderson 2001-10-16 18:39:47 -07:00 committed by Richard Henderson
parent b5823a4422
commit f88c65f7e3
23 changed files with 140 additions and 214 deletions

View File

@ -1,3 +1,25 @@
2001-10-16 Richard Henderson <rth@redhat.com>
* configure.in (HAVE_AS_GOTOFF_IN_DATA): New x86 check.
* configure, config.in: Rebuild.
* config/i386/i386.c (ix86_output_addr_vec_elt): New.
(ix86_output_addr_diff_elt): New.
* config/i386/i386.h (ASM_OUTPUT_ADDR_VEC_ELT): Use them.
(ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
(JUMP_TABLES_IN_TEXT_SECTION): New.
* config/i386/i386.md (tablejump): Handle HAVE_AS_GOTOFF_IN_DATA.
* config/i386/i386-protos.h: Update.
* config/i386/386bsd.h, config/i386/beos-elf.h,
config/i386/freebsd-aout.h, config/i386/freebsd.h,
config/i386/i386-interix.h, config/i386/i386elf.h,
config/i386/linux.h, config/i386/netbsd-elf.h,
config/i386/netbsd.h, config/i386/openbsd.h,
config/i386/ptx4-i.h, config/i386/rtemself.h,
config/i386/sco5.h, config/i386/sysv4.h, config/i386/x86-64.h
(ASM_OUTPUT_ADDR_DIFF_ELT, JUMP_TABLES_IN_TEXT_SECTION): Remove.
2001-10-16 Florian Weimer <fw@deneb.enyo.de>
* stmt.c (expand_asm_operands): Update commentary.

View File

@ -1,4 +1,4 @@
/* config.in. Generated automatically from configure.in by autoheader 2.13. */
/* config.in. Generated automatically from configure.in by autoheader. */
/* Define if using alloca.c. */
#undef C_ALLOCA
@ -75,7 +75,7 @@
#undef vfork
/* Define if your assembler supports specifying the maximum number
of bytes to skip when using the GAS .p2align command. */
of bytes to skip when using the GAS .p2align command. */
#undef HAVE_GAS_MAX_SKIP_P2ALIGN
/* Define if your assembler supports .balign and .p2align. */
@ -87,7 +87,7 @@
/* Define to `int' if <sys/types.h> doesn't define. */
#undef ssize_t
/* Define if cpp should also search $prefix/include. */
/* Define if cpp should also search $prefix/include. */
#undef PREFIX_INCLUDE_DIR
/* Define if you have the __argz_count function. */
@ -552,6 +552,9 @@
/* Define if your assembler supports offsetable %lo(). */
#undef HAVE_AS_OFFSETABLE_LO10
/* Define true if the assembler supports '.long foo@GOTOFF'. */
#undef HAVE_AS_GOTOFF_IN_DATA
/* Define if your assembler supports dwarf2 .file/.loc directives,
and preserves file table indicies exactly as given. */
#undef HAVE_AS_DWARF2_DEBUG_LINE

View File

@ -47,22 +47,6 @@
#undef ASM_APP_OFF
#define ASM_APP_OFF "#NO_APP\n"
/* The following macros are stolen from i386v4.h */
/* These have to be defined to get PIC code correct */
/* This is how to output an element of a case-vector that is relative.
This is only used for PIC code. See comments by the `casesi' insn in
i386.md for an explanation of the expression this outputs. */
#undef ASM_OUTPUT_ADDR_DIFF_ELT
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
/* Indicate that jump tables go in the text section. This is
necessary when compiling PIC code. */
#define JUMP_TABLES_IN_TEXT_SECTION 1
/* Don't default to pcc-struct-return, because gcc is the only compiler, and
we want to retain compatibility with older gcc versions. */

View File

@ -37,17 +37,6 @@ Boston, MA 02111-1307, USA. */
#undef ASM_COMMENT_START
#define ASM_COMMENT_START " #"
/* This is how to output an element of a case-vector that is relative.
This is only used for PIC code. See comments by the `casesi' insn in
i386.md for an explanation of the expression this outputs. */
#undef ASM_OUTPUT_ADDR_DIFF_ELT
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
/* Indicate that jump tables go in the text section. This is
necessary when compiling PIC code. */
#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic)
#undef DBX_REGISTER_NUMBER
#define DBX_REGISTER_NUMBER(n) \
(TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])

View File

@ -76,22 +76,6 @@ Boston, MA 02111-1307, USA. */
/* FreeBSD using a.out does not support DWARF2 unwinding mechanisms. */
#define DWARF2_UNWIND_INFO 0
/* The following macros are stolen from i386v4.h */
/* These have to be defined to get PIC code correct */
/* This is how to output an element of a case-vector that is relative.
This is only used for PIC code. See comments by the `casesi' insn in
i386.md for an explanation of the expression this outputs. */
#undef ASM_OUTPUT_ADDR_DIFF_ELT
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
/* Indicate that jump tables go in the text section. This is
necessary when compiling PIC code. */
#define JUMP_TABLES_IN_TEXT_SECTION 1
/* Don't default to pcc-struct-return, because in FreeBSD we prefer the
superior nature of the older gcc way. */
#define DEFAULT_PCC_STRUCT_RETURN 0

View File

@ -38,17 +38,6 @@ Boston, MA 02111-1307, USA. */
#undef SET_ASM_OP
#define SET_ASM_OP "\t.set\t"
/* This is how to output an element of a case-vector that is relative.
This is only used for PIC code. See comments by the `casesi' insn in
i386.md for an explanation of the expression this outputs. */
#undef ASM_OUTPUT_ADDR_DIFF_ELT
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
fprintf ((FILE), "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
/* Indicate that jump tables go in the text section. This is
necessary when compiling PIC code. */
#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic)
#undef DBX_REGISTER_NUMBER
#define DBX_REGISTER_NUMBER(n) \
(TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])

View File

@ -227,21 +227,6 @@ Boston, MA 02111-1307, USA. */
} \
while (0)
/* This is how to output an element of a case-vector that is relative.
This is only used for PIC code. See comments by the `casesi' insn in
i386.md for an explanation of the expression this outputs.
PE format differs on what PC-relative offsets look like (see
coff_i386_rtype_to_howto), and we need to compensate (by one word) here. */
#undef ASM_OUTPUT_ADDR_DIFF_ELT
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
fprintf (FILE, "\t.long __GLOBAL_OFFSET_TABLE_+[.-%s%d+4]\n", LPREFIX, VALUE)
/* Indicate that jump tables go in the text section. This is
necessary when compiling PIC code. */
#define JUMP_TABLES_IN_TEXT_SECTION 1
/* Emit code to check the stack when allocating more that 4000
bytes in one go. */

View File

@ -36,6 +36,9 @@ extern void ix86_expand_epilogue PARAMS ((int));
extern void ix86_output_function_block_profiler PARAMS ((FILE *, int));
extern void ix86_output_block_profiler PARAMS ((FILE *, int));
extern void ix86_output_addr_vec_elt PARAMS ((FILE *, int));
extern void ix86_output_addr_diff_elt PARAMS ((FILE *, int, int));
#ifdef RTX_CODE
extern int ix86_aligned_p PARAMS ((rtx));
@ -94,6 +97,7 @@ extern void print_operand PARAMS ((FILE*, rtx, int));
extern void print_operand_address PARAMS ((FILE*, rtx));
extern void split_di PARAMS ((rtx[], int, rtx[], rtx[]));
extern void split_ti PARAMS ((rtx[], int, rtx[], rtx[]));
extern const char *output_387_binary_op PARAMS ((rtx, rtx*));
extern const char *output_fix_trunc PARAMS ((rtx, rtx*));

View File

@ -6659,6 +6659,40 @@ ix86_output_block_profiler (file, blockno)
break;
}
}
void
ix86_output_addr_vec_elt (file, value)
FILE *file;
int value;
{
const char *directive = ASM_LONG;
if (TARGET_64BIT)
{
#ifdef ASM_QUAD
directive = ASM_QUAD;
#else
abort ();
#endif
}
fprintf (file, "%s%s%d\n", directive, LPREFIX, value);
}
void
ix86_output_addr_diff_elt (file, value, rel)
FILE *file;
int value, rel;
{
if (TARGET_64BIT)
fprintf (file, "%s%s%d-.+4+(.-%s%d)\n",
ASM_LONG, LPREFIX, value, LPREFIX, rel);
else if (HAVE_AS_GOTOFF_IN_DATA)
fprintf (file, "%s%s%d@GOTOFF\n", ASM_LONG, LPREFIX, value);
else
asm_fprintf (file, "%s%U_GLOBAL_OFFSET_TABLE_+[.-%s%d]\n",
ASM_LONG, LPREFIX, value);
}
void
ix86_expand_move (mode, operands)

View File

@ -2979,19 +2979,21 @@ do { long l; \
#define ASM_OUTPUT_REG_POP(FILE,REGNO) \
asm_fprintf (FILE, "\tpop{l}\t%%e%s\n", reg_names[REGNO])
/* This is how to output an element of a case-vector that is absolute.
*/
/* This is how to output an element of a case-vector that is absolute. */
#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \
fprintf (FILE, "%s%s%d\n", TARGET_64BIT ? ASM_QUAD : ASM_LONG, LPREFIX, VALUE)
ix86_output_addr_vec_elt (FILE, VALUE)
/* This is how to output an element of a case-vector that is relative.
We don't use these on the 386 yet, because the ATT assembler can't do
forward reference the differences.
*/
/* This is how to output an element of a case-vector that is relative. */
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
fprintf (FILE, "%s%s%d-%s%d\n",ASM_LONG, LPREFIX, VALUE, LPREFIX, REL)
ix86_output_addr_diff_elt (FILE, VALUE, REL)
/* Under some conditions we need jump tables in the text section, because
the assembler cannot handle label differences between sections. */
#define JUMP_TABLES_IN_TEXT_SECTION \
(!TARGET_64BIT && flag_pic && !HAVE_AS_GOTOFF_IN_DATA)
/* A C statement that outputs an address constant appropriate to
for DWARF debugging. */

View File

@ -13123,6 +13123,13 @@
gen_rtx_LABEL_REF (Pmode, operands[1]),
NULL_RTX, 0,
OPTAB_DIRECT);
else if (HAVE_AS_GOTOFF_IN_DATA)
{
operands[0] = expand_simple_binop (Pmode, PLUS, operands[0],
pic_offset_table_rtx, NULL_RTX,
1, OPTAB_DIRECT);
current_function_uses_pic_offset_table = 1;
}
else
{
operands[0] = expand_simple_binop (Pmode, MINUS, pic_offset_table_rtx,

View File

@ -156,19 +156,6 @@ do { long value[3]; \
} \
while (0)
/* This is how to output an element of a case-vector that is relative.
This is only used for PIC code. See comments by the `casesi' insn in
i386.md for an explanation of the expression this outputs. */
#undef ASM_OUTPUT_ADDR_DIFF_ELT
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
/* Indicate that jump tables go in the text section. This is
necessary when compiling PIC code. */
#define JUMP_TABLES_IN_TEXT_SECTION 1
#define LOCAL_LABEL_PREFIX "."
/* Switch into a generic section. */

View File

@ -43,17 +43,6 @@ Boston, MA 02111-1307, USA. */
#undef ASM_COMMENT_START
#define ASM_COMMENT_START "#"
/* This is how to output an element of a case-vector that is relative.
This is only used for PIC code. See comments by the `casesi' insn in
i386.md for an explanation of the expression this outputs. */
#undef ASM_OUTPUT_ADDR_DIFF_ELT
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
/* Indicate that jump tables go in the text section. This is
necessary when compiling PIC code. */
#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic)
#undef DBX_REGISTER_NUMBER
#define DBX_REGISTER_NUMBER(n) \
(TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])

View File

@ -168,16 +168,6 @@ Boston, MA 02111-1307, USA. */
}
#endif
/* This is how to output an element of a case-vector that is relative.
This is only used for PIC code. */
#undef ASM_OUTPUT_ADDR_DIFF_ELT
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
fprintf ((FILE), "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
/* Indicate that jump tables go in the text section. This is
necessary when compiling PIC code. */
#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic)
/*
* We always use gas here, so we don't worry about ECOFF assembler problems.
*/

View File

@ -35,22 +35,6 @@
#undef ASM_APP_OFF
#define ASM_APP_OFF "#NO_APP\n"
/* The following macros are stolen from i386v4.h */
/* These have to be defined to get PIC code correct */
/* This is how to output an element of a case-vector that is relative.
This is only used for PIC code. See comments by the `casesi' insn in
i386.md for an explanation of the expression this outputs. */
#undef ASM_OUTPUT_ADDR_DIFF_ELT
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
/* Indicate that jump tables go in the text section. This is
necessary when compiling PIC code. */
#define JUMP_TABLES_IN_TEXT_SECTION 1
/* Don't default to pcc-struct-return, because gcc is the only compiler, and
we want to retain compatibility with older gcc versions. */

View File

@ -59,24 +59,6 @@ Boston, MA 02111-1307, USA. */
#undef ASM_APP_OFF
#define ASM_APP_OFF "#NO_APP\n"
/* The following macros were originally stolen from i386v4.h.
These have to be defined to get PIC code correct. */
/* Assembler format: dispatch tables. */
/* How to output an element of a case-vector that is relative.
This is only used for PIC code. See comments by the `casesi' insn in
i386.md for an explanation of the expression this outputs. */
#undef ASM_OUTPUT_ADDR_DIFF_ELT
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
/* Assembler format: sections. */
/* Indicate when jump tables go in the text section. This is
necessary when compiling PIC code. */
#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic)
/* Stack & calling: aggregate returns. */
/* Don't default to pcc-struct-return, because gcc is the only compiler, and

View File

@ -150,16 +150,3 @@ do { long value[3]; \
fprintf ((FILE), "\n"); \
} \
while (0)
/* This is how to output an element of a case-vector that is relative.
This is only used for PIC code. See comments by the `casesi' insn in
i386.md for an explanation of the expression this outputs. */
#undef ASM_OUTPUT_ADDR_DIFF_ELT
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
/* Indicate that jump tables go in the text section. This is
necessary when compiling PIC code. */
#define JUMP_TABLES_IN_TEXT_SECTION 1

View File

@ -38,17 +38,6 @@ Boston, MA 02111-1307, USA. */
#undef DEFAULT_PCC_STRUCT_RETURN
#define DEFAULT_PCC_STRUCT_RETURN 1
/* This is how to output an element of a case-vector that is relative.
This is only used for PIC code. See comments by the `casesi' insn in
i386.md for an explanation of the expression this outputs. */
#undef ASM_OUTPUT_ADDR_DIFF_ELT
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
/* Indicate that jump tables go in the text section. This is
necessary when compiling PIC code. */
#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic)
#undef DBX_REGISTER_NUMBER
#define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n]

View File

@ -237,15 +237,6 @@ do { \
sprintf (LABEL, ".%s%d", (PREFIX), (NUM)); \
} while (0)
#undef ASM_OUTPUT_ADDR_DIFF_ELT
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
do { \
if (TARGET_ELF) \
fprintf (FILE, "%s_GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", ASM_LONG, LPREFIX, VALUE); \
else \
fprintf (FILE, "%s%s%d-%s%d\n", ASM_LONG, LPREFIX,VALUE,LPREFIX,REL); \
} while (0)
#undef ASM_OUTPUT_ALIGNED_COMMON
#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
do { \
@ -533,9 +524,6 @@ init_section () \
((TARGET_ELF) ? 0 : \
(current_function_calls_setjmp || current_function_calls_longjmp))
#undef JUMP_TABLES_IN_TEXT_SECTION
#define JUMP_TABLES_IN_TEXT_SECTION (TARGET_ELF && flag_pic)
#undef LOCAL_LABEL_PREFIX
#define LOCAL_LABEL_PREFIX \
((TARGET_ELF) ? "" : ".")

View File

@ -159,19 +159,6 @@ do { long value[3]; \
} \
while (0)
/* This is how to output an element of a case-vector that is relative.
This is only used for PIC code. See comments by the `casesi' insn in
i386.md for an explanation of the expression this outputs. */
#undef ASM_OUTPUT_ADDR_DIFF_ELT
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
/* Indicate that jump tables go in the text section. This is
necessary when compiling PIC code. */
#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic)
/* A C statement (sans semicolon) to output to the stdio stream
FILE the assembler definition of uninitialized global DECL named
NAME whose size is SIZE bytes and alignment is ALIGN bytes.

View File

@ -27,20 +27,6 @@ Boston, MA 02111-1307, USA. */
#undef ASM_COMMENT_START
#define ASM_COMMENT_START "#"
/* This is how to output an element of a case-vector that is relative.
This is only used for PIC code. See comments by the `casesi' insn in
i386.md for an explanation of the expression this outputs. */
#undef ASM_OUTPUT_ADDR_DIFF_ELT
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
if (TARGET_64BIT) \
fprintf (FILE, "\t.long %s%d-.+4+(.-%s%d)\n", LPREFIX, VALUE, LPREFIX, REL); \
else \
fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
/* Indicate that jump tables go in the text section. This is
necessary when compiling PIC code. */
#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic && !TARGET_64BIT)
#undef DBX_REGISTER_NUMBER
#define DBX_REGISTER_NUMBER(n) \
(TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])

34
gcc/configure vendored
View File

@ -2057,7 +2057,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
@ -7487,11 +7487,39 @@ EOF
fi
echo "$ac_t""$gcc_cv_as_instructions" 1>&6
echo $ac_n "checking assembler GOTOFF in data directives""... $ac_c" 1>&6
echo "configure:7493: checking assembler GOTOFF in data directives" >&5
gcc_cv_as_gotoff_in_data=no
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 11 \
-o "$gcc_cv_gas_major_version" -gt 2; then
gcc_cv_as_gotoff_in_data=yes
fi
elif test x$gcc_cv_as != x; then
cat > conftest.s <<EOF
.text
.L0:
nop
.data
.long .L0@GOTOFF
EOF
if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
gcc_cv_as_gotoff_in_data=yes
fi
fi
cat >> confdefs.h <<EOF
#define HAVE_AS_GOTOFF_IN_DATA `if test $gcc_cv_as_gotoff_in_data = yes; then echo 1; else echo 0; fi`
EOF
echo "$ac_t""$gcc_cv_as_gotoff_in_data" 1>&6
;;
esac
echo $ac_n "checking assembler dwarf2 debug_line support""... $ac_c" 1>&6
echo "configure:7495: checking assembler dwarf2 debug_line support" >&5
echo "configure:7523: 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
@ -7683,7 +7711,7 @@ fi
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
echo "configure:7687: checking whether to enable maintainer-specific portions of Makefiles" >&5
echo "configure:7715: 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

@ -1631,6 +1631,32 @@ changequote([,])dnl
AC_DEFINE_UNQUOTED(HAVE_GAS_`echo "$gcc_cv_as_instructions" | sed -e 's/ $//' | tr '[a-z ]' '[A-Z_]'`)
fi
AC_MSG_RESULT($gcc_cv_as_instructions)
AC_MSG_CHECKING(assembler GOTOFF in data directives)
gcc_cv_as_gotoff_in_data=no
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 11 \
-o "$gcc_cv_gas_major_version" -gt 2; then
gcc_cv_as_gotoff_in_data=yes
fi
elif test x$gcc_cv_as != x; then
cat > conftest.s <<EOF
.text
.L0:
nop
.data
.long .L0@GOTOFF
EOF
if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
gcc_cv_as_gotoff_in_data=yes
fi
fi
AC_DEFINE_UNQUOTED(HAVE_AS_GOTOFF_IN_DATA,
[`if test $gcc_cv_as_gotoff_in_data = yes; then echo 1; else echo 0; fi`],
[Define true if the assembler supports '.long foo@GOTOFF'.])
AC_MSG_RESULT($gcc_cv_as_gotoff_in_data)
;;
esac