Fix PR other/91396 static linke error with -fvtable-verify
authorCaroline Tice <cmtice@google.com>
Tue, 13 Aug 2019 16:11:20 +0000 (09:11 -0700)
committerCaroline Tice <ctice@gcc.gnu.org>
Tue, 13 Aug 2019 16:11:20 +0000 (09:11 -0700)
Fix a bug where linking with -fvtable-verify  and
-static causes the linker to complain about multiple definitions of
things in the vtv_end*.o files (once from the .o file and once from
libvtv.a).

2019-08-12  Caroline Tice  <cmtice@google.com>

        PR other/91396
        * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Only add the
        vtv_end.o or vtv_end_preinit.o files if !static.

From-SVN: r274386

gcc/ChangeLog
gcc/config/gnu-user.h

index 5739f22c4d2803bd5e651fcea2472d2877673517..573c77941304c0008f64da4262bb6c0160c1f5c2 100644 (file)
@@ -1,3 +1,9 @@
+2019-08-13  Caroline Tice  <cmtice@google.com>
+
+       PR other/91396
+       * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Only add the
+       vtv_end.o or vtv_end_preinit.o files if !static.
+
 2019-08-13  Olivier Hainque  <hainque@adacore.com>
 
        * rtl.h (tablejump_casesi_pattern): Move declaration to proper spot.
index 055a4f0afeca4a6339fd156db1bf1daf1aae0994..95a3c29f7cee86336f958bef1d7fe56b82e05e6c 100644 (file)
@@ -73,9 +73,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=none:%s; \
+  "%{!static:%{fvtable-verify=none:%s; \
      fvtable-verify=preinit:vtv_end_preinit.o%s; \
-     fvtable-verify=std:vtv_end.o%s} \
+     fvtable-verify=std:vtv_end.o%s}} \
    %{static:crtend.o%s; \
      shared|static-pie|" PIE_SPEC ":crtendS.o%s; \
      :crtend.o%s} " \