libunwind related patch from David Mosberger

libunwind related patch from David Mosberger
* unwind-libunwind.c (_Unwind_SetGR): Clear the NaT bit as
required by C++ ABI for Itanium.
* config/t-libunwind (LIB2ADDEH): Remove unwind-libunwind.c.
* config/t-libunwind-no-eh: New file.
* configure.in: Check libunwind for _Unwind_Resume() and if it's
present, set libunwind_has_eh_support to "yes".
* configure: Regenerate.
* config.gcc (ia64*-*-linux*): If $libunwind_has_eh_support is
set to yes, use t-libunwind, otherwise, use t-libunwind-no-eh.

From-SVN: r74548
This commit is contained in:
David Mosberger 2003-12-11 20:50:33 +00:00 committed by Jim Wilson
parent 7ac88634ad
commit fe16ab7e3e
7 changed files with 143 additions and 74 deletions

View File

@ -1,3 +1,15 @@
2003-12-11 David Mosberger <davidm@hpl.hp.com>
* unwind-libunwind.c (_Unwind_SetGR): Clear the NaT bit as
required by C++ ABI for Itanium.
* config/t-libunwind (LIB2ADDEH): Remove unwind-libunwind.c.
* config/t-libunwind-no-eh: New file.
* configure.in: Check libunwind for _Unwind_Resume() and if it's
present, set libunwind_has_eh_support to "yes".
* configure: Regenerate.
* config.gcc (ia64*-*-linux*): If $libunwind_has_eh_support is
set to yes, use t-libunwind, otherwise, use t-libunwind-no-eh.
2003-12-11 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.c (mips_global_pointer): Force functions with

View File

@ -1245,7 +1245,11 @@ ia64*-*-linux*)
target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
if test x"$use_libunwind_exceptions" = xyes; then
tmake_file="$tmake_file t-libunwind"
if test x"$libunwind_has_eh_support" = xyes; then
tmake_file="$tmake_file t-libunwind"
else
tmake_file="$tmake_file t-libunwind-no-eh"
fi
fi
;;
ia64*-*-hpux*)

View File

@ -2,5 +2,4 @@
# so that the resulting libgcc_s.so has the necessary DT_NEEDED entry for
# libunwind.
SHLIB_LC = -lunwind -lc
LIB2ADDEH = $(srcdir)/unwind-libunwind.c $(srcdir)/unwind-sjlj.c \
$(srcdir)/unwind-c.c
LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c

View File

@ -0,0 +1,6 @@
# Override the default value from t-slibgcc-elf-ver and mention -lunwind
# so that the resulting libgcc_s.so has the necessary DT_NEEDED entry for
# libunwind.
SHLIB_LC = -lunwind -lc
LIB2ADDEH = $(srcdir)/unwind-libunwind.c $(srcdir)/unwind-sjlj.c \
$(srcdir)/unwind-c.c

183
gcc/configure vendored
View File

@ -5181,6 +5181,47 @@ if test x"$use_libunwind_exceptions" = xyes; then
#define USE_LIBUNWIND_EXCEPTIONS 1
EOF
echo $ac_n "checking for _Unwind_Resume in -lunwind""... $ac_c" 1>&6
echo "configure:5186: checking for _Unwind_Resume in -lunwind" >&5
ac_lib_var=`echo unwind'_'_Unwind_Resume | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_save_LIBS="$LIBS"
LIBS="-lunwind $LIBS"
cat > conftest.$ac_ext <<EOF
#line 5194 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char _Unwind_Resume();
int main() {
_Unwind_Resume()
; return 0; }
EOF
if { (eval echo configure:5205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=no"
fi
rm -f conftest*
LIBS="$ac_save_LIBS"
fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
libunwind_has_eh_support=yes
else
echo "$ac_t""no" 1>&6
libunwind_has_eh_support=no
fi
fi
# --------------------------------------------------------
@ -5457,7 +5498,7 @@ if test -f ../intl/config.intl; then
. ../intl/config.intl
fi
echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
echo "configure:5461: checking whether NLS is requested" >&5
echo "configure:5502: checking whether NLS is requested" >&5
if test x"$USE_NLS" != xyes; then
echo "$ac_t""no" 1>&6
else
@ -5468,7 +5509,7 @@ EOF
echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
echo "configure:5472: checking for catalogs to be installed" >&5
echo "configure:5513: checking for catalogs to be installed" >&5
# Look for .po and .gmo files in the source directory.
CATALOGS=
XLINGUAS=
@ -5518,7 +5559,7 @@ fi
case $host_os in
win32 | pe | cygwin* | mingw32* | uwin*)
echo $ac_n "checking whether windows registry support is requested""... $ac_c" 1>&6
echo "configure:5522: checking whether windows registry support is requested" >&5
echo "configure:5563: checking whether windows registry support is requested" >&5
if test "x$enable_win32_registry" != xno; then
cat >> confdefs.h <<\EOF
#define ENABLE_WIN32_REGISTRY 1
@ -5527,14 +5568,14 @@ EOF
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for library containing RegOpenKeyExA""... $ac_c" 1>&6
echo "configure:5531: checking for library containing RegOpenKeyExA" >&5
echo "configure:5572: checking for library containing RegOpenKeyExA" >&5
if eval "test \"`echo '$''{'ac_cv_search_RegOpenKeyExA'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_func_search_save_LIBS="$LIBS"
ac_cv_search_RegOpenKeyExA="no"
cat > conftest.$ac_ext <<EOF
#line 5538 "configure"
#line 5579 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -5545,7 +5586,7 @@ int main() {
RegOpenKeyExA()
; return 0; }
EOF
if { (eval echo configure:5549: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:5590: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_search_RegOpenKeyExA="none required"
else
@ -5556,7 +5597,7 @@ rm -f conftest*
test "$ac_cv_search_RegOpenKeyExA" = "no" && for i in advapi32; do
LIBS="-l$i $ac_func_search_save_LIBS"
cat > conftest.$ac_ext <<EOF
#line 5560 "configure"
#line 5601 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -5567,7 +5608,7 @@ int main() {
RegOpenKeyExA()
; return 0; }
EOF
if { (eval echo configure:5571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:5612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_search_RegOpenKeyExA="-l$i"
break
@ -5609,7 +5650,7 @@ esac
if test "x$enable_win32_registry" != xno; then
echo $ac_n "checking registry key on windows hosts""... $ac_c" 1>&6
echo "configure:5613: checking registry key on windows hosts" >&5
echo "configure:5654: checking registry key on windows hosts" >&5
cat >> confdefs.h <<EOF
#define WIN32_REGISTRY_KEY "$gcc_cv_win32_registry_key"
EOF
@ -5873,7 +5914,7 @@ esac
# build->target assembler and hope that it will have the same features
# as the host->target assembler we'll be using.
echo $ac_n "checking what assembler to use""... $ac_c" 1>&6
echo "configure:5877: checking what assembler to use" >&5
echo "configure:5918: checking what assembler to use" >&5
in_tree_gas=no
gcc_cv_as=
gcc_cv_gas_major_version=
@ -5997,7 +6038,7 @@ esac
# build->target linker and hope that it will have the same features
# as the host->target linker we'll be using.
echo $ac_n "checking what linker to use""... $ac_c" 1>&6
echo "configure:6001: checking what linker to use" >&5
echo "configure:6042: checking what linker to use" >&5
in_tree_ld=no
gcc_cv_ld=
gcc_cv_gld_major_version=
@ -6105,7 +6146,7 @@ esac
# Figure out what nm we will be using.
gcc_cv_binutils_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/binutils
echo $ac_n "checking what nm to use""... $ac_c" 1>&6
echo "configure:6109: checking what nm to use" >&5
echo "configure:6150: checking what nm to use" >&5
in_tree_nm=no
if test -x nm$host_exeext; then
gcc_cv_nm=./nm$host_exeext
@ -6128,7 +6169,7 @@ esac
# Figure out what objdump we will be using.
echo $ac_n "checking what objdump to use""... $ac_c" 1>&6
echo "configure:6132: checking what objdump to use" >&5
echo "configure:6173: checking what objdump to use" >&5
in_tree_objdump=no
if test -x objdump$host_exeext; then
gcc_cv_objdump=./objdump$host_exeext
@ -6153,7 +6194,7 @@ esac
# Figure out what assembler alignment features are present.
echo $ac_n "checking assembler for .balign and .p2align""... $ac_c" 1>&6
echo "configure:6157: checking assembler for .balign and .p2align" >&5
echo "configure:6198: checking assembler for .balign and .p2align" >&5
if eval "test \"`echo '$''{'gcc_cv_as_balign_and_p2align'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -6165,7 +6206,7 @@ fi
elif test x$gcc_cv_as != x; then
echo '.balign 4
.p2align 2' > conftest.s
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:6169: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:6210: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_balign_and_p2align=yes
else
@ -6185,7 +6226,7 @@ EOF
fi
echo $ac_n "checking assembler for .p2align with maximum skip""... $ac_c" 1>&6
echo "configure:6189: checking assembler for .p2align with maximum skip" >&5
echo "configure:6230: checking assembler for .p2align with maximum skip" >&5
if eval "test \"`echo '$''{'gcc_cv_as_max_skip_p2align'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -6196,7 +6237,7 @@ else
fi
elif test x$gcc_cv_as != x; then
echo '.p2align 4,,7' > conftest.s
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:6200: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:6241: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_max_skip_p2align=yes
else
@ -6216,7 +6257,7 @@ EOF
fi
echo $ac_n "checking assembler for working .subsection -1""... $ac_c" 1>&6
echo "configure:6220: checking assembler for working .subsection -1" >&5
echo "configure:6261: checking assembler for working .subsection -1" >&5
if eval "test \"`echo '$''{'gcc_cv_as_subsection_m1'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -6231,7 +6272,7 @@ fi
.subsection -1
conftest_label2: .word 0
.previous' > conftest.s
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:6235: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:6276: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
if test x$gcc_cv_nm != x; then
$gcc_cv_nm conftest.o | grep conftest_label1 > conftest.nm1
@ -6259,7 +6300,7 @@ EOF
fi
echo $ac_n "checking assembler for .weak""... $ac_c" 1>&6
echo "configure:6263: checking assembler for .weak" >&5
echo "configure:6304: checking assembler for .weak" >&5
if eval "test \"`echo '$''{'gcc_cv_as_weak'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -6270,7 +6311,7 @@ else
fi
elif test x$gcc_cv_as != x; then
echo ' .weak foobar' > conftest.s
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:6274: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:6315: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_weak=yes
else
@ -6297,7 +6338,7 @@ fi
# to be safe.
# The gcc_GAS_CHECK_FEATURE call just sets a cache variable.
echo $ac_n "checking assembler for .hidden""... $ac_c" 1>&6
echo "configure:6301: checking assembler for .hidden" >&5
echo "configure:6342: checking assembler for .hidden" >&5
if eval "test \"`echo '$''{'gcc_cv_as_hidden'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -6310,7 +6351,7 @@ fi
elif test x$gcc_cv_as != x; then
echo ' .hidden foobar
foobar:' > conftest.s
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:6314: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:6355: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_hidden=yes
else
@ -6325,7 +6366,7 @@ echo "$ac_t""$gcc_cv_as_hidden" 1>&6
echo $ac_n "checking linker for .hidden support""... $ac_c" 1>&6
echo "configure:6329: checking linker for .hidden support" >&5
echo "configure:6370: checking linker for .hidden support" >&5
if eval "test \"`echo '$''{'gcc_cv_ld_hidden'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -6388,7 +6429,7 @@ fi
# Check if we have .[us]leb128, and support symbol arithmetic with it.
echo $ac_n "checking assembler for .sleb128 and .uleb128""... $ac_c" 1>&6
echo "configure:6392: checking assembler for .sleb128 and .uleb128" >&5
echo "configure:6433: checking assembler for .sleb128 and .uleb128" >&5
if eval "test \"`echo '$''{'gcc_cv_as_leb128'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -6405,7 +6446,7 @@ L1:
.uleb128 1280
.sleb128 -1010
L2:' > conftest.s
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:6409: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:6450: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
# GAS versions before 2.11 do not support uleb128,
# despite appearing to.
@ -6441,7 +6482,7 @@ fi
# GAS versions up to and including 2.11.0 may mis-optimize
# .eh_frame data.
echo $ac_n "checking assembler for eh_frame optimization""... $ac_c" 1>&6
echo "configure:6445: checking assembler for eh_frame optimization" >&5
echo "configure:6486: checking assembler for eh_frame optimization" >&5
if eval "test \"`echo '$''{'gcc_cv_as_eh_frame'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -6484,7 +6525,7 @@ __FRAME_BEGIN__:
.byte 0x4
.4byte .L1-.LFB1
.LEFDE1:' > conftest.s
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:6488: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:6529: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
cat > conftest.lit <<EOF
0000 10000000 00000000 017a0001 781a0004 .........z..x...
@ -6505,7 +6546,7 @@ EOF
|| cmp conftest.big conftest.got > /dev/null 2>&1; }
then
gcc_cv_as_eh_frame=yes
elif { ac_try='$gcc_cv_as -o conftest.o --traditional-format /dev/null'; { (eval echo configure:6509: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
elif { ac_try='$gcc_cv_as -o conftest.o --traditional-format /dev/null'; { (eval echo configure:6550: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
gcc_cv_as_eh_frame=buggy
else
# Uh oh, what do we do now?
@ -6530,7 +6571,7 @@ EOF
fi
echo $ac_n "checking assembler for section merging support""... $ac_c" 1>&6
echo "configure:6534: checking assembler for section merging support" >&5
echo "configure:6575: checking assembler for section merging support" >&5
if eval "test \"`echo '$''{'gcc_cv_as_shf_merge'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -6542,7 +6583,7 @@ else
fi
elif test x$gcc_cv_as != x; then
echo '.section .rodata.str, "aMS", @progbits, 1' > conftest.s
if { ac_try='$gcc_cv_as --fatal-warnings -o conftest.o conftest.s >&5'; { (eval echo configure:6546: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as --fatal-warnings -o conftest.o conftest.s >&5'; { (eval echo configure:6587: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_shf_merge=yes
else
@ -6780,7 +6821,7 @@ if test -z "$tls_first_major"; then
: # If we don't have a check, assume no support.
else
echo $ac_n "checking assembler for thread-local storage support""... $ac_c" 1>&6
echo "configure:6784: checking assembler for thread-local storage support" >&5
echo "configure:6825: checking assembler for thread-local storage support" >&5
if eval "test \"`echo '$''{'gcc_cv_as_tls'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -6791,7 +6832,7 @@ else
fi
elif test x$gcc_cv_as != x; then
echo "$conftest_s" > conftest.s
if { ac_try='$gcc_cv_as $tls_as_opt --fatal-warnings -o conftest.o conftest.s >&5'; { (eval echo configure:6795: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as $tls_as_opt --fatal-warnings -o conftest.o conftest.s >&5'; { (eval echo configure:6836: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_tls=yes
else
@ -6817,7 +6858,7 @@ case "$target" in
# All TARGET_ABI_OSF targets.
alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*)
echo $ac_n "checking assembler for explicit relocation support""... $ac_c" 1>&6
echo "configure:6821: checking assembler for explicit relocation support" >&5
echo "configure:6862: checking assembler for explicit relocation support" >&5
if eval "test \"`echo '$''{'gcc_cv_as_alpha_explicit_relocs'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -6840,7 +6881,7 @@ fi
ldah $1, d($29) !gprelhigh
lda $1, d($1) !gprellow
lda $29, 0($29) !gpdisp!3' > conftest.s
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:6844: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:6885: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_alpha_explicit_relocs=yes
else
@ -6862,14 +6903,14 @@ fi
sparc*-*-*)
echo $ac_n "checking assembler for .register""... $ac_c" 1>&6
echo "configure:6866: checking assembler for .register" >&5
echo "configure:6907: checking assembler for .register" >&5
if eval "test \"`echo '$''{'gcc_cv_as_sparc_register_op'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
gcc_cv_as_sparc_register_op=no
if test x$gcc_cv_as != x; then
echo '.register %g2, #scratch' > conftest.s
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:6873: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:6914: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_sparc_register_op=yes
else
@ -6889,14 +6930,14 @@ EOF
fi
echo $ac_n "checking assembler for -relax option""... $ac_c" 1>&6
echo "configure:6893: checking assembler for -relax option" >&5
echo "configure:6934: checking assembler for -relax option" >&5
if eval "test \"`echo '$''{'gcc_cv_as_sparc_relax'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
gcc_cv_as_sparc_relax=no
if test x$gcc_cv_as != x; then
echo '.text' > conftest.s
if { ac_try='$gcc_cv_as -relax -o conftest.o conftest.s >&5'; { (eval echo configure:6900: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -relax -o conftest.o conftest.s >&5'; { (eval echo configure:6941: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_sparc_relax=yes
else
@ -6916,7 +6957,7 @@ EOF
fi
echo $ac_n "checking assembler for unaligned pcrel relocs""... $ac_c" 1>&6
echo "configure:6920: checking assembler for unaligned pcrel relocs" >&5
echo "configure:6961: checking assembler for unaligned pcrel relocs" >&5
if eval "test \"`echo '$''{'gcc_cv_as_sparc_ua_pcrel'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -6929,7 +6970,7 @@ foo:
.align 4
.byte 0
.uaword %r_disp32(foo)' > conftest.s
if { ac_try='$gcc_cv_as -K PIC -o conftest.o conftest.s >&5'; { (eval echo configure:6933: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -K PIC -o conftest.o conftest.s >&5'; { (eval echo configure:6974: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
if test x$gcc_cv_ld != x \
&& $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
@ -6952,7 +6993,7 @@ EOF
echo $ac_n "checking assembler for unaligned pcrel relocs against hidden symbols""... $ac_c" 1>&6
echo "configure:6956: checking assembler for unaligned pcrel relocs against hidden symbols" >&5
echo "configure:6997: checking assembler for unaligned pcrel relocs against hidden symbols" >&5
if eval "test \"`echo '$''{'gcc_cv_as_sparc_ua_pcrel_hidden'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -6967,7 +7008,7 @@ else
.hidden foo
foo:
.skip 4' > conftest.s
if { ac_try='$gcc_cv_as -K PIC -o conftest.o conftest.s >&5'; { (eval echo configure:6971: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -K PIC -o conftest.o conftest.s >&5'; { (eval echo configure:7012: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
if test x$gcc_cv_ld != x && test x$gcc_cv_objdump != x \
&& $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1 \
@ -7000,7 +7041,7 @@ fi
fi # unaligned pcrel relocs
echo $ac_n "checking assembler for offsetable %lo()""... $ac_c" 1>&6
echo "configure:7004: checking assembler for offsetable %lo()" >&5
echo "configure:7045: checking assembler for offsetable %lo()" >&5
if eval "test \"`echo '$''{'gcc_cv_as_sparc_offsetable_lo10'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -7009,7 +7050,7 @@ else
echo '.text
or %g1, %lo(ab) + 12, %g1
or %g1, %lo(ab + 12), %g1' > conftest.s
if { ac_try='$gcc_cv_as -xarch=v9 -o conftest.o conftest.s >&5'; { (eval echo configure:7013: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -xarch=v9 -o conftest.o conftest.s >&5'; { (eval echo configure:7054: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
if test x$gcc_cv_objdump != x \
&& %gcc_cv_objdump -s -j .text conftest.o 2> /dev/null \
@ -7035,7 +7076,7 @@ fi
i[34567]86-*-* | x86_64-*-*)
echo $ac_n "checking assembler for filds and fists mnemonics""... $ac_c" 1>&6
echo "configure:7039: checking assembler for filds and fists mnemonics" >&5
echo "configure:7080: checking assembler for filds and fists mnemonics" >&5
if eval "test \"`echo '$''{'gcc_cv_as_ix86_filds_fists'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -7046,7 +7087,7 @@ else
fi
elif test x$gcc_cv_as != x; then
echo 'filds mem; fists mem' > conftest.s
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:7050: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:7091: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_ix86_filds_fists=yes
else
@ -7066,14 +7107,14 @@ EOF
fi
echo $ac_n "checking assembler for cmov syntax""... $ac_c" 1>&6
echo "configure:7070: checking assembler for cmov syntax" >&5
echo "configure:7111: 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:7077: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:7118: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_ix86_cmov_sun_syntax=yes
else
@ -7095,7 +7136,7 @@ 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:7099: checking assembler for GOTOFF in data" >&5
echo "configure:7140: 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
@ -7110,7 +7151,7 @@ fi
nop
.data
.long .L0@GOTOFF' > conftest.s
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:7114: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:7155: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_ix86_gotoff_in_data=yes
else
@ -7131,7 +7172,7 @@ EOF
ia64*-*-*)
echo $ac_n "checking assembler for ltoffx and ldxmov relocs""... $ac_c" 1>&6
echo "configure:7135: checking assembler for ltoffx and ldxmov relocs" >&5
echo "configure:7176: 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
@ -7145,7 +7186,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:7149: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:7190: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_ia64_ltoffx_ldxmov_relocs=yes
else
@ -7175,7 +7216,7 @@ fi
mfcr 3,128"
echo $ac_n "checking assembler for mfcr field support""... $ac_c" 1>&6
echo "configure:7179: checking assembler for mfcr field support" >&5
echo "configure:7220: 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
@ -7186,7 +7227,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:7190: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:7231: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_powerpc_mfcrf=yes
else
@ -7208,7 +7249,7 @@ fi
mips*-*-*)
echo $ac_n "checking assembler for explicit relocation support""... $ac_c" 1>&6
echo "configure:7212: checking assembler for explicit relocation support" >&5
echo "configure:7253: 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
@ -7219,7 +7260,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:7223: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:7264: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_mips_explicit_relocs=yes
else
@ -7265,7 +7306,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:7269: checking assembler for dwarf2 debug_line support" >&5
echo "configure:7310: 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
@ -7277,7 +7318,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:7281: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:7322: \"$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
@ -7299,7 +7340,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:7303: checking assembler for buggy dwarf2 .file directive" >&5
echo "configure:7344: 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
@ -7307,7 +7348,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:7311: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'; { (eval echo configure:7352: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_dwarf2_file_buggy=yes
else
@ -7330,7 +7371,7 @@ EOF
fi
echo $ac_n "checking assembler for --gdwarf2 option""... $ac_c" 1>&6
echo "configure:7334: checking assembler for --gdwarf2 option" >&5
echo "configure:7375: 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
@ -7342,7 +7383,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:7346: \"$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:7387: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
gcc_cv_as_gdwarf2_flag=yes
else
@ -7362,7 +7403,7 @@ EOF
fi
echo $ac_n "checking assembler for --gstabs option""... $ac_c" 1>&6
echo "configure:7366: checking assembler for --gstabs option" >&5
echo "configure:7407: 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
@ -7374,12 +7415,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:7378: \"$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:7419: \"$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:7383: \"$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:7424: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then :
else gcc_cv_as_gstabs_flag=yes
fi
@ -7401,7 +7442,7 @@ fi
fi
echo $ac_n "checking linker read-only and read-write section mixing""... $ac_c" 1>&6
echo "configure:7405: checking linker read-only and read-write section mixing" >&5
echo "configure:7446: 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 \
@ -7440,7 +7481,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:7444: checking linker PT_GNU_EH_FRAME support" >&5
echo "configure:7485: 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 \
@ -7462,7 +7503,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:7466: checking linker position independent executable support" >&5
echo "configure:7507: 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 \
@ -7487,7 +7528,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:7491: checking whether libgloss uses STARTUP directives consistently" >&5
echo "configure:7532: 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
@ -7689,7 +7730,7 @@ fi
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
echo "configure:7693: checking whether to enable maintainer-specific portions of Makefiles" >&5
echo "configure:7734: 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

@ -957,6 +957,8 @@ use_libunwind_exceptions=$use_libunwind_default)
if test x"$use_libunwind_exceptions" = xyes; then
AC_DEFINE(USE_LIBUNWIND_EXCEPTIONS, 1,
[Define if gcc should use -lunwind.])
AC_CHECK_LIB(unwind, _Unwind_Resume, libunwind_has_eh_support=yes,
libunwind_has_eh_support=no)
fi
# --------------------------------------------------------

View File

@ -124,6 +124,11 @@ _Unwind_SetGR (struct _Unwind_Context *context, int index, _Unwind_Word val)
/* Note: here we depend on the fact that general registers are
expected to start with register number 0! */
unw_set_reg (&context->cursor, index, val);
#ifdef UNW_TARGET_IA64
if (index >= UNW_IA64_GR && index <= UNW_IA64_GR + 127)
/* Clear the NaT bit. */
unw_set_reg (&context->cursor, UNW_IA64_NAT + (index - UNW_IA64_GR), 0);
#endif
}
/* Retrieve the return address for CONTEXT. */