summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaroline Tice <cmtice@chromium.org>2013-07-09 10:18:49 -0700
committerCaroline Tice <cmtice@chromium.org>2013-07-09 10:18:49 -0700
commit301bce67d4f2a7a14e559a443d8dcd5e07e3f31b (patch)
tree734851d0181326cb90159638caf6c3f3fa5a5964
parent9c1705845241cdea5cf61574218edef282901fbd (diff)
downloadgcc-301bce67d4f2a7a14e559a443d8dcd5e07e3f31b.tar.gz
Update SPECS to properly handle cases where multiple -fvtable-verify= flags
appear in the command line, with different argument values.
-rw-r--r--gcc/config/gnu-user.h17
1 files changed, 10 insertions, 7 deletions
diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
index 1395b795f5c..2c48c18655a 100644
--- a/gcc/config/gnu-user.h
+++ b/gcc/config/gnu-user.h
@@ -39,19 +39,21 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
the GNU userspace magical crtbegin.o file (see crtstuff.c) which
provides part of the support for getting C++ file-scope static
object constructed before entering `main'. */
-
+
#if defined HAVE_LD_PIE
#define GNU_USER_TARGET_STARTFILE_SPEC \
"%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s} \
- %{fvtable-verify=std:vtv_start.o%s} \
- %{fvtable-verify=preinit:vtv_start_preinit.o%s}"
+ %{fvtable-verify=none:%s; \
+ fvtable-verify=preinit:vtv_start_preinit.o%s; \
+ fvtable-verify=std:vtv_start.o%s}"
#else
#define GNU_USER_TARGET_STARTFILE_SPEC \
"%{!shared: %{pg|p|profile:gcrt1.o%s;:crt1.o%s}} \
crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s} \
- %{fvtable-verify=std:vtv_start.o%s} \
- %{fvtable-verify=preinit:vtv_start_preinit.o%s}"
+ %{fvtable-verify=none:%s; \
+ fvtable-verify=preinit:vtv_start_preinit.o%s; \
+ fvtable-verify=std:vtv_start.o%s}"
#endif
#undef STARTFILE_SPEC
#define STARTFILE_SPEC GNU_USER_TARGET_STARTFILE_SPEC
@@ -63,8 +65,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
GNU userspace "finalizer" file, `crtn.o'. */
#define GNU_USER_TARGET_ENDFILE_SPEC \
- "%{fvtable-verify=std:vtv_end.o%s} \
- %{fvtable-verify=preinit:vtv_end_preinit.o%s} \
+ "%{fvtable-verify=none:%s; \
+ fvtable-verify=preinit:vtv_end_preinit.o%s; \
+ fvtable-verify=std:vtv_end.o%s} \
%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
#undef ENDFILE_SPEC
#define ENDFILE_SPEC GNU_USER_TARGET_ENDFILE_SPEC