re PR other/29639 (ext/bitmap_allocator/check_allocate_max_size.cc execution test)
PR other/29639 * configure.ac (HAVE_LD_EH_GC_SECTIONS): Check that exception tables are kept for .gnu.linkonce.t sections if COMDAT groups are disabled. * configure: Regenerate. From-SVN: r120121
This commit is contained in:
parent
5f7fc2b832
commit
e9d207d9ac
3 changed files with 79 additions and 0 deletions
|
@ -1,3 +1,10 @@
|
|||
2006-12-21 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
PR other/29639
|
||||
* configure.ac (HAVE_LD_EH_GC_SECTIONS): Check that exception tables
|
||||
are kept for .gnu.linkonce.t sections if COMDAT groups are disabled.
|
||||
* configure: Regenerate.
|
||||
|
||||
2006-12-21 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* rtlanal.c (subreg_get_info): Do not make register size
|
||||
|
|
36
gcc/configure
vendored
36
gcc/configure
vendored
|
@ -16053,10 +16053,46 @@ EOF
|
|||
gcc_cv_ld_eh_gc_sections=no
|
||||
elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then
|
||||
gcc_cv_ld_eh_gc_sections=yes
|
||||
# If no COMDAT groups, the compiler will emit .gnu.linkonce.t. sections.
|
||||
if test x$gcc_cv_as_comdat_group != xyes; then
|
||||
gcc_cv_ld_eh_gc_sections=no
|
||||
cat > conftest.s <<EOF
|
||||
.section .text
|
||||
.globl _start
|
||||
.type _start, @function
|
||||
_start:
|
||||
.long foo
|
||||
.size _start, .-_start
|
||||
.section .gnu.linkonce.t.foo,"ax",@progbits
|
||||
.type foo, @function
|
||||
foo:
|
||||
.long 0
|
||||
.size foo, .-foo
|
||||
.section .gcc_except_table.foo,"a",@progbits
|
||||
.L0:
|
||||
.long 0
|
||||
.section .eh_frame,"a",@progbits
|
||||
.long .L0
|
||||
EOF
|
||||
if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
|
||||
if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \
|
||||
| grep "gc-sections option ignored" > /dev/null; then
|
||||
gcc_cv_ld_eh_gc_sections=no
|
||||
elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then
|
||||
gcc_cv_ld_eh_gc_sections=yes
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
rm -f conftest.s conftest.o conftest
|
||||
fi
|
||||
case "$target" in
|
||||
hppa*-*-linux*)
|
||||
# ??? This apparently exposes a binutils bug with PC-relative relocations.
|
||||
gcc_cv_ld_eh_gc_sections=no
|
||||
;;
|
||||
esac
|
||||
if test x$gcc_cv_ld_eh_gc_sections = xyes; then
|
||||
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
|
|
|
@ -3192,10 +3192,46 @@ EOF
|
|||
gcc_cv_ld_eh_gc_sections=no
|
||||
elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then
|
||||
gcc_cv_ld_eh_gc_sections=yes
|
||||
# If no COMDAT groups, the compiler will emit .gnu.linkonce.t. sections.
|
||||
if test x$gcc_cv_as_comdat_group != xyes; then
|
||||
gcc_cv_ld_eh_gc_sections=no
|
||||
cat > conftest.s <<EOF
|
||||
.section .text
|
||||
.globl _start
|
||||
.type _start, @function
|
||||
_start:
|
||||
.long foo
|
||||
.size _start, .-_start
|
||||
.section .gnu.linkonce.t.foo,"ax",@progbits
|
||||
.type foo, @function
|
||||
foo:
|
||||
.long 0
|
||||
.size foo, .-foo
|
||||
.section .gcc_except_table.foo,"a",@progbits
|
||||
.L0:
|
||||
.long 0
|
||||
.section .eh_frame,"a",@progbits
|
||||
.long .L0
|
||||
EOF
|
||||
if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
|
||||
if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \
|
||||
| grep "gc-sections option ignored" > /dev/null; then
|
||||
gcc_cv_ld_eh_gc_sections=no
|
||||
elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then
|
||||
gcc_cv_ld_eh_gc_sections=yes
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
rm -f conftest.s conftest.o conftest
|
||||
fi
|
||||
case "$target" in
|
||||
hppa*-*-linux*)
|
||||
# ??? This apparently exposes a binutils bug with PC-relative relocations.
|
||||
gcc_cv_ld_eh_gc_sections=no
|
||||
;;
|
||||
esac
|
||||
if test x$gcc_cv_ld_eh_gc_sections = xyes; then
|
||||
AC_DEFINE(HAVE_LD_EH_GC_SECTIONS, 1,
|
||||
[Define if your linker supports garbage collection of
|
||||
|
|
Loading…
Add table
Reference in a new issue