2015-05-13 18:51:03 +08:00
|
|
|
# Makefile.in generated by automake 1.11.6 from Makefile.am.
|
2003-08-05 10:00:18 +08:00
|
|
|
# @configure_input@
|
2000-10-07 07:31:22 +08:00
|
|
|
|
2004-08-12 19:54:13 +08:00
|
|
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
2015-05-13 18:51:03 +08:00
|
|
|
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
|
|
|
|
# Foundation, Inc.
|
2000-10-07 07:31:22 +08:00
|
|
|
# This Makefile.in is free software; the Free Software Foundation
|
|
|
|
# gives unlimited permission to copy and/or distribute it,
|
|
|
|
# with or without modifications, as long as this notice is preserved.
|
|
|
|
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
|
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
|
|
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
|
|
# PARTICULAR PURPOSE.
|
|
|
|
|
2003-08-05 10:00:18 +08:00
|
|
|
@SET_MAKE@
|
2000-10-07 07:31:22 +08:00
|
|
|
|
2004-08-12 19:54:13 +08:00
|
|
|
|
2000-10-07 07:31:22 +08:00
|
|
|
VPATH = @srcdir@
|
2015-05-13 18:51:03 +08:00
|
|
|
am__make_dryrun = \
|
|
|
|
{ \
|
|
|
|
am__dry=no; \
|
|
|
|
case $$MAKEFLAGS in \
|
|
|
|
*\\[\ \ ]*) \
|
|
|
|
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
|
|
|
|
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \
|
|
|
|
*) \
|
|
|
|
for am__flg in $$MAKEFLAGS; do \
|
|
|
|
case $$am__flg in \
|
|
|
|
*=*|--*) ;; \
|
|
|
|
*n*) am__dry=yes; break;; \
|
|
|
|
esac; \
|
|
|
|
done;; \
|
|
|
|
esac; \
|
|
|
|
test $$am__dry = yes; \
|
|
|
|
}
|
2000-10-07 07:31:22 +08:00
|
|
|
pkgdatadir = $(datadir)/@PACKAGE@
|
|
|
|
pkgincludedir = $(includedir)/@PACKAGE@
|
2009-08-22 21:22:20 +08:00
|
|
|
pkglibdir = $(libdir)/@PACKAGE@
|
|
|
|
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
2003-08-05 10:00:18 +08:00
|
|
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
|
|
|
install_sh_DATA = $(install_sh) -c -m 644
|
|
|
|
install_sh_PROGRAM = $(install_sh) -c
|
|
|
|
install_sh_SCRIPT = $(install_sh) -c
|
|
|
|
INSTALL_HEADER = $(INSTALL_DATA)
|
|
|
|
transform = $(program_transform_name)
|
2000-10-07 07:31:22 +08:00
|
|
|
NORMAL_INSTALL = :
|
|
|
|
PRE_INSTALL = :
|
|
|
|
POST_INSTALL = :
|
|
|
|
NORMAL_UNINSTALL = :
|
|
|
|
PRE_UNINSTALL = :
|
|
|
|
POST_UNINSTALL = :
|
|
|
|
build_triplet = @build@
|
|
|
|
host_triplet = @host@
|
|
|
|
target_triplet = @target@
|
2010-05-05 02:58:11 +08:00
|
|
|
DIST_COMMON = $(top_srcdir)/fragment.am $(srcdir)/Makefile.in \
|
2011-01-15 08:27:10 +08:00
|
|
|
$(srcdir)/Makefile.am $(bits_HEADERS) $(std_HEADERS)
|
2004-08-12 19:54:13 +08:00
|
|
|
subdir = libsupc++
|
|
|
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
run_doxygen: Allow doxygen 1.7.1 again.
2010-12-31 Benjamin Kosnik <bkoz@redhat.com>
* scripts/run_doxygen: Allow doxygen 1.7.1 again.
* doc/xml/manual/build_hacking.xml: Update.
* doc/xml/images/confdeps.dot: Same.
* doc/xml/images/confdeps.png: Same.
* configure.ac: Define BUILD_INFO, BUILD_XML, BUILD_HTML,
BUILD_MAN, BUILD_PDF, BUILD_EPUB conditionally.
* Makefile.am (xml, html, pdf, man, info, pd, dvi, epub): Define,
and install rules.
* doc/Makefile.am: Same. Add stamp rules.
(doc-epub-docbook): Add.
(stamp-xml-single-docbook): Make set too.
* configure: Regenerate.
* Makefile.in: Same.
* doc/Makefile.in: Same.
* include/Makefile.in: Same.
* libsupc++/Makefile.in: Same.
* po/Makefile.in: Same.
* python/Makefile.in: Same.
* src/Makefile.in: Same.
* testsuite/Makefile.in: Same.
* aclocal.m4: Same.
2010-12-31 Benjamin Kosnik <bkoz@redhat.com>
* doc/doxygen/user.cfg.in: Disable PDF_HYPERLINKS.
From-SVN: r168382
2011-01-01 06:20:22 +08:00
|
|
|
am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
|
|
|
|
$(top_srcdir)/../config/enable.m4 \
|
2008-01-15 02:08:39 +08:00
|
|
|
$(top_srcdir)/../config/futex.m4 \
|
Build libgo with -Wa,-nH if possible (PR go/78978) [non-libgo parts]
libstdc++-v3:
PR go/78978
* acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
* configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
GLIBCXX_CHECK_ASSEMBLER_HWCAP.
* fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
HWCAP_FLAGS.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* Makefile.in, doc/Makefile.in, include/Makefile.in,
libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
config:
PR go/78978
* hwcaps.m4 (GCC_CHECK_ASSEMBLER_HWCAP): New macro.
From-SVN: r244162
2017-01-06 22:33:47 +08:00
|
|
|
$(top_srcdir)/../config/hwcaps.m4 \
|
2007-01-30 02:22:37 +08:00
|
|
|
$(top_srcdir)/../config/iconv.m4 \
|
2005-11-22 14:54:08 +08:00
|
|
|
$(top_srcdir)/../config/lead-dot.m4 \
|
2007-01-30 02:22:37 +08:00
|
|
|
$(top_srcdir)/../config/lib-ld.m4 \
|
|
|
|
$(top_srcdir)/../config/lib-link.m4 \
|
|
|
|
$(top_srcdir)/../config/lib-prefix.m4 \
|
2010-12-06 08:50:04 +08:00
|
|
|
$(top_srcdir)/../config/lthostflags.m4 \
|
2006-10-17 03:08:22 +08:00
|
|
|
$(top_srcdir)/../config/multi.m4 \
|
re PR libgcj/19877 (sometimes reconfiguring leads to incorrect config.h)
config/:
PR libgcj/19877:
* no-executables.m4: Call real AC_FUNC_MMAP when cache variable
is set but not 'no'.
libstdc++-v3/:
PR libgcj/19877:
* configure, aclocal.m4: Rebuilt.
* Makefile.in, include/Makefile.in, libmath/Makefile.in,
libsupc++/Makefile.in, po/Makefile.in, src/Makefile.in,
testsuite/Makefile.in: Likewise.
libjava/:
PR libgcj/19877:
* configure, aclocal.m4, Makefile.in: Rebuilt.
libgfortran/:
PR libgcj/19877:
* configure, aclocal.m4, Makefile.in: Rebuilt.
zlib/:
PR libgcj/19877:
* configure, aclocal.m4, Makefile.in: Rebuilt.
From-SVN: r100953
2005-06-15 04:05:59 +08:00
|
|
|
$(top_srcdir)/../config/no-executables.m4 \
|
2008-04-21 05:10:38 +08:00
|
|
|
$(top_srcdir)/../config/override.m4 \
|
2008-04-17 05:30:11 +08:00
|
|
|
$(top_srcdir)/../config/stdint.m4 \
|
2006-07-22 05:11:46 +08:00
|
|
|
$(top_srcdir)/../config/unwind_ipinfo.m4 \
|
2010-12-17 19:51:16 +08:00
|
|
|
$(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
|
|
|
|
$(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
|
|
|
|
$(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/crossconfig.m4 \
|
|
|
|
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
|
|
|
|
$(top_srcdir)/../config/gc++filt.m4 \
|
2012-10-15 21:10:30 +08:00
|
|
|
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
|
|
|
|
$(top_srcdir)/configure.ac
|
2004-08-12 19:54:13 +08:00
|
|
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
|
|
|
$(ACLOCAL_M4)
|
|
|
|
CONFIG_HEADER = $(top_builddir)/config.h
|
|
|
|
CONFIG_CLEAN_FILES =
|
2009-08-22 21:22:20 +08:00
|
|
|
CONFIG_CLEAN_VPATH_FILES =
|
2004-08-23 18:18:31 +08:00
|
|
|
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
|
|
|
am__vpath_adj = case $$p in \
|
|
|
|
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
|
|
|
*) f=$$p;; \
|
|
|
|
esac;
|
2009-08-22 21:22:20 +08:00
|
|
|
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
|
|
|
am__install_max = 40
|
|
|
|
am__nobase_strip_setup = \
|
|
|
|
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
|
|
|
am__nobase_strip = \
|
|
|
|
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
|
|
|
am__nobase_list = $(am__nobase_strip_setup); \
|
|
|
|
for p in $$list; do echo "$$p $$p"; done | \
|
|
|
|
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
|
|
|
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
|
|
|
if (++n[$$2] == $(am__install_max)) \
|
|
|
|
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
|
|
|
END { for (dir in files) print dir, files[dir] }'
|
|
|
|
am__base_list = \
|
|
|
|
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
|
|
|
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
2015-05-13 18:51:03 +08:00
|
|
|
am__uninstall_files_from_dir = { \
|
|
|
|
test -z "$$files" \
|
|
|
|
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
|
|
|
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
|
|
|
$(am__cd) "$$dir" && rm -f $$files; }; \
|
|
|
|
}
|
2011-01-15 08:27:10 +08:00
|
|
|
am__installdirs = "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(bitsdir)" \
|
|
|
|
"$(DESTDIR)$(stddir)"
|
2004-08-12 19:54:13 +08:00
|
|
|
LTLIBRARIES = $(noinst_LTLIBRARIES) $(toolexeclib_LTLIBRARIES)
|
|
|
|
libsupc___la_LIBADD =
|
2012-10-15 21:10:30 +08:00
|
|
|
am__objects_1 = array_type_info.lo atexit_arm.lo atexit_thread.lo \
|
2013-05-10 00:43:36 +08:00
|
|
|
bad_alloc.lo bad_array_length.lo bad_array_new.lo bad_cast.lo \
|
2014-12-16 02:31:40 +08:00
|
|
|
bad_typeid.lo class_type_info.lo del_op.lo del_ops.lo \
|
|
|
|
del_opnt.lo del_opv.lo del_opvs.lo del_opvnt.lo dyncast.lo \
|
|
|
|
eh_alloc.lo eh_arm.lo eh_aux_runtime.lo eh_call.lo eh_catch.lo \
|
|
|
|
eh_exception.lo eh_globals.lo eh_personality.lo eh_ptr.lo \
|
|
|
|
eh_term_handler.lo eh_terminate.lo eh_tm.lo eh_throw.lo \
|
|
|
|
eh_type.lo eh_unex_handler.lo enum_type_info.lo \
|
|
|
|
function_type_info.lo fundamental_type_info.lo guard.lo \
|
|
|
|
guard_error.lo hash_bytes.lo nested_exception.lo \
|
|
|
|
new_handler.lo new_op.lo new_opnt.lo new_opv.lo new_opvnt.lo \
|
2016-09-10 05:22:15 +08:00
|
|
|
new_opa.lo new_opant.lo new_opva.lo new_opvant.lo del_opa.lo \
|
|
|
|
del_opant.lo del_opsa.lo del_opva.lo del_opvant.lo \
|
|
|
|
del_opvsa.lo pbase_type_info.lo pmem_type_info.lo \
|
|
|
|
pointer_type_info.lo pure.lo si_class_type_info.lo tinfo.lo \
|
|
|
|
tinfo2.lo vec.lo vmi_class_type_info.lo vterminate.lo
|
2004-08-12 19:54:13 +08:00
|
|
|
@GLIBCXX_HOSTED_TRUE@am__objects_2 = cp-demangle.lo
|
2015-01-30 00:47:25 +08:00
|
|
|
@ENABLE_VTABLE_VERIFY_TRUE@@VTV_CYGMIN_FALSE@am__objects_3 = \
|
|
|
|
@ENABLE_VTABLE_VERIFY_TRUE@@VTV_CYGMIN_FALSE@ vtv_stubs.lo
|
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 11:38:59 +08:00
|
|
|
am_libsupc___la_OBJECTS = $(am__objects_1) $(am__objects_2) \
|
|
|
|
$(am__objects_3)
|
2004-08-12 19:54:13 +08:00
|
|
|
libsupc___la_OBJECTS = $(am_libsupc___la_OBJECTS)
|
|
|
|
libsupc__convenience_la_LIBADD =
|
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 11:38:59 +08:00
|
|
|
am_libsupc__convenience_la_OBJECTS = $(am__objects_1) $(am__objects_2) \
|
|
|
|
$(am__objects_3)
|
2004-08-12 19:54:13 +08:00
|
|
|
libsupc__convenience_la_OBJECTS = \
|
|
|
|
$(am_libsupc__convenience_la_OBJECTS)
|
2009-08-22 21:22:20 +08:00
|
|
|
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
|
2004-08-12 19:54:13 +08:00
|
|
|
depcomp =
|
|
|
|
am__depfiles_maybe =
|
|
|
|
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
|
|
|
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
|
|
|
CCLD = $(CC)
|
2009-08-22 21:22:20 +08:00
|
|
|
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
|
|
|
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
|
|
|
|
$(LDFLAGS) -o $@
|
2004-08-12 19:54:13 +08:00
|
|
|
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
|
|
|
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
|
|
|
CXXLD = $(CXX)
|
|
|
|
SOURCES = $(libsupc___la_SOURCES) $(libsupc__convenience_la_SOURCES)
|
2015-05-13 18:51:03 +08:00
|
|
|
am__can_run_installinfo = \
|
|
|
|
case $$AM_UPDATE_INFO_DIR in \
|
|
|
|
n|no|NO) false;; \
|
|
|
|
*) (install-info --version) >/dev/null 2>&1;; \
|
|
|
|
esac
|
2011-01-15 08:27:10 +08:00
|
|
|
HEADERS = $(bits_HEADERS) $(std_HEADERS)
|
2004-08-12 19:54:13 +08:00
|
|
|
ETAGS = etags
|
|
|
|
CTAGS = ctags
|
2004-07-03 07:40:19 +08:00
|
|
|
ABI_TWEAKS_SRCDIR = @ABI_TWEAKS_SRCDIR@
|
2003-08-05 10:00:18 +08:00
|
|
|
ACLOCAL = @ACLOCAL@
|
2004-03-13 14:54:25 +08:00
|
|
|
ALLOCATOR_H = @ALLOCATOR_H@
|
|
|
|
ALLOCATOR_NAME = @ALLOCATOR_NAME@
|
2003-08-05 10:00:18 +08:00
|
|
|
AMTAR = @AMTAR@
|
2000-10-07 07:31:22 +08:00
|
|
|
AR = @AR@
|
|
|
|
AS = @AS@
|
2004-02-27 11:21:16 +08:00
|
|
|
ATOMICITY_SRCDIR = @ATOMICITY_SRCDIR@
|
2007-09-12 06:32:51 +08:00
|
|
|
ATOMIC_FLAGS = @ATOMIC_FLAGS@
|
2004-02-27 11:21:16 +08:00
|
|
|
ATOMIC_WORD_SRCDIR = @ATOMIC_WORD_SRCDIR@
|
2003-08-05 10:00:18 +08:00
|
|
|
AUTOCONF = @AUTOCONF@
|
|
|
|
AUTOHEADER = @AUTOHEADER@
|
|
|
|
AUTOMAKE = @AUTOMAKE@
|
2002-02-22 19:36:26 +08:00
|
|
|
AWK = @AWK@
|
2002-12-17 03:02:01 +08:00
|
|
|
BASIC_FILE_CC = @BASIC_FILE_CC@
|
2001-07-14 00:47:56 +08:00
|
|
|
BASIC_FILE_H = @BASIC_FILE_H@
|
2003-08-05 10:00:18 +08:00
|
|
|
CC = @CC@
|
2002-12-17 03:02:01 +08:00
|
|
|
CCODECVT_CC = @CCODECVT_CC@
|
|
|
|
CCOLLATE_CC = @CCOLLATE_CC@
|
|
|
|
CCTYPE_CC = @CCTYPE_CC@
|
2003-08-05 10:00:18 +08:00
|
|
|
CFLAGS = @CFLAGS@
|
2002-12-17 03:02:01 +08:00
|
|
|
CLOCALE_CC = @CLOCALE_CC@
|
2001-07-14 00:47:56 +08:00
|
|
|
CLOCALE_H = @CLOCALE_H@
|
2002-12-17 03:02:01 +08:00
|
|
|
CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@
|
|
|
|
CMESSAGES_CC = @CMESSAGES_CC@
|
2001-08-08 10:49:01 +08:00
|
|
|
CMESSAGES_H = @CMESSAGES_H@
|
2002-12-17 03:02:01 +08:00
|
|
|
CMONEY_CC = @CMONEY_CC@
|
|
|
|
CNUMERIC_CC = @CNUMERIC_CC@
|
2000-10-07 07:31:22 +08:00
|
|
|
CPP = @CPP@
|
2003-08-05 10:00:18 +08:00
|
|
|
CPPFLAGS = @CPPFLAGS@
|
2005-11-05 17:42:01 +08:00
|
|
|
CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@
|
2012-09-26 21:10:26 +08:00
|
|
|
CPU_OPT_BITS_RANDOM = @CPU_OPT_BITS_RANDOM@
|
2012-09-17 21:02:39 +08:00
|
|
|
CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@
|
2001-07-14 00:47:56 +08:00
|
|
|
CSTDIO_H = @CSTDIO_H@
|
2002-12-17 03:02:01 +08:00
|
|
|
CTIME_CC = @CTIME_CC@
|
2003-01-07 05:23:00 +08:00
|
|
|
CTIME_H = @CTIME_H@
|
2003-08-05 10:00:18 +08:00
|
|
|
CXX = @CXX@
|
2000-10-07 07:31:22 +08:00
|
|
|
CXXCPP = @CXXCPP@
|
2010-07-02 18:05:49 +08:00
|
|
|
CXXFILT = @CXXFILT@
|
2003-08-05 10:00:18 +08:00
|
|
|
CXXFLAGS = @CXXFLAGS@
|
|
|
|
CYGPATH_W = @CYGPATH_W@
|
2001-07-14 00:47:56 +08:00
|
|
|
C_INCLUDE_DIR = @C_INCLUDE_DIR@
|
run_doxygen: Allow doxygen 1.7.1 again.
2010-12-31 Benjamin Kosnik <bkoz@redhat.com>
* scripts/run_doxygen: Allow doxygen 1.7.1 again.
* doc/xml/manual/build_hacking.xml: Update.
* doc/xml/images/confdeps.dot: Same.
* doc/xml/images/confdeps.png: Same.
* configure.ac: Define BUILD_INFO, BUILD_XML, BUILD_HTML,
BUILD_MAN, BUILD_PDF, BUILD_EPUB conditionally.
* Makefile.am (xml, html, pdf, man, info, pd, dvi, epub): Define,
and install rules.
* doc/Makefile.am: Same. Add stamp rules.
(doc-epub-docbook): Add.
(stamp-xml-single-docbook): Make set too.
* configure: Regenerate.
* Makefile.in: Same.
* doc/Makefile.in: Same.
* include/Makefile.in: Same.
* libsupc++/Makefile.in: Same.
* po/Makefile.in: Same.
* python/Makefile.in: Same.
* src/Makefile.in: Same.
* testsuite/Makefile.in: Same.
* aclocal.m4: Same.
2010-12-31 Benjamin Kosnik <bkoz@redhat.com>
* doc/doxygen/user.cfg.in: Disable PDF_HYPERLINKS.
From-SVN: r168382
2011-01-01 06:20:22 +08:00
|
|
|
DBLATEX = @DBLATEX@
|
2000-10-07 07:31:22 +08:00
|
|
|
DEBUG_FLAGS = @DEBUG_FLAGS@
|
2003-08-05 10:00:18 +08:00
|
|
|
DEFS = @DEFS@
|
run_doxygen: Allow doxygen 1.7.1 again.
2010-12-31 Benjamin Kosnik <bkoz@redhat.com>
* scripts/run_doxygen: Allow doxygen 1.7.1 again.
* doc/xml/manual/build_hacking.xml: Update.
* doc/xml/images/confdeps.dot: Same.
* doc/xml/images/confdeps.png: Same.
* configure.ac: Define BUILD_INFO, BUILD_XML, BUILD_HTML,
BUILD_MAN, BUILD_PDF, BUILD_EPUB conditionally.
* Makefile.am (xml, html, pdf, man, info, pd, dvi, epub): Define,
and install rules.
* doc/Makefile.am: Same. Add stamp rules.
(doc-epub-docbook): Add.
(stamp-xml-single-docbook): Make set too.
* configure: Regenerate.
* Makefile.in: Same.
* doc/Makefile.in: Same.
* include/Makefile.in: Same.
* libsupc++/Makefile.in: Same.
* po/Makefile.in: Same.
* python/Makefile.in: Same.
* src/Makefile.in: Same.
* testsuite/Makefile.in: Same.
* aclocal.m4: Same.
2010-12-31 Benjamin Kosnik <bkoz@redhat.com>
* doc/doxygen/user.cfg.in: Disable PDF_HYPERLINKS.
From-SVN: r168382
2011-01-01 06:20:22 +08:00
|
|
|
DOT = @DOT@
|
|
|
|
DOXYGEN = @DOXYGEN@
|
2008-09-27 00:32:26 +08:00
|
|
|
DSYMUTIL = @DSYMUTIL@
|
2007-05-25 00:37:27 +08:00
|
|
|
DUMPBIN = @DUMPBIN@
|
2003-08-05 10:00:18 +08:00
|
|
|
ECHO_C = @ECHO_C@
|
|
|
|
ECHO_N = @ECHO_N@
|
|
|
|
ECHO_T = @ECHO_T@
|
|
|
|
EGREP = @EGREP@
|
2007-09-09 08:05:13 +08:00
|
|
|
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
|
2000-10-07 07:31:22 +08:00
|
|
|
EXEEXT = @EXEEXT@
|
|
|
|
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
|
2007-05-25 00:37:27 +08:00
|
|
|
FGREP = @FGREP@
|
2003-08-05 10:00:18 +08:00
|
|
|
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
|
2008-08-01 22:06:38 +08:00
|
|
|
GLIBCXX_LIBS = @GLIBCXX_LIBS@
|
2007-05-25 00:37:27 +08:00
|
|
|
GREP = @GREP@
|
Build libgo with -Wa,-nH if possible (PR go/78978) [non-libgo parts]
libstdc++-v3:
PR go/78978
* acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
* configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
GLIBCXX_CHECK_ASSEMBLER_HWCAP.
* fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
HWCAP_FLAGS.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* Makefile.in, doc/Makefile.in, include/Makefile.in,
libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
config:
PR go/78978
* hwcaps.m4 (GCC_CHECK_ASSEMBLER_HWCAP): New macro.
From-SVN: r244162
2017-01-06 22:33:47 +08:00
|
|
|
HWCAP_CFLAGS = @HWCAP_CFLAGS@
|
2009-08-22 21:22:20 +08:00
|
|
|
INSTALL = @INSTALL@
|
2003-08-05 10:00:18 +08:00
|
|
|
INSTALL_DATA = @INSTALL_DATA@
|
|
|
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
|
|
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
|
|
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
2007-05-25 00:37:27 +08:00
|
|
|
LD = @LD@
|
|
|
|
LDFLAGS = @LDFLAGS@
|
acinclude.m4 (GLIBCXX_CHECK_WCHAR_T_SUPPORT): Set LIBICONV, not libiconv.
2004-03-19 Phil Edwards <phil@codesourcery.com>
* acinclude.m4 (GLIBCXX_CHECK_WCHAR_T_SUPPORT): Set LIBICONV,
not libiconv. SUBST this variable as well.
* testsuite/Makefile.am (site.exp): New target, based on that
created by automake. Also set libiconv.
* configure, Makefile.in, include/Makefile.in, libmath/Makefile.in,
libsupc++/Makefile.in, po/Makefile.in, src/Makefile.in,
testsuite/Makefile.in: Regenerate.
From-SVN: r79678
2004-03-19 19:34:47 +08:00
|
|
|
LIBICONV = @LIBICONV@
|
2003-08-05 10:00:18 +08:00
|
|
|
LIBOBJS = @LIBOBJS@
|
|
|
|
LIBS = @LIBS@
|
2001-03-29 05:18:21 +08:00
|
|
|
LIBTOOL = @LIBTOOL@
|
2008-09-27 00:32:26 +08:00
|
|
|
LIPO = @LIPO@
|
2000-10-07 07:31:22 +08:00
|
|
|
LN_S = @LN_S@
|
2016-09-29 06:03:17 +08:00
|
|
|
LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@
|
2007-01-30 02:22:37 +08:00
|
|
|
LTLIBICONV = @LTLIBICONV@
|
2003-08-05 10:00:18 +08:00
|
|
|
LTLIBOBJS = @LTLIBOBJS@
|
2000-10-07 07:31:22 +08:00
|
|
|
MAINT = @MAINT@
|
|
|
|
MAKEINFO = @MAKEINFO@
|
2009-08-22 21:22:20 +08:00
|
|
|
MKDIR_P = @MKDIR_P@
|
2007-05-25 00:37:27 +08:00
|
|
|
NM = @NM@
|
2008-09-27 00:32:26 +08:00
|
|
|
NMEDIT = @NMEDIT@
|
|
|
|
OBJDUMP = @OBJDUMP@
|
2000-10-07 07:31:22 +08:00
|
|
|
OBJEXT = @OBJEXT@
|
2003-08-05 10:00:18 +08:00
|
|
|
OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
|
2000-10-07 07:31:22 +08:00
|
|
|
OPT_LDFLAGS = @OPT_LDFLAGS@
|
2001-07-14 00:47:56 +08:00
|
|
|
OS_INC_SRCDIR = @OS_INC_SRCDIR@
|
2008-09-27 00:32:26 +08:00
|
|
|
OTOOL = @OTOOL@
|
|
|
|
OTOOL64 = @OTOOL64@
|
2000-10-07 07:31:22 +08:00
|
|
|
PACKAGE = @PACKAGE@
|
2003-08-05 10:00:18 +08:00
|
|
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
|
|
|
PACKAGE_NAME = @PACKAGE_NAME@
|
|
|
|
PACKAGE_STRING = @PACKAGE_STRING@
|
|
|
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
2009-08-22 21:22:20 +08:00
|
|
|
PACKAGE_URL = @PACKAGE_URL@
|
2003-08-05 10:00:18 +08:00
|
|
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
|
|
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
run_doxygen: Allow doxygen 1.7.1 again.
2010-12-31 Benjamin Kosnik <bkoz@redhat.com>
* scripts/run_doxygen: Allow doxygen 1.7.1 again.
* doc/xml/manual/build_hacking.xml: Update.
* doc/xml/images/confdeps.dot: Same.
* doc/xml/images/confdeps.png: Same.
* configure.ac: Define BUILD_INFO, BUILD_XML, BUILD_HTML,
BUILD_MAN, BUILD_PDF, BUILD_EPUB conditionally.
* Makefile.am (xml, html, pdf, man, info, pd, dvi, epub): Define,
and install rules.
* doc/Makefile.am: Same. Add stamp rules.
(doc-epub-docbook): Add.
(stamp-xml-single-docbook): Make set too.
* configure: Regenerate.
* Makefile.in: Same.
* doc/Makefile.in: Same.
* include/Makefile.in: Same.
* libsupc++/Makefile.in: Same.
* po/Makefile.in: Same.
* python/Makefile.in: Same.
* src/Makefile.in: Same.
* testsuite/Makefile.in: Same.
* aclocal.m4: Same.
2010-12-31 Benjamin Kosnik <bkoz@redhat.com>
* doc/doxygen/user.cfg.in: Disable PDF_HYPERLINKS.
From-SVN: r168382
2011-01-01 06:20:22 +08:00
|
|
|
PDFLATEX = @PDFLATEX@
|
2000-10-07 07:31:22 +08:00
|
|
|
RANLIB = @RANLIB@
|
|
|
|
SECTION_FLAGS = @SECTION_FLAGS@
|
|
|
|
SECTION_LDFLAGS = @SECTION_LDFLAGS@
|
2007-05-25 00:37:27 +08:00
|
|
|
SED = @SED@
|
2003-08-05 10:00:18 +08:00
|
|
|
SET_MAKE = @SET_MAKE@
|
|
|
|
SHELL = @SHELL@
|
2000-10-07 07:31:22 +08:00
|
|
|
STRIP = @STRIP@
|
2005-12-18 17:39:23 +08:00
|
|
|
SYMVER_FILE = @SYMVER_FILE@
|
2001-07-14 00:47:56 +08:00
|
|
|
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
|
2001-08-08 10:49:01 +08:00
|
|
|
USE_NLS = @USE_NLS@
|
2000-10-07 07:31:22 +08:00
|
|
|
VERSION = @VERSION@
|
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 11:38:59 +08:00
|
|
|
VTV_CXXFLAGS = @VTV_CXXFLAGS@
|
|
|
|
VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@
|
|
|
|
VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@
|
2000-10-12 19:45:23 +08:00
|
|
|
WARN_FLAGS = @WARN_FLAGS@
|
2000-10-07 07:31:22 +08:00
|
|
|
WERROR = @WERROR@
|
run_doxygen: Allow doxygen 1.7.1 again.
2010-12-31 Benjamin Kosnik <bkoz@redhat.com>
* scripts/run_doxygen: Allow doxygen 1.7.1 again.
* doc/xml/manual/build_hacking.xml: Update.
* doc/xml/images/confdeps.dot: Same.
* doc/xml/images/confdeps.png: Same.
* configure.ac: Define BUILD_INFO, BUILD_XML, BUILD_HTML,
BUILD_MAN, BUILD_PDF, BUILD_EPUB conditionally.
* Makefile.am (xml, html, pdf, man, info, pd, dvi, epub): Define,
and install rules.
* doc/Makefile.am: Same. Add stamp rules.
(doc-epub-docbook): Add.
(stamp-xml-single-docbook): Make set too.
* configure: Regenerate.
* Makefile.in: Same.
* doc/Makefile.in: Same.
* include/Makefile.in: Same.
* libsupc++/Makefile.in: Same.
* po/Makefile.in: Same.
* python/Makefile.in: Same.
* src/Makefile.in: Same.
* testsuite/Makefile.in: Same.
* aclocal.m4: Same.
2010-12-31 Benjamin Kosnik <bkoz@redhat.com>
* doc/doxygen/user.cfg.in: Disable PDF_HYPERLINKS.
From-SVN: r168382
2011-01-01 06:20:22 +08:00
|
|
|
XMLLINT = @XMLLINT@
|
|
|
|
XSLTPROC = @XSLTPROC@
|
2011-03-08 08:04:05 +08:00
|
|
|
XSL_STYLE_DIR = @XSL_STYLE_DIR@
|
2009-08-22 21:22:20 +08:00
|
|
|
abs_builddir = @abs_builddir@
|
|
|
|
abs_srcdir = @abs_srcdir@
|
|
|
|
abs_top_builddir = @abs_top_builddir@
|
|
|
|
abs_top_srcdir = @abs_top_srcdir@
|
2003-08-05 10:00:18 +08:00
|
|
|
ac_ct_CC = @ac_ct_CC@
|
|
|
|
ac_ct_CXX = @ac_ct_CXX@
|
2007-05-25 00:37:27 +08:00
|
|
|
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
2003-08-05 10:00:18 +08:00
|
|
|
am__leading_dot = @am__leading_dot@
|
2004-08-23 18:18:31 +08:00
|
|
|
am__tar = @am__tar@
|
|
|
|
am__untar = @am__untar@
|
2003-07-01 01:40:13 +08:00
|
|
|
baseline_dir = @baseline_dir@
|
2011-07-08 16:49:57 +08:00
|
|
|
baseline_subdir_switch = @baseline_subdir_switch@
|
2003-08-05 10:00:18 +08:00
|
|
|
bindir = @bindir@
|
|
|
|
build = @build@
|
|
|
|
build_alias = @build_alias@
|
|
|
|
build_cpu = @build_cpu@
|
|
|
|
build_os = @build_os@
|
|
|
|
build_vendor = @build_vendor@
|
2009-08-22 21:22:20 +08:00
|
|
|
builddir = @builddir@
|
2002-04-02 10:41:50 +08:00
|
|
|
check_msgfmt = @check_msgfmt@
|
2003-08-05 10:00:18 +08:00
|
|
|
datadir = @datadir@
|
2009-08-22 21:22:20 +08:00
|
|
|
datarootdir = @datarootdir@
|
|
|
|
docdir = @docdir@
|
|
|
|
dvidir = @dvidir@
|
2000-10-31 09:56:19 +08:00
|
|
|
enable_shared = @enable_shared@
|
|
|
|
enable_static = @enable_static@
|
2003-08-05 10:00:18 +08:00
|
|
|
exec_prefix = @exec_prefix@
|
2003-07-05 12:05:45 +08:00
|
|
|
glibcxx_MOFILES = @glibcxx_MOFILES@
|
|
|
|
glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@
|
|
|
|
glibcxx_POFILES = @glibcxx_POFILES@
|
|
|
|
glibcxx_builddir = @glibcxx_builddir@
|
2012-09-20 10:10:22 +08:00
|
|
|
glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@
|
|
|
|
glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@
|
New std::string implementation.
* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_CXX11_ABI): Remove.
(GLIBCXX_ENABLE_LIBSTDCXX_DUAL_ABI, GLIBCXX_DEFAULT_ABI): Add.
* configure.ac: Use new macros.
* configure: Regenerate.
* Makefile.in: Regenerate.
* doc/Makefile.in: Regenerate.
* libsupc++/Makefile.in: Regenerate.
* po/Makefile.in: Regenerate.
* src/Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.
* include/Makefile.am: Set _GLIBCXX_USE_DUAL_ABI.
* include/Makefile.in: Regenerate.
* config/abi/pre/gnu.ver: Export symbols related to new std::string.
Tighten old patterns to not match new symbols.
* config/locale/generic/monetary_members.cc: Guard some definitions
to not compile with new ABI.
* config/locale/gnu/monetary_members.cc: Likewise.
* config/locale/gnu/numeric_members.cc: Prevent double-free.
* config/os/gnu-linux/ldbl-extra.ver: Add new __gnu_cxx_ldbl128
exports. Tighten old patterns.
* doc/xml/manual/configure.xml: Document new configure options.
* doc/html/*: Regenerate.
* include/bits/basic_string.h (__cxx11::basic_string): Define new
non-reference-counted implementation in inline namespace __cxx11.
(stoi, stol, stoll, stof, stod, stold, to_string): Conditionally use
inline namespace.
(literals::string_literals::operator"): Conditionally use abi-tag.
* include/bits/basic_string.tcc (__cxx11::basic_string): Define.
* include/bits/c++config: Define _GLIBCXX_USE_DUAL_ABI and
LDBL_CXX11_ABI namespace macros.
* include/bits/locale_classes.h (locale::name()): Use abi_tag when
new ABI is in use.
(locale::_S_twinned_facets): New static member.
(locale::facet::__shim): Declare new type.
(locale::_facet::_M_sso_shim, locale::_facet::_M_cow_shim): New
functions for creating shims.
(locale::_Impl::_M_facet_unchecked): New member function for use
during construction.
(locale::_Impl::_M_init_extra): New member functions to create second
version of some facets.
(collate, collate_byname): Use abi_tag when new ABI is in use.
* include/bits/locale_facets.h: Add _GLIBCXX_NUM_CXX11_FACETS macro.
(numpunct, numpunct_byname): Use __cxx11 namespace.
(num_get::_M_extract_float, num_get::_M_extract_int): Use abi_tag
when new ABI is in use.
(num_get::__do_get, num_put::__do_put): Do not declare long double
compat functions for new ABI.
* include/bits/locale_facets.tcc (num_get, num_put): Use abi_tag on
definitions.
(numpunct, numpunct_byname): Qualify explicit instantiations.
* include/bits/locale_facets_nonio.h (time_get, time_get_byname,
moneypunct, moneypunct_byname, money_get, money_put, messages,
messages_byname): Use new inline namespace macros.
(money_get::__do_get, money_put::__do_put): Do not declare long
double compat functions for new ABI.
* include/bits/locale_facets_nonio.tcc (money_get, money_put): Use
new namespace macros.
(money_get::__do_get, money_put::__do_put): Do not define for new ABI.
* include/bits/localefwd.h (numpunct, numpunct_byname, collate,
collate_byname, time_get, time_get_byname, moneypunct,
moneypunct_byname, money_get, money_put, messages, messages_byname):
Use new namespace macros.
* include/bits/regex.h: Use inline namespace macros.
* include/bits/stl_list.h (_List_base, list): Use inline namespace
instead of abi-tag.
* include/bits/stringfwd.h (basic_string): Use namespace macros.
* include/std/iosfwd (basic_stringbuf, basic_istringstream,
basic_ostringstream, basic_stringstream): Likewise.
* include/std/sstream: Likewise.
(basic_stringbuf::__xfer_bufptrs): Update streambuf pointers on move.
* include/std/stdexcept (__cow_string, __sso_string): New types for
indirectly using std::string with either ABI.
(logic_error, runtime_error): Replace std::string member with
__cow_string when new ABI is in use. Declare non-inline copy
constructor and assignment operator. Declare const char* constructors.
(domain_error, invalid_argument, length_error, out_of_range,
range_error, overflow_error, underflow_error): Declare const char*
constructors.
* include/std/system_error (error_category): Replace with new
definition in inline namespace _V2.
(error_code::message, error_condition::message): Use abi_tag on
functions returning std::string.
* python/libstdcxx/v6/printers.py (StdStringPrinter): Handle new ABI.
* src/c++11/Makefile.am: Add new files.
* src/c++11/Makefile.in: Regenerate.
* src/c++11/compatibility-c++0x.cc: Compile with old std::string ABI.
Define old error_category symbols.
* src/c++11/cow-fstream-inst.cc: New. Instantiate fstream members
using old std::string ABI.
* src/c++11/cow-locale_init.cc (locale::_Impl::_M_init_extra): Define.
* src/c++11/cow-shim_facets.cc: Define shim facets using old ABI.
* src/c++11/cow-sstream-inst.cc: Instantiate stringstreams using old
std::string ABI.
* src/c++11/cow-stdexcept.cc: Define new constructors and assignment
operators.
(__cow_string, error_category::_M_message): Define.
* src/c++11/cow-string-inst.cc: Explicit instantiations using old
std::string. Include src/c++98/istream-string.cc.
* src/c++11/cow-wstring-inst.cc: Explicit instantiations using old
std::wstring.
* src/c++11/cxx11-hash_tr1.cc: Explicit instantiations using new
string.
* src/c++11/cxx11-ios_failure.cc: Add sanity check.
* src/c++11/cxx11-locale-inst.cc: Instantiate facets using new
std::string.
* src/c++11/cxx11-shim_facets.cc: Define shim facets using new ABI.
* src/c++11/cxx11-stdexcept.cc: Define constructors taking new
std::string.
* src/c++11/cxx11-wlocale-inst.cc: Instantiate facets using
new std::wstring.
* src/c++11/fstream-inst.cc: Compile with new ABI.
* src/c++11/functexcept.cc: Compile with old ABI.
* src/c++11/random.cc: Compile with new ABI.
* src/c++11/sstream-inst.cc: Compile with new ABI.
* src/c++11/string-inst.cc: Explicit instantiations for new string.
* src/c++11/system_error.cc (__sso_string, error_category::_M_message):
Define.
* src/c++11/wstring-inst.cc: Compile with new ABI.
* src/c++98/Makefile.am: Compile some host files twice for old and
new std::string. Add new files.
* src/c++98/Makefile.in: Regenerate.
* src/c++98/compatibility-ldbl.cc: Compile with old ABI.
* src/c++98/compatibility.cc: Likewise.
* src/c++98/concept-inst.cc: Likewise.
* src/c++98/hash_tr1.cc: Likewise.
* src/c++98/istream-string.cc: New file defining functions that
work with istream and std::string moved from ...
* src/c++98/istream.cc: ... here.
* src/c++98/cow-istream-string.cc: Recompile istream-string.cc with
old ABI.
* src/c++98/locale-inst.cc: Adjust facet instantiations to work for
either ABI.
* src/c++98/locale.cc (locale::_M_install_facet,
locale::_M_install_cache): Handle twinned facets.
* src/c++98/locale-facets.cc: Compile with old std::string ABI.
(__verify_grouping): Define new overload and old std::string version.
* src/c++98/locale_init.cc: Initialize twinned facets.
* src/c++98/localename.cc: Likewise.
* src/c++98/misc-inst.cc: Instantiate C++98-only std::string members.
(__verify_grouping): Define new std::string version.
* src/c++98/stdexcept.cc: Compile with old std::string ABI.
* src/c++98/wlocale-inst.cc: Likewise.
* testsuite/18_support/50594.cc: Adjust to work with SSO strings.
* testsuite/21_strings/basic_string/capacity/1.cc: Likewise.
* testsuite/21_strings/basic_string/capacity/char/1.cc: Likewise.
* testsuite/21_strings/basic_string/capacity/char/18654.cc: Likewise.
* testsuite/21_strings/basic_string/capacity/char/2.cc: Likewise.
* testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Likewise.
* testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc:
Likewise.
* testsuite/21_strings/headers/string/synopsis.cc: Use inline
namespace macros.
* testsuite/23_containers/headers/list/synopsis.cc: Likewise.
* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Set dg-options so
correct exception type can be caught.
* testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_arithmetic/char/
exceptions_failbit.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
exceptions_failbit.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_other/char/
exceptions_null.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_other/wchar_t/
exceptions_null.cc: Likewise.
* testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
* testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/char/
exceptions_null.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
exceptions_null.cc: Likewise.
* testsuite/27_io/ios_base/storage/2.cc: Likewise.
* testsuite/27_io/ios_base/failure/cxx11.cc: Disable for old ABI.
* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error.
* testsuite/libstdc++-prettyprinters/libfundts.cc: Use old ABI.
* testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
* testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
* testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
* testsuite/util/exception/safety.h: Adjust member function types
for new std::string.
* testsuite/util/testsuite_abi.cc: Add new version and ignore
__float128 symbols in __cxx11 namespace.
From-SVN: r218964
2014-12-20 02:16:39 +08:00
|
|
|
glibcxx_cxx98_abi = @glibcxx_cxx98_abi@
|
2003-07-05 12:05:45 +08:00
|
|
|
glibcxx_localedir = @glibcxx_localedir@
|
2012-09-20 10:10:22 +08:00
|
|
|
glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@
|
2003-07-05 12:05:45 +08:00
|
|
|
glibcxx_prefixdir = @glibcxx_prefixdir@
|
|
|
|
glibcxx_srcdir = @glibcxx_srcdir@
|
|
|
|
glibcxx_toolexecdir = @glibcxx_toolexecdir@
|
|
|
|
glibcxx_toolexeclibdir = @glibcxx_toolexeclibdir@
|
2000-10-15 16:45:33 +08:00
|
|
|
gxx_include_dir = @gxx_include_dir@
|
2003-08-05 10:00:18 +08:00
|
|
|
host = @host@
|
|
|
|
host_alias = @host_alias@
|
|
|
|
host_cpu = @host_cpu@
|
|
|
|
host_os = @host_os@
|
|
|
|
host_vendor = @host_vendor@
|
2009-08-22 21:22:20 +08:00
|
|
|
htmldir = @htmldir@
|
2003-08-05 10:00:18 +08:00
|
|
|
includedir = @includedir@
|
|
|
|
infodir = @infodir@
|
|
|
|
install_sh = @install_sh@
|
|
|
|
libdir = @libdir@
|
|
|
|
libexecdir = @libexecdir@
|
2001-08-14 09:24:30 +08:00
|
|
|
libtool_VERSION = @libtool_VERSION@
|
2009-08-22 21:22:20 +08:00
|
|
|
localedir = @localedir@
|
2003-08-05 10:00:18 +08:00
|
|
|
localstatedir = @localstatedir@
|
2010-12-06 08:50:04 +08:00
|
|
|
lt_host_flags = @lt_host_flags@
|
2003-08-05 10:00:18 +08:00
|
|
|
mandir = @mandir@
|
2004-08-12 19:54:13 +08:00
|
|
|
mkdir_p = @mkdir_p@
|
2003-08-05 10:00:18 +08:00
|
|
|
multi_basedir = @multi_basedir@
|
|
|
|
oldincludedir = @oldincludedir@
|
2009-08-22 21:22:20 +08:00
|
|
|
pdfdir = @pdfdir@
|
2003-08-05 10:00:18 +08:00
|
|
|
port_specific_symbol_files = @port_specific_symbol_files@
|
|
|
|
prefix = @prefix@
|
|
|
|
program_transform_name = @program_transform_name@
|
2009-08-22 21:22:20 +08:00
|
|
|
psdir = @psdir@
|
2012-02-16 03:56:07 +08:00
|
|
|
python_mod_dir = @python_mod_dir@
|
2003-08-05 10:00:18 +08:00
|
|
|
sbindir = @sbindir@
|
|
|
|
sharedstatedir = @sharedstatedir@
|
2009-08-22 21:22:20 +08:00
|
|
|
srcdir = @srcdir@
|
2003-08-05 10:00:18 +08:00
|
|
|
sysconfdir = @sysconfdir@
|
|
|
|
target = @target@
|
|
|
|
target_alias = @target_alias@
|
|
|
|
target_cpu = @target_cpu@
|
|
|
|
target_os = @target_os@
|
|
|
|
target_vendor = @target_vendor@
|
2012-10-15 21:10:30 +08:00
|
|
|
thread_header = @thread_header@
|
2009-08-22 21:22:20 +08:00
|
|
|
top_build_prefix = @top_build_prefix@
|
|
|
|
top_builddir = @top_builddir@
|
|
|
|
top_srcdir = @top_srcdir@
|
Move gthr to toplevel libgcc
gcc:
* gthr-single.h, gthr.h: Move to ../libgcc.
* gthr-aix.h: Move to ../libgcc/config/rs6000.
* gthr-dce.h: Move to ../libgcc/config/pa.
* gthr-lynx.h: Move to ../libgcc/config.
* gthr-mipssde.h: Move to ../libgcc/config/mips.
* gthr-posix.h: Move to ../libgcc/config.
* gthr-rtems.h: Likewise.
* gthr-tpf.h: Move to ../libgcc/config/s390.
* gthr-vxworks.h: Move to ../libgcc/config.
* gthr-win32.h: Move to ../libgcc/config/i386.
* configure.ac (gthread_flags): Remove
(gthr-default.h): Don't create.
(thread_file): Don't substitute.
* configure: Regenerate.
* Makefile.in (GCC_THREAD_FILE): Remove.
(GTHREAD_FLAGS): Remove.
(libgcc.mvars): Remove GTHREAD_FLAGS.
* config/t-vxworks (EXTRA_HEADERS): Remove.
gcc/po:
* EXCLUDES (gthr-aix.h, gthr-dce.h, gthr-posix.c, gthr-posix.h)
(gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h)
(gthr-win32.h, gthr.h): Remove.
libgcc:
* gthr-single.h, gthr.h: New files.
* config/gthr-lynx.h, config/gthr-posix.h., config/gthr-rtems.h,
config/gthr-vxworks.h, config/i386/gthr-win32.h,
config/mips/gthr-mipssde.h, config/pa/gthr-dce.h,
config/rs6000/gthr-aix.h, config/s390/gthr-tpf.h: New files.
* config/i386/gthr-win32.c: Include "gthr-win32.h".
* configure.ac (thread_header): New variable.
Set it depending on target_thread_file.
(gthr-default.h): Link from $thread_header.
* configure: Regenerate.
* Makefile.in (LIBGCC2_CFLAGS): Remove $(GTHREAD_FLAGS).
libgfortran:
* Makefile.am (AM_CPPFLAGS): Add
-I$(srcdir)/$(MULTISRCTOP)../libgcc, -I$(MULTIBUILDTOP)../libgcc.
* Makefile.in: Regenerate.
* acinclude.m4 (LIBGFOR_CHECK_GTHR_DEFAULT): Remove.
* configure.ac (LIBGFOR_CHECK_GTHR_DEFAULT): Likewise.
* configure: Regenerate.
* config.h.in: Regenerate.
libobjc:
* Makefile.in (INCLUDES): Add -I$(MULTIBUILDTOP)../libgcc.
* configure.ac (target_thread_file, HAVE_GTHR_DEFAULT): Remove.
* configure: Regenerate.
* config.h.in: Regenerate.
libstdc++-v3:
* acinclude.m4 (GLIBCXX_CONFIGURE): Determine and substitute
toplevel_builddir.
(GLIBCXX_ENABLE_THREADS): Remove glibcxx_thread_h,
HAVE_GTHR_DEFAULT, enable_thread.
(GLIBCXX_CHECK_GTHREADS): Reflect gthr move to libgcc.
* include/Makefile.am (thread_host_headers): Remove
${host_builddir}/gthr-tpf.h.
(${host_builddir}/gthr.h): Reflect gthr move to libgcc.
Use $<.
(${host_builddir}/gthr-single.h): Likewise.
(${host_builddir}/gthr-posix.h): Likewise.
(${host_builddir}/gthr-tpf.h): Remove.
(${host_builddir}/gthr-default.h): Likewise.
* configure, config.h.in: Regenerate.
* Makefile.in, doc/Makefile.in, include/Makefile.in,
libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
src/Makefile.intestsuite/Makefile.in: Regenerate.
From-SVN: r180776
2011-11-02 23:28:43 +08:00
|
|
|
toplevel_builddir = @toplevel_builddir@
|
2001-02-02 05:08:05 +08:00
|
|
|
toplevel_srcdir = @toplevel_srcdir@
|
2005-03-22 01:40:24 +08:00
|
|
|
|
|
|
|
# May be used by various substitution variables.
|
|
|
|
gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
|
2000-10-07 07:31:22 +08:00
|
|
|
MAINT_CHARSET = latin1
|
2001-02-03 17:01:44 +08:00
|
|
|
mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
|
acinclude.m4 (GLIBCXX_EXPORT_INCLUDES): Remove LIBMATH_INCLUDES and LIBSUPCXX_INCLUDES.
2003-08-17 Phil Edwards <pme@gcc.gnu.org>
* acinclude.m4 (GLIBCXX_EXPORT_INCLUDES): Remove LIBMATH_INCLUDES
and LIBSUPCXX_INCLUDES. Re-purpose TOPLEVEL_INCLUDES to refer to
things from the top level.
* configure.ac (GLIBCXX_IS_NATIVE): Determine earlier and re-order.
Comment out the conditionals for CANADIAN and GLIBCXX_BUILD_LIBMATH
(currently unused). Strip the fake-VPATH shell fragment from
automake-generated rules, if present.
* linkage.m4: Add comment.
* fragment.am: New file, containing factored-out common settings.
(AM_CPPFLAGS): Absorb the deprecated INCLUDES variable contents.
* Makefile.am: Include fragment.am. Remove common variables.
* include/Makefile.am: Likewise.
* libmath/Makefile.am: Likewise.
* libsupc++/Makefile.am: Likewise.
* po/Makefile.am: Likewise. Print rules during check.
* src/Makefile.am: Likewise.
* testsuite/Makefile.am: Likewise.
* aclocal.m4, configure, Makefile.in, include/Makefile.in,
libmath/Makefile.in, libsupc++/Makefile.in, po/Makefile.in,
src/Makefile.in, testsuite/Makefile.in: Regenerate.
From-SVN: r70522
2003-08-18 04:23:12 +08:00
|
|
|
PWD_COMMAND = $${PWDCMD-pwd}
|
2003-08-27 08:38:28 +08:00
|
|
|
STAMP = echo timestamp >
|
acinclude.m4 (GLIBCXX_EXPORT_INCLUDES): Remove LIBMATH_INCLUDES and LIBSUPCXX_INCLUDES.
2003-08-17 Phil Edwards <pme@gcc.gnu.org>
* acinclude.m4 (GLIBCXX_EXPORT_INCLUDES): Remove LIBMATH_INCLUDES
and LIBSUPCXX_INCLUDES. Re-purpose TOPLEVEL_INCLUDES to refer to
things from the top level.
* configure.ac (GLIBCXX_IS_NATIVE): Determine earlier and re-order.
Comment out the conditionals for CANADIAN and GLIBCXX_BUILD_LIBMATH
(currently unused). Strip the fake-VPATH shell fragment from
automake-generated rules, if present.
* linkage.m4: Add comment.
* fragment.am: New file, containing factored-out common settings.
(AM_CPPFLAGS): Absorb the deprecated INCLUDES variable contents.
* Makefile.am: Include fragment.am. Remove common variables.
* include/Makefile.am: Likewise.
* libmath/Makefile.am: Likewise.
* libsupc++/Makefile.am: Likewise.
* po/Makefile.am: Likewise. Print rules during check.
* src/Makefile.am: Likewise.
* testsuite/Makefile.am: Likewise.
* aclocal.m4, configure, Makefile.in, include/Makefile.in,
libmath/Makefile.in, libsupc++/Makefile.in, po/Makefile.in,
src/Makefile.in, testsuite/Makefile.in: Regenerate.
From-SVN: r70522
2003-08-18 04:23:12 +08:00
|
|
|
toolexecdir = $(glibcxx_toolexecdir)
|
|
|
|
toolexeclibdir = $(glibcxx_toolexeclibdir)
|
2012-02-18 04:26:32 +08:00
|
|
|
@ENABLE_WERROR_FALSE@WERROR_FLAG =
|
|
|
|
@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR)
|
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 11:38:59 +08:00
|
|
|
@ENABLE_EXTERN_TEMPLATE_FALSE@XTEMPLATE_FLAGS =
|
|
|
|
@ENABLE_EXTERN_TEMPLATE_TRUE@XTEMPLATE_FLAGS = -fno-implicit-templates
|
2000-10-07 07:31:22 +08:00
|
|
|
|
acinclude.m4 (GLIBCXX_EXPORT_INCLUDES): Remove LIBMATH_INCLUDES and LIBSUPCXX_INCLUDES.
2003-08-17 Phil Edwards <pme@gcc.gnu.org>
* acinclude.m4 (GLIBCXX_EXPORT_INCLUDES): Remove LIBMATH_INCLUDES
and LIBSUPCXX_INCLUDES. Re-purpose TOPLEVEL_INCLUDES to refer to
things from the top level.
* configure.ac (GLIBCXX_IS_NATIVE): Determine earlier and re-order.
Comment out the conditionals for CANADIAN and GLIBCXX_BUILD_LIBMATH
(currently unused). Strip the fake-VPATH shell fragment from
automake-generated rules, if present.
* linkage.m4: Add comment.
* fragment.am: New file, containing factored-out common settings.
(AM_CPPFLAGS): Absorb the deprecated INCLUDES variable contents.
* Makefile.am: Include fragment.am. Remove common variables.
* include/Makefile.am: Likewise.
* libmath/Makefile.am: Likewise.
* libsupc++/Makefile.am: Likewise.
* po/Makefile.am: Likewise. Print rules during check.
* src/Makefile.am: Likewise.
* testsuite/Makefile.am: Likewise.
* aclocal.m4, configure, Makefile.in, include/Makefile.in,
libmath/Makefile.in, libsupc++/Makefile.in, po/Makefile.in,
src/Makefile.in, testsuite/Makefile.in: Regenerate.
From-SVN: r70522
2003-08-18 04:23:12 +08:00
|
|
|
# These bits are all figured out from configure. Look in acinclude.m4
|
|
|
|
# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS.
|
2003-06-12 11:24:16 +08:00
|
|
|
CONFIG_CXXFLAGS = \
|
Build libgo with -Wa,-nH if possible (PR go/78978) [non-libgo parts]
libstdc++-v3:
PR go/78978
* acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
* configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
GLIBCXX_CHECK_ASSEMBLER_HWCAP.
* fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
HWCAP_FLAGS.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* Makefile.in, doc/Makefile.in, include/Makefile.in,
libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
config:
PR go/78978
* hwcaps.m4 (GCC_CHECK_ASSEMBLER_HWCAP): New macro.
From-SVN: r244162
2017-01-06 22:33:47 +08:00
|
|
|
$(SECTION_FLAGS) $(HWCAP_CFLAGS) -frandom-seed=$@
|
2000-10-12 19:45:23 +08:00
|
|
|
|
2003-06-12 11:24:16 +08:00
|
|
|
WARN_CXXFLAGS = \
|
2012-02-18 04:26:32 +08:00
|
|
|
$(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once
|
2000-10-12 19:45:23 +08:00
|
|
|
|
|
|
|
|
acinclude.m4 (GLIBCXX_EXPORT_INCLUDES): Remove LIBMATH_INCLUDES and LIBSUPCXX_INCLUDES.
2003-08-17 Phil Edwards <pme@gcc.gnu.org>
* acinclude.m4 (GLIBCXX_EXPORT_INCLUDES): Remove LIBMATH_INCLUDES
and LIBSUPCXX_INCLUDES. Re-purpose TOPLEVEL_INCLUDES to refer to
things from the top level.
* configure.ac (GLIBCXX_IS_NATIVE): Determine earlier and re-order.
Comment out the conditionals for CANADIAN and GLIBCXX_BUILD_LIBMATH
(currently unused). Strip the fake-VPATH shell fragment from
automake-generated rules, if present.
* linkage.m4: Add comment.
* fragment.am: New file, containing factored-out common settings.
(AM_CPPFLAGS): Absorb the deprecated INCLUDES variable contents.
* Makefile.am: Include fragment.am. Remove common variables.
* include/Makefile.am: Likewise.
* libmath/Makefile.am: Likewise.
* libsupc++/Makefile.am: Likewise.
* po/Makefile.am: Likewise. Print rules during check.
* src/Makefile.am: Likewise.
* testsuite/Makefile.am: Likewise.
* aclocal.m4, configure, Makefile.in, include/Makefile.in,
libmath/Makefile.in, libsupc++/Makefile.in, po/Makefile.in,
src/Makefile.in, testsuite/Makefile.in: Regenerate.
From-SVN: r70522
2003-08-18 04:23:12 +08:00
|
|
|
# -I/-D flags to pass when compiling.
|
2015-07-24 15:05:19 +08:00
|
|
|
AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS)
|
2001-06-27 05:22:57 +08:00
|
|
|
|
acinclude.m4 (GLIBCXX_EXPORT_INCLUDES): Remove LIBMATH_INCLUDES and LIBSUPCXX_INCLUDES.
2003-08-17 Phil Edwards <pme@gcc.gnu.org>
* acinclude.m4 (GLIBCXX_EXPORT_INCLUDES): Remove LIBMATH_INCLUDES
and LIBSUPCXX_INCLUDES. Re-purpose TOPLEVEL_INCLUDES to refer to
things from the top level.
* configure.ac (GLIBCXX_IS_NATIVE): Determine earlier and re-order.
Comment out the conditionals for CANADIAN and GLIBCXX_BUILD_LIBMATH
(currently unused). Strip the fake-VPATH shell fragment from
automake-generated rules, if present.
* linkage.m4: Add comment.
* fragment.am: New file, containing factored-out common settings.
(AM_CPPFLAGS): Absorb the deprecated INCLUDES variable contents.
* Makefile.am: Include fragment.am. Remove common variables.
* include/Makefile.am: Likewise.
* libmath/Makefile.am: Likewise.
* libsupc++/Makefile.am: Likewise.
* po/Makefile.am: Likewise. Print rules during check.
* src/Makefile.am: Likewise.
* testsuite/Makefile.am: Likewise.
* aclocal.m4, configure, Makefile.in, include/Makefile.in,
libmath/Makefile.in, libsupc++/Makefile.in, po/Makefile.in,
src/Makefile.in, testsuite/Makefile.in: Regenerate.
From-SVN: r70522
2003-08-18 04:23:12 +08:00
|
|
|
# Need this library to both be part of libstdc++.a, and installed
|
|
|
|
# separately too.
|
2003-08-28 05:29:43 +08:00
|
|
|
# 1) separate libsupc++.la
|
acinclude.m4 (GLIBCXX_EXPORT_INCLUDES): Remove LIBMATH_INCLUDES and LIBSUPCXX_INCLUDES.
2003-08-17 Phil Edwards <pme@gcc.gnu.org>
* acinclude.m4 (GLIBCXX_EXPORT_INCLUDES): Remove LIBMATH_INCLUDES
and LIBSUPCXX_INCLUDES. Re-purpose TOPLEVEL_INCLUDES to refer to
things from the top level.
* configure.ac (GLIBCXX_IS_NATIVE): Determine earlier and re-order.
Comment out the conditionals for CANADIAN and GLIBCXX_BUILD_LIBMATH
(currently unused). Strip the fake-VPATH shell fragment from
automake-generated rules, if present.
* linkage.m4: Add comment.
* fragment.am: New file, containing factored-out common settings.
(AM_CPPFLAGS): Absorb the deprecated INCLUDES variable contents.
* Makefile.am: Include fragment.am. Remove common variables.
* include/Makefile.am: Likewise.
* libmath/Makefile.am: Likewise.
* libsupc++/Makefile.am: Likewise.
* po/Makefile.am: Likewise. Print rules during check.
* src/Makefile.am: Likewise.
* testsuite/Makefile.am: Likewise.
* aclocal.m4, configure, Makefile.in, include/Makefile.in,
libmath/Makefile.in, libsupc++/Makefile.in, po/Makefile.in,
src/Makefile.in, testsuite/Makefile.in: Regenerate.
From-SVN: r70522
2003-08-18 04:23:12 +08:00
|
|
|
toolexeclib_LTLIBRARIES = libsupc++.la
|
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 11:38:59 +08:00
|
|
|
|
acinclude.m4 (GLIBCXX_EXPORT_INCLUDES): Remove LIBMATH_INCLUDES and LIBSUPCXX_INCLUDES.
2003-08-17 Phil Edwards <pme@gcc.gnu.org>
* acinclude.m4 (GLIBCXX_EXPORT_INCLUDES): Remove LIBMATH_INCLUDES
and LIBSUPCXX_INCLUDES. Re-purpose TOPLEVEL_INCLUDES to refer to
things from the top level.
* configure.ac (GLIBCXX_IS_NATIVE): Determine earlier and re-order.
Comment out the conditionals for CANADIAN and GLIBCXX_BUILD_LIBMATH
(currently unused). Strip the fake-VPATH shell fragment from
automake-generated rules, if present.
* linkage.m4: Add comment.
* fragment.am: New file, containing factored-out common settings.
(AM_CPPFLAGS): Absorb the deprecated INCLUDES variable contents.
* Makefile.am: Include fragment.am. Remove common variables.
* include/Makefile.am: Likewise.
* libmath/Makefile.am: Likewise.
* libsupc++/Makefile.am: Likewise.
* po/Makefile.am: Likewise. Print rules during check.
* src/Makefile.am: Likewise.
* testsuite/Makefile.am: Likewise.
* aclocal.m4, configure, Makefile.in, include/Makefile.in,
libmath/Makefile.in, libsupc++/Makefile.in, po/Makefile.in,
src/Makefile.in, testsuite/Makefile.in: Regenerate.
From-SVN: r70522
2003-08-18 04:23:12 +08:00
|
|
|
# 2) integrated libsupc++convenience.la that is to be a part of libstdc++.a
|
|
|
|
noinst_LTLIBRARIES = libsupc++convenience.la
|
2011-01-15 08:27:10 +08:00
|
|
|
std_HEADERS = \
|
2012-03-29 14:14:32 +08:00
|
|
|
cxxabi.h exception initializer_list new typeinfo
|
2003-06-12 11:24:16 +08:00
|
|
|
|
2011-01-15 08:27:10 +08:00
|
|
|
bits_HEADERS = \
|
2011-12-01 10:20:32 +08:00
|
|
|
atomic_lockfree_defines.h cxxabi_forced.h \
|
2016-08-23 01:29:31 +08:00
|
|
|
exception_defines.h exception_ptr.h hash_bytes.h nested_exception.h exception.h cxxabi_init_exception.h
|
2011-01-15 08:27:10 +08:00
|
|
|
|
|
|
|
headers = $(std_HEADERS) $(bits_HEADERS)
|
2004-08-03 04:28:22 +08:00
|
|
|
@GLIBCXX_HOSTED_TRUE@c_sources = \
|
2012-03-29 14:14:32 +08:00
|
|
|
@GLIBCXX_HOSTED_TRUE@ cp-demangle.c
|
2004-08-03 04:28:22 +08:00
|
|
|
|
2003-06-12 11:24:16 +08:00
|
|
|
sources = \
|
2007-03-19 06:35:39 +08:00
|
|
|
array_type_info.cc \
|
2007-05-05 01:42:49 +08:00
|
|
|
atexit_arm.cc \
|
2012-10-08 22:45:24 +08:00
|
|
|
atexit_thread.cc \
|
2010-10-05 17:41:57 +08:00
|
|
|
bad_alloc.cc \
|
2013-05-10 00:43:36 +08:00
|
|
|
bad_array_length.cc \
|
2013-05-09 11:58:00 +08:00
|
|
|
bad_array_new.cc \
|
2007-03-19 06:35:39 +08:00
|
|
|
bad_cast.cc \
|
|
|
|
bad_typeid.cc \
|
|
|
|
class_type_info.cc \
|
2003-06-12 11:24:16 +08:00
|
|
|
del_op.cc \
|
2014-12-16 02:31:40 +08:00
|
|
|
del_ops.cc \
|
2003-06-12 11:24:16 +08:00
|
|
|
del_opnt.cc \
|
|
|
|
del_opv.cc \
|
2014-12-16 02:31:40 +08:00
|
|
|
del_opvs.cc \
|
2003-06-12 11:24:16 +08:00
|
|
|
del_opvnt.cc \
|
2007-03-19 06:35:39 +08:00
|
|
|
dyncast.cc \
|
2003-06-12 11:24:16 +08:00
|
|
|
eh_alloc.cc \
|
Makefile.in: Set and use UNWIND_H.
2005-06-28 Paul Brook <paul@codesourcery.com>
gcc/
* Makefile.in: Set and use UNWIND_H. Install as unwind.h.
* c-decl.c (finish_decl): Call default_init_unwind_resume_libfunc.
* except.c (add_ehspec_entry): Generate arm eabi filter lists.
(assign_filter_values): Ditto.
(output_ttype): New function.
(output_function_exception_table): Use output_ttype. Generate arm
eabi filter lists.
(default_init_unwind_resume_libfunc): New function.
* except.h (default_init_unwind_resume_libfunc): Add prototype.
* optabs.c (init_optabs): Don't set unwind_resume_libfunc.
* opts.c (decode_options): Use targetm.unwind_tables_default.
* target-def.h (TARGET_ASM_TTYPE): Provide and use definition.
(TARGET_ARM_EABI_UNWINDER, TARGET_UNWIND_TABLES_DEFAULT): Ditto.
* target.h (struct gcc_target): Add asm.ttype, unwind_tables_default
and arm_eabi_unwinder.
* unwind-c.c: Support Arm EABI unwinder.
* unwind.h: Rename ...
* unwind-generic.h: ... To this.
* doc/tm.texi (TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER): Document.
(TARGET_UNWID_TABLES_DEFAULT): Document.
* config/arm/arm-protos.h (arm_output_fn_unwind): Add prototype.
* config/arm/arm.c (arm_unwind_emit, arm_output_ttype): New functions.
(TARGET_UNWIND_EMIT, TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER):
Define.
(thumb_pushpop, thumb_output_function_prologue): Output unwinding
directives.
(arm_unwind_emit_stm, arm_unwind_emit_set): New functions.
* config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS): Only define when
!TARGET_UNWIND_INFO.
(ARM_OUTPUT_FN_UNWIND, ARM_EABI_UNWIND_TABLES): Define.
* config/arm/bpabi.h (TARGET_UNWIND_INFO): Define.
* config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME,
ASM_DECLARE_FUNCTION_SIZE): Use ARM_OUTPUT_FN_UNWIND.
* config/arm/lib1funcs.asm: Include libunwind.S.
* config/arm/libgcc-bpabi.ver: Add unwinding routines.
* config/arm/libunwind.S: New file.
* config/arm/pr-support.c: New file.
* config/arm/t-bpabi (LIB1ASMFUNCS): Add _unwind.
(UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
* config/arm/t-symbian (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
* config/arm/unwind-arm.c: New file.
* config/arm/unwind-arm.h: New file.
* config/i386/t-netware (USER_H): Remove unwind.h.
* config/ia64/ia64.h (TARGET_UNWIND_TABLES_DEFAULT): Define.
gcc/cp/
* Make-lang.in (cp/except.o): Depend on $(TARGET_H)
* except.c: Include target.h.
(init_exception_processing): Initialize unwind_resume_libfunc.
* doc/tm.texi: Document TARGET_ASM_TTYPE
gcc/ada/
* misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
gcc/java/
* decl.c (java_init_decl_processing): Call
default_init_unwind_resume_libfunc.
gcc/objc/
* objc-act.c (objc_init_exceptions): Call
default_init_unwind_resume_libfunc.
libstdc++/
* acinclude.m4 (GLIBCXX_ENABLE_SJLJ_EXCEPTIONS): Check for
__cxa_end_cleanup.
* libsupc++/Makefile.am (sources): Add eh_call.c and eh_arm.c.
* libsupc++/eh_arm.cc: New file.
* libsupc++/eh_call.cc: New file.
* libsupc++/eh_catch.cc (__cxa_get_exception_ptr): Use
__gxx_caught_object.
(__cxa_begin_catch): Ditto. Use __is_gxx_exception_class. Call
_Unwind_Complete when using the ARM EABI.
(__cxa_end_catch): Use __is_gxx_exception_class.
* libsupc++/eh_personality.cc: Define NO_SIZE_OF_ENCODED_VALUE when
using the ARM EABI.
(save_caught_exception, restore_caught_exception): New functions.
(_throw_typet): New typedef.
(get_ttype_entry, get_adjusted_ptr, check_exception_spec): Add ARM
EABI implementations.
(PERSONALITY_FUNCTION): Use new functions. Addd support for ARM EABI
unwinding libary.
(__cxa_unexpected): Disable when using the ARM EABI.
* libsupc++/eh_throw.cc (__cxa_throw): Use __GXX_INIT_EXCEPTION_CLASS.
(__cxa_rethrow): Use __is_gxx_exception_class. Call
_Unwind_RaiseException when using the ARM EABI.
* libsupc++/unwind-cxx.h (struct __cxa_exception): Add fields for ARM
EABI semantics.
(struct __cxa_eh_globals): Ditto.
(__cxa_call_terminate): Add prototype.
(__cxa_type_match, __cxa_begin_cleanup, __cxa_end_cleanup): Add
prototypes.
(__get_exception_header_from_obj, __get_exception_header_from_ue):
Move earlier in file.
(__is_gxx_exception_class, __GXX_INIT_EXCEPTION_CLASS,
__gxx_caught_object): New functions.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* Makefile.in: Regenerate.
* include/Makefile.in: Regenerate.
* libmath/Makefile.in: Regenerate.
* libsupc++/Makefile.in: Regenerate.
* po/Makefile.in: Regenerate.
* src/Makefie.in: Regenerate.
* testsuite/makefile.in: Regenerate.
From-SVN: r101385
2005-06-29 03:52:27 +08:00
|
|
|
eh_arm.cc \
|
2003-06-12 11:24:16 +08:00
|
|
|
eh_aux_runtime.cc \
|
Makefile.in: Set and use UNWIND_H.
2005-06-28 Paul Brook <paul@codesourcery.com>
gcc/
* Makefile.in: Set and use UNWIND_H. Install as unwind.h.
* c-decl.c (finish_decl): Call default_init_unwind_resume_libfunc.
* except.c (add_ehspec_entry): Generate arm eabi filter lists.
(assign_filter_values): Ditto.
(output_ttype): New function.
(output_function_exception_table): Use output_ttype. Generate arm
eabi filter lists.
(default_init_unwind_resume_libfunc): New function.
* except.h (default_init_unwind_resume_libfunc): Add prototype.
* optabs.c (init_optabs): Don't set unwind_resume_libfunc.
* opts.c (decode_options): Use targetm.unwind_tables_default.
* target-def.h (TARGET_ASM_TTYPE): Provide and use definition.
(TARGET_ARM_EABI_UNWINDER, TARGET_UNWIND_TABLES_DEFAULT): Ditto.
* target.h (struct gcc_target): Add asm.ttype, unwind_tables_default
and arm_eabi_unwinder.
* unwind-c.c: Support Arm EABI unwinder.
* unwind.h: Rename ...
* unwind-generic.h: ... To this.
* doc/tm.texi (TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER): Document.
(TARGET_UNWID_TABLES_DEFAULT): Document.
* config/arm/arm-protos.h (arm_output_fn_unwind): Add prototype.
* config/arm/arm.c (arm_unwind_emit, arm_output_ttype): New functions.
(TARGET_UNWIND_EMIT, TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER):
Define.
(thumb_pushpop, thumb_output_function_prologue): Output unwinding
directives.
(arm_unwind_emit_stm, arm_unwind_emit_set): New functions.
* config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS): Only define when
!TARGET_UNWIND_INFO.
(ARM_OUTPUT_FN_UNWIND, ARM_EABI_UNWIND_TABLES): Define.
* config/arm/bpabi.h (TARGET_UNWIND_INFO): Define.
* config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME,
ASM_DECLARE_FUNCTION_SIZE): Use ARM_OUTPUT_FN_UNWIND.
* config/arm/lib1funcs.asm: Include libunwind.S.
* config/arm/libgcc-bpabi.ver: Add unwinding routines.
* config/arm/libunwind.S: New file.
* config/arm/pr-support.c: New file.
* config/arm/t-bpabi (LIB1ASMFUNCS): Add _unwind.
(UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
* config/arm/t-symbian (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
* config/arm/unwind-arm.c: New file.
* config/arm/unwind-arm.h: New file.
* config/i386/t-netware (USER_H): Remove unwind.h.
* config/ia64/ia64.h (TARGET_UNWIND_TABLES_DEFAULT): Define.
gcc/cp/
* Make-lang.in (cp/except.o): Depend on $(TARGET_H)
* except.c: Include target.h.
(init_exception_processing): Initialize unwind_resume_libfunc.
* doc/tm.texi: Document TARGET_ASM_TTYPE
gcc/ada/
* misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
gcc/java/
* decl.c (java_init_decl_processing): Call
default_init_unwind_resume_libfunc.
gcc/objc/
* objc-act.c (objc_init_exceptions): Call
default_init_unwind_resume_libfunc.
libstdc++/
* acinclude.m4 (GLIBCXX_ENABLE_SJLJ_EXCEPTIONS): Check for
__cxa_end_cleanup.
* libsupc++/Makefile.am (sources): Add eh_call.c and eh_arm.c.
* libsupc++/eh_arm.cc: New file.
* libsupc++/eh_call.cc: New file.
* libsupc++/eh_catch.cc (__cxa_get_exception_ptr): Use
__gxx_caught_object.
(__cxa_begin_catch): Ditto. Use __is_gxx_exception_class. Call
_Unwind_Complete when using the ARM EABI.
(__cxa_end_catch): Use __is_gxx_exception_class.
* libsupc++/eh_personality.cc: Define NO_SIZE_OF_ENCODED_VALUE when
using the ARM EABI.
(save_caught_exception, restore_caught_exception): New functions.
(_throw_typet): New typedef.
(get_ttype_entry, get_adjusted_ptr, check_exception_spec): Add ARM
EABI implementations.
(PERSONALITY_FUNCTION): Use new functions. Addd support for ARM EABI
unwinding libary.
(__cxa_unexpected): Disable when using the ARM EABI.
* libsupc++/eh_throw.cc (__cxa_throw): Use __GXX_INIT_EXCEPTION_CLASS.
(__cxa_rethrow): Use __is_gxx_exception_class. Call
_Unwind_RaiseException when using the ARM EABI.
* libsupc++/unwind-cxx.h (struct __cxa_exception): Add fields for ARM
EABI semantics.
(struct __cxa_eh_globals): Ditto.
(__cxa_call_terminate): Add prototype.
(__cxa_type_match, __cxa_begin_cleanup, __cxa_end_cleanup): Add
prototypes.
(__get_exception_header_from_obj, __get_exception_header_from_ue):
Move earlier in file.
(__is_gxx_exception_class, __GXX_INIT_EXCEPTION_CLASS,
__gxx_caught_object): New functions.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* Makefile.in: Regenerate.
* include/Makefile.in: Regenerate.
* libmath/Makefile.in: Regenerate.
* libsupc++/Makefile.in: Regenerate.
* po/Makefile.in: Regenerate.
* src/Makefie.in: Regenerate.
* testsuite/makefile.in: Regenerate.
From-SVN: r101385
2005-06-29 03:52:27 +08:00
|
|
|
eh_call.cc \
|
2003-06-12 11:24:16 +08:00
|
|
|
eh_catch.cc \
|
|
|
|
eh_exception.cc \
|
|
|
|
eh_globals.cc \
|
|
|
|
eh_personality.cc \
|
[multiple changes]
2008-08-23 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/lib/libstdc++.exp (check_v3_target_atomic_builtins): Add.
* testsuite/lib/dg-options.exp (dg-require-atomic-builtins): Likewise.
* testsuite/18_support/exception_ptr/current_exception.cc: Use it.
* testsuite/18_support/exception_ptr/rethrow_exception.cc: Likewise.
* testsuite/18_support/exception_ptr/lifespan.cc: Likewise.
2008-08-23 Sebastian Redl <sebastian.redl@getdesigned.at>
Add (again) exception propagation support as per N2179. Feature is
available only when _GLIBCXX_ATOMIC_BUILTINS_4 is defined.
* libsupc++/exception_ptr.h (exception_ptr, current_exception,
copy_exception, rethrow_exception): New file, implement exception
propagation.
* libsupc++/eh_ptr.cc (exception_ptr, current_exception,
rethrow_exception, __gxx_dependent_exception_cleanup): Likewise.
* libsupc++/unwind-cxx.h (__cxa_exception): Add reference count.
(__cxa_dependent_exception, __cxa_allocate_dependent_exception,
__cxa_free_dependent_exception, __get_dependent_exception_from_ue,
__GXX_INIT_DEPENDENT_EXCEPTION_CLASS, __is_dependent_exception,
__gxx_dependent_exception_class, __get_object_from_ue,
__get_object_from_ambiguous_exception): Add.
(__GXX_INIT_EXCEPTION_CLASS, __gxx_exception_class): Rename.
(__is_gxx_exception_class): Handle dependent exceptions.
* libsupc++/eh_arm.cc (__cxa_type_match): Likewise.
* libsupc++/eh_call.cc (__cxa_call_unexpected): Likewise.
* libsupc++/eh_personality.cc (__gxx_personality_*): Likewise.
* libsupc++/eh_type.cc (__cxa_current_exception_type): Likewise.
* libsupc++/eh_alloc.cc (__cxa_allocate_dependent_exception,
__cxa_free_dependent_exception): Add.
* libsupc++/eh_throw.cc (__gxx_exception_cleanup): Handle reference
counting.
* libsupc++/exception: Conditionally include exception_ptr.h.
* libsupc++/Makefile.am: Register new files.
* libsupc++/Makefile.in: Regenerate.
* config/abi/pre/gnu.ver: Add new symbols.
* testsuite/18_support/exception_ptr/current_exception.cc: Test the
core functionality of current_exception().
* testsuite/18_support/exception_ptr/rethrow_exception.cc: Test the
core functionality of rethrow_exception().
* testsuite/18_support/exception_ptr/lifespan.cc: Test the life span of
exception objects during exception propagation.
From-SVN: r139509
2008-08-23 19:28:30 +08:00
|
|
|
eh_ptr.cc \
|
2003-06-12 11:24:16 +08:00
|
|
|
eh_term_handler.cc \
|
|
|
|
eh_terminate.cc \
|
2011-11-08 19:13:41 +08:00
|
|
|
eh_tm.cc \
|
2003-06-12 11:24:16 +08:00
|
|
|
eh_throw.cc \
|
|
|
|
eh_type.cc \
|
|
|
|
eh_unex_handler.cc \
|
2007-03-19 06:35:39 +08:00
|
|
|
enum_type_info.cc \
|
|
|
|
function_type_info.cc \
|
|
|
|
fundamental_type_info.cc \
|
2003-06-12 11:24:16 +08:00
|
|
|
guard.cc \
|
2011-02-10 07:22:27 +08:00
|
|
|
guard_error.cc \
|
2010-09-22 16:19:08 +08:00
|
|
|
hash_bytes.cc \
|
2011-03-15 08:24:08 +08:00
|
|
|
nested_exception.cc \
|
2003-06-12 11:24:16 +08:00
|
|
|
new_handler.cc \
|
|
|
|
new_op.cc \
|
|
|
|
new_opnt.cc \
|
|
|
|
new_opv.cc \
|
|
|
|
new_opvnt.cc \
|
2016-09-10 05:22:15 +08:00
|
|
|
new_opa.cc \
|
|
|
|
new_opant.cc \
|
|
|
|
new_opva.cc \
|
|
|
|
new_opvant.cc \
|
|
|
|
del_opa.cc \
|
|
|
|
del_opant.cc \
|
|
|
|
del_opsa.cc \
|
|
|
|
del_opva.cc \
|
|
|
|
del_opvant.cc \
|
|
|
|
del_opvsa.cc \
|
2007-03-19 06:35:39 +08:00
|
|
|
pbase_type_info.cc \
|
|
|
|
pmem_type_info.cc \
|
|
|
|
pointer_type_info.cc \
|
2003-06-12 11:24:16 +08:00
|
|
|
pure.cc \
|
2007-03-19 06:35:39 +08:00
|
|
|
si_class_type_info.cc \
|
2003-06-12 11:24:16 +08:00
|
|
|
tinfo.cc \
|
|
|
|
tinfo2.cc \
|
|
|
|
vec.cc \
|
2007-03-19 06:35:39 +08:00
|
|
|
vmi_class_type_info.cc \
|
2003-06-12 11:24:16 +08:00
|
|
|
vterminate.cc
|
2000-10-07 07:31:22 +08:00
|
|
|
|
2015-01-30 00:47:25 +08:00
|
|
|
@ENABLE_VTABLE_VERIFY_TRUE@@VTV_CYGMIN_FALSE@vtv_sources = \
|
|
|
|
@ENABLE_VTABLE_VERIFY_TRUE@@VTV_CYGMIN_FALSE@ vtv_stubs.cc
|
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 11:38:59 +08:00
|
|
|
|
|
|
|
libsupc___la_SOURCES = $(sources) $(c_sources) $(vtv_sources)
|
|
|
|
libsupc__convenience_la_SOURCES = $(sources) $(c_sources) $(vtv_sources)
|
2000-10-11 07:50:39 +08:00
|
|
|
|
2000-10-07 09:05:37 +08:00
|
|
|
# AM_CXXFLAGS needs to be in each subdirectory so that it can be
|
2000-10-17 18:12:23 +08:00
|
|
|
# modified in a per-library or per-sub-library way. Need to manually
|
|
|
|
# set this option because CONFIG_CXXFLAGS has to be after
|
|
|
|
# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
|
2003-08-28 05:29:43 +08:00
|
|
|
# as the occasion call for it.
|
2003-06-12 11:24:16 +08:00
|
|
|
AM_CXXFLAGS = \
|
2012-09-20 10:10:22 +08:00
|
|
|
$(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
|
[multiple changes]
2012-01-20 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/49829
Add libc++98convenience.la, libc++11convenience.la.
* src/c++98: New directory.
* src/c++11: New directory.
* acinclude.m4: (GLIBCXX_CONFIGURE): Add src-c++98, src-c++11.
* configure: Regenerated.
* Makefile.am (hosted_source): Add src-c++98, src-c++11 to SUBDIRS.
* Makefile.in: Regenerate.
* libsupc++/Makefile.am (AM_CXXFLAGS): USe XTEMPLATE_FLAGS for
-fno-implicit-templates.
* libsupc++/Makefile.in: Regenerate.
* src/Makefile.am (inst_sources): Move... C++11 files into
separate directory for libstdc++11convenience.la. Files are:
fstream-inst.cc, string-inst.cc, wlocale-inst.cc, wstring-inst.cc).
(sources): Move C++11 files. Files are: compatibility-c++0x.cc,
compatibility-atomic-c++0x.cc, debug.cc, functexcept.cc,
functional.cc, hash_c++0x.cc, hashtable_c++0x.cc, limits.cc,
system_error.cc, placeholders.cc, regex.cc, shared_ptr.cc,
mutex.cc, condition_variable.cc, chrono.cc, thread.cc, future.cc.
(libstdc++convenience.la): Add new target.
(SUBDIRS): Add c++11, c++98.
* src/Makefile.in: Regenerate.
* src/c++11/Makefile.am: New.
* src/c++11/Makefile.in: Generate.
* src/c++98/Makefile.am: New, C++98 files.
* src/c++98/Makefile.in: Generate.
2012-01-23 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/49829
Add libc++98convenience.la, libc++11convenience.la.
* src/c++98: New directory.
* src/c++11: New directory.
* acinclude.m4: (GLIBCXX_CONFIGURE): Add src-c++98, src-c++11.
* configure: Regenerated.
* Makefile.am (hosted_source): Add src-c++98, src-c++11 to SUBDIRS.
* Makefile.in: Regenerate.
* libsupc++/Makefile.am (AM_CXXFLAGS): USe XTEMPLATE_FLAGS for
-fno-implicit-templates.
* libsupc++/Makefile.in: Regenerate.
* src/Makefile.am (inst_sources): Move... C++11 files into
separate directory for libstdc++11convenience.la. Files are:
fstream-inst.cc, string-inst.cc, wlocale-inst.cc, wstring-inst.cc).
(sources): Move C++11 files. Files are: compatibility-c++0x.cc,
compatibility-atomic-c++0x.cc, debug.cc, functexcept.cc,
functional.cc, hash_c++0x.cc, hashtable_c++0x.cc, limits.cc,
system_error.cc, placeholders.cc, regex.cc, shared_ptr.cc,
mutex.cc, condition_variable.cc, chrono.cc, thread.cc, future.cc.
(libstdc++convenience.la): Add new target.
(SUBDIRS): Add c++11, c++98.
* src/Makefile.in: Regenerate.
* src/c++11/Makefile.am: New.
* src/c++11/Makefile.in: Generate.
* src/c++98/Makefile.am: New, C++98 files.
* src/c++98/Makefile.in: Generate.
From-SVN: r183457
2012-01-24 07:12:01 +08:00
|
|
|
$(XTEMPLATE_FLAGS) \
|
2012-03-29 14:14:32 +08:00
|
|
|
$(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
|
2003-03-07 16:01:24 +08:00
|
|
|
|
2003-06-12 11:24:16 +08:00
|
|
|
AM_MAKEFLAGS = \
|
|
|
|
"gxx_include_dir=$(gxx_include_dir)"
|
2000-10-07 07:31:22 +08:00
|
|
|
|
|
|
|
|
2004-02-27 11:21:16 +08:00
|
|
|
# Use special rules for pulling things out of libiberty. These
|
|
|
|
# objects should be compiled with the "C" compiler, not the C++
|
|
|
|
# compiler, and also should not use the C++ includes.
|
|
|
|
C_INCLUDES = -I.. -I$(toplevel_srcdir)/libiberty -I$(toplevel_srcdir)/include
|
|
|
|
C_COMPILE = \
|
|
|
|
$(CC) $(DEFS) $(C_INCLUDES) \
|
|
|
|
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
|
|
|
|
|
|
|
|
|
|
|
# LTCOMPILE is copied from LTCXXCOMPILE below.
|
2009-08-23 15:28:35 +08:00
|
|
|
LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared $(LIBTOOLFLAGS) --mode=compile \
|
2012-09-20 10:10:22 +08:00
|
|
|
$(CC) $(DEFS) $(C_INCLUDES) \
|
|
|
|
$(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
|
2012-03-29 14:14:32 +08:00
|
|
|
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
2004-02-27 11:21:16 +08:00
|
|
|
|
|
|
|
|
2011-01-15 08:27:10 +08:00
|
|
|
# Libtool notes
|
2000-10-07 07:31:22 +08:00
|
|
|
|
2012-09-20 10:10:22 +08:00
|
|
|
# 1) In general, libtool expects an argument such as `--tag=CXX' when
|
2000-10-17 18:12:23 +08:00
|
|
|
# using the C++ compiler, because that will enable the settings
|
|
|
|
# detected when C++ support was being configured. However, when no
|
|
|
|
# such flag is given in the command line, libtool attempts to figure
|
|
|
|
# it out by matching the compiler name in each configuration section
|
|
|
|
# against a prefix of the command line. The problem is that, if the
|
|
|
|
# compiler name and its initial flags stored in the libtool
|
|
|
|
# configuration file don't match those in the command line, libtool
|
|
|
|
# can't decide which configuration to use, and it gives up. The
|
|
|
|
# correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
|
|
|
|
# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
|
2001-01-23 16:57:34 +08:00
|
|
|
# attempt to infer which configuration to use.
|
2012-09-20 10:10:22 +08:00
|
|
|
#
|
|
|
|
# The second tag argument, `--tag disable-shared` means that libtool
|
|
|
|
# only compiles each source once, for static objects. In actuality,
|
|
|
|
# glibcxx_lt_pic_flag and glibcxx_compiler_shared_flag are added to
|
|
|
|
# the libtool command that is used create the object, which is
|
|
|
|
# suitable for shared libraries. The `--tag disable-shared` must be
|
|
|
|
# placed after --tag CXX lest things CXX undo the affect of
|
|
|
|
# disable-shared.
|
|
|
|
|
2012-09-29 12:08:17 +08:00
|
|
|
# 2) Need to explicitly set LTCXXCOMPILE so that EXTRA_CXX_FLAGS is
|
2012-09-20 10:10:22 +08:00
|
|
|
# last. (That way, things like -O2 passed down from the toplevel can
|
|
|
|
# be overridden by --enable-debug.)
|
2012-03-29 14:14:32 +08:00
|
|
|
LTCXXCOMPILE = \
|
|
|
|
$(LIBTOOL) --tag CXX --tag disable-shared \
|
|
|
|
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
|
|
|
--mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
|
2012-09-29 12:08:17 +08:00
|
|
|
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(EXTRA_CXX_FLAGS)
|
2000-10-17 18:12:23 +08:00
|
|
|
|
2006-01-03 08:30:27 +08:00
|
|
|
LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
|
2000-10-17 18:12:23 +08:00
|
|
|
|
2001-03-28 09:19:42 +08:00
|
|
|
# 3) We'd have a problem when building the shared libstdc++ object if
|
|
|
|
# the rules automake generates would be used. We cannot allow g++ to
|
|
|
|
# be used since this would add -lstdc++ to the link line which of
|
|
|
|
# course is problematic at this point. So, we get the top-level
|
|
|
|
# directory to configure libstdc++-v3 to use gcc as the C++
|
|
|
|
# compilation driver.
|
2012-03-29 14:14:32 +08:00
|
|
|
CXXLINK = \
|
|
|
|
$(LIBTOOL) --tag CXX --tag disable-shared \
|
|
|
|
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
|
|
|
--mode=link $(CXX) \
|
|
|
|
$(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
|
2000-10-07 07:31:22 +08:00
|
|
|
|
2011-01-15 08:27:10 +08:00
|
|
|
|
|
|
|
# Install notes
|
|
|
|
# We have to have rules modified from the default to counteract SUN make
|
|
|
|
# prepending each of $(*_HEADERS) with VPATH below.
|
|
|
|
stddir = $(gxx_include_dir)
|
|
|
|
bitsdir = $(gxx_include_dir)/bits
|
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 11:38:59 +08:00
|
|
|
|
|
|
|
# By adding these files here, automake will remove them for 'make clean'
|
|
|
|
CLEANFILES = stamp-*
|
2003-08-05 10:00:18 +08:00
|
|
|
all: all-am
|
2000-10-07 07:31:22 +08:00
|
|
|
|
|
|
|
.SUFFIXES:
|
2004-02-27 11:21:16 +08:00
|
|
|
.SUFFIXES: .c .cc .lo .o .obj
|
2004-08-12 19:54:13 +08:00
|
|
|
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/fragment.am $(am__configure_deps)
|
|
|
|
@for dep in $?; do \
|
|
|
|
case '$(am__configure_deps)' in \
|
|
|
|
*$$dep*) \
|
2009-08-22 21:22:20 +08:00
|
|
|
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
|
|
|
&& { if test -f $@; then exit 0; else break; fi; }; \
|
2004-08-12 19:54:13 +08:00
|
|
|
exit 1;; \
|
|
|
|
esac; \
|
|
|
|
done; \
|
2009-08-22 21:22:20 +08:00
|
|
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps libsupc++/Makefile'; \
|
|
|
|
$(am__cd) $(top_srcdir) && \
|
|
|
|
$(AUTOMAKE) --foreign --ignore-deps libsupc++/Makefile
|
2004-08-12 19:54:13 +08:00
|
|
|
.PRECIOUS: Makefile
|
|
|
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
|
|
|
@case '$?' in \
|
|
|
|
*config.status*) \
|
|
|
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
|
|
|
*) \
|
|
|
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
|
|
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
|
|
|
esac;
|
2015-05-13 18:51:03 +08:00
|
|
|
$(top_srcdir)/fragment.am:
|
2004-08-12 19:54:13 +08:00
|
|
|
|
|
|
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
|
|
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
|
|
|
|
|
|
|
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
|
|
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
|
|
|
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
|
|
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
2009-08-22 21:22:20 +08:00
|
|
|
$(am__aclocal_m4_deps):
|
2000-10-07 07:31:22 +08:00
|
|
|
|
|
|
|
clean-noinstLTLIBRARIES:
|
|
|
|
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
|
2003-08-05 10:00:18 +08:00
|
|
|
@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
|
|
|
|
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
|
2004-08-12 19:54:13 +08:00
|
|
|
test "$$dir" != "$$p" || dir=.; \
|
2003-08-05 10:00:18 +08:00
|
|
|
echo "rm -f \"$${dir}/so_locations\""; \
|
|
|
|
rm -f "$${dir}/so_locations"; \
|
|
|
|
done
|
2000-10-07 07:31:22 +08:00
|
|
|
install-toolexeclibLTLIBRARIES: $(toolexeclib_LTLIBRARIES)
|
|
|
|
@$(NORMAL_INSTALL)
|
2009-08-22 21:22:20 +08:00
|
|
|
@list='$(toolexeclib_LTLIBRARIES)'; test -n "$(toolexeclibdir)" || list=; \
|
|
|
|
list2=; for p in $$list; do \
|
2000-10-07 07:31:22 +08:00
|
|
|
if test -f $$p; then \
|
2009-08-22 21:22:20 +08:00
|
|
|
list2="$$list2 $$p"; \
|
2000-10-07 07:31:22 +08:00
|
|
|
else :; fi; \
|
2009-08-22 21:22:20 +08:00
|
|
|
done; \
|
|
|
|
test -z "$$list2" || { \
|
2015-05-13 18:51:03 +08:00
|
|
|
echo " $(MKDIR_P) '$(DESTDIR)$(toolexeclibdir)'"; \
|
|
|
|
$(MKDIR_P) "$(DESTDIR)$(toolexeclibdir)" || exit 1; \
|
2009-08-22 21:22:20 +08:00
|
|
|
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(toolexeclibdir)'"; \
|
|
|
|
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(toolexeclibdir)"; \
|
|
|
|
}
|
2000-10-07 07:31:22 +08:00
|
|
|
|
|
|
|
uninstall-toolexeclibLTLIBRARIES:
|
|
|
|
@$(NORMAL_UNINSTALL)
|
2009-08-22 21:22:20 +08:00
|
|
|
@list='$(toolexeclib_LTLIBRARIES)'; test -n "$(toolexeclibdir)" || list=; \
|
|
|
|
for p in $$list; do \
|
|
|
|
$(am__strip_dir) \
|
|
|
|
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(toolexeclibdir)/$$f'"; \
|
|
|
|
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(toolexeclibdir)/$$f"; \
|
2000-10-07 07:31:22 +08:00
|
|
|
done
|
|
|
|
|
2003-08-05 10:00:18 +08:00
|
|
|
clean-toolexeclibLTLIBRARIES:
|
|
|
|
-test -z "$(toolexeclib_LTLIBRARIES)" || rm -f $(toolexeclib_LTLIBRARIES)
|
|
|
|
@list='$(toolexeclib_LTLIBRARIES)'; for p in $$list; do \
|
|
|
|
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
|
2004-08-12 19:54:13 +08:00
|
|
|
test "$$dir" != "$$p" || dir=.; \
|
2003-08-05 10:00:18 +08:00
|
|
|
echo "rm -f \"$${dir}/so_locations\""; \
|
|
|
|
rm -f "$${dir}/so_locations"; \
|
|
|
|
done
|
2015-05-13 18:51:03 +08:00
|
|
|
libsupc++.la: $(libsupc___la_OBJECTS) $(libsupc___la_DEPENDENCIES) $(EXTRA_libsupc___la_DEPENDENCIES)
|
2009-08-22 21:22:20 +08:00
|
|
|
$(CXXLINK) -rpath $(toolexeclibdir) $(libsupc___la_OBJECTS) $(libsupc___la_LIBADD) $(LIBS)
|
2015-05-13 18:51:03 +08:00
|
|
|
libsupc++convenience.la: $(libsupc__convenience_la_OBJECTS) $(libsupc__convenience_la_DEPENDENCIES) $(EXTRA_libsupc__convenience_la_DEPENDENCIES)
|
2009-08-22 21:22:20 +08:00
|
|
|
$(CXXLINK) $(libsupc__convenience_la_OBJECTS) $(libsupc__convenience_la_LIBADD) $(LIBS)
|
2000-10-07 07:31:22 +08:00
|
|
|
|
|
|
|
mostlyclean-compile:
|
2004-08-12 19:54:13 +08:00
|
|
|
-rm -f *.$(OBJEXT)
|
2000-10-07 07:31:22 +08:00
|
|
|
|
|
|
|
distclean-compile:
|
|
|
|
-rm -f *.tab.c
|
|
|
|
|
2004-02-27 11:21:16 +08:00
|
|
|
.c.o:
|
2004-08-12 19:54:13 +08:00
|
|
|
$(COMPILE) -c $<
|
2004-02-27 11:21:16 +08:00
|
|
|
|
|
|
|
.c.obj:
|
2004-08-12 19:54:13 +08:00
|
|
|
$(COMPILE) -c `$(CYGPATH_W) '$<'`
|
2004-02-27 11:21:16 +08:00
|
|
|
|
|
|
|
.c.lo:
|
2004-08-12 19:54:13 +08:00
|
|
|
$(LTCOMPILE) -c -o $@ $<
|
2004-02-27 11:21:16 +08:00
|
|
|
|
2003-08-05 10:00:18 +08:00
|
|
|
.cc.o:
|
2004-08-12 19:54:13 +08:00
|
|
|
$(CXXCOMPILE) -c -o $@ $<
|
2000-10-07 07:31:22 +08:00
|
|
|
|
2003-08-05 10:00:18 +08:00
|
|
|
.cc.obj:
|
2004-08-12 19:54:13 +08:00
|
|
|
$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
2000-10-07 07:31:22 +08:00
|
|
|
|
2003-08-05 10:00:18 +08:00
|
|
|
.cc.lo:
|
2004-08-12 19:54:13 +08:00
|
|
|
$(LTCXXCOMPILE) -c -o $@ $<
|
2000-10-07 07:31:22 +08:00
|
|
|
|
|
|
|
mostlyclean-libtool:
|
|
|
|
-rm -f *.lo
|
|
|
|
|
|
|
|
clean-libtool:
|
|
|
|
-rm -rf .libs _libs
|
|
|
|
|
2003-08-05 10:00:18 +08:00
|
|
|
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
|
|
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|
|
|
unique=`for i in $$list; do \
|
|
|
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|
|
|
done | \
|
2009-08-22 21:22:20 +08:00
|
|
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|
|
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
2003-08-05 10:00:18 +08:00
|
|
|
mkid -fID $$unique
|
2004-08-12 19:54:13 +08:00
|
|
|
tags: TAGS
|
2000-10-07 07:31:22 +08:00
|
|
|
|
2003-08-05 10:00:18 +08:00
|
|
|
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
|
|
|
$(TAGS_FILES) $(LISP)
|
2009-08-22 21:22:20 +08:00
|
|
|
set x; \
|
2000-10-07 07:31:22 +08:00
|
|
|
here=`pwd`; \
|
2003-08-05 10:00:18 +08:00
|
|
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|
|
|
unique=`for i in $$list; do \
|
|
|
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|
|
|
done | \
|
2009-08-22 21:22:20 +08:00
|
|
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|
|
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|
|
|
shift; \
|
|
|
|
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
2004-08-12 19:54:13 +08:00
|
|
|
test -n "$$unique" || unique=$$empty_fix; \
|
2009-08-22 21:22:20 +08:00
|
|
|
if test $$# -gt 0; then \
|
|
|
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
|
|
|
"$$@" $$unique; \
|
|
|
|
else \
|
|
|
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
|
|
|
$$unique; \
|
|
|
|
fi; \
|
2004-08-12 19:54:13 +08:00
|
|
|
fi
|
2003-08-05 10:00:18 +08:00
|
|
|
ctags: CTAGS
|
|
|
|
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
|
|
|
$(TAGS_FILES) $(LISP)
|
|
|
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|
|
|
unique=`for i in $$list; do \
|
|
|
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|
|
|
done | \
|
2009-08-22 21:22:20 +08:00
|
|
|
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|
|
|
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|
|
|
test -z "$(CTAGS_ARGS)$$unique" \
|
2003-08-05 10:00:18 +08:00
|
|
|
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
2009-08-22 21:22:20 +08:00
|
|
|
$$unique
|
2000-10-07 07:31:22 +08:00
|
|
|
|
2003-08-05 10:00:18 +08:00
|
|
|
GTAGS:
|
|
|
|
here=`$(am__cd) $(top_builddir) && pwd` \
|
2009-08-22 21:22:20 +08:00
|
|
|
&& $(am__cd) $(top_srcdir) \
|
|
|
|
&& gtags -i $(GTAGS_ARGS) "$$here"
|
2000-10-07 07:31:22 +08:00
|
|
|
|
|
|
|
distclean-tags:
|
2003-08-05 10:00:18 +08:00
|
|
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
|
|
|
check-am: all-am
|
2000-10-07 07:31:22 +08:00
|
|
|
check: check-am
|
2003-08-05 10:00:18 +08:00
|
|
|
all-am: Makefile $(LTLIBRARIES) $(HEADERS)
|
|
|
|
installdirs:
|
2011-01-15 08:27:10 +08:00
|
|
|
for dir in "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(bitsdir)" "$(DESTDIR)$(stddir)"; do \
|
2009-08-22 21:22:20 +08:00
|
|
|
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
2004-08-12 19:54:13 +08:00
|
|
|
done
|
2003-08-05 10:00:18 +08:00
|
|
|
install: install-am
|
|
|
|
install-exec: install-exec-am
|
2000-10-07 07:31:22 +08:00
|
|
|
install-data: install-data-am
|
2003-08-05 10:00:18 +08:00
|
|
|
uninstall: uninstall-am
|
2000-10-07 07:31:22 +08:00
|
|
|
|
|
|
|
install-am: all-am
|
|
|
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
|
|
|
|
2003-08-05 10:00:18 +08:00
|
|
|
installcheck: installcheck-am
|
|
|
|
install-strip:
|
2015-05-13 18:51:03 +08:00
|
|
|
if test -z '$(STRIP)'; then \
|
|
|
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
|
|
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
|
|
|
install; \
|
|
|
|
else \
|
|
|
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
|
|
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
|
|
|
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
|
|
|
fi
|
2000-10-07 07:31:22 +08:00
|
|
|
mostlyclean-generic:
|
|
|
|
|
|
|
|
clean-generic:
|
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 11:38:59 +08:00
|
|
|
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
2000-10-07 07:31:22 +08:00
|
|
|
|
|
|
|
distclean-generic:
|
2004-08-23 18:18:31 +08:00
|
|
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
2009-08-22 21:22:20 +08:00
|
|
|
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
2000-10-07 07:31:22 +08:00
|
|
|
|
|
|
|
maintainer-clean-generic:
|
2003-08-05 10:00:18 +08:00
|
|
|
@echo "This command is intended for maintainers to use"
|
|
|
|
@echo "it deletes files that may require special tools to rebuild."
|
|
|
|
clean: clean-am
|
2000-10-07 07:31:22 +08:00
|
|
|
|
2003-08-05 10:00:18 +08:00
|
|
|
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
|
|
|
|
clean-toolexeclibLTLIBRARIES mostlyclean-am
|
2000-10-07 07:31:22 +08:00
|
|
|
|
2003-08-05 10:00:18 +08:00
|
|
|
distclean: distclean-am
|
2003-12-05 03:37:21 +08:00
|
|
|
-rm -f Makefile
|
2003-08-05 10:00:18 +08:00
|
|
|
distclean-am: clean-am distclean-compile distclean-generic \
|
2009-08-22 21:22:20 +08:00
|
|
|
distclean-tags
|
2000-10-07 07:31:22 +08:00
|
|
|
|
2003-08-05 10:00:18 +08:00
|
|
|
dvi: dvi-am
|
2000-10-07 07:31:22 +08:00
|
|
|
|
2003-08-05 10:00:18 +08:00
|
|
|
dvi-am:
|
2000-10-07 07:31:22 +08:00
|
|
|
|
2004-08-12 19:54:13 +08:00
|
|
|
html: html-am
|
|
|
|
|
2009-08-22 21:22:20 +08:00
|
|
|
html-am:
|
|
|
|
|
2003-08-05 10:00:18 +08:00
|
|
|
info: info-am
|
|
|
|
|
|
|
|
info-am:
|
|
|
|
|
2011-01-15 08:27:10 +08:00
|
|
|
install-data-am: install-bitsHEADERS install-stdHEADERS
|
2003-08-05 10:00:18 +08:00
|
|
|
|
2009-08-22 21:22:20 +08:00
|
|
|
install-dvi: install-dvi-am
|
|
|
|
|
|
|
|
install-dvi-am:
|
|
|
|
|
2003-08-05 10:00:18 +08:00
|
|
|
install-exec-am: install-toolexeclibLTLIBRARIES
|
|
|
|
|
2009-08-22 21:22:20 +08:00
|
|
|
install-html: install-html-am
|
|
|
|
|
|
|
|
install-html-am:
|
|
|
|
|
2003-08-05 10:00:18 +08:00
|
|
|
install-info: install-info-am
|
|
|
|
|
2009-08-22 21:22:20 +08:00
|
|
|
install-info-am:
|
|
|
|
|
2003-08-05 10:00:18 +08:00
|
|
|
install-man:
|
|
|
|
|
2009-08-22 21:22:20 +08:00
|
|
|
install-pdf: install-pdf-am
|
|
|
|
|
|
|
|
install-pdf-am:
|
|
|
|
|
|
|
|
install-ps: install-ps-am
|
|
|
|
|
|
|
|
install-ps-am:
|
|
|
|
|
2003-08-05 10:00:18 +08:00
|
|
|
installcheck-am:
|
2000-10-07 07:31:22 +08:00
|
|
|
|
|
|
|
maintainer-clean: maintainer-clean-am
|
2003-12-05 03:37:21 +08:00
|
|
|
-rm -f Makefile
|
2003-08-05 10:00:18 +08:00
|
|
|
maintainer-clean-am: distclean-am maintainer-clean-generic
|
|
|
|
|
|
|
|
mostlyclean: mostlyclean-am
|
|
|
|
|
|
|
|
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
|
|
|
|
mostlyclean-libtool
|
|
|
|
|
|
|
|
pdf: pdf-am
|
|
|
|
|
|
|
|
pdf-am:
|
|
|
|
|
|
|
|
ps: ps-am
|
|
|
|
|
|
|
|
ps-am:
|
|
|
|
|
2011-01-15 08:27:10 +08:00
|
|
|
uninstall-am: uninstall-bitsHEADERS uninstall-stdHEADERS \
|
2003-08-05 10:00:18 +08:00
|
|
|
uninstall-toolexeclibLTLIBRARIES
|
|
|
|
|
2009-08-22 21:22:20 +08:00
|
|
|
.MAKE: install-am install-strip
|
|
|
|
|
2003-08-05 10:00:18 +08:00
|
|
|
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
|
|
|
clean-libtool clean-noinstLTLIBRARIES \
|
|
|
|
clean-toolexeclibLTLIBRARIES ctags distclean distclean-compile \
|
2010-05-05 02:58:11 +08:00
|
|
|
distclean-generic distclean-libtool distclean-tags dvi dvi-am \
|
2011-01-15 08:27:10 +08:00
|
|
|
html html-am info info-am install install-am \
|
|
|
|
install-bitsHEADERS install-data install-data-am install-dvi \
|
|
|
|
install-dvi-am install-exec install-exec-am install-html \
|
2010-05-05 02:58:11 +08:00
|
|
|
install-html-am install-info install-info-am install-man \
|
|
|
|
install-pdf install-pdf-am install-ps install-ps-am \
|
2011-01-15 08:27:10 +08:00
|
|
|
install-stdHEADERS install-strip \
|
|
|
|
install-toolexeclibLTLIBRARIES installcheck installcheck-am \
|
|
|
|
installdirs maintainer-clean maintainer-clean-generic \
|
|
|
|
mostlyclean mostlyclean-compile mostlyclean-generic \
|
|
|
|
mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
|
|
|
|
uninstall-am uninstall-bitsHEADERS uninstall-stdHEADERS \
|
2009-08-22 21:22:20 +08:00
|
|
|
uninstall-toolexeclibLTLIBRARIES
|
2000-10-07 07:31:22 +08:00
|
|
|
|
|
|
|
|
2004-02-27 11:21:16 +08:00
|
|
|
cp-demangle.c:
|
|
|
|
rm -f $@
|
|
|
|
$(LN_S) $(toplevel_srcdir)/libiberty/cp-demangle.c $@
|
|
|
|
cp-demangle.lo: cp-demangle.c
|
|
|
|
$(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
|
|
|
|
cp-demangle.o: cp-demangle.c
|
|
|
|
$(C_COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
|
|
|
|
|
2013-05-14 06:06:28 +08:00
|
|
|
# Use special rules for the C++11 sources so that the proper flags are passed.
|
2013-05-10 00:43:36 +08:00
|
|
|
bad_array_length.lo: bad_array_length.cc
|
2013-05-14 06:06:28 +08:00
|
|
|
$(LTCXXCOMPILE) -std=gnu++11 -c $<
|
2013-05-10 00:43:36 +08:00
|
|
|
bad_array_length.o: bad_array_length.cc
|
2013-05-14 06:06:28 +08:00
|
|
|
$(CXXCOMPILE) -std=gnu++11 -c $<
|
2013-05-10 00:43:36 +08:00
|
|
|
|
2013-05-09 11:58:00 +08:00
|
|
|
bad_array_new.lo: bad_array_new.cc
|
|
|
|
$(LTCXXCOMPILE) -std=gnu++11 -c $<
|
|
|
|
bad_array_new.o: bad_array_new.cc
|
|
|
|
$(CXXCOMPILE) -std=gnu++11 -c $<
|
|
|
|
|
|
|
|
eh_aux_runtime.lo: eh_aux_runtime.cc
|
2013-05-14 06:06:28 +08:00
|
|
|
$(LTCXXCOMPILE) -std=gnu++11 -c $<
|
2013-05-09 11:58:00 +08:00
|
|
|
eh_aux_runtime.o: eh_aux_runtime.cc
|
2013-05-14 06:06:28 +08:00
|
|
|
$(CXXCOMPILE) -std=gnu++11 -c $<
|
2013-05-09 11:58:00 +08:00
|
|
|
|
2011-12-01 10:20:32 +08:00
|
|
|
eh_ptr.lo: eh_ptr.cc
|
2013-04-03 08:08:54 +08:00
|
|
|
$(LTCXXCOMPILE) -std=gnu++11 -c $<
|
2011-12-01 10:20:32 +08:00
|
|
|
eh_ptr.o: eh_ptr.cc
|
2013-04-03 08:08:54 +08:00
|
|
|
$(CXXCOMPILE) -std=gnu++11 -c $<
|
|
|
|
|
|
|
|
eh_terminate.lo: eh_terminate.cc
|
|
|
|
$(LTCXXCOMPILE) -std=gnu++11 -c $<
|
|
|
|
eh_terminate.o: eh_terminate.cc
|
|
|
|
$(CXXCOMPILE) -std=gnu++11 -c $<
|
2011-12-01 10:20:32 +08:00
|
|
|
|
|
|
|
eh_throw.lo: eh_throw.cc
|
2013-04-03 08:08:54 +08:00
|
|
|
$(LTCXXCOMPILE) -std=gnu++11 -c $<
|
2011-12-01 10:20:32 +08:00
|
|
|
eh_throw.o: eh_throw.cc
|
2013-04-03 08:08:54 +08:00
|
|
|
$(CXXCOMPILE) -std=gnu++11 -c $<
|
2011-12-01 10:20:32 +08:00
|
|
|
|
|
|
|
guard.lo: guard.cc
|
2013-04-03 08:08:54 +08:00
|
|
|
$(LTCXXCOMPILE) -std=gnu++11 -c $<
|
2011-12-01 10:20:32 +08:00
|
|
|
guard.o: guard.cc
|
2013-04-03 08:08:54 +08:00
|
|
|
$(CXXCOMPILE) -std=gnu++11 -c $<
|
2011-12-01 10:20:32 +08:00
|
|
|
|
2012-10-08 22:45:24 +08:00
|
|
|
atexit_thread.lo: atexit_thread.cc
|
2013-04-03 08:08:54 +08:00
|
|
|
$(LTCXXCOMPILE) -std=gnu++11 -c $<
|
2012-10-08 22:45:24 +08:00
|
|
|
atexit_thread.o: atexit_thread.cc
|
2013-04-03 08:08:54 +08:00
|
|
|
$(CXXCOMPILE) -std=gnu++11 -c $<
|
2012-10-08 22:45:24 +08:00
|
|
|
|
2011-03-15 08:24:08 +08:00
|
|
|
nested_exception.lo: nested_exception.cc
|
2013-04-03 08:08:54 +08:00
|
|
|
$(LTCXXCOMPILE) -std=gnu++11 -c $<
|
2011-03-15 08:24:08 +08:00
|
|
|
nested_exception.o: nested_exception.cc
|
2013-04-03 08:08:54 +08:00
|
|
|
$(CXXCOMPILE) -std=gnu++11 -c $<
|
|
|
|
|
|
|
|
new_handler.lo: new_handler.cc
|
|
|
|
$(LTCXXCOMPILE) -std=gnu++11 -c $<
|
|
|
|
new_handler.o: new_handler.cc
|
|
|
|
$(CXXCOMPILE) -std=gnu++11 -c $<
|
|
|
|
|
|
|
|
new_op.lo: new_op.cc
|
|
|
|
$(LTCXXCOMPILE) -std=gnu++11 -c $<
|
|
|
|
new_op.o: new_op.cc
|
|
|
|
$(CXXCOMPILE) -std=gnu++11 -c $<
|
|
|
|
|
|
|
|
new_opnt.lo: new_opnt.cc
|
|
|
|
$(LTCXXCOMPILE) -std=gnu++11 -c $<
|
|
|
|
new_opnt.o: new_opnt.cc
|
|
|
|
$(CXXCOMPILE) -std=gnu++11 -c $<
|
2011-03-15 08:24:08 +08:00
|
|
|
|
2015-01-08 01:08:11 +08:00
|
|
|
# Use special rules for the C++14 sources so that the proper flags are passed.
|
|
|
|
del_ops.lo: del_ops.cc
|
|
|
|
$(LTCXXCOMPILE) -std=gnu++14 -Wno-sized-deallocation -c $<
|
|
|
|
del_ops.o: del_ops.cc
|
|
|
|
$(CXXCOMPILE) -std=gnu++14 -Wno-sized-deallocation -c $<
|
2015-01-28 23:02:28 +08:00
|
|
|
del_opvs.lo: del_opvs.cc
|
|
|
|
$(LTCXXCOMPILE) -std=gnu++14 -Wno-sized-deallocation -c $<
|
|
|
|
del_opvs.o: del_opvs.cc
|
|
|
|
$(CXXCOMPILE) -std=gnu++14 -Wno-sized-deallocation -c $<
|
2015-01-08 01:08:11 +08:00
|
|
|
|
2016-09-10 05:22:15 +08:00
|
|
|
# Use special rules for the C++17 sources so that the proper flags are passed.
|
|
|
|
new_opa.lo: new_opa.cc
|
|
|
|
$(LTCXXCOMPILE) -std=gnu++1z -c $<
|
|
|
|
new_opant.lo: new_opant.cc
|
|
|
|
$(LTCXXCOMPILE) -std=gnu++1z -c $<
|
|
|
|
new_opva.lo: new_opva.cc
|
|
|
|
$(LTCXXCOMPILE) -std=gnu++1z -c $<
|
|
|
|
new_opvant.lo: new_opvant.cc
|
|
|
|
$(LTCXXCOMPILE) -std=gnu++1z -c $<
|
|
|
|
del_opa.lo: del_opa.cc
|
|
|
|
$(LTCXXCOMPILE) -std=gnu++1z -c $<
|
|
|
|
del_opant.lo: del_opant.cc
|
|
|
|
$(LTCXXCOMPILE) -std=gnu++1z -c $<
|
|
|
|
del_opsa.lo: del_opsa.cc
|
|
|
|
$(LTCXXCOMPILE) -std=gnu++1z -c $<
|
|
|
|
del_opva.lo: del_opva.cc
|
|
|
|
$(LTCXXCOMPILE) -std=gnu++1z -c $<
|
|
|
|
del_opvant.lo: del_opvant.cc
|
|
|
|
$(LTCXXCOMPILE) -std=gnu++1z -c $<
|
|
|
|
del_opvsa.lo: del_opvsa.cc
|
|
|
|
$(LTCXXCOMPILE) -std=gnu++1z -c $<
|
|
|
|
|
2011-01-15 08:27:10 +08:00
|
|
|
install-stdHEADERS: $(std_HEADERS)
|
2001-06-04 10:24:06 +08:00
|
|
|
@$(NORMAL_INSTALL)
|
2011-01-15 08:27:10 +08:00
|
|
|
$(mkinstalldirs) $(DESTDIR)$(stddir)
|
|
|
|
@list='$(std_HEADERS)'; for p in $$list; do \
|
2001-06-04 10:24:06 +08:00
|
|
|
q=`echo $$p | sed -e 's,.*/,,'`; \
|
|
|
|
if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
|
2011-01-15 08:27:10 +08:00
|
|
|
echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(stddir)/$$q"; \
|
|
|
|
$(INSTALL_DATA) $$d$$p $(DESTDIR)$(stddir)/$$q; \
|
|
|
|
done
|
|
|
|
|
|
|
|
install-bitsHEADERS: $(bits_HEADERS)
|
|
|
|
@$(NORMAL_INSTALL)
|
|
|
|
$(mkinstalldirs) $(DESTDIR)$(bitsdir)
|
|
|
|
@list='$(bits_HEADERS)'; for p in $$list; do \
|
|
|
|
q=`echo $$p | sed -e 's,.*/,,'`; \
|
|
|
|
if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
|
|
|
|
echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(bitsdir)/$$q"; \
|
|
|
|
$(INSTALL_DATA) $$d$$p $(DESTDIR)$(bitsdir)/$$q; \
|
|
|
|
done
|
|
|
|
|
|
|
|
uninstall-stdHEADERS:
|
|
|
|
@$(NORMAL_UNINSTALL)
|
|
|
|
list='$(std_HEADERS)'; for p in $$list; do \
|
|
|
|
q=`echo $$p | sed -e 's,.*/,,'`; \
|
|
|
|
rm -f $(DESTDIR)$(stddir)/$$q; \
|
2001-06-04 10:24:06 +08:00
|
|
|
done
|
|
|
|
|
2011-01-15 08:27:10 +08:00
|
|
|
uninstall-bitsHEADERS:
|
2001-06-04 10:24:06 +08:00
|
|
|
@$(NORMAL_UNINSTALL)
|
2011-01-15 08:27:10 +08:00
|
|
|
list='$(bits_HEADERS)'; for p in $$list; do \
|
2001-06-04 10:24:06 +08:00
|
|
|
q=`echo $$p | sed -e 's,.*/,,'`; \
|
2011-01-15 08:27:10 +08:00
|
|
|
rm -f $(DESTDIR)$(bitsdir)/$$q; \
|
2001-06-04 10:24:06 +08:00
|
|
|
done
|
2009-08-22 21:22:20 +08:00
|
|
|
|
2000-10-07 07:31:22 +08:00
|
|
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
|
|
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
|
|
|
.NOEXPORT:
|