diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2019-05-06 16:58:57 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2019-05-06 16:58:57 +0200 |
commit | fd661a34e53dd2b20ae5309b78960c171ff9a720 (patch) | |
tree | 5187e09f04b7c4287eccac337fd795fa56ccb05e /gcc | |
parent | 7c0b7150ed94c09d2d9cb1b149f6e2e8baa85864 (diff) | |
download | gcc-fd661a34e53dd2b20ae5309b78960c171ff9a720.zip gcc-fd661a34e53dd2b20ae5309b78960c171ff9a720.tar.gz gcc-fd661a34e53dd2b20ae5309b78960c171ff9a720.tar.bz2 |
re PR target/89221 (--enable-frame-pointer does not work as intended)
PR target/89221
* config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
and enable_frame_pointer ...
* configure.ac: ... here. Update help strings for
--enable-frame-pointer.
* configure: Regenerate.
* config/i386/i386-options.c (ix86_option_override_internal): Remove
USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
* config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
(USE_X86_64_FRAME_POINTER): Ditto.
From-SVN: r270914
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 13 | ||||
-rw-r--r-- | gcc/config.gcc | 12 | ||||
-rw-r--r-- | gcc/config/i386/i386-options.c | 6 | ||||
-rw-r--r-- | gcc/config/i386/sol2.h | 3 | ||||
-rwxr-xr-x | gcc/configure | 21 | ||||
-rw-r--r-- | gcc/configure.ac | 16 |
6 files changed, 42 insertions, 29 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9f5b6ff..493e843 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,16 @@ +2019-05-06 Uroš Bizjak <ubizjak@gmail.com> + + PR target/89221 + * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld + and enable_frame_pointer ... + * configure.ac: ... here. Update help strings for + --enable-frame-pointer. + * configure: Regenerate. + * config/i386/i386-options.c (ix86_option_override_internal): Remove + USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead. + * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove. + (USE_X86_64_FRAME_POINTER): Ditto. + 2019-05-06 Martin Liska <mliska@suse.cz> * config.gcc: Append to target_gtfiles and fix indentation. diff --git a/gcc/config.gcc b/gcc/config.gcc index 6ac187c..baa156d 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -607,12 +607,6 @@ i[34567]86-*-*) echo "This target does not support --with-abi." exit 1 fi - if test "x$enable_cld" = xyes; then - tm_defines="${tm_defines} USE_IX86_CLD=1" - fi - if test "x$enable_frame_pointer" = xyes; then - tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1" - fi ;; x86_64-*-*) case ${with_abi} in @@ -633,12 +627,6 @@ x86_64-*-*) echo "Unknown ABI used in --with-abi=$with_abi" exit 1 esac - if test "x$enable_cld" = xyes; then - tm_defines="${tm_defines} USE_IX86_CLD=1" - fi - if test "x$enable_frame_pointer" = xyes; then - tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1" - fi ;; arm*-*-*) tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h" diff --git a/gcc/config/i386/i386-options.c b/gcc/config/i386/i386-options.c index 4ec10ef..95a9ae3 100644 --- a/gcc/config/i386/i386-options.c +++ b/gcc/config/i386/i386-options.c @@ -2198,16 +2198,12 @@ ix86_option_override_internal (bool main_args_p, #define USE_IX86_FRAME_POINTER 0 #endif -#ifndef USE_X86_64_FRAME_POINTER -#define USE_X86_64_FRAME_POINTER 0 -#endif - /* Set the default values for switches whose default depends on TARGET_64BIT in case they weren't overwritten by command line options. */ if (TARGET_64BIT_P (opts->x_ix86_isa_flags)) { if (opts->x_optimize >= 1 && !opts_set->x_flag_omit_frame_pointer) - opts->x_flag_omit_frame_pointer = !USE_X86_64_FRAME_POINTER; + opts->x_flag_omit_frame_pointer = !USE_IX86_FRAME_POINTER; if (opts->x_flag_asynchronous_unwind_tables && !opts_set->x_flag_unwind_tables && TARGET_64BIT_MS_ABI) diff --git a/gcc/config/i386/sol2.h b/gcc/config/i386/sol2.h index 09e401c..5fc4cbc 100644 --- a/gcc/config/i386/sol2.h +++ b/gcc/config/i386/sol2.h @@ -248,9 +248,6 @@ along with GCC; see the file COPYING3. If not see #define ASAN_REJECT_SPEC \ DEF_ARCH64_SPEC("%e:-fsanitize=address is not supported in this configuration") -#define USE_IX86_FRAME_POINTER 1 -#define USE_X86_64_FRAME_POINTER 1 - #undef NO_PROFILE_COUNTERS #undef MCOUNT_NAME diff --git a/gcc/configure b/gcc/configure index 3dcf775..08cce6f 100755 --- a/gcc/configure +++ b/gcc/configure @@ -1688,8 +1688,7 @@ Optional Features: --enable-leading-mingw64-underscores enable leading underscores on 64 bit mingw targets --enable-cld enable -mcld by default for 32bit x86 - --enable-frame-pointer enable -fno-omit-frame-pointer by default for 32bit - x86 + --enable-frame-pointer enable -fno-omit-frame-pointer by default for x86 --disable-win32-registry disable lookup of installation paths in the Registry on Windows hosts @@ -12199,8 +12198,7 @@ else case $target_os in linux* | darwin[8912]*) - # Enable -fomit-frame-pointer by default for Linux and Darwin with - # DWARF2. + # Enable -fomit-frame-pointer by default for Linux and Darwin with DWARF2. enable_frame_pointer=no ;; *) @@ -12211,6 +12209,17 @@ esac fi +case $target in +i[34567]86-*-* | x86_64-*-*) + if test "x$enable_cld" = xyes; then + tm_defines="${tm_defines} USE_IX86_CLD=1" + fi + if test "x$enable_frame_pointer" = xyes; then + tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1" + fi + ;; +esac + # Windows32 Registry support for specifying GCC installation paths. # Check whether --enable-win32-registry was given. if test "${enable_win32_registry+set}" = set; then : @@ -18646,7 +18655,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 18649 "configure" +#line 18658 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -18752,7 +18761,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 18755 "configure" +#line 18764 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/gcc/configure.ac b/gcc/configure.ac index 51f520c..7c526b9 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -1881,12 +1881,11 @@ AC_ARG_ENABLE(cld, AC_ARG_ENABLE(frame-pointer, [AS_HELP_STRING([--enable-frame-pointer], - [enable -fno-omit-frame-pointer by default for 32bit x86])], [], + [enable -fno-omit-frame-pointer by default for x86])], [], [ case $target_os in linux* | darwin[[8912]]*) - # Enable -fomit-frame-pointer by default for Linux and Darwin with - # DWARF2. + # Enable -fomit-frame-pointer by default for Linux and Darwin with DWARF2. enable_frame_pointer=no ;; *) @@ -1895,6 +1894,17 @@ linux* | darwin[[8912]]*) esac ]) +case $target in +i[[34567]]86-*-* | x86_64-*-*) + if test "x$enable_cld" = xyes; then + tm_defines="${tm_defines} USE_IX86_CLD=1" + fi + if test "x$enable_frame_pointer" = xyes; then + tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1" + fi + ;; +esac + # Windows32 Registry support for specifying GCC installation paths. AC_ARG_ENABLE(win32-registry, [AS_HELP_STRING([--disable-win32-registry], |