diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2007-08-06 19:58:11 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2007-08-06 12:58:11 -0700 |
commit | d3ef67eaf39f1af64a1a1331c63ad60dd8c217cd (patch) | |
tree | 2eb73bc1ae71127d70cb151cdf799ea9d6bced0e /gcc/config | |
parent | a31fa2e0d3cab234ccb56fe5fdcfcf0efd3dee31 (diff) | |
download | gcc-d3ef67eaf39f1af64a1a1331c63ad60dd8c217cd.zip gcc-d3ef67eaf39f1af64a1a1331c63ad60dd8c217cd.tar.gz gcc-d3ef67eaf39f1af64a1a1331c63ad60dd8c217cd.tar.bz2 |
re PR target/31868 (Non-Linux DWARF EH x86-64 targets have broken crtend.o)
2007-08-06 H.J. Lu <hongjiu.lu@intel.com>
Daniel Jacobowitz <dan@codesourcery.com>
PR target/31868
* config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to
tmake_file.
(x86_64-*-netbsd*): Likewise.
(x86_64-*-linux*): Likewise.
(x86_64-*-kfreebsd*-gnu): Likewise.
(x86_64-*-knetbsd*-gnu): Likewise.
(i[34567]86-*-solaris2.1[0-9]*): Likewise.
* config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed.
* config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments.
Add -fno-asynchronous-unwind-tables.
* config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS).
* config/t-libc-ok (CRTSTUFF_T_CFLAGS_S): Likewise.
* config/t-lynx (CRTSTUFF_T_CFLAGS_S): Likewise.
* config/t-netbsd (CRTSTUFF_T_CFLAGS_S): Likewise.
* config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Likewise.
Co-Authored-By: Daniel Jacobowitz <dan@codesourcery.com>
From-SVN: r127248
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/i386/t-crtstuff | 7 | ||||
-rw-r--r-- | gcc/config/i386/t-linux64 | 6 | ||||
-rw-r--r-- | gcc/config/t-freebsd | 2 | ||||
-rw-r--r-- | gcc/config/t-libc-ok | 2 | ||||
-rw-r--r-- | gcc/config/t-lynx | 2 | ||||
-rw-r--r-- | gcc/config/t-netbsd | 2 | ||||
-rw-r--r-- | gcc/config/t-svr4 | 2 |
7 files changed, 11 insertions, 12 deletions
diff --git a/gcc/config/i386/t-crtstuff b/gcc/config/i386/t-crtstuff index a202df6..8fe5875 100644 --- a/gcc/config/i386/t-crtstuff +++ b/gcc/config/i386/t-crtstuff @@ -1,2 +1,7 @@ # The pushl in CTOR initialization interferes with frame pointer elimination. -CRTSTUFF_T_CFLAGS = -fno-omit-frame-pointer +# crtend*.o cannot be compiled without -fno-asynchronous-unwind-tables, +# because then __FRAME_END__ might not be the last thing in .eh_frame +# section. -fno-asynchronous-unwind-tables is off by default for i386 +# and is on by default for x86-64. We turn it off for both i386 and +# x86-64. +CRTSTUFF_T_CFLAGS = -fno-omit-frame-pointer -fno-asynchronous-unwind-tables diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64 index 7aa1b81..0a70cd9 100644 --- a/gcc/config/i386/t-linux64 +++ b/gcc/config/i386/t-linux64 @@ -17,9 +17,3 @@ EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o \ softfp_wrap_start := '\#ifdef __x86_64__' softfp_wrap_end := '\#endif' - -# The pushl in CTOR initialization interferes with frame pointer elimination. -# crtend*.o cannot be compiled without -fno-asynchronous-unwind-tables, -# because then __FRAME_END__ might not be the last thing in .eh_frame -# section. -CRTSTUFF_T_CFLAGS = -fno-omit-frame-pointer -fno-asynchronous-unwind-tables diff --git a/gcc/config/t-freebsd b/gcc/config/t-freebsd index 211dbdf..0680618 100644 --- a/gcc/config/t-freebsd +++ b/gcc/config/t-freebsd @@ -1,5 +1,5 @@ # Compile crtbeginS.o and crtendS.o with pic. -CRTSTUFF_T_CFLAGS_S = -fPIC +CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC # Compile libgcc.a with pic. TARGET_LIBGCC2_CFLAGS += -fPIC diff --git a/gcc/config/t-libc-ok b/gcc/config/t-libc-ok index 4dae812..561ee0b 100644 --- a/gcc/config/t-libc-ok +++ b/gcc/config/t-libc-ok @@ -1 +1 @@ -CRTSTUFF_T_CFLAGS_S=-fPIC +CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC diff --git a/gcc/config/t-lynx b/gcc/config/t-lynx index a14a53c..3a6a5d8 100644 --- a/gcc/config/t-lynx +++ b/gcc/config/t-lynx @@ -1,5 +1,5 @@ # Compile crtbeginS.o and crtendS.o with pic. -CRTSTUFF_T_CFLAGS_S = -fPIC +CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC # Compile libgcc2.a with pic. TARGET_LIBGCC2_CFLAGS = -fPIC diff --git a/gcc/config/t-netbsd b/gcc/config/t-netbsd index 843e410..34949e1 100644 --- a/gcc/config/t-netbsd +++ b/gcc/config/t-netbsd @@ -1,2 +1,2 @@ # Always build crtstuff with PIC. -CRTSTUFF_T_CFLAGS = -fPIC +CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC diff --git a/gcc/config/t-svr4 b/gcc/config/t-svr4 index 52c9b28..3ea1174 100644 --- a/gcc/config/t-svr4 +++ b/gcc/config/t-svr4 @@ -4,7 +4,7 @@ # we will be doing that, we just always use -fPIC when compiling the # routines in crtstuff.c. Likewise for libgcc2.c. -CRTSTUFF_T_CFLAGS = -fPIC +CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC TARGET_LIBGCC2_CFLAGS = -fPIC # See all the declarations. |