mirror of git://gcc.gnu.org/git/gcc.git
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
|
|
@ -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>
|
2006-12-21 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
* rtlanal.c (subreg_get_info): Do not make register size
|
* rtlanal.c (subreg_get_info): Do not make register size
|
||||||
|
|
|
||||||
|
|
@ -16053,10 +16053,46 @@ EOF
|
||||||
gcc_cv_ld_eh_gc_sections=no
|
gcc_cv_ld_eh_gc_sections=no
|
||||||
elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then
|
elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then
|
||||||
gcc_cv_ld_eh_gc_sections=yes
|
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
|
||||||
fi
|
fi
|
||||||
rm -f conftest.s conftest.o conftest
|
rm -f conftest.s conftest.o conftest
|
||||||
fi
|
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
|
if test x$gcc_cv_ld_eh_gc_sections = xyes; then
|
||||||
|
|
||||||
cat >>confdefs.h <<\_ACEOF
|
cat >>confdefs.h <<\_ACEOF
|
||||||
|
|
|
||||||
|
|
@ -3192,10 +3192,46 @@ EOF
|
||||||
gcc_cv_ld_eh_gc_sections=no
|
gcc_cv_ld_eh_gc_sections=no
|
||||||
elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then
|
elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then
|
||||||
gcc_cv_ld_eh_gc_sections=yes
|
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
|
||||||
fi
|
fi
|
||||||
rm -f conftest.s conftest.o conftest
|
rm -f conftest.s conftest.o conftest
|
||||||
fi
|
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
|
if test x$gcc_cv_ld_eh_gc_sections = xyes; then
|
||||||
AC_DEFINE(HAVE_LD_EH_GC_SECTIONS, 1,
|
AC_DEFINE(HAVE_LD_EH_GC_SECTIONS, 1,
|
||||||
[Define if your linker supports garbage collection of
|
[Define if your linker supports garbage collection of
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue