mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-14 08:10:27 +08:00
re PR target/23602 (1081 test failures in libjava, when configured for i486-linux)
PR target/23602 * toplev.c (process_options): Warn about unsupported combinations of unwind tables and omit-frame-pointer. * config/i386/i386.c (override_options): Similarly. Enable accumulate-outgoing-args if not explicitly disabled. testsuite/ * g++.dg/eh/omit-frame-pointer.C: Remove i?86 specific options. * g++.dg/eh/omit-frame-pointer2.C: Likewise. libjava/ * configure.host (i?86-*): Set -fomit-frame-pointer in libgcj_flags, but not BACKTRACESPEC. (x86_64-*): Similarly. Don't set -ffloat-store in 64-bit mode. From-SVN: r105009
This commit is contained in:
parent
10dc6e8cea
commit
d3073c70c5
@ -1,3 +1,11 @@
|
||||
2005-10-05 Richard Henderson <rth@redhat.com>
|
||||
|
||||
PR target/23602
|
||||
* toplev.c (process_options): Warn about unsupported combinations
|
||||
of unwind tables and omit-frame-pointer.
|
||||
* config/i386/i386.c (override_options): Similarly. Enable
|
||||
accumulate-outgoing-args if not explicitly disabled.
|
||||
|
||||
2005-10-05 Steve Ellcey <sje@cup.hp.com>
|
||||
|
||||
* vect.md (vec_initv2si): Fix typo of V2SF to V2SI.
|
||||
|
@ -1653,6 +1653,21 @@ override_options (void)
|
||||
&& !optimize_size)
|
||||
target_flags |= MASK_ACCUMULATE_OUTGOING_ARGS;
|
||||
|
||||
/* ??? Unwind info is not correct around the CFG unless either a frame
|
||||
pointer is present or M_A_O_A is set. Fixing this requires rewriting
|
||||
unwind info generation to be aware of the CFG and propagating states
|
||||
around edges. */
|
||||
if ((flag_unwind_tables || flag_asynchronous_unwind_tables
|
||||
|| flag_exceptions || flag_non_call_exceptions)
|
||||
&& flag_omit_frame_pointer
|
||||
&& !(target_flags & MASK_ACCUMULATE_OUTGOING_ARGS))
|
||||
{
|
||||
if (target_flags_explicit & MASK_ACCUMULATE_OUTGOING_ARGS)
|
||||
warning (0, "unwind tables currently require either a frame pointer "
|
||||
"or -maccumulate-outgoing-args for correctness");
|
||||
target_flags |= MASK_ACCUMULATE_OUTGOING_ARGS;
|
||||
}
|
||||
|
||||
/* Figure out what ASM_GENERATE_INTERNAL_LABEL builds as a prefix. */
|
||||
{
|
||||
char *p;
|
||||
|
@ -1,3 +1,9 @@
|
||||
2005-10-05 Richard Henderson <rth@redhat.com>
|
||||
|
||||
PR target/23602
|
||||
* g++.dg/eh/omit-frame-pointer.C: Remove i?86 specific options.
|
||||
* g++.dg/eh/omit-frame-pointer2.C: Likewise.
|
||||
|
||||
2005-10-05 Dale Johannesen <dalej@apple.com>
|
||||
|
||||
* gcc.c-torture/execute/float-floor.c: New.
|
||||
|
@ -1,6 +1,5 @@
|
||||
// { dg-do run }
|
||||
// { dg-options -fomit-frame-pointer }
|
||||
// { dg-options "-fomit-frame-pointer -mno-accumulate-outgoing-args" { target i?86-*-* } }
|
||||
|
||||
#include <iostream>
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
// Reduced from PR c++/5246, PR c++/2447
|
||||
// { dg-options "-O -fomit-frame-pointer" }
|
||||
// { dg-options "-O -fomit-frame-pointer -mno-accumulate-outgoing-args" { target i?86-*-* } }
|
||||
// { dg-do run }
|
||||
|
||||
void step (int)
|
||||
|
12
gcc/toplev.c
12
gcc/toplev.c
@ -1778,6 +1778,18 @@ process_options (void)
|
||||
}
|
||||
if (!flag_stack_protect)
|
||||
warn_stack_protect = 0;
|
||||
|
||||
/* ??? Unwind info is not correct around the CFG unless either a frame
|
||||
pointer is present or A_O_A is set. Fixing this requires rewriting
|
||||
unwind info generation to be aware of the CFG and propagating states
|
||||
around edges. */
|
||||
if (flag_unwind_tables && !ACCUMULATE_OUTGOING_ARGS
|
||||
&& flag_omit_frame_pointer)
|
||||
{
|
||||
warning (0, "unwind tables currently requires a frame pointer "
|
||||
"for correctness");
|
||||
flag_omit_frame_pointer = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Initialize the compiler back end. */
|
||||
|
@ -1,3 +1,10 @@
|
||||
2005-10-05 Richard Henderson <rth@redhat.com>
|
||||
|
||||
PR target/23602
|
||||
* configure.host (i?86-*): Set -fomit-frame-pointer in libgcj_flags,
|
||||
but not BACKTRACESPEC.
|
||||
(x86_64-*): Similarly. Don't set -ffloat-store in 64-bit mode.
|
||||
|
||||
2005-10-02 Andrew Pinski <pinskia@physics.uc.edu>
|
||||
|
||||
* testsuite/lib/jni.exp (gcj_jni_test_one): For
|
||||
|
@ -95,18 +95,27 @@ case "${host}" in
|
||||
;;
|
||||
i686-*|i586-*|i486-*|i386-*)
|
||||
sysdeps_dir=i386
|
||||
libgcj_flags="${libgcj_flags} -ffloat-store"
|
||||
# With -fomit-frame-pointer -maccumulate-outgoing-args (implied),
|
||||
# the .text section of libgcj.so is 30k larger, and the .eh_frame
|
||||
# section is 1.4M smaller.
|
||||
libgcj_flags="${libgcj_flags} -ffloat-store -fomit-frame-pointer"
|
||||
libgcj_interpreter=yes
|
||||
libgcj_cxxflags=
|
||||
libgcj_cflags=
|
||||
DIVIDESPEC=-fno-use-divide-subroutine
|
||||
BACKTRACESPEC=-fomit-frame-pointer
|
||||
enable_hash_synchronization_default=yes
|
||||
slow_pthread_self=yes
|
||||
;;
|
||||
x86_64-*)
|
||||
sysdeps_dir=x86-64
|
||||
libgcj_flags="${libgcj_flags} -ffloat-store"
|
||||
# For 64-bit we always use SSE registers for arithmetic,
|
||||
# which doesn't have the extra precision problems of the fpu.
|
||||
# But be careful about 32-bit multilibs.
|
||||
case " $CC " in
|
||||
*" -m32 "*)
|
||||
libgcj_flags="${libgcj_flags} -ffloat-store" ;;
|
||||
esac
|
||||
libgcj_flags="${libgcj_flags} -fomit-frame-pointer"
|
||||
libgcj_cxxflags=
|
||||
libgcj_cflags=
|
||||
DIVIDESPEC=-f%{m32:no-}use-divide-subroutine
|
||||
|
Loading…
x
Reference in New Issue
Block a user