configure.ac (HAVE_AS_IX86_DIFF_SECT_DELTA): New test to determine whether the assembler supports taking the difference of...
* configure.ac (HAVE_AS_IX86_DIFF_SECT_DELTA): New test to determine whether the assembler supports taking the difference of symbols in different sections. On x86/Solaris, GAS does but Solaris as doesn't. * configure: Regenerate. * config.in: Regenerate. * config/i386/sol2-10.h (JUMP_TABLES_IN_TEXT_SECTION): Define if the assembler doesn't support taking the difference of symbols in different sections, i.e. we're using the native solaris assembler. From-SVN: r118405
This commit is contained in:
parent
fc354c12ad
commit
68b92f787e
@ -1,3 +1,14 @@
|
||||
2006-11-01 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* configure.ac (HAVE_AS_IX86_DIFF_SECT_DELTA): New test to determine
|
||||
whether the assembler supports taking the difference of symbols in
|
||||
different sections. On x86/Solaris, GAS does but Solaris as doesn't.
|
||||
* configure: Regenerate.
|
||||
* config.in: Regenerate.
|
||||
* config/i386/sol2-10.h (JUMP_TABLES_IN_TEXT_SECTION): Define if
|
||||
the assembler doesn't support taking the difference of symbols in
|
||||
different sections, i.e. we're using the native solaris assembler.
|
||||
|
||||
2006-11-01 Pete Steinmetz <steinmtz@us.ibm.com>
|
||||
Peter Bergner <bergner@vnet.ibm.com>
|
||||
|
||||
|
@ -203,6 +203,13 @@
|
||||
#endif
|
||||
|
||||
|
||||
/* Define if your assembler supports the subtraction of symbols in different
|
||||
sections. */
|
||||
#ifndef USED_FOR_TARGET
|
||||
#undef HAVE_AS_IX86_DIFF_SECT_DELTA
|
||||
#endif
|
||||
|
||||
|
||||
/* Define if your assembler supports the ffreep mnemonic. */
|
||||
#ifndef USED_FOR_TARGET
|
||||
#undef HAVE_AS_IX86_FFREEP
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Solaris 10 configuration.
|
||||
Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
Copyright (C) 2004, 2006 Free Software Foundation, Inc.
|
||||
Contributed by CodeSourcery, LLC.
|
||||
|
||||
This file is part of GCC.
|
||||
@ -34,6 +34,14 @@ Boston, MA 02110-1301, USA. */
|
||||
"-s %(asm_cpu)"
|
||||
#endif
|
||||
|
||||
/* The native Solaris assembler can't calculate the difference between
|
||||
symbols in different sections, which causes problems for -fPIC jump
|
||||
tables in .rodata. */
|
||||
#ifndef HAVE_AS_IX86_DIFF_SECT_DELTA
|
||||
#undef JUMP_TABLES_IN_TEXT_SECTION
|
||||
#define JUMP_TABLES_IN_TEXT_SECTION 1
|
||||
#endif
|
||||
|
||||
#undef NO_PROFILE_COUNTERS
|
||||
|
||||
#undef MCOUNT_NAME
|
||||
|
39
gcc/configure
vendored
39
gcc/configure
vendored
@ -15251,6 +15251,45 @@ cat >>confdefs.h <<\_ACEOF
|
||||
#define HAVE_AS_IX86_FFREEP 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
|
||||
echo "$as_me:$LINENO: checking assembler for different section symbol subtraction" >&5
|
||||
echo $ECHO_N "checking assembler for different section symbol subtraction... $ECHO_C" >&6
|
||||
if test "${gcc_cv_as_ix86_diff_sect_delta+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
gcc_cv_as_ix86_diff_sect_delta=no
|
||||
if test x$gcc_cv_as != x; then
|
||||
echo '.section .rodata
|
||||
.L1:
|
||||
.long .L2-.L1
|
||||
.long .L3-.L1
|
||||
.text
|
||||
.L3: nop
|
||||
.L2: nop' > conftest.s
|
||||
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'
|
||||
{ (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
|
||||
gcc_cv_as_ix86_diff_sect_delta=yes
|
||||
else
|
||||
echo "configure: failed program was" >&5
|
||||
cat conftest.s >&5
|
||||
fi
|
||||
rm -f conftest.o conftest.s
|
||||
fi
|
||||
fi
|
||||
echo "$as_me:$LINENO: result: $gcc_cv_as_ix86_diff_sect_delta" >&5
|
||||
echo "${ECHO_T}$gcc_cv_as_ix86_diff_sect_delta" >&6
|
||||
if test $gcc_cv_as_ix86_diff_sect_delta = yes; then
|
||||
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
#define HAVE_AS_IX86_DIFF_SECT_DELTA 1
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
|
||||
# This one is used unconditionally by i386.[ch]; it is to be defined
|
||||
|
@ -2850,6 +2850,18 @@ foo: nop
|
||||
[AC_DEFINE(HAVE_AS_IX86_FFREEP, 1,
|
||||
[Define if your assembler supports the ffreep mnemonic.])])
|
||||
|
||||
gcc_GAS_CHECK_FEATURE([different section symbol subtraction],
|
||||
gcc_cv_as_ix86_diff_sect_delta,,,
|
||||
[.section .rodata
|
||||
.L1:
|
||||
.long .L2-.L1
|
||||
.long .L3-.L1
|
||||
.text
|
||||
.L3: nop
|
||||
.L2: nop],,
|
||||
[AC_DEFINE(HAVE_AS_IX86_DIFF_SECT_DELTA, 1,
|
||||
[Define if your assembler supports the subtraction of symbols in different sections.])])
|
||||
|
||||
# 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],
|
||||
|
Loading…
Reference in New Issue
Block a user