Skip to content
Snippets Groups Projects
  1. Aug 07, 2013
    • Caroline Tice's avatar
      Commit the vtable verification feature. · 2077db1b
      Caroline Tice authored
      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
      2077db1b
  2. Aug 05, 2013
    • Mike Stump's avatar
      re PR target/57792 (toplevel configure should enable "--with-sysroot="`xcrun... · 4b7dff77
      Mike Stump authored
      re PR target/57792 (toplevel configure should enable "--with-sysroot="`xcrun --show-sdk-path`"" for darwin13 and later)
      
      Remove:
      2013-07-10  Jack Howarth  <howarth@bromo.med.uc.edu>
      
             PR target/57792
             * configure.ac: Use --with-sysroot=\"`xcrun --show-sdk-path`\" on darwin13 and later.
             * configure: Regenerated.
      
      From-SVN: r201494
      4b7dff77
  3. Jul 19, 2013
  4. Jul 17, 2013
  5. Jul 16, 2013
  6. Jul 10, 2013
  7. Jun 14, 2013
  8. Jun 03, 2013
  9. May 17, 2013
  10. Apr 30, 2013
  11. Apr 16, 2013
    • Andreas Schwab's avatar
      Enable java for aarch64 · eb7062cf
      Andreas Schwab authored
      	* configure.ac (aarch64-*-*): Don't disable java.
      	* configure: Regenerate.
      
      libjava/:
      	* configure.host: Add support for aarch64.
      	* sysdep/aarch64/locks.h: New file.
      
      libjava/classpath/:
      	* native/fdlibm/ieeefp.h: Add support for aarch64.
      
      From-SVN: r197997
      eb7062cf
  12. Apr 10, 2013
  13. Mar 30, 2013
  14. Mar 24, 2013
  15. Feb 21, 2013
  16. Feb 15, 2013
  17. Feb 04, 2013
  18. Jan 25, 2013
  19. Jan 23, 2013
  20. Jan 15, 2013
    • Richard Biener's avatar
      re PR other/55973 (r195150 doesn't properly handle out of tree isl 0.11.1) · 2869f0ff
      Richard Biener authored
      2013-01-15  Richard Biener  <rguenther@suse.de>
      
      	PR other/55973
      	* configure: Re-generate.
      
      	config/
      	* isl.m4 (ISL_INIT_FLAGS): Warn about disabled version check
      	for in-tree build.
      	(ISL_CHECK_VERSION): Do not use AC_CACHE_CHECK.
      	* cloog.m4 (CLOOG_INIT_FLAGS): Disable version check for
      	in-tree build and warn about that.
      	(CLOOG_CHECK_VERSION): Do not use AC_CACHE_CHECK.
      
      From-SVN: r195195
      2869f0ff
  21. Jan 14, 2013
  22. Jan 11, 2013
  23. Jan 10, 2013
  24. Jan 09, 2013
    • H.J. Lu's avatar
      Build gmp before configuring gcc · 458752de
      H.J. Lu authored
      	* Makefile.def (configure-gcc): Depend on all-gmp.
      	(all-gcc): Remove dependency on all-gmp.
      	* Makefile.in: Regenerated.
      
      From-SVN: r195052
      458752de
  25. Jan 08, 2013
  26. Jan 02, 2013
  27. Dec 29, 2012
  28. Dec 20, 2012
    • Matthias Klose's avatar
      Makefile.def (install-target-libgfortran): Depend on... · d89da9db
      Matthias Klose authored
      Makefile.def (install-target-libgfortran): Depend on install-target-libquadmath, install-target-libgcc.
      
      2012-12-20  Matthias Klose  <doko@ubuntu.com>
      
              * Makefile.def (install-target-libgfortran): Depend on
              install-target-libquadmath, install-target-libgcc.
              (install-target-libsanitizer): Depend on install-target-libgcc.
              (install-target-libjava): Depend on install-target-libgcc.
              (install-target-libitm): Depend on install-target-libgcc.
              (install-target-libobjc): Depend on install-target-libgcc.
              (install-target-libstdc++-v3): Depend on install-target-libgcc.
              * Makefile.in: Regenerate.
      
      From-SVN: r194650
      d89da9db
  29. Dec 19, 2012
  30. Dec 18, 2012
    • Andreas Schwab's avatar
      libgo: Link against libatomic. · 0b8ca8fe
      Andreas Schwab authored
      ./:
      	PR go/55201
      	* Makefile.def (all-target-libgo): Depend on all-target-libatomic.
      	* Makefile.in: Regenerate.
      gcc/go:
      	PR go/55201
      	* gospec.c (LIBATOMIC): Define.
      	(LIBATOMIC_PROFILE): Define.
      	(lang_specific_driver): Add LIBATOMIC[_PROFILE] option.
      gcc/testsuite:
      	* lib/go.exp (go_link_flags): Add libatomic location to flags and
      	ld_library_path.
      
      From-SVN: r194581
      0b8ca8fe
  31. Dec 16, 2012
  32. Dec 12, 2012
  33. Dec 11, 2012
    • H.J. Lu's avatar
      Add --with-build-config=bootstrap-asan support · ac8701fe
      H.J. Lu authored
      	* Makefile.def (target_modules): Add bootstrap=true and
      	raw_cxx=true to libsanitizer.
      	* configure.ac (bootstrap_target_libs): Add libsanitizer.
      	* Makefile.in: Regenerated.
      	* configure: Likewise.
      
      From-SVN: r194425
      ac8701fe
  34. Dec 10, 2012
Loading