This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
[PATCH, updated] Vtable pointer verification, runtime library changes (patch 3 of 3)
- From: Caroline Tice <cmtice at google dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>, libstdc++ at gcc dot gnu dot org
- Cc: Diego Novillo <dnovillo at google dot com>, Luis Lozano <llozano at google dot com>, Bhaskar Janakiraman <bjanakiraman at google dot com>
- Date: Mon, 25 Feb 2013 11:31:11 -0800
- Subject: [PATCH, updated] Vtable pointer verification, runtime library changes (patch 3 of 3)
Here are the latest changes to the vtable pointer verification patches
(again there are 3 patches: c++ front end, main gcc, and c++ runtime
library). I think these address all the review comments I have
received so far. This patch is the for C++ runtime library changes.
Please review these changes and let me know if they will be ok to
commit once stage 1 opens.
-- Caroline Tice
cmtice@google.com
2013-02-25 Caroline Tice <cmtice@google.com>
* config/abi/pre/gnu.ver: Add vtable verification runtime functions to
the list of globally visible symbols.
* acinclude.m4: Add GLIBCXX_ENABLE_VTABLE_VERIFY option and comments.
* configure (ENABLE_VTABLE_VERIFY_FALSE, ENABLE_VTABLE_VERIFY_TRUE,
enable_vtable_verify): New definitions.
(predep_objects): Add vtv_start.o. if --enable-vtable-verify=yes was
used.
(postdep_objects): Add vtv_end.o. if --enable-vtable-verify=yes was
used.
Add test for --enable-vtabkle-verify=yes. Add definitions for
ENABLE_VTABLE_VERIFY_FALSE and ENABLE_VTABLE_VERIFY_TRUE.
* src/Makefile.am (libvtv__la_LIBADD): Add definition, conditioned on
ENABLE_VTABLE_VERIFY.
(LIBVTV_FLAGS): Add definition, conditioned on ENABLE_VTABLE_VERIFY.
(libstdc___la_LDFLAGS): Add 'Wl,-u_vtable_map_var_start,
-u_vtable_map_var_end' if ENABLE_VTABLE_VERIFY is true.
(CXXLINK): Add LIBVTV_FLAGS.
* src/Makefile.in: Regenerate from Makefile.am.
* configure.ac (GLIBCXX_ENABLE_VTABLE_VERIFY): New definition.
* libsupc++/vtv_utils.cc: New file.
* libsupc++/vtv_rts.h: New file.
* libsupc++/vtv_map.h: New file.
* libsupc++/vtv_set.h: New file.
* libsupc++/vtv_utils.h: New file.
* libsupc++/vtv_init.cc: New file.
* libsupc++/vtv_malloc.h: New file.
* libsupc++/Makefile.am (sources): Add vtv_rts.cc, vtv_malloc.cc and
vtv_utils.cc to the list.
(vtv_init_sources, vtv_stubs_soruces, libvtv_init_la_sources,
libvtv_stubs_la_sources): New definitions.
(toolexeclib_LTLIBRARIES): Add libvtv_init.la and libvtv_stubs.la.
* libsupc++/Makefile.in: Regenerate from Makefile.am.
* libsupc++/vtv_stubs.cc: New file.
* libsupc++/vtv_malloc.cc: New file.
* libsupc++/vtv_rts.cc: New file.
* libsupc++/vtv_fail.h: New file.