2015-05-13 13:28:41 +02:00
|
|
|
2015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
|
|
|
|
|
|
|
|
* Makefile.in: Regenerated with automake-1.11.6.
|
|
|
|
* aclocal.m4: Likewise.
|
|
|
|
* configure: Likewise.
|
|
|
|
* testsuite/Makefile.in: Likewise.
|
|
|
|
* testsuite/other-tests/Makefile.in: Likewise.
|
|
|
|
|
2015-02-09 12:41:22 +01:00
|
|
|
2015-02-09 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
* aclocal.m4: Likewise.
|
|
|
|
* configure: Likewise.
|
|
|
|
* testsuite/Makefile.in: Likewise.
|
|
|
|
|
2015-01-29 17:47:25 +01:00
|
|
|
2015-01-29 Caroline Tice <cmtice@google.com>
|
|
|
|
|
|
|
|
Committing VTV Cywin/Ming patch for Patrick Wollgast
|
|
|
|
* libvtv/Makefile.in : Regenerate.
|
|
|
|
* libvtv/configure : Regenerate.
|
|
|
|
|
|
|
|
2015-01-28 Caroline Tice <cmtice@google.com>
|
Committing VTV Cygwin patch for Patrick Wollgast
* gcc/config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
if -fvtable-verify=preinit/std is used.
* gcc/config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
* gcc/config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
* gcc/config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
if -fvtable-verify=preinit/std is used.
* gcc/config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
* gcc/config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
if -fvtable-verify=preinit/std is used.
* gcc/config/i386/mingw-w64.h (LIB_SPEC): Likewise.
* gcc/config/i386/mingw32.h (LIB_SPEC): Likewise.
* gcc/cp/vtable-class-hierarchy.c (vtv_generate_init_routine): Add
check for not TARGET_PECOFF at the VTV_PREINIT_PRIORITY checks.
* gcc/varasm.c (assemble_variable): Add code to properly set the comdat
section and name for the .vtable_map_vars section in case the
target is PE or COFF.
* libgcc/Makefile.in: Move rules to build vtv_*.o out of the check
for CUSTOM_CRTSTUFF.
* libgcc/config.host (i[34567]86-*-cygwin*, x86_64-*-cygwin*, i[34567]86-*-mingw*)
(x86_64-*-mingw*): Only add vtv_*.o to extra_parts if enable_vtable_verify.
* libstdc++-v3/acinclude.m4: Define VTV_CYGMIN.
* libstdc++-v3/configure: Regenerate.
* libstdc++-v3/libsupc++/Makefile.am: Add vtv_sources only to
libsupc___la_SOURCES and libsupc__convenience_la_SOURCES if VTV_CYGMIN is
not set.
* libstdc++-v3/libsupc++/Makefile.in: Regenerated.
* libstdc++-v3/libsupc++/vtv_stubs.cc: Add none weak declaration of every
function for Cygwin and MinGW.
* libstdc++-v3/src/Makefile.am: Add libvtv.la to toolexeclib_LTLIBRARIES,
if VTV_CYGMIN is set. Define libvtv_la_SOURCES, libvtv_la_LDFLAGS,
libvtv_la_AM_CXXFLAGS and libvtv_la_LINK if VTV_CYGMIN is set.
* libstdc++-v3/src/Makefile.in: Regenerate.
* libvtv/Makefile.am : Add libvtv.la to toolexeclib_LTLIBRARIES, if VTV_CYGMIN
is set. Define libvtv_la_LIBADD, libvtv_la_LDFLAGS, libvtv_stubs_la_LDFLAGS
and libvtv_stubs_la_SOURCES if VTV_CYGMIN is set. Add obstac.c to
libvtv_la_SOURCES if VTV_CYGMIN is set.
* libvtv/Makefile.in : Regenerate.
* libvtv/aclocal.m4 : Regenerate.
* libvtv/configure : Regenerate.
* libvtv/configure.ac : Add ACX_LT_HOST_FLAGS. Define VTV_CYGMIN.
* libvtv/configure.tgt : (x86_64-*-cygwin*, i?86-*-cygwin*, x86_64-*-mingw*)
(i?86-*-mingw*): Add to supported targets.
* libvtv/vtv_fail.cc : Skip inclusion of execinfo.h on Cygwin and MinGW.
(log_error_message): Skip calls to backtrace and backtrace_symbols_fd on Cygwin
and MinGW.
* libvtv/vtv_malloc.cc : Include windows.h and skip sys/mman.h inclusion on
Cygwin and MinGW. Add sysconf port on Cygwin and MinGW.
(obstack_chunk_alloc): Exchange call to mmap with call to VirtualAlloc on Cygwin
and MinGW.
(__vtv_malloc_init): Exchange call to sysconf with call to port of sysconf on
Cygwin and MinGW.
* libvtv/vtv_malloc.h : Declare mprotect and define PROT_READ and PROT_WRITE on
Cygwin and MinGW.
* libvtv/map.h : Include stdint.h on MinGW.
* libvtv/rts.cc : Include windows.h, winternl.h and psapi.h, skip include of
execinfo.h, sys/mman.h and link.h on Cygwin and MinGW.
Add port of __fortify_fail on Cygwin and MinGW.
Change ElfW (Addr) to uintptr_t on Cygwin and MinGW.
(read_section_offset_and_length): Add port for Cygwin and MinGW
(iterate_modules): New function.
(vtv_unprotect_vtable_vars): Use iterate_modules instead of dl_iterate_phdr on
Cygwin and MinGW.
(vtv_protect_vtable_vars): Likewise.
(count_all_pages): Likewise.
(dl_iterate_phdr_count_pages): Don't build on Cygwin and MinGW.
* libvtv/utils.cc : Include windows.h and skip execinfo.h inclusion on
Cygwin and MinGW.
(__vtv_open_log): Exchange call to getuid and getpid with GetCurrentProcessId and
adjust call to snprintf accordingly on Cygwin and MinGW.
Adjust calls to mkdir on MinGW.
Adjust call to open on Cygwin and MinGW.
(__vtv_add_to_log): Adjust call to snprintf on Cygwin and MinGW.
(__vtv_log_verification_failure): Don't generate a backtrace on Cygwin and MinGW.
From-SVN: r220232
2015-01-29 09:03:56 +01:00
|
|
|
|
|
|
|
Committing VTV Cywin/Ming patch for Patrick Wollgast
|
|
|
|
* libvtv/Makefile.am : Add libvtv.la to toolexeclib_LTLIBRARIES, if
|
|
|
|
VTV_CYGMIN is set. Define libvtv_la_LIBADD, libvtv_la_LDFLAGS,
|
|
|
|
libvtv_stubs_la_LDFLAGS and libvtv_stubs_la_SOURCES if VTV_CYGMIN is
|
|
|
|
set. Add obstac.c to libvtv_la_SOURCES if VTV_CYGMIN is set.
|
|
|
|
* libvtv/aclocal.m4 : Regenerate.
|
|
|
|
* libvtv/configure.ac : Add ACX_LT_HOST_FLAGS. Define VTV_CYGMIN.
|
|
|
|
* libvtv/configure.tgt : (x86_64-*-cygwin*, i?86-*-cygwin*,
|
|
|
|
x86_64-*-mingw*)
|
|
|
|
(i?86-*-mingw*): Add to supported targets.
|
|
|
|
* libvtv/vtv_fail.cc : Skip inclusion of execinfo.h on Cygwin and MinGW.
|
|
|
|
(log_error_message): Skip calls to backtrace and backtrace_symbols_fd
|
|
|
|
on Cygwin and MinGW.
|
|
|
|
* libvtv/vtv_malloc.cc : Include windows.h and skip sys/mman.h
|
|
|
|
inclusion on Cygwin and MinGW. Add sysconf port on Cygwin and MinGW.
|
|
|
|
(obstack_chunk_alloc): Exchange call to mmap with call to VirtualAlloc
|
|
|
|
on Cygwin and MinGW.
|
|
|
|
(__vtv_malloc_init): Exchange call to sysconf with call to port of
|
|
|
|
sysconf on Cygwin and MinGW.
|
|
|
|
* libvtv/vtv_malloc.h : Declare mprotect and define PROT_READ and
|
|
|
|
PROT_WRITE on Cygwin and MinGW.
|
|
|
|
* libvtv/map.h : Include stdint.h on MinGW.
|
|
|
|
* libvtv/rts.cc : Include windows.h, winternl.h and psapi.h, skip
|
|
|
|
include of execinfo.h, sys/mman.h and link.h on Cygwin and MinGW. Add
|
|
|
|
port of __fortify_fail on Cygwin and MinGW. Change ElfW (Addr) to
|
|
|
|
uintptr_t on Cygwin and MinGW.
|
|
|
|
(read_section_offset_and_length): Add port for Cygwin and MinGW
|
|
|
|
(iterate_modules): New function.
|
|
|
|
(vtv_unprotect_vtable_vars): Use iterate_modules instead of
|
|
|
|
dl_iterate_phdr on Cygwin and MinGW.
|
|
|
|
(vtv_protect_vtable_vars): Likewise.
|
|
|
|
(count_all_pages): Likewise.
|
|
|
|
(dl_iterate_phdr_count_pages): Don't build on Cygwin and MinGW.
|
|
|
|
* libvtv/utils.cc : Include windows.h and skip execinfo.h inclusion on
|
|
|
|
Cygwin and MinGW.
|
|
|
|
(__vtv_open_log): Exchange call to getuid and getpid with
|
|
|
|
GetCurrentProcessId and adjust call to snprintf accordingly on Cygwin
|
|
|
|
and MinGW. Adjust calls to mkdir on MinGW. Adjust call to open on
|
|
|
|
Cygwin and MinGW.
|
|
|
|
(__vtv_add_to_log): Adjust call to snprintf on Cygwin and MinGW.
|
|
|
|
(__vtv_log_verification_failure): Don't generate a backtrace on Cygwin
|
|
|
|
and MinGW.
|
|
|
|
|
2014-12-12 13:00:01 +01:00
|
|
|
2014-12-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
|
|
|
|
|
|
|
* testsuite/lib/libvtv.exp: Load target-utils.exp
|
|
|
|
|
2014-11-21 17:49:17 +01:00
|
|
|
2014-11-21 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
PR bootstrap/63784
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
2014-11-11 21:25:18 +01:00
|
|
|
2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
|
|
|
|
|
|
|
PR target/63610
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2013-09-25 20:44:48 +02:00
|
|
|
2013-09-25 Caroline Tice <cmtice@google.com>
|
|
|
|
|
|
|
|
* Makefile.am: Reinstate ENABLE_VTABLE_VERIFY checks, to make
|
|
|
|
sure testsuite is not run if libstdc++ and libgcc were not built
|
|
|
|
with vtable verification.
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
* configure.ac: Reinstate checks for --enable-vtable-verify flag,
|
|
|
|
to make sure testsuite is not run if libstdc++ and libgcc were not
|
|
|
|
built with vtable verification.
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
2013-09-24 21:29:28 +02:00
|
|
|
2013-09-24 Caroline Tice <cmtice@google.com>
|
|
|
|
|
|
|
|
* Makefile.am: Change libvtv_includedir to the directory used by
|
|
|
|
the other libraries rather than the top include directory.
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
2013-09-20 11:47:52 +02:00
|
|
|
2013-09-20 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2013-09-13 13:21:10 +02:00
|
|
|
2013-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
|
|
|
|
|
|
|
|
* configure.tgt: Remove *-*-*android* from supported targets.
|
|
|
|
|
2013-09-10 18:00:13 +02:00
|
|
|
2013-09-09 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
PR other/58374
|
|
|
|
* configure.ac: Move VTV_SUPPORTED check after AC_CANONICAL_SYSTEM.
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
2013-09-09 01:35:14 +02:00
|
|
|
2013-09-08 Caroline Tice <cmtice@google.com>
|
|
|
|
|
|
|
|
* testsuite/event-main.cc: Move to libvtv.cc subdirectory.
|
|
|
|
* testsuite/environment.cc: Ditto.
|
|
|
|
* testsuite/template-list2.cc: Ditto.
|
|
|
|
* testsuite/event.h: Ditto.
|
|
|
|
* testsuite/dataentry.cc: Ditto.
|
|
|
|
* testsuite/event-private.h: Ditto.
|
|
|
|
* testsuite/virtual_inheritance.cc: Ditto.
|
|
|
|
* testsuite/povray-derived.cc: Ditto.
|
|
|
|
* testsuite/nested_vcall_test.cc: Ditto.
|
|
|
|
* testsuite/template-list-iostream.cc: Ditto.
|
|
|
|
* testsuite/parts-test-extra-parts-views.h: Ditto.
|
|
|
|
* testsuite/virtfunc-test.cc: Ditto.
|
|
|
|
* testsuite/parts-test-extra-parts.h: Ditto.
|
|
|
|
* testsuite/const_vtable.cc: Ditto.
|
|
|
|
* testsuite/template-list.cc: Ditto.
|
|
|
|
* testsuite/dup_name.cc: Ditto.
|
|
|
|
* testsuite/thunk.cc: Ditto.
|
|
|
|
* testsuite/parts-test-main.h: Ditto.
|
|
|
|
* testsuite/mul_inh.cc: Ditto.
|
|
|
|
* testsuite/test1.cc: Ditto.
|
|
|
|
* testsuite/bb_tests.cc: Ditto.
|
|
|
|
* testsuite/v8-test-2.cc: Ditto.
|
|
|
|
* testsuite/thunk_vtable_map_attack.cc: Ditto.
|
|
|
|
* testsuite/xlan-test.cc: Ditto.
|
|
|
|
* testsuite/parts-test-main.cpp: Move to libvtv.cc subdirectory and
|
|
|
|
change file extension from .cc to .cpp.
|
|
|
|
* testsuite/event-definitions.cpp: Ditto.
|
|
|
|
* testsuite/event-main.cpp: Ditto.
|
|
|
|
* testsuite/derived-main.cpp: Ditto.
|
|
|
|
* testsuite/derived-lib.cpp: Ditto.
|
|
|
|
* testsuite/event-private.cpp: Ditto.
|
|
|
|
* testsuite/parts-test-extra-parts-views.cpp: Ditto.
|
|
|
|
* testsuite/parts-test-extra-parts.cpp: Ditto.
|
|
|
|
* testsuite/parts-test.list: Move to libvtv.cc subdirectory. Change
|
|
|
|
file extensions inside file from .cc to .cpp.
|
|
|
|
* testsuite/event.list: Ditto.
|
|
|
|
* testsuite/derived.list: Ditto.
|
|
|
|
* testsuite/register_pair.cc: Move to libvtv.cc; rename file to
|
|
|
|
register_set_pair.cc; include stdlib.h, stdio.h stdint.h string.h
|
|
|
|
(KEY_TYPE_FIXED_SIZE): New define.
|
|
|
|
(key_buffer, name_string, fake_names): New global variables.
|
|
|
|
(generate_names): New function.
|
|
|
|
(vtv_string_hans): New function.
|
|
|
|
(main): Add call to generate_names. Update middle for-loop to
|
|
|
|
initialize new parameters for __VLTRegisterPair... calls; move calls
|
|
|
|
to __VLTRegisterPair... to middle for-loop. Add calls to
|
|
|
|
__VLTRegisterSet...
|
|
|
|
* testsuite/register_pair_mt.cc: Ditto; renamed to
|
|
|
|
register_set_pair_mt.cc
|
|
|
|
* testsuite/libvtv.cc/vtv.exp: New file.
|
|
|
|
* testsuite/libvtv.mempool.cc/mempool.exp: New file.
|
|
|
|
* testsuite/libvtv.mt.cc/mt.exp: New file.
|
|
|
|
* testsuite/lib/libvtv.exp: New file.
|
|
|
|
* testsuite/lib/libvtv-dg.exp: New file.
|
|
|
|
* testsuite/config/default.exp: New file.
|
|
|
|
* testsuite/Makefile.am: New file. (Old file was moved to other-tests
|
|
|
|
subdirectory.)
|
|
|
|
* testsuite/Makefile.in: New file (generated).
|
|
|
|
* testsuite/mempool_negative.c: Change to C++ file; move to
|
|
|
|
libvtv.mempool.cc; include vtv-change-permission.h.
|
|
|
|
(main): Add call to __VLTChangePermission.
|
|
|
|
* testsuite/mempool_positive.c: Change to C++ file; move to
|
|
|
|
libvtv.mempool.cc; include vtv-change-permission.h.
|
|
|
|
(main): Add call to __VLTChangePermission.
|
|
|
|
* testsuite/temp_deriv3.cc: Move to other-tests subdirectory.
|
|
|
|
* testsuite/environment-fail-64.s: Ditto.
|
|
|
|
* testsutite/dlopen.cc: Ditto.
|
|
|
|
* testsuite/so.cc: Ditto.
|
|
|
|
* testsuite/temp_deriv2.cc: Ditto.
|
|
|
|
* testsuite/field-test.cc: Ditto.
|
|
|
|
* testsuite/dlopen_mt.cc: Ditto.
|
|
|
|
* testsuite/environment-fail-32.s: Ditto.
|
|
|
|
* testsuite/temp_deriv.cc: Ditto.
|
|
|
|
* testsuite/replace-fail.cc: Ditto.
|
|
|
|
* testsuite/other-tests/Makefile.am: New file. Copied from the
|
|
|
|
Makefile.am that used to be in testsuite directory.
|
|
|
|
* testsuite/other-tests/Makefile.in: Generated. (New file).
|
|
|
|
* testsuite/other-tests/README: New file.
|
|
|
|
|
2013-09-07 23:35:38 +02:00
|
|
|
2013-09-07 Paolo Carlini <paolo.carlini@oracle.com>
|
|
|
|
|
|
|
|
* testsuite/Makefile.am: Remove #if ENABLE_VTABLE_VERIFY check around
|
|
|
|
definition of check-am:.
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
|
2013-09-06 19:56:35 +02:00
|
|
|
2013-09-06 Caroline Tice <cmtice@google.com>
|
|
|
|
|
|
|
|
* Makefile.am: Remove #if ENABLE_VTABLE_VERIFY checks around
|
|
|
|
definitions of SUBDIRS, libvtv_la_SOURCES and libvtv_include_HEADERS.
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
* configure.ac: Remove checks and tests for --enable-vtable-verify.
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2013-08-28 18:36:22 +02:00
|
|
|
2013-08-20 Caroline Tice <cmtice@google.com>
|
|
|
|
|
|
|
|
* Makefile.am (DEFS): Add "@DEFS@", to inherit defintions.
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
* configure.ac: Add check for __secure_getenv and secure_getenv.
|
|
|
|
* configure: Regenerate.
|
|
|
|
* vtv_utils.cc : Include stdlib.h
|
|
|
|
(HAVE_SECURE_GETENV): Add checks and definitions for secure_getenv.
|
|
|
|
(log_dirs): Remove file static constant.
|
|
|
|
(__vtv_open_log): Increase size of log file name. Add the user
|
|
|
|
and process ids to the file name. Do not put the log files in /tmp.
|
|
|
|
Instead try to get the directory name from an environment variable; if
|
|
|
|
that fails try to use stderr. Add O_NOFOLLOW to the flags
|
|
|
|
for 'open'. Update function comment.
|
|
|
|
* vtv_rts.cc (log_memory_protection_data): Remove %d from file name.
|
|
|
|
|
2013-10-23 23:30:54 +02:00
|
|
|
2013-08-08 Benjamin Kosnik <bkoz@redhat.com>
|
2013-08-09 05:50:55 +02:00
|
|
|
Michael Meissner <meissner@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
* configure.tgt : Simplify, just use VTV_SUPPORTED.
|
|
|
|
|
2013-10-23 23:30:54 +02:00
|
|
|
2013-08-07 Benjamin Kosnik <bkoz@redhat.com>
|
2013-08-08 01:40:49 +02:00
|
|
|
|
|
|
|
* Makefile.am (SUBDIRS): Protect with ENABLE_VTABLE_VERIFY.
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
* acinclude.m4 (LIBVTV_CONFIGURE): Move parts to..
|
|
|
|
* configure.ac: ...here. Make configure more verbose, re-order.
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
Commit the vtable verification feature.
Commit the vtable verification feature. This feature is designed to
detect, at run time, if/when the vtable pointer in a C++ object has
been corrupted, before allowing virtual calls through that pointer.
If pointer corruption is detected, execution of the program is halted.
libstdc++-v3 ChangeLog:
2013-08-06 Caroline Tice <cmtice@google.com>
* fragment.am: Add XTEMPLATE_FLAGS.
* configure.ac: Add definitions for --enable-vtable-verify.
* acinclude.m4: Add --enable-vtable-verify and
--disable-vtable-verify; define --enable-vtable-verify; define
VTV_CXXFLAGS, VTV_PCH_CXXFLAGS and VTV_CXXLINKFLAGS.
* config/abi/pre/gnu.ver: Export symbols for vtable verification.
* libsupc++/Makefile.am: Define vtv_sources and add it to
libsupc___la_SOURCES and libsupc__convenience_la_SOURCES.
* libsupc++/vtv_stubs.cc: New file.
* include/Makefile.am: Add VTV_PCH_CXXFLAGS to PCHFLAGS.
* src/Makefile.am: Add VTV_CXXFLAGS to AM_CXXFLAGS; add
VTV_CXXLINKFLAGS to CXXLINK.
* src/c++98/Makefile.am: Comment out XTEMPLATE_FLAGS; add VTV_CXXFLAGS
to AM_CXXFLAGS; add VTV_CXXXLINKFLAGS to CXXLINK.
* src/C++11/Makefile.am: Ditto.
* doc/xml/manual/configure.xml: Add entry for --enable-vtable-verify.
* scripts/testsuite_flags.in: Add cxxvtvflags to Usage; cause
cxxvtvflags to use VTV_CXXFLAGS and VTV_CXXLINKFLAGS.
* testsuite/lib/libstdc++.exp: Add cxxvtvflags; add code to locate
libvtv if --enable-vtable-verify was used; set cxxvtvflags; add
cxxvtvflags to cxx_final.
* testsuite/18_support/bad_exception/23591_thread-1.c: Add
-fvtable-verify=none to compiler flags.
* testsuite/17_intro/freestanding.cc: Add -fvtable-verify=none
to compiler flags.
* configure: Regenerated.
* Makefile.in: Regenerated.
* python/Makefile.in: Regenerated.
* include/Makefile.in: Regenerated.
* libsupc++/Makefile.in: Regenerated.
* config.h.in: Regenerated.
* po/Makefile.in: Regenerated.
* src/Makefile.in: Regenerated.
* src/c++98/Makefile.in: Regenerated.
* src/c++11/Makefile.in: Regenerated.
* doc/Makefile.in: Regenerated.
* testsuite/Makefile.in: Regenerated.
top level ChangeLog:
2013-08-06 Caroline Tice <cmtice@google.com>
* configure.ac: Add target-libvtv to target_libraries; disable libvtv
on non-linux systems; add target-libvtv to noconfigdirs; add
libsupc++/.libs to C++ library search paths.
* configure: Regenerated.
* Makefile.def: Add libvtv to target_modules; make libvtv depend on
libstdc++ and libgcc.
* Makefile.in: Regenerated.
include/ChangeLog:
2013-08-06 Caroline Tice <cmtice@google.com>
* vtv-change-permission.h: New file.
contrib/ChangeLog:
2013-08-06 Caroline Tice4 <cmtice@google.com>
* gcc_update: Add libvtv files.
libgcc/ChangeLog:
2013-08-06 Caroline Tice <cmtice@google.com>
config.host (extra_parts): Add vtv_start.o, vtv_end.o
vtv_start_preinit.o and vtv_end_preinit.o.
configure.ac: Add code to check/set enable_vtable_verify.
Makefile.in: Add rules to build vtv_*.o, if enable_vtable_verify is
true.
vtv_start_preinit.c: New file.
vtv_end_preinit.c: New file.
vtv_start.c: New file.
vtv_end.c: New file.
configure: Regenerated.
gcc/ChangeLog:
2013-08-06 Caroline Tice <cmtice@google.com>
* gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
(LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
* tree-pass.h: Add pass_vtable_verify.
* varasm.c (assemble_variable): Add code to properly set the comdat
section and name for the .vtable_map_vars section.
(assemble_vtyv_preinit_initializer): New function.
(default_sectin_type_flags): Make sure .vtable_map_vars section has
LINK_ONCE flag.
* output.h: Add function decl for assemble_vtv_preinit_initializer.
* vtable-verify.c: New file.
* vtable-verify.h: New file.
* flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
initialiation levels.
* timevar.def (TV_VTABLE_VERIFICATION): New definition.
* passes.def: Insert pass_vtable_verify.
* aclocal.m4: Reorder includes.
* doc/invoke.texi: Add documentation for the flags -fvtable-verify=,
-fvtv-debug and -fvtv-counts.
* config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
as appropriate, if -fvtable-verify=... is used.
(GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
-fvtable-verify=... is used.
* Makefile.in (OBJS): Add vtable-verify.o to list.
(vtable-verify.o): Add new build rule.
(GTFILES): Add vtable-verify.c to list.
* common.opt (fvtable-verify=): New flag.
(vtv_priority): Values for fvtable-verify= flag.
(fvtv-counts): New flag.
(fvtv-debug): New flag.
* tree.h (save_vtable_map_decl): New extern function decl.
gcc/cp/ChangeLog:
2013-08-06 Caroline Tice <cmtice@google.com>
* Make-lang.in (*CXX_AND_OBJCXX_OBJS): Add vtable-class-hierarchy.o to
list.
(vtable-class-hierarchy.o): Add build rule.
* cp-tree.h (vtv_start_verification_constructor_init_function): New
extern function decl.
(vtv_finish_verification_constructor_init_function): New extern
function decl.
(build_vtbl_address): New extern function decl.
(get_mangled_vtable_map_var_name): New extern function decl.
(vtv_compute_class_hierarchy_transitive_closure): New extern function
decl.
(vtv_generate_init_routine): New extern function decl.
(vtv_save_class_info): New extern function decl.
(vtv_recover_class_info): New extern function decl.
(vtv_build_vtable_verify_fndecl): New extern function decl.
* class.c (finish_struct_1): Add call to vtv_save_class_info if
flag_vtable_verify is true.
* config-lang.in: Add vtable-class-hierarchy.c to gtfiles list.
* vtable-class-hierarchy.c: New file.
* mangle.c (get_mangled_vtable_map_var_name): New function.
* decl2.c (start_objects): Update function comment.
(cp_write_global_declarations): Call vtv_recover_class_info,
vtv_compute_class_hierarchy_transitive_closure and
vtv_build_vtable_verify_fndecl, before calling
finalize_compilation_unit, and call vtv_generate_init_rount after, IFF
flag_vtable_verify is true.
(vtv_start_verification_constructor_init_function): New function.
(vtv_finish_verification_constructor_init_function): New function.
* init.c (build_vtbl_address): Remove static qualifier from function.
libvtv/ChangeLog:
2013-08-06 Caroline Tice <cmtice@google.com>
Initial check-in of new vtable verification feature.
* configure.ac : New file.
* acinclude.m4 : New file.
* Makefile.am : New file.
* aclocal.m4 : New file.
* configure.tgt : New file.
* configure: New file (generated).
* Makefile.in: New file (generated).
* vtv_set.h : New file.
* vtv_utils.cc : New file.
* vtv_utils.h : New file.
* vtv_malloc.cc : New file.
* vtv_rts.cc : New file.
* vtv_malloc.h : New file.
* vtv_rts.h : New file.
* vtv_fail.cc : New file.
* vtv_fail.h : New file.
* vtv_map.h : New file.
* scripts/run-testsuite.sh : New file.
* scripts/sum-vtv-counts.c : New file.
* testsuite/parts-test-main.h : New file.
* testusite/dataentry.cc : New file.
* testsuite/temp_deriv.cc : New file.
* testsuite/register_pair.cc : New file.
* testsuite/virtual_inheritance.cc : New file.
* testsuite/field-test.cc : New file.
* testsuite/nested_vcall_test.cc : New file.
* testsuite/template-list-iostream.cc : New file.
* testsuite/register_pair_inserts.cc : New file.
* testsuite/register_pair_inserts_mt.cc : New file.
* testsuite/event.list : New file.
* testsuite/parts-test-extra-parts-views.cc : New file.
* testsuite/parts-test-extra-parts-views.h : New file.
* testsuite/environment-fail-32.s : New file.
* testsuite/parts-test-extra-parts.h : New file.
* testsuite/temp_deriv2.cc : New file.
* testsuite/dlopen_mt.cc : New file.
* testsuite/event.h : New file.
* testsuite/template-list.cc : New file.
* testsuite/replace-fail.cc : New file.
* testsuite/Makefile.am : New file.
* testsuite/Makefile.in: New file (generated).
* testsuite/mempool_negative.c : New file.
* testsuite/parts-test-main.cc : New file.
* testsuite/event-private.cc : New file.
* testsuite/thunk.cc : New file.
* testsuite/event-defintiions.cc : New file.
* testsuite/event-private.h : New file.
* testsuite/parts-test.list : New file.
* testusite/register_pair_mt.cc : New file.
* testsuite/povray-derived.cc : New file.
* testsuite/event-main.cc : New file.
* testsuite/environment.cc : New file.
* testsuite/template-list2.cc : New file.
* testsuite/thunk_vtable_map_attack.cc : New file.
* testsuite/parts-test-extra-parts.cc : New file.
* testsuite/environment-fail-64.s : New file.
* testsuite/dlopen.cc : New file.
* testsuite/so.cc : New file.
* testsuite/temp_deriv3.cc : New file.
* testsuite/const_vtable.cc : New file.
* testsuite/mempool_positive.c : New file.
* testsuite/dup_name.cc : New file.
From-SVN: r201555
2013-08-07 05:38:59 +02:00
|
|
|
2013-08-02 Caroline Tice <cmtice@google.com>
|
2013-08-28 18:36:22 +02:00
|
|
|
Benjamin Kosnik <bkoz@redhat.com>
|
|
|
|
Luis Lozano <llozano@google.com>
|
|
|
|
Geoff Pike <gpike@google.com>
|
Commit the vtable verification feature.
Commit the vtable verification feature. This feature is designed to
detect, at run time, if/when the vtable pointer in a C++ object has
been corrupted, before allowing virtual calls through that pointer.
If pointer corruption is detected, execution of the program is halted.
libstdc++-v3 ChangeLog:
2013-08-06 Caroline Tice <cmtice@google.com>
* fragment.am: Add XTEMPLATE_FLAGS.
* configure.ac: Add definitions for --enable-vtable-verify.
* acinclude.m4: Add --enable-vtable-verify and
--disable-vtable-verify; define --enable-vtable-verify; define
VTV_CXXFLAGS, VTV_PCH_CXXFLAGS and VTV_CXXLINKFLAGS.
* config/abi/pre/gnu.ver: Export symbols for vtable verification.
* libsupc++/Makefile.am: Define vtv_sources and add it to
libsupc___la_SOURCES and libsupc__convenience_la_SOURCES.
* libsupc++/vtv_stubs.cc: New file.
* include/Makefile.am: Add VTV_PCH_CXXFLAGS to PCHFLAGS.
* src/Makefile.am: Add VTV_CXXFLAGS to AM_CXXFLAGS; add
VTV_CXXLINKFLAGS to CXXLINK.
* src/c++98/Makefile.am: Comment out XTEMPLATE_FLAGS; add VTV_CXXFLAGS
to AM_CXXFLAGS; add VTV_CXXXLINKFLAGS to CXXLINK.
* src/C++11/Makefile.am: Ditto.
* doc/xml/manual/configure.xml: Add entry for --enable-vtable-verify.
* scripts/testsuite_flags.in: Add cxxvtvflags to Usage; cause
cxxvtvflags to use VTV_CXXFLAGS and VTV_CXXLINKFLAGS.
* testsuite/lib/libstdc++.exp: Add cxxvtvflags; add code to locate
libvtv if --enable-vtable-verify was used; set cxxvtvflags; add
cxxvtvflags to cxx_final.
* testsuite/18_support/bad_exception/23591_thread-1.c: Add
-fvtable-verify=none to compiler flags.
* testsuite/17_intro/freestanding.cc: Add -fvtable-verify=none
to compiler flags.
* configure: Regenerated.
* Makefile.in: Regenerated.
* python/Makefile.in: Regenerated.
* include/Makefile.in: Regenerated.
* libsupc++/Makefile.in: Regenerated.
* config.h.in: Regenerated.
* po/Makefile.in: Regenerated.
* src/Makefile.in: Regenerated.
* src/c++98/Makefile.in: Regenerated.
* src/c++11/Makefile.in: Regenerated.
* doc/Makefile.in: Regenerated.
* testsuite/Makefile.in: Regenerated.
top level ChangeLog:
2013-08-06 Caroline Tice <cmtice@google.com>
* configure.ac: Add target-libvtv to target_libraries; disable libvtv
on non-linux systems; add target-libvtv to noconfigdirs; add
libsupc++/.libs to C++ library search paths.
* configure: Regenerated.
* Makefile.def: Add libvtv to target_modules; make libvtv depend on
libstdc++ and libgcc.
* Makefile.in: Regenerated.
include/ChangeLog:
2013-08-06 Caroline Tice <cmtice@google.com>
* vtv-change-permission.h: New file.
contrib/ChangeLog:
2013-08-06 Caroline Tice4 <cmtice@google.com>
* gcc_update: Add libvtv files.
libgcc/ChangeLog:
2013-08-06 Caroline Tice <cmtice@google.com>
config.host (extra_parts): Add vtv_start.o, vtv_end.o
vtv_start_preinit.o and vtv_end_preinit.o.
configure.ac: Add code to check/set enable_vtable_verify.
Makefile.in: Add rules to build vtv_*.o, if enable_vtable_verify is
true.
vtv_start_preinit.c: New file.
vtv_end_preinit.c: New file.
vtv_start.c: New file.
vtv_end.c: New file.
configure: Regenerated.
gcc/ChangeLog:
2013-08-06 Caroline Tice <cmtice@google.com>
* gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
(LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
* tree-pass.h: Add pass_vtable_verify.
* varasm.c (assemble_variable): Add code to properly set the comdat
section and name for the .vtable_map_vars section.
(assemble_vtyv_preinit_initializer): New function.
(default_sectin_type_flags): Make sure .vtable_map_vars section has
LINK_ONCE flag.
* output.h: Add function decl for assemble_vtv_preinit_initializer.
* vtable-verify.c: New file.
* vtable-verify.h: New file.
* flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
initialiation levels.
* timevar.def (TV_VTABLE_VERIFICATION): New definition.
* passes.def: Insert pass_vtable_verify.
* aclocal.m4: Reorder includes.
* doc/invoke.texi: Add documentation for the flags -fvtable-verify=,
-fvtv-debug and -fvtv-counts.
* config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
as appropriate, if -fvtable-verify=... is used.
(GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
-fvtable-verify=... is used.
* Makefile.in (OBJS): Add vtable-verify.o to list.
(vtable-verify.o): Add new build rule.
(GTFILES): Add vtable-verify.c to list.
* common.opt (fvtable-verify=): New flag.
(vtv_priority): Values for fvtable-verify= flag.
(fvtv-counts): New flag.
(fvtv-debug): New flag.
* tree.h (save_vtable_map_decl): New extern function decl.
gcc/cp/ChangeLog:
2013-08-06 Caroline Tice <cmtice@google.com>
* Make-lang.in (*CXX_AND_OBJCXX_OBJS): Add vtable-class-hierarchy.o to
list.
(vtable-class-hierarchy.o): Add build rule.
* cp-tree.h (vtv_start_verification_constructor_init_function): New
extern function decl.
(vtv_finish_verification_constructor_init_function): New extern
function decl.
(build_vtbl_address): New extern function decl.
(get_mangled_vtable_map_var_name): New extern function decl.
(vtv_compute_class_hierarchy_transitive_closure): New extern function
decl.
(vtv_generate_init_routine): New extern function decl.
(vtv_save_class_info): New extern function decl.
(vtv_recover_class_info): New extern function decl.
(vtv_build_vtable_verify_fndecl): New extern function decl.
* class.c (finish_struct_1): Add call to vtv_save_class_info if
flag_vtable_verify is true.
* config-lang.in: Add vtable-class-hierarchy.c to gtfiles list.
* vtable-class-hierarchy.c: New file.
* mangle.c (get_mangled_vtable_map_var_name): New function.
* decl2.c (start_objects): Update function comment.
(cp_write_global_declarations): Call vtv_recover_class_info,
vtv_compute_class_hierarchy_transitive_closure and
vtv_build_vtable_verify_fndecl, before calling
finalize_compilation_unit, and call vtv_generate_init_rount after, IFF
flag_vtable_verify is true.
(vtv_start_verification_constructor_init_function): New function.
(vtv_finish_verification_constructor_init_function): New function.
* init.c (build_vtbl_address): Remove static qualifier from function.
libvtv/ChangeLog:
2013-08-06 Caroline Tice <cmtice@google.com>
Initial check-in of new vtable verification feature.
* configure.ac : New file.
* acinclude.m4 : New file.
* Makefile.am : New file.
* aclocal.m4 : New file.
* configure.tgt : New file.
* configure: New file (generated).
* Makefile.in: New file (generated).
* vtv_set.h : New file.
* vtv_utils.cc : New file.
* vtv_utils.h : New file.
* vtv_malloc.cc : New file.
* vtv_rts.cc : New file.
* vtv_malloc.h : New file.
* vtv_rts.h : New file.
* vtv_fail.cc : New file.
* vtv_fail.h : New file.
* vtv_map.h : New file.
* scripts/run-testsuite.sh : New file.
* scripts/sum-vtv-counts.c : New file.
* testsuite/parts-test-main.h : New file.
* testusite/dataentry.cc : New file.
* testsuite/temp_deriv.cc : New file.
* testsuite/register_pair.cc : New file.
* testsuite/virtual_inheritance.cc : New file.
* testsuite/field-test.cc : New file.
* testsuite/nested_vcall_test.cc : New file.
* testsuite/template-list-iostream.cc : New file.
* testsuite/register_pair_inserts.cc : New file.
* testsuite/register_pair_inserts_mt.cc : New file.
* testsuite/event.list : New file.
* testsuite/parts-test-extra-parts-views.cc : New file.
* testsuite/parts-test-extra-parts-views.h : New file.
* testsuite/environment-fail-32.s : New file.
* testsuite/parts-test-extra-parts.h : New file.
* testsuite/temp_deriv2.cc : New file.
* testsuite/dlopen_mt.cc : New file.
* testsuite/event.h : New file.
* testsuite/template-list.cc : New file.
* testsuite/replace-fail.cc : New file.
* testsuite/Makefile.am : New file.
* testsuite/Makefile.in: New file (generated).
* testsuite/mempool_negative.c : New file.
* testsuite/parts-test-main.cc : New file.
* testsuite/event-private.cc : New file.
* testsuite/thunk.cc : New file.
* testsuite/event-defintiions.cc : New file.
* testsuite/event-private.h : New file.
* testsuite/parts-test.list : New file.
* testusite/register_pair_mt.cc : New file.
* testsuite/povray-derived.cc : New file.
* testsuite/event-main.cc : New file.
* testsuite/environment.cc : New file.
* testsuite/template-list2.cc : New file.
* testsuite/thunk_vtable_map_attack.cc : New file.
* testsuite/parts-test-extra-parts.cc : New file.
* testsuite/environment-fail-64.s : New file.
* testsuite/dlopen.cc : New file.
* testsuite/so.cc : New file.
* testsuite/temp_deriv3.cc : New file.
* testsuite/const_vtable.cc : New file.
* testsuite/mempool_positive.c : New file.
* testsuite/dup_name.cc : New file.
From-SVN: r201555
2013-08-07 05:38:59 +02:00
|
|
|
|
|
|
|
Initial check-in of new vtable verification feature.
|
|
|
|
* configure.ac : New file.
|
|
|
|
* acinclude.m4 : New file.
|
|
|
|
* Makefile.am : New file.
|
|
|
|
* aclocal.m4 : New file.
|
|
|
|
* configure.tgt : New file.
|
|
|
|
* configure: New file (generated).
|
|
|
|
* Makefile.in: New file (generated).
|
|
|
|
* vtv_set.h : New file.
|
|
|
|
* vtv_utils.cc : New file.
|
|
|
|
* vtv_utils.h : New file.
|
|
|
|
* vtv_malloc.cc : New file.
|
|
|
|
* vtv_rts.cc : New file.
|
|
|
|
* vtv_malloc.h : New file.
|
|
|
|
* vtv_rts.h : New file.
|
|
|
|
* vtv_fail.cc : New file.
|
|
|
|
* vtv_fail.h : New file.
|
|
|
|
* vtv_map.h : New file.
|
|
|
|
* scripts/run-testsuite.sh : New file.
|
|
|
|
* scripts/sum-vtv-counts.c : New file.
|
|
|
|
* testsuite/parts-test-main.h : New file.
|
|
|
|
* testusite/dataentry.cc : New file.
|
|
|
|
* testsuite/temp_deriv.cc : New file.
|
|
|
|
* testsuite/register_pair.cc : New file.
|
|
|
|
* testsuite/virtual_inheritance.cc : New file.
|
|
|
|
* testsuite/field-test.cc : New file.
|
|
|
|
* testsuite/nested_vcall_test.cc : New file.
|
|
|
|
* testsuite/template-list-iostream.cc : New file.
|
|
|
|
* testsuite/register_pair_inserts.cc : New file.
|
|
|
|
* testsuite/register_pair_inserts_mt.cc : New file.
|
|
|
|
* testsuite/event.list : New file.
|
|
|
|
* testsuite/parts-test-extra-parts-views.cc : New file.
|
|
|
|
* testsuite/parts-test-extra-parts-views.h : New file.
|
|
|
|
* testsuite/environment-fail-32.s : New file.
|
|
|
|
* testsuite/parts-test-extra-parts.h : New file.
|
|
|
|
* testsuite/temp_deriv2.cc : New file.
|
|
|
|
* testsuite/dlopen_mt.cc : New file.
|
|
|
|
* testsuite/event.h : New file.
|
|
|
|
* testsuite/template-list.cc : New file.
|
|
|
|
* testsuite/replace-fail.cc : New file.
|
|
|
|
* testsuite/Makefile.am : New file.
|
|
|
|
* testsuite/Makefile.in: New file (generated).
|
|
|
|
* testsuite/mempool_negative.c : New file.
|
|
|
|
* testsuite/parts-test-main.cc : New file.
|
|
|
|
* testsuite/event-private.cc : New file.
|
|
|
|
* testsuite/thunk.cc : New file.
|
|
|
|
* testsuite/event-defintiions.cc : New file.
|
|
|
|
* testsuite/event-private.h : New file.
|
|
|
|
* testsuite/parts-test.list : New file.
|
|
|
|
* testusite/register_pair_mt.cc : New file.
|
|
|
|
* testsuite/povray-derived.cc : New file.
|
|
|
|
* testsuite/event-main.cc : New file.
|
|
|
|
* testsuite/environment.cc : New file.
|
|
|
|
* testsuite/template-list2.cc : New file.
|
|
|
|
* testsuite/thunk_vtable_map_attack.cc : New file.
|
|
|
|
* testsuite/parts-test-extra-parts.cc : New file.
|
|
|
|
* testsuite/environment-fail-64.s : New file.
|
|
|
|
* testsuite/dlopen.cc : New file.
|
|
|
|
* testsuite/so.cc : New file.
|
|
|
|
* testsuite/temp_deriv3.cc : New file.
|
|
|
|
* testsuite/const_vtable.cc : New file.
|
|
|
|
* testsuite/mempool_positive.c : New file.
|
|
|
|
* testsuite/dup_name.cc : New file.
|
|
|
|
|