Index: libitm/configure =================================================================== --- libitm/configure (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libitm/configure (.../branches/gcc-4_7-branch) (wersja 194650) @@ -2844,6 +2844,7 @@ # no-define: PACKAGE and VERSION will not be #define'd in config.h (a bunch # of other PACKAGE_* variables will, however, and there's nothing # we can do about that; they come from AC_INIT). +# no-dist: we don't want 'dist' and related rules. # foreign: we don't follow the normal rules for GNU packages (no COPYING # file in the top srcdir, etc, etc), so stop complaining. # -Wall: turns on all automake warnings... @@ -11770,7 +11771,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11773 "configure" +#line 11774 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11876,7 +11877,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11879 "configure" +#line 11880 "configure" #include "confdefs.h" #if HAVE_DLFCN_H Index: libitm/Makefile.in =================================================================== --- libitm/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libitm/Makefile.in (.../branches/gcc-4_7-branch) (wersja 194650) @@ -40,13 +40,10 @@ @ARCH_X86_TRUE@am__append_2 = x86_sse.cc x86_avx.cc @ARCH_FUTEX_TRUE@am__append_3 = futex.cc subdir = . -DIST_COMMON = $(am__configure_deps) $(srcdir)/../config.guess \ - $(srcdir)/../config.sub $(srcdir)/../depcomp \ - $(srcdir)/../install-sh $(srcdir)/../ltmain.sh \ - $(srcdir)/../missing $(srcdir)/../mkinstalldirs \ - $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(srcdir)/config.h.in $(srcdir)/libitm.spec.in \ - $(top_srcdir)/configure ChangeLog +DIST_COMMON = ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/configure $(am__configure_deps) \ + $(srcdir)/config.h.in $(srcdir)/../mkinstalldirs \ + $(srcdir)/libitm.spec.in $(srcdir)/../depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/asmcfi.m4 \ @@ -97,11 +94,6 @@ "$(DESTDIR)$(toolexeclibdir)" LTLIBRARIES = $(toolexeclib_LTLIBRARIES) libitm_la_LIBADD = -am__libitm_la_SOURCES_DIST = aatree.cc alloc.cc alloc_c.cc \ - alloc_cpp.cc barrier.cc beginend.cc clone.cc eh_cpp.cc \ - local.cc query.cc retry.cc rwlock.cc useraction.cc util.cc \ - sjlj.S tls.cc method-serial.cc method-gl.cc method-ml.cc \ - hwcap.cc x86_sse.cc x86_avx.cc futex.cc @ARCH_ARM_TRUE@am__objects_1 = hwcap.lo @ARCH_X86_TRUE@am__objects_2 = x86_sse.lo x86_avx.lo @ARCH_FUTEX_TRUE@am__objects_3 = futex.lo @@ -139,7 +131,6 @@ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libitm_la_SOURCES) -DIST_SOURCES = $(am__libitm_la_SOURCES_DIST) MULTISRCTOP = MULTIBUILDTOP = MULTIDIRS = @@ -169,47 +160,10 @@ RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir dist dist-all distcheck + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) -am__remove_distdir = \ - { test ! -d "$(distdir)" \ - || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr "$(distdir)"; }; } -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -DIST_ARCHIVES = $(distdir).tar.gz -GZIP_ENV = --best -distuninstallcheck_listfiles = find . -type f -print -distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ @@ -867,185 +821,6 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - $(am__remove_distdir) - test -d "$(distdir)" || mkdir "$(distdir)" - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-info - -test -n "$(am__skip_mode_fix)" \ - || find "$(distdir)" -type d ! -perm -755 \ - -exec chmod u+rwx,go+rx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r "$(distdir)" -dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 - $(am__remove_distdir) - -dist-lzma: distdir - tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma - $(am__remove_distdir) - -dist-xz: distdir - tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz - $(am__remove_distdir) - -dist-tarZ: distdir - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) - -dist-shar: distdir - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__remove_distdir) - -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) - -dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lzma*) \ - lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ - *.tar.xz*) \ - xz -dc $(distdir).tar.xz | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir); chmod a+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst - chmod a-w $(distdir) - test -d $(distdir)/_build || exit 0; \ - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && am__cwd=`pwd` \ - && $(am__cd) $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ - distuninstallcheck \ - && chmod -R a-w "$$dc_install_base" \ - && ({ \ - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ - } || { rm -rf "$$dc_destdir"; exit 1; }) \ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ - && cd "$$am__cwd" \ - || exit 1 - $(am__remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' -distuninstallcheck: - @$(am__cd) '$(distuninstallcheck_dir)' \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ - echo " (check DESTDIR support)"; \ - fi ; \ - $(distuninstallcheck_listfiles) ; \ - exit 1; } >&2 -distcleancheck: distclean - @if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left in build directory after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(INFO_DEPS) $(LTLIBRARIES) all-multi $(HEADERS) \ @@ -1244,13 +1019,10 @@ .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am all-local all-multi am--refresh check check-am \ clean clean-aminfo clean-generic clean-libtool clean-multi \ - clean-toolexeclibLTLIBRARIES ctags ctags-recursive dist \ - dist-all dist-bzip2 dist-gzip dist-info dist-lzma dist-shar \ - dist-tarZ dist-xz dist-zip distcheck distclean \ - distclean-compile distclean-generic distclean-hdr \ - distclean-libtool distclean-multi distclean-tags \ - distcleancheck distdir distuninstallcheck dvi dvi-am html \ - html-am info info-am install install-am install-data \ + clean-toolexeclibLTLIBRARIES ctags ctags-recursive dist-info \ + distclean distclean-compile distclean-generic distclean-hdr \ + distclean-libtool distclean-multi distclean-tags dvi dvi-am \ + html html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-multi \ Index: libitm/configure.ac =================================================================== --- libitm/configure.ac (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libitm/configure.ac (.../branches/gcc-4_7-branch) (wersja 194650) @@ -70,12 +70,13 @@ # no-define: PACKAGE and VERSION will not be #define'd in config.h (a bunch # of other PACKAGE_* variables will, however, and there's nothing # we can do about that; they come from AC_INIT). +# no-dist: we don't want 'dist' and related rules. # foreign: we don't follow the normal rules for GNU packages (no COPYING # file in the top srcdir, etc, etc), so stop complaining. # -Wall: turns on all automake warnings... # -Wno-portability: ...except this one, since GNU make is required. # -Wno-override: ... and this one, since we do want this in testsuite. -AM_INIT_AUTOMAKE([1.9.0 foreign -Wall -Wno-portability -Wno-override]) +AM_INIT_AUTOMAKE([1.9.0 foreign no-dist -Wall -Wno-portability -Wno-override]) AM_ENABLE_MULTILIB(, ..) # Calculate toolexeclibdir Index: libitm/ChangeLog =================================================================== --- libitm/ChangeLog (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libitm/ChangeLog (.../branches/gcc-4_7-branch) (wersja 194650) @@ -1,3 +1,11 @@ +2012-09-20 Jakub Jelinek + + PR other/43620 + * configure.ac (AM_INIT_AUTOMAKE): Add no-dist. + * Makefile.in: Regenerated. + * configure: Regenerated. + * testsuite/Makefile.in: Regenerated. + 2012-09-20 Release Manager * GCC 4.7.2 released. Index: libitm/testsuite/Makefile.in =================================================================== --- libitm/testsuite/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libitm/testsuite/Makefile.in (.../branches/gcc-4_7-branch) (wersja 194650) @@ -35,7 +35,7 @@ host_triplet = @host@ target_triplet = @target@ subdir = testsuite -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/asmcfi.m4 \ @@ -60,10 +60,8 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = -DIST_SOURCES = DEJATOOL = $(PACKAGE) RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ @@ -295,37 +293,6 @@ -l='$(DEJATOOL)'; for tool in $$l; do \ rm -f $$tool.sum $$tool.log; \ done - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU check: check-am @@ -426,8 +393,8 @@ .PHONY: all all-am check check-DEJAGNU check-am clean clean-generic \ clean-libtool distclean distclean-DEJAGNU distclean-generic \ - distclean-libtool distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ + distclean-libtool dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ Index: libgomp/team.c =================================================================== --- libgomp/team.c (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libgomp/team.c (.../branches/gcc-4_7-branch) (wersja 194650) @@ -1,4 +1,4 @@ -/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2011 +/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2011, 2012 Free Software Foundation, Inc. Contributed by Richard Henderson . @@ -232,6 +232,15 @@ gomp_barrier_wait (&pool->threads_dock); /* Now it is safe to destroy the barrier and free the pool. */ gomp_barrier_destroy (&pool->threads_dock); + +#ifdef HAVE_SYNC_BUILTINS + __sync_fetch_and_add (&gomp_managed_threads, + 1L - pool->threads_used); +#else + gomp_mutex_lock (&gomp_remaining_threads_lock); + gomp_managed_threads -= pool->threads_used - 1L; + gomp_mutex_unlock (&gomp_remaining_threads_lock); +#endif } free (pool->threads); if (pool->last_team) Index: libgomp/ChangeLog =================================================================== --- libgomp/ChangeLog (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libgomp/ChangeLog (.../branches/gcc-4_7-branch) (wersja 194650) @@ -1,3 +1,9 @@ +2012-11-21 Jakub Jelinek + + PR libgomp/55411 + * team.c (gomp_free_thread): Decrease gomp_managed_threads + if pool had any threads_used. + 2012-09-20 Release Manager * GCC 4.7.2 released. Index: libstdc++-v3/configure =================================================================== --- libstdc++-v3/configure (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/configure (.../branches/gcc-4_7-branch) (wersja 194650) @@ -602,7 +602,6 @@ am__EXEEXT_TRUE LTLIBOBJS LIBOBJS -PIC_CXXFLAGS WARN_FLAGS OPTIMIZE_CXXFLAGS TOPLEVEL_INCLUDES @@ -713,6 +712,9 @@ GLIBCXX_BUILD_PCH_TRUE GLIBCXX_HOSTED_FALSE GLIBCXX_HOSTED_TRUE +glibcxx_compiler_shared_flag +glibcxx_compiler_pic_flag +glibcxx_lt_pic_flag enable_static enable_shared lt_host_flags @@ -3025,8 +3027,7 @@ target_alias=${target_alias-$host_alias} # Handy for debugging: -{ $as_echo "$as_me:${as_lineno-$LINENO}: $build / $host / $target / $host_alias / $target_alias" >&5 -$as_echo "$as_me: $build / $host / $target / $host_alias / $target_alias" >&6;}; sleep 5 +#AC_MSG_NOTICE($build / $host / $target / $host_alias / $target_alias); sleep 5 if test "$build" != "$host"; then # We are being configured with some form of cross compiler. @@ -5281,6 +5282,7 @@ +# Libtool setup. if test "x${with_newlib}" != "xyes"; then enable_dlopen=yes @@ -11498,7 +11500,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11501 "configure" +#line 11503 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11604,7 +11606,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11607 "configure" +#line 11609 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -14890,6 +14892,38 @@ +# libtool variables for C++ shared and position-independent compiles. +# +# Use glibcxx_lt_pic_flag to designate the automake variable +# used to encapsulate the default libtool approach to creating objects +# with position-independent code. Default: -prefer-pic. +# +# Use glibcxx_compiler_shared_flag to designate a compile-time flags for +# creating shared objects. Default: -D_GLIBCXX_SHARED. +# +# Use glibcxx_compiler_pic_flag to designate a compile-time flags for +# creating position-independent objects. This varies with the target +# hardware and operating system, but is often: -DPIC -fPIC. +if test "$enable_shared" = yes; then + glibcxx_lt_pic_flag="-prefer-pic" + glibcxx_compiler_pic_flag="$lt_prog_compiler_pic_CXX" + glibcxx_compiler_shared_flag="-D_GLIBCXX_SHARED" + +else + glibcxx_lt_pic_flag= + glibcxx_compiler_pic_flag= + glibcxx_compiler_shared_flag= +fi + + + + +# Override the libtool's pic_flag and pic_mode. +# Do this step after AM_PROG_LIBTOOL, but before AC_OUTPUT. +# NB: this impacts --with-pic and --without-pic. +lt_prog_compiler_pic_CXX="$glibcxx_compiler_pic_flag $glibcxx_compiler_shared_flag" +pic_mode='default' + # Eliminate -lstdc++ addition to postdeps for cross compiles. postdeps_CXX=`echo " $postdeps_CXX " | sed 's, -lstdc++ ,,g'` @@ -14962,7 +14996,7 @@ # # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style. cat > conftest.$ac_ext << EOF -#line 14965 "configure" +#line 14999 "configure" struct S { ~S(); }; void bar(); void foo() @@ -15297,7 +15331,7 @@ # Fake what AC_TRY_COMPILE does. cat > conftest.$ac_ext << EOF -#line 15300 "configure" +#line 15334 "configure" int main() { typedef bool atomic_type; @@ -15332,7 +15366,7 @@ rm -f conftest* cat > conftest.$ac_ext << EOF -#line 15335 "configure" +#line 15369 "configure" int main() { typedef short atomic_type; @@ -15367,7 +15401,7 @@ rm -f conftest* cat > conftest.$ac_ext << EOF -#line 15370 "configure" +#line 15404 "configure" int main() { // NB: _Atomic_word not necessarily int. @@ -15403,7 +15437,7 @@ rm -f conftest* cat > conftest.$ac_ext << EOF -#line 15406 "configure" +#line 15440 "configure" int main() { typedef long long atomic_type; @@ -15482,7 +15516,7 @@ # unnecessary for this test. cat > conftest.$ac_ext << EOF -#line 15485 "configure" +#line 15519 "configure" int main() { _Decimal32 d1; @@ -15524,7 +15558,7 @@ # unnecessary for this test. cat > conftest.$ac_ext << EOF -#line 15527 "configure" +#line 15561 "configure" template struct same { typedef T2 type; }; @@ -15558,7 +15592,7 @@ rm -f conftest* cat > conftest.$ac_ext << EOF -#line 15561 "configure" +#line 15595 "configure" template struct same { typedef T2 type; }; @@ -66472,20 +66506,15 @@ -if test "$enable_shared" = yes; then - PIC_CXXFLAGS="-prefer-pic" -else - PIC_CXXFLAGS= -fi - - ac_config_files="$ac_config_files Makefile" ac_config_files="$ac_config_files scripts/testsuite_flags" ac_config_files="$ac_config_files scripts/extract_symvers" +ac_config_files="$ac_config_files doc/xsl/customization.xsl" + # Multilibs need MULTISUBDIR defined correctly in certain makefiles so # that multilib installs will end up installed in the correct place. # The testsuite needs it for multilib-aware ABI baseline files. @@ -67696,6 +67725,7 @@ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "scripts/testsuite_flags") CONFIG_FILES="$CONFIG_FILES scripts/testsuite_flags" ;; "scripts/extract_symvers") CONFIG_FILES="$CONFIG_FILES scripts/extract_symvers" ;; + "doc/xsl/customization.xsl") CONFIG_FILES="$CONFIG_FILES doc/xsl/customization.xsl" ;; "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; "libsupc++/Makefile") CONFIG_FILES="$CONFIG_FILES libsupc++/Makefile" ;; "python/Makefile") CONFIG_FILES="$CONFIG_FILES python/Makefile" ;; Index: libstdc++-v3/python/Makefile.in =================================================================== --- libstdc++-v3/python/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/python/Makefile.in (.../branches/gcc-4_7-branch) (wersja 194650) @@ -184,7 +184,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ -PIC_CXXFLAGS = @PIC_CXXFLAGS@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ @@ -232,7 +231,10 @@ glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@ glibcxx_POFILES = @glibcxx_POFILES@ glibcxx_builddir = @glibcxx_builddir@ +glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@ +glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@ glibcxx_localedir = @glibcxx_localedir@ +glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@ glibcxx_prefixdir = @glibcxx_prefixdir@ glibcxx_srcdir = @glibcxx_srcdir@ glibcxx_toolexecdir = @glibcxx_toolexecdir@ Index: libstdc++-v3/Makefile.in =================================================================== --- libstdc++-v3/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/Makefile.in (.../branches/gcc-4_7-branch) (wersja 194650) @@ -39,7 +39,8 @@ $(top_srcdir)/configure $(am__configure_deps) \ $(srcdir)/config.h.in $(srcdir)/../mkinstalldirs \ $(top_srcdir)/scripts/testsuite_flags.in \ - $(top_srcdir)/scripts/extract_symvers.in + $(top_srcdir)/scripts/extract_symvers.in \ + $(top_srcdir)/doc/xsl/customization.xsl.in subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ @@ -67,7 +68,8 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = scripts/testsuite_flags scripts/extract_symvers +CONFIG_CLEAN_FILES = scripts/testsuite_flags scripts/extract_symvers \ + doc/xsl/customization.xsl CONFIG_CLEAN_VPATH_FILES = depcomp = am__depfiles_maybe = @@ -186,7 +188,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ -PIC_CXXFLAGS = @PIC_CXXFLAGS@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ @@ -234,7 +235,10 @@ glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@ glibcxx_POFILES = @glibcxx_POFILES@ glibcxx_builddir = @glibcxx_builddir@ +glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@ +glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@ glibcxx_localedir = @glibcxx_localedir@ +glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@ glibcxx_prefixdir = @glibcxx_prefixdir@ glibcxx_srcdir = @glibcxx_srcdir@ glibcxx_toolexecdir = @glibcxx_toolexecdir@ @@ -351,8 +355,6 @@ "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ "MAKE=$(MAKE)" \ "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ - "PICFLAG=$(PICFLAG)" \ - "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ "SHELL=$(SHELL)" \ "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ "exec_prefix=$(exec_prefix)" \ @@ -434,6 +436,8 @@ cd $(top_builddir) && $(SHELL) ./config.status $@ scripts/extract_symvers: $(top_builddir)/config.status $(top_srcdir)/scripts/extract_symvers.in cd $(top_builddir) && $(SHELL) ./config.status $@ +doc/xsl/customization.xsl: $(top_builddir)/config.status $(top_srcdir)/doc/xsl/customization.xsl.in + cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo Index: libstdc++-v3/src/Makefile.in =================================================================== --- libstdc++-v3/src/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/src/Makefile.in (.../branches/gcc-4_7-branch) (wersja 194650) @@ -213,7 +213,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ -PIC_CXXFLAGS = @PIC_CXXFLAGS@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ @@ -261,7 +260,10 @@ glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@ glibcxx_POFILES = @glibcxx_POFILES@ glibcxx_builddir = @glibcxx_builddir@ +glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@ +glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@ glibcxx_localedir = @glibcxx_localedir@ +glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@ glibcxx_prefixdir = @glibcxx_prefixdir@ glibcxx_srcdir = @glibcxx_srcdir@ glibcxx_toolexecdir = @glibcxx_toolexecdir@ @@ -374,23 +376,42 @@ # Use special rules for parallel mode compilation. PARALLEL_FLAGS = -fopenmp -D_GLIBCXX_PARALLEL -I$(glibcxx_builddir)/../libgomp -# AM_CXXFLAGS needs to be in each subdirectory so that it can be +# A note on compatibility and static libraries. +# +# static lib == linked against only this version, should not need compat +# shared lib == linked against potentially all compat versions +# +# Thus, the shared libs have more compat symbols, which can be found +# segregated in the sources with -D_GLIBCXX_SHARED. +# +# In the sub-directories of libsupc++, src/c++98, src/c++11, only +# -prefer-pic objects are generated for the convenience libraries. +# +# In the main src directory, make shared and static objects just for +# the compat libraries. Shared objects are compiled with -prefer-pic +# -D_GLIBCXX_SHARED and in the .libs sub-directory, static objects are +# compiled with -prefer-pic (ie, -fPIC but not -D_GLIBCXX_SHARED) and +# the main src directory. +# +# Why are objects destined for libstdc++.a compiled with -fPIC? First, +# because -fPIC is not harmful to use for objects destined for static +# libraries. In addition, using -fPIC will allow the use of static +# libstdc++.a in the creation of other C++ shared libraries. + +# AM_CXXFLAGS needs to be in each sub-directory so that it can be # 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 # as the occasion calls for it. AM_CXXFLAGS = \ + $(glibcxx_compiler_pic_flag) \ $(XTEMPLATE_FLAGS) \ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) # Libtool notes -# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is -# last. (That way, things like -O2 passed down from the toplevel can -# be overridden by --enable-debug.) - -# 2) In general, libtool expects an argument such as `--tag=CXX' when +# 1) In general, libtool expects an argument such as `--tag=CXX' when # 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 @@ -401,7 +422,19 @@ # 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 -# attempt to infer which configuration to use +# attempt to infer which configuration to use. +# +# 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. + +# 2) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is +# last. (That way, things like -O2 passed down from the toplevel can +# be overridden by --enable-debug.) LTCXXCOMPILE = \ $(LIBTOOL) --tag CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -846,7 +879,7 @@ @ENABLE_SYMVERS_TRUE@ fi; \ @ENABLE_SYMVERS_TRUE@ fi @ENABLE_SYMVERS_TRUE@ $(EGREP) -v '^[ ]*#(#| |$$)' $@.tmp | \ -@ENABLE_SYMVERS_TRUE@ $(CC) -E -P -include ../config.h - > $@ || (rm -f $@ ; exit 1) +@ENABLE_SYMVERS_TRUE@ $(CC) -E -P -include $(CONFIG_HEADER) - > $@ || (rm -f $@ ; exit 1) @ENABLE_SYMVERS_TRUE@ rm -f $@.tmp @ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@libstdc++-symbols.ver-sun : libstdc++-symbols.ver \ @ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ $(toplevel_srcdir)/contrib/make_sunver.pl \ Index: libstdc++-v3/src/Makefile.am =================================================================== --- libstdc++-v3/src/Makefile.am (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/src/Makefile.am (.../branches/gcc-4_7-branch) (wersja 194650) @@ -116,22 +116,41 @@ compatibility-thread-c++0x.o: compatibility-thread-c++0x.cc $(CXXCOMPILE) -std=gnu++11 -c $< -# AM_CXXFLAGS needs to be in each subdirectory so that it can be +# A note on compatibility and static libraries. +# +# static lib == linked against only this version, should not need compat +# shared lib == linked against potentially all compat versions +# +# Thus, the shared libs have more compat symbols, which can be found +# segregated in the sources with -D_GLIBCXX_SHARED. +# +# In the sub-directories of libsupc++, src/c++98, src/c++11, only +# -prefer-pic objects are generated for the convenience libraries. +# +# In the main src directory, make shared and static objects just for +# the compat libraries. Shared objects are compiled with -prefer-pic +# -D_GLIBCXX_SHARED and in the .libs sub-directory, static objects are +# compiled with -prefer-pic (ie, -fPIC but not -D_GLIBCXX_SHARED) and +# the main src directory. +# +# Why are objects destined for libstdc++.a compiled with -fPIC? First, +# because -fPIC is not harmful to use for objects destined for static +# libraries. In addition, using -fPIC will allow the use of static +# libstdc++.a in the creation of other C++ shared libraries. + +# AM_CXXFLAGS needs to be in each sub-directory so that it can be # 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 # as the occasion calls for it. AM_CXXFLAGS = \ + $(glibcxx_compiler_pic_flag) \ $(XTEMPLATE_FLAGS) \ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) # Libtool notes -# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is -# last. (That way, things like -O2 passed down from the toplevel can -# be overridden by --enable-debug.) - -# 2) In general, libtool expects an argument such as `--tag=CXX' when +# 1) In general, libtool expects an argument such as `--tag=CXX' when # 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 @@ -142,7 +161,19 @@ # 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 -# attempt to infer which configuration to use +# attempt to infer which configuration to use. +# +# 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. + +# 2) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is +# last. (That way, things like -O2 passed down from the toplevel can +# be overridden by --enable-debug.) LTCXXCOMPILE = \ $(LIBTOOL) --tag CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ @@ -182,7 +213,7 @@ fi; \ fi $(EGREP) -v '^[ ]*#(#| |$$)' $@.tmp | \ - $(CC) -E -P -include ../config.h - > $@ || (rm -f $@ ; exit 1) + $(CC) -E -P -include $(CONFIG_HEADER) - > $@ || (rm -f $@ ; exit 1) rm -f $@.tmp CLEANFILES = libstdc++-symbols.ver Index: libstdc++-v3/src/c++98/Makefile.in =================================================================== --- libstdc++-v3/src/c++98/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/src/c++98/Makefile.in (.../branches/gcc-4_7-branch) (wersja 194650) @@ -192,7 +192,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ -PIC_CXXFLAGS = @PIC_CXXFLAGS@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ @@ -240,7 +239,10 @@ glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@ glibcxx_POFILES = @glibcxx_POFILES@ glibcxx_builddir = @glibcxx_builddir@ +glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@ +glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@ glibcxx_localedir = @glibcxx_localedir@ +glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@ glibcxx_prefixdir = @glibcxx_prefixdir@ glibcxx_srcdir = @glibcxx_srcdir@ glibcxx_toolexecdir = @glibcxx_toolexecdir@ @@ -400,7 +402,7 @@ # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden # as the occasion calls for it. AM_CXXFLAGS = \ - $(PIC_CXXFLAGS) \ + $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \ $(XTEMPLATE_FLAGS) \ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) @@ -410,11 +412,7 @@ # Libtool notes -# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is -# last. (That way, things like -O2 passed down from the toplevel can -# be overridden by --enable-debug.) - -# 2) In general, libtool expects an argument such as `--tag=CXX' when +# 1) In general, libtool expects an argument such as `--tag=CXX' when # 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 @@ -426,8 +424,18 @@ # correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe # CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to # attempt to infer which configuration to use. -# We have to put --tag disable-shared after --tag CXX lest things -# CXX undo the affect of disable-shared. +# +# 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. + +# 2) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is +# last. (That way, things like -O2 passed down from the toplevel can +# be overridden by --enable-debug.) LTCXXCOMPILE = \ $(LIBTOOL) --tag CXX --tag disable-shared \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ Index: libstdc++-v3/src/c++98/compatibility.cc =================================================================== --- libstdc++-v3/src/c++98/compatibility.cc (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/src/c++98/compatibility.cc (.../branches/gcc-4_7-branch) (wersja 194650) @@ -25,7 +25,7 @@ #include -#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \ +#if defined(_GLIBCXX_SYMVER_GNU) && defined(_GLIBCXX_SHARED) \ && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE)\ && defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT) #define istreambuf_iterator istreambuf_iteratorXX @@ -204,7 +204,7 @@ // NB: These symbols renames should go into the shared library only, // and only those shared libraries that support versioning. -#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \ +#if defined(_GLIBCXX_SYMVER_GNU) && defined(_GLIBCXX_SHARED) \ && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \ && defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT) @@ -529,7 +529,7 @@ #endif // _GLIBCXX_LONG_DOUBLE_COMPAT #ifdef _GLIBCXX_SYMVER_DARWIN -#if (defined(__ppc__) || defined(__ppc64__)) && defined(PIC) +#if (defined(__ppc__) || defined(__ppc64__)) && defined(_GLIBCXX_SHARED) /* __eprintf shouldn't have been made visible from libstdc++, or anywhere, but on Mac OS X 10.4 it was defined in libstdc++.6.0.3.dylib; so on that platform we have to keep defining Index: libstdc++-v3/src/c++98/compatibility-list-2.cc =================================================================== --- libstdc++-v3/src/c++98/compatibility-list-2.cc (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/src/c++98/compatibility-list-2.cc (.../branches/gcc-4_7-branch) (wersja 194650) @@ -24,7 +24,7 @@ #include -#ifdef PIC +#ifdef _GLIBCXX_SHARED #ifndef _GLIBCXX_BEGIN_NAMESPACE_COMPAT # define _GLIBCXX_BEGIN_NAMESPACE_COMPAT Index: libstdc++-v3/src/c++98/Makefile.am =================================================================== --- libstdc++-v3/src/c++98/Makefile.am (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/src/c++98/Makefile.am (.../branches/gcc-4_7-branch) (wersja 194650) @@ -172,7 +172,7 @@ # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden # as the occasion calls for it. AM_CXXFLAGS = \ - $(PIC_CXXFLAGS) \ + $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \ $(XTEMPLATE_FLAGS) \ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) @@ -181,11 +181,7 @@ # Libtool notes -# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is -# last. (That way, things like -O2 passed down from the toplevel can -# be overridden by --enable-debug.) - -# 2) In general, libtool expects an argument such as `--tag=CXX' when +# 1) In general, libtool expects an argument such as `--tag=CXX' when # 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 @@ -197,8 +193,18 @@ # correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe # CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to # attempt to infer which configuration to use. -# We have to put --tag disable-shared after --tag CXX lest things -# CXX undo the affect of disable-shared. +# +# 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. + +# 2) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is +# last. (That way, things like -O2 passed down from the toplevel can +# be overridden by --enable-debug.) LTCXXCOMPILE = \ $(LIBTOOL) --tag CXX --tag disable-shared \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ Index: libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc =================================================================== --- libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc (.../branches/gcc-4_7-branch) (wersja 194650) @@ -23,7 +23,7 @@ // . #include -#if defined(_GLIBCXX_HAVE_TLS) && defined(PIC) +#if defined(_GLIBCXX_HAVE_TLS) && defined(_GLIBCXX_SHARED) #define _GLIBCXX_ASYNC_ABI_COMPAT #endif @@ -40,7 +40,7 @@ // XXX GLIBCXX_ABI Deprecated // gcc-4.6.0 // export changes -#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \ +#if defined(_GLIBCXX_SYMVER_GNU) && defined(_GLIBCXX_SHARED) \ && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \ && defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT) @@ -57,7 +57,7 @@ // gcc-4.6.0 // export changes #if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1) -#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \ +#if defined(_GLIBCXX_SYMVER_GNU) && defined(_GLIBCXX_SHARED) \ && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \ && defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT) @@ -82,7 +82,7 @@ // export changes #if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1) \ && (ATOMIC_INT_LOCK_FREE > 1) -#if defined(_GLIBCXX_HAVE_TLS) && defined(PIC) +#if defined(_GLIBCXX_HAVE_TLS) && defined(_GLIBCXX_SHARED) namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION Index: libstdc++-v3/src/c++11/Makefile.in =================================================================== --- libstdc++-v3/src/c++11/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/src/c++11/Makefile.in (.../branches/gcc-4_7-branch) (wersja 194650) @@ -177,7 +177,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ -PIC_CXXFLAGS = @PIC_CXXFLAGS@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ @@ -225,7 +224,10 @@ glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@ glibcxx_POFILES = @glibcxx_POFILES@ glibcxx_builddir = @glibcxx_builddir@ +glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@ +glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@ glibcxx_localedir = @glibcxx_localedir@ +glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@ glibcxx_prefixdir = @glibcxx_prefixdir@ glibcxx_srcdir = @glibcxx_srcdir@ glibcxx_toolexecdir = @glibcxx_toolexecdir@ @@ -331,7 +333,7 @@ # as the occasion calls for it. AM_CXXFLAGS = \ -std=gnu++11 \ - $(PIC_CXXFLAGS) \ + $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \ $(XTEMPLATE_FLAGS) \ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) @@ -341,11 +343,7 @@ # Libtool notes -# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is -# last. (That way, things like -O2 passed down from the toplevel can -# be overridden by --enable-debug.) - -# 2) In general, libtool expects an argument such as `--tag=CXX' when +# 1) In general, libtool expects an argument such as `--tag=CXX' when # 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 @@ -357,8 +355,18 @@ # correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe # CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to # attempt to infer which configuration to use. -# We have to put --tag disable-shared after --tag CXX lest things -# CXX undo the affect of disable-shared. +# +# 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. + +# 2) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is +# last. (That way, things like -O2 passed down from the toplevel can +# be overridden by --enable-debug.) LTCXXCOMPILE = \ $(LIBTOOL) --tag CXX --tag disable-shared \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ Index: libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc =================================================================== --- libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc (.../branches/gcc-4_7-branch) (wersja 194650) @@ -30,7 +30,7 @@ // XXX GLIBCXX_ABI Deprecated // gcc-4.7.0 -#ifdef PIC +#ifdef _GLIBCXX_SHARED #define LOGSIZE 4 @@ -147,7 +147,7 @@ // In the future, GLIBCXX_ABI > 6 should remove all uses of // _GLIBCXX_*_SYMVER macros in this file. -#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \ +#if defined(_GLIBCXX_SYMVER_GNU) && defined(_GLIBCXX_SHARED) \ && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \ && defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT) Index: libstdc++-v3/src/c++11/thread.cc =================================================================== --- libstdc++-v3/src/c++11/thread.cc (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/src/c++11/thread.cc (.../branches/gcc-4_7-branch) (wersja 194650) @@ -1,6 +1,6 @@ // thread -*- C++ -*- -// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. +// Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -26,6 +26,7 @@ #include #include #include +#include #if defined(_GLIBCXX_USE_GET_NPROCS) # include @@ -72,6 +73,10 @@ { __t->_M_run(); } + __catch(const __cxxabiv1::__forced_unwind&) + { + __throw_exception_again; + } __catch(...) { std::terminate(); Index: libstdc++-v3/src/c++11/Makefile.am =================================================================== --- libstdc++-v3/src/c++11/Makefile.am (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/src/c++11/Makefile.am (.../branches/gcc-4_7-branch) (wersja 194650) @@ -68,7 +68,7 @@ # as the occasion calls for it. AM_CXXFLAGS = \ -std=gnu++11 \ - $(PIC_CXXFLAGS) \ + $(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \ $(XTEMPLATE_FLAGS) \ $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) @@ -77,11 +77,7 @@ # Libtool notes -# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is -# last. (That way, things like -O2 passed down from the toplevel can -# be overridden by --enable-debug.) - -# 2) In general, libtool expects an argument such as `--tag=CXX' when +# 1) In general, libtool expects an argument such as `--tag=CXX' when # 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 @@ -93,8 +89,18 @@ # correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe # CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to # attempt to infer which configuration to use. -# We have to put --tag disable-shared after --tag CXX lest things -# CXX undo the affect of disable-shared. +# +# 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. + +# 2) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is +# last. (That way, things like -O2 passed down from the toplevel can +# be overridden by --enable-debug.) LTCXXCOMPILE = \ $(LIBTOOL) --tag CXX --tag disable-shared \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ Index: libstdc++-v3/src/c++11/compatibility-c++0x.cc =================================================================== --- libstdc++-v3/src/c++11/compatibility-c++0x.cc (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/src/c++11/compatibility-c++0x.cc (.../branches/gcc-4_7-branch) (wersja 194650) @@ -30,7 +30,7 @@ # error "compatibility-c++0x.cc must be compiled with -std=gnu++0x" #endif -#ifdef PIC +#ifdef _GLIBCXX_SHARED namespace std _GLIBCXX_VISIBILITY(default) { Index: libstdc++-v3/configure.host =================================================================== --- libstdc++-v3/configure.host (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/configure.host (.../branches/gcc-4_7-branch) (wersja 194650) @@ -340,7 +340,7 @@ fi esac case "${host}" in - arm*-*-linux-*eabi) + arm*-*-linux-*eabi*) port_specific_symbol_files="\$(srcdir)/../config/os/gnu-linux/arm-eabi-extra.ver" ;; esac Index: libstdc++-v3/configure.ac =================================================================== --- libstdc++-v3/configure.ac (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/configure.ac (.../branches/gcc-4_7-branch) (wersja 194650) @@ -88,6 +88,7 @@ # up critical shell variables. GLIBCXX_CONFIGURE +# Libtool setup. if test "x${with_newlib}" != "xyes"; then AC_LIBTOOL_DLOPEN fi @@ -96,6 +97,38 @@ AC_SUBST(enable_shared) AC_SUBST(enable_static) +# libtool variables for C++ shared and position-independent compiles. +# +# Use glibcxx_lt_pic_flag to designate the automake variable +# used to encapsulate the default libtool approach to creating objects +# with position-independent code. Default: -prefer-pic. +# +# Use glibcxx_compiler_shared_flag to designate a compile-time flags for +# creating shared objects. Default: -D_GLIBCXX_SHARED. +# +# Use glibcxx_compiler_pic_flag to designate a compile-time flags for +# creating position-independent objects. This varies with the target +# hardware and operating system, but is often: -DPIC -fPIC. +if test "$enable_shared" = yes; then + glibcxx_lt_pic_flag="-prefer-pic" + glibcxx_compiler_pic_flag="$lt_prog_compiler_pic_CXX" + glibcxx_compiler_shared_flag="-D_GLIBCXX_SHARED" + +else + glibcxx_lt_pic_flag= + glibcxx_compiler_pic_flag= + glibcxx_compiler_shared_flag= +fi +AC_SUBST(glibcxx_lt_pic_flag) +AC_SUBST(glibcxx_compiler_pic_flag) +AC_SUBST(glibcxx_compiler_shared_flag) + +# Override the libtool's pic_flag and pic_mode. +# Do this step after AM_PROG_LIBTOOL, but before AC_OUTPUT. +# NB: this impacts --with-pic and --without-pic. +lt_prog_compiler_pic_CXX="$glibcxx_compiler_pic_flag $glibcxx_compiler_shared_flag" +pic_mode='default' + # Eliminate -lstdc++ addition to postdeps for cross compiles. postdeps_CXX=`echo " $postdeps_CXX " | sed 's, -lstdc++ ,,g'` @@ -421,19 +454,13 @@ GLIBCXX_EXPORT_INCLUDES GLIBCXX_EXPORT_FLAGS -if test "$enable_shared" = yes; then - PIC_CXXFLAGS="-prefer-pic" -else - PIC_CXXFLAGS= -fi -AC_SUBST(PIC_CXXFLAGS) - dnl In autoconf 2.5x, AC_OUTPUT is replaced by four AC_CONFIG_* macros, dnl which can all be called multiple times as needed, plus one (different) dnl AC_OUTPUT macro. This one lists the files to be created: AC_CONFIG_FILES(Makefile) AC_CONFIG_FILES([scripts/testsuite_flags],[chmod +x scripts/testsuite_flags]) AC_CONFIG_FILES([scripts/extract_symvers],[chmod +x scripts/extract_symvers]) +AC_CONFIG_FILES([doc/xsl/customization.xsl]) # Multilibs need MULTISUBDIR defined correctly in certain makefiles so # that multilib installs will end up installed in the correct place. Index: libstdc++-v3/doc/xml/manual/abi.xml =================================================================== --- libstdc++-v3/doc/xml/manual/abi.xml (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/doc/xml/manual/abi.xml (.../branches/gcc-4_7-branch) (wersja 194650) @@ -54,7 +54,7 @@ virtual functions, etc. These details are defined as the compiler Application Binary Interface, or ABI. The GNU C++ compiler uses an industry-standard C++ ABI starting with version 3. Details can be - found in the ABI + found in the ABI specification. @@ -729,7 +729,7 @@ the way the compiler deals with this class in by-value return statements or parameters: instead of passing instances of this class in registers, the compiler will be forced to use memory. See the -section on Function +section on Function Calling Conventions and APIs of the C++ ABI documentation for further details. @@ -1087,7 +1087,7 @@ <link xmlns:xlink="http://www.w3.org/1999/xlink" - xlink:href="http://www.codesourcery.com/public/cxx-abi"> + xlink:href="http://www.codesourcery.com/cxx-abi/"> C++ ABI Summary </link> Index: libstdc++-v3/doc/xml/manual/policy_data_structures_biblio.xml =================================================================== --- libstdc++-v3/doc/xml/manual/policy_data_structures_biblio.xml (.../tags/gcc_4_7_2_release) (wersja 0) +++ libstdc++-v3/doc/xml/manual/policy_data_structures_biblio.xml (.../branches/gcc-4_7-branch) (wersja 194650) @@ -0,0 +1,1452 @@ + + + + Bibliography + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/1997/N1075.pdf"> + STL Exception Handling Contract + </link> + + 1997 + + + + + Dave + + + Abrahams + + + + + + + ISO SC22/WG21 + + + + + + + + + Modern C++ Design: Generic Programming and Design Patterns Applied + + + 2001 + + + + + + Andrei + + + Alexandrescu + + + + + + + Addison-Wesley Publishing Company + + + + + + + + + MTF, Bit, and COMB: A Guide to Deterministic and Randomized + Algorithms for the List Update Problem + + + + + + + K. + + + Andrew + + + + + + + + D. + + + Gleich + + + + + + + + + + Why You Shouldn't Use set - and What You Should Use Instead + + + April, 2000 + + + + + + Matthew + + + Austern + + + + + + + C++ Report + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://www.open-std.org/JTC1/sc22/wg21/docs/papers/2001/n1326.html"> + A Proposal to Add Hashtables to the Standard Library + </link> + + + 2001 + + + + + + Matthew + + + Austern + + + + + + + ISO SC22/WG21 + + + + + + + + Segmented iterators and hierarchical algorithms + + + April, 1998 + + + + + + Matthew + + + Austern + + + + + + + Generic Programming + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="www.boost.org/doc/libs/release/libs/timer/"> + Boost Timer Library + </link> + + + + + + Beeman + + + Dawes + + + + + + + Boost + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="www.boost.org/doc/libs/release/libs/pool/"> + Boost Pool Library + </link> + + + + + + Stephen + + + Cleary + + + + + + + Boost + + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="www.boost.org/doc/libs/release/libs/type_traits/"> + Boost Type Traits Library + </link> + + + + + + Maddock + + + John + + + + + + + Stephen + + + Cleary + + + + + + + Boost + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="https://dl.acm.org/citation.cfm?id=313883"> + Worst-case efficient priority queues + </link> + + + + + + Gerth + + + Stolting Brodal + + + + + + + + + + Efficient C++ Programming Techniques + + + 1997 + + + + + + + D. + + + Bulka + + + + + + + D. + + + Mayhew + + + + + + + + Addison-Wesley Publishing Company + + + + + + + + Introduction to Algorithms, 2nd edition + + + 2001 + + + + + + T. H. + + + Cormen + + + + + + + + C. E. + + + Leiserson + + + + + + + + R. L. + + + Rivest + + + + + + + + C. + + + Stein + + + + + + + MIT Press + + + + + + + + Balls and bins: A study in negative dependence + + + 1998 + + + + + + D. + + + Dubashi + + + + + + + D. + + + Ranjan + + + + + + + + Random Structures and Algorithms 13 + + + + + + + + + Extendible hashing - a fast access method for dynamic files + + + 1979 + + + + + + + R. + + + Fagin + + + + + + + J. + + + Nievergelt + + + + + + + N. + + + Pippenger + + + + + + + H. R. + + + Strong + + + + + + + + ACM Trans. Database Syst. 4 + + + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://cristal.inria.fr/~frisch/icfp06_contest/advtr/applyOmatic/ptset.ml"> + Ptset: Sets of integers implemented as Patricia trees + </link> + + + + 2000 + + + + + + Jean-Christophe + + + Filliatre + + + + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://www.cs.cmu.edu/~sleator/papers/pairing-heaps.pdf"> + The pairing heap: a new form of self-adjusting heap + </link> + + + 1986 + + + + + + M. L. + + + Fredman + + + + + + + R. + + + Sedgewick + + + + + + + D. D. + + + Sleator + + + + + + + R. E. + + + Tarjan + + + + + + + + + + + Design Patterns - Elements of Reusable Object-Oriented Software + + + 1995 + + + + + + E. + + + Gamma + + + + + + + R. + + + Helm + + + + + + + R. + + + Johnson + + + + + + + J. + + + Vlissides + + + + + + + Addison-Wesley Publishing Company + + + + + + + + + Order-preserving key transformations + + + 1986 + + + + + + A. K. + + + Garg + + + + + + + C. C. + + + Gotlieb + + + + + + + + Trans. Database Syst. 11 + + + + + + + + Making a real hash of things + + + May 2002 + + + + + + J. + + + Hyslop + + + + + + + Herb + + + Sutter + + + + + + + + C++ Report + + + + + + + + + The C++ Standard Library - A Tutorial and Reference + + + 2001 + + + + + + N. M. + + + Jossutis + + + + + + Addison-Wesley Publishing Company + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://www.cs.princeton.edu/research/techreps/TR-597-99"> + New Heap Data Structures + </link> + + + 1999 + + + + + + + Haim + + + Kaplan + + + + + + + Robert E. + + + Tarjan + + + + + + + + + + + Are Set Iterators Mutable or Immutable? + + + October 2000 + + + + + + Angelika + + + Langer + + + + + + + + Klaus + + + Kleft + + + + + + + + C/C++ Users Jornal + + + + + + + + The Art of Computer Programming - Sorting and Searching + + + 1998 + + + + + + D. E. + + + Knuth + + + + + + + Addison-Wesley Publishing Company + + + + + + + + Data abstraction and hierarchy + + + May 1998 + + + + + + B. + + + Liskov + + + + + + + SIGPLAN Notices 23 + + + + + + + + Linear hashing: A new tool for file and table addressing + + + June 1980 + + + + + + W. + + + Litwin + + + + + + + Proceedings of International Conference on Very Large Data Bases + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://magic.aladdin.cs.cmu.edu/2005/08/01/deamortization-part-2-binomial-heaps"> + Deamortization - Part 2: Binomial Heaps + </link> + + + 2005 + + + + + + Maverik + + + Woo + + + + + + + + + More Effective C++: 35 New Ways to Improve Your Programs and Designs + + + 1996 + + + + + + Scott + + + Meyers + + + + + + + Addison-Wesley Publishing Company + + + + + + + + How Non-Member Functions Improve Encapsulation + + + 2000 + + + + + + Scott + + + Meyers + + + + + + + C/C++ Users Journal + + + + + + + + Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library + + + 2001 + + + + + + Scott + + + Meyers + + + + + + + Addison-Wesley Publishing Company + + + + + + + + Class Template, Member Template - or Both? + + + 2003 + + + + + + Scott + + + Meyers + + + + + + + C/C++ Users Journal + + + + + + + + Randomized Algorithms + + + 2003 + + + + + + R. + + + Motwani + + + + + + + P. + + + Raghavan + + + + + + + Cambridge University Press + + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="https://www.microsoft.com/com/"> + COM: Component Model Object Technologies + </link> + + + + Microsoft + + + + + + + + Rationale for Adding Hash Tables to the C++ Standard Template Library + + + 1995 + + + + + + David R. + + + Musser + + + + + + + + + + STL Tutorial and Reference Guide + + + 1996 + + + + + + + David R. + + + Musser + + + + + + + A. + + + Saini + + + + + + + Addison-Wesley Publishing Company + + + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://www.dogma.net/markn/articles/pq_stl/priority.htm">Priority Queues and the STL + </link> + + + January 1996 + + + + + + Mark + + + Nelson + + + + + + + Dr. Dobbs Journal + + + + + + + + + Fast mergeable integer maps + + + September 1998 + + + + + + C. + + + Okasaki + + + + + + + A. + + + Gill + + + + + + + In Workshop on ML + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://www.sgi.com/tech/stl/"> + Standard Template Library Programmer's Guide + </link> + + + + + Matt + + + Austern + + + + + + + SGI + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/select.html"> + select + </link> + + + + + + + + Amortized Efficiency of List Update Problems + + + 1984 + + + + + + D. D. + + + Sleator + + + + + + + + R. E. + + + Tarjan + + + + + + + + ACM Symposium on Theory of Computing + + + + + + + + Self-Adjusting Binary Search Trees + + + 1985 + + + + + + + D. D. + + + Sleator + + + + + + + + R. E. + + + Tarjan + + + + + + + + ACM Symposium on Theory of Computing + + + + + + + + The Standard Template Library + + + 1984 + + + + + + A. A. + + + Stepanov + + + + + + + M. + + + Lee + + + + + + + + + + The C++ Programming Langugage + + + 1997 + + + + + + Bjarne + + + Stroustrup + + + + + + + Addison-Wesley Publishing Company + + + + + + + + C++ Templates: The Complete Guide + + + 2002 + + + + + + D. + + + Vandevoorde + + + + + + + + N. M. + + + Josuttis + + + + + + + Addison-Wesley Publishing Company + + + + + + + + + <link xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href="http://myweb.wvnet.edu/~gsa00121/books/amongdead30.zip"> + Thirty Years Among the Dead + </link> + + + 1996 + + + + + + C. A. + + + Wickland + + + + + + + National Psychological Institute + + + + + Index: libstdc++-v3/doc/xml/manual/build_hacking.xml =================================================================== --- libstdc++-v3/doc/xml/manual/build_hacking.xml (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/doc/xml/manual/build_hacking.xml (.../branches/gcc-4_7-branch) (wersja 194650) @@ -8,9 +8,15 @@ C++ - BUILD_HACKING + build + configure + + + hacking + + version @@ -38,9 +44,52 @@ -
Overview: What Comes from Where +
+Overview +
+General Process + + The configure process begins the act of building libstdc++, and is + started via: + + + + +configure + + + + +The configure file is a script generated (via +autoconf) from the file +configure.ac. + + + + + After the configure process is complete, + + + + +make all + + + + +in the build directory starts the build process. The all target comes from the Makefile file, which is generated via configure from the Makefile.in file, which is in turn generated (via +automake) from the file +Makefile.am. + + +
+ + +
What Comes from Where + +
Configure and Build File Dependencies @@ -57,21 +106,21 @@
- Regenerate all generated files by using the command sequence - "autoreconf" at the top level of the libstdc++ source - directory. The following will also work, but is much more complex: - "aclocal-1.11 && autoconf-2.64 && - autoheader-2.64 && automake-1.11" The version - numbers may be absent entirely or otherwise vary depending on - the - current requirements and your vendor's choice of - installation names. + Regenerate all generated files by using the command + autoreconf at the top level of the libstdc++ source + directory.
-
Storing Information in non-AC files (like configure.host) +
+
+Configure + +
Storing Information in non-AC files (like configure.host) + + Until that glorious day when we can use AC_TRY_LINK with a cross-compiler, we have to hardcode the results of what the tests @@ -101,7 +150,7 @@
-
Coding and Commenting Conventions +
Coding and Commenting Conventions @@ -126,7 +175,7 @@
-
The acinclude.m4 layout +
The acinclude.m4 layout The nice thing about acinclude.m4/aclocal.m4 is that macros aren't @@ -217,19 +266,19 @@
-
<constant>GLIBCXX_ENABLE</constant>, the <literal>--enable</literal> maker +
<constant>GLIBCXX_ENABLE</constant>, the <literal>--enable</literal> maker - All the GLIBCXX_ENABLE_FOO macros use a common helper, - GLIBCXX_ENABLE. (You don't have to use it, but it's easy.) The - helper does two things for us: + All the GLIBCXX_ENABLE_FOO macros use a common + helper, GLIBCXX_ENABLE. (You don't have to use + it, but it's easy.) The helper does two things for us: - Builds the call to the AC_ARG_ENABLE macro, with --help text + Builds the call to the AC_ARG_ENABLE macro, with --help text properly quoted and aligned. (Death to changequote!) @@ -237,7 +286,7 @@ Checks the result against a list of allowed possibilities, and signals a fatal error if there's no match. This means that the - rest of the GLIBCXX_ENABLE_FOO macro doesn't need to test for + rest of the GLIBCXX_ENABLE_FOO macro doesn't need to test for strange arguments, nor do we need to protect against empty/whitespace strings with the "x$foo" = "xbar" idiom. @@ -284,13 +333,13 @@ not pass --enable/--disable. It should be one of the permitted values passed later. Examples: [yes], or [bar], or [$1] (which passes the - argument given to the GLIBCXX_ENABLE_FOO macro as the - default). + argument given to the GLIBCXX_ENABLE_FOO macro + as the default). For cases where we need to probe for particular models of things, it is useful to have an undocumented "auto" value here (see - GLIBCXX_ENABLE_CLOCALE for an example). + GLIBCXX_ENABLE_CLOCALE for an example). @@ -351,5 +400,86 @@
+
+
Make + + + The build process has to make all of object files needed for + static or shared libraries, but first it has to generate some + include files. The general order is as follows: + + + + + + make include files, make pre-compiled headers + + + + + make libsupc++ + + + Generates a libtool convenience library, + libsupc++convenience with language-support + routines. Also generates a freestanding static library, + libsupc++.a. + + + + + make src + + + Generates two convenience libraries, one for C++98 and one for + C++11, various compability files for shared and static + libraries, and then collects all the generated bits and creates + the final libstdc++ libraries. + + + + + make src/c++98 + + + Generates a libtool convenience library, + libc++98convenience with language-support + routines. Uses the -std=gnu++98 dialect. + + + + + make src/c++11 + + + Generates a libtool convenience library, + libc++11convenience with language-support + routines. Uses the -std=gnu++11 dialect. + + + + + make src + + + Generates needed compatibility objects for shared and static + libraries. Shared-only code is seggregated at compile-time via + the macro _GLIBCXX_SHARED. + + + + Then, collects all the generated convenience libraries, adds in + any required compatibility objects, and creates the final shared + and static libraries: libstdc++.so and + libstdc++.a. + + + + + + + +
+
Index: libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml =================================================================== --- libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml (.../branches/gcc-4_7-branch) (wersja 194650) @@ -35,7 +35,8 @@ several sources, each checking only some containers. For more details, consult the files in - testsuite/ext/pb_ds/regression. + testsuite/ext/pb_ds/regression. +
@@ -68,16 +69,12 @@ the number of values inserted. It uses the test file: - - performance/ext/pb_ds/text_find_timing_test.cc - + performance/ext/pb_ds/text_find_timing_test.cc And uses the data file: - - filethirty_years_among_the_dead_preproc.txt - + filethirty_years_among_the_dead_preproc.txt The test checks the effect of different range-hashing @@ -398,9 +395,7 @@ It uses the test file: - - performance/ext/pb_ds/random_int_find_timing.cc - + performance/ext/pb_ds/random_int_find_timing.cc The test checks the effect of different underlying @@ -917,9 +912,7 @@ It uses the test file: - - performance/ext/pb_ds/random_int_subscript_find_timing.cc - + performance/ext/pb_ds/random_int_subscript_find_timing.cc The test checks the effect of different underlying @@ -1416,9 +1409,7 @@ It uses the test file: - - performance/ext/pb_ds/random_int_subscript_insert_timing.cc - + performance/ext/pb_ds/random_int_subscript_insert_timing.cc The test checks the effect of different underlying @@ -1955,9 +1946,7 @@ It uses the test file: - - performance/ext/pb_ds/hash_zlob_random_int_find_timing.cc - + performance/ext/pb_ds/hash_zlob_random_int_find_timing.cc The test checks the effect of different range-hashing @@ -2254,9 +2243,7 @@ It uses the test file: - - performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc - + performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc @@ -2536,9 +2523,7 @@ It uses the test file: - - performance/ext/pb_ds/tree_text_insert_timing.cc - + performance/ext/pb_ds/tree_text_insert_timing.cc @@ -2912,9 +2897,7 @@ It uses the test file: - - performance/ext/pb_ds/text_find_timing.cc - + performance/ext/pb_ds/text_find_timing.cc @@ -3185,9 +3168,7 @@ It uses the test file: - - performance/ext/pb_ds/tree_text_lor_find_timing.cc - + performance/ext/pb_ds/tree_text_lor_find_timing.cc The test checks the effect of different underlying @@ -3424,9 +3405,7 @@ It uses the test file: - - performance/ext/pb_ds/tree_split_join_timing.cc - + performance/ext/pb_ds/tree_split_join_timing.cc @@ -3688,9 +3667,7 @@ It uses the test file: - - performance/ext/pb_ds/tree_order_statistics_timing.cc - + performance/ext/pb_ds/tree_order_statistics_timing.cc The test checks the performance difference of policies based @@ -3885,9 +3862,7 @@ It uses the test file: - - performance/ext/pb_ds/multimap_text_find_timing_small.cc - + performance/ext/pb_ds/multimap_text_find_timing_small.cc The test checks the find-time scalability of different @@ -4350,9 +4325,7 @@ It uses the test file: - - performance/ext/pb_ds/multimap_text_find_timing_large.cc - + performance/ext/pb_ds/multimap_text_find_timing_large.cc The test checks the find-time scalability of different @@ -4819,9 +4792,7 @@ It uses the test file: - - performance/ext/pb_ds/multimap_text_insert_timing_small.cc - + performance/ext/pb_ds/multimap_text_insert_timing_small.cc The test checks the insert-time scalability of different @@ -5288,9 +5259,7 @@ It uses the test file: - - performance/ext/pb_ds/multimap_text_insert_timing_large.cc - + performance/ext/pb_ds/multimap_text_insert_timing_large.cc The test checks the insert-time scalability of different @@ -5751,9 +5720,7 @@ It uses the test file: - - performance/ext/pb_ds/multimap_text_insert_mem_usage_small.cc - + performance/ext/pb_ds/multimap_text_insert_mem_usage_small.cc The test checks the memory scalability of different @@ -6213,9 +6180,7 @@ It uses the test file: - - performance/ext/pb_ds/multimap_text_insert_mem_usage_large.cc - + performance/ext/pb_ds/multimap_text_insert_mem_usage_large.cc The test checks the memory scalability of different @@ -6675,9 +6640,7 @@ It uses the test file: - - performance/ext/pb_ds/priority_queue_text_push_timing.cc - + performance/ext/pb_ds/priority_queue_text_push_timing.cc The test checks the effect of different underlying data @@ -7062,9 +7025,7 @@ It uses the test file: - - performance/ext/pb_ds/priority_queue_text_push_pop_timing.cc - + performance/ext/pb_ds/priority_queue_text_push_pop_timing.cc The test checks the effect of different underlying data @@ -7429,9 +7390,7 @@ It uses the test file: - - performance/ext/pb_ds/priority_queue_random_int_push_timing.cc - + performance/ext/pb_ds/priority_queue_random_int_push_timing.cc The test checks the effect of different underlying data @@ -7785,9 +7744,7 @@ It uses the test file: - - performance/ext/pb_ds/priority_queue_random_int_push_pop_timing.cc - + performance/ext/pb_ds/priority_queue_random_int_push_pop_timing.cc The test checks the effect of different underlying data @@ -8050,9 +8007,7 @@ number of values pushed to the container. It uses the test file: - - performance/ext/pb_ds/priority_queue_text_pop_mem_usage.cc - + performance/ext/pb_ds/priority_queue_text_pop_mem_usage.cc The test checks the effect of different underlying data @@ -8302,9 +8257,7 @@ the average time as a function of the number of values. It uses the test file: - - performance/ext/pb_ds/priority_queue_text_join_timing.cc - + performance/ext/pb_ds/priority_queue_text_join_timing.cc The test checks the effect of different underlying data @@ -8554,9 +8507,7 @@ It uses the test file: - - performance/ext/pb_ds/priority_queue_text_modify_up_timing.cc - + performance/ext/pb_ds/priority_queue_text_modify_up_timing.cc The test checks the effect of different underlying data @@ -8920,9 +8871,7 @@ It uses the test file: - - performance/ext/pb_ds/priority_queue_text_modify_down_timing.cc - + performance/ext/pb_ds/priority_queue_text_modify_down_timing.cc The main purpose of this test is to contrast Priority Queue @@ -9771,4 +9720,4 @@
-
\ Brak znaku nowej linii na końcu pliku +
Index: libstdc++-v3/doc/xml/manual/policy_data_structures.xml =================================================================== --- libstdc++-v3/doc/xml/manual/policy_data_structures.xml (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/doc/xml/manual/policy_data_structures.xml (.../branches/gcc-4_7-branch) (wersja 194650) @@ -4996,7 +4996,7 @@ + fileref="../images/pbds_priority_queue_tag_hierarchy.png"/> Priority-Queue Data-Structure Tags. @@ -5073,7 +5073,7 @@
Acknowledgments - + Written by Ami Tavory and Vladimir Dreizin (IBM Haifa Research @@ -5123,1461 +5123,8 @@ include tries.
- - - - - Bibliography - - - + + - - - - <link xmlns:xlink="http://www.w3.org/1999/xlink" - xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/1997/N1075.pdf"> - STL Exception Handling Contract - </link> - - 1997 - - - - - Dave - - - Abrahams - - - - - - - ISO SC22/WG21 - - - - - - - - - Modern C++ Design: Generic Programming and Design Patterns Applied - - - 2001 - - - - - - Andrei - - - Alexandrescu - - - - - - - Addison-Wesley Publishing Company - - - - - - - - - MTF, Bit, and COMB: A Guide to Deterministic and Randomized - Algorithms for the List Update Problem - - - - - - - K. - - - Andrew - - - - - - - - D. - - - Gleich - - - - - - - - - - Why You Shouldn't Use set - and What You Should Use Instead - - - April, 2000 - - - - - - Matthew - - - Austern - - - - - - - C++ Report - - - - - - - - <link xmlns:xlink="http://www.w3.org/1999/xlink" - xlink:href="http://www.open-std.org/JTC1/sc22/wg21/docs/papers/2001/n1326.html"> - A Proposal to Add Hashtables to the Standard Library - </link> - - - 2001 - - - - - - Matthew - - - Austern - - - - - - - ISO SC22/WG21 - - - - - - - - Segmented iterators and hierarchical algorithms - - - April, 1998 - - - - - - Matthew - - - Austern - - - - - - - Generic Programming - - - - - - - - <link xmlns:xlink="http://www.w3.org/1999/xlink" - xlink:href="www.boost.org/doc/libs/release/libs/timer/"> - Boost Timer Library - </link> - - - - - - Beeman - - - Dawes - - - - - - - Boost - - - - - - - - <link xmlns:xlink="http://www.w3.org/1999/xlink" - xlink:href="www.boost.org/doc/libs/release/libs/pool/"> - Boost Pool Library - </link> - - - - - - Stephen - - - Cleary - - - - - - - Boost - - - - - - - - - <link xmlns:xlink="http://www.w3.org/1999/xlink" - xlink:href="www.boost.org/doc/libs/release/libs/type_traits/"> - Boost Type Traits Library - </link> - - - - - - Maddock - - - John - - - - - - - Stephen - - - Cleary - - - - - - - Boost - - - - - - - - <link xmlns:xlink="http://www.w3.org/1999/xlink" - xlink:href="http://portal.acm.org/citation.cfm?id=313883"> - Worst-case efficient priority queues - </link> - - - - - - Gerth - - - Stolting Brodal - - - - - - - - - - Efficient C++ Programming Techniques - - - 1997 - - - - - - - D. - - - Bulka - - - - - - - D. - - - Mayhew - - - - - - - - Addison-Wesley Publishing Company - - - - - - - - Introduction to Algorithms, 2nd edition - - - 2001 - - - - - - T. H. - - - Cormen - - - - - - - - C. E. - - - Leiserson - - - - - - - - R. L. - - - Rivest - - - - - - - - C. - - - Stein - - - - - - - MIT Press - - - - - - - - Balls and bins: A study in negative dependence - - - 1998 - - - - - - D. - - - Dubashi - - - - - - - D. - - - Ranjan - - - - - - - - Random Structures and Algorithms 13 - - - - - - - - - Extendible hashing - a fast access method for dynamic files - - - 1979 - - - - - - - R. - - - Fagin - - - - - - - J. - - - Nievergelt - - - - - - - N. - - - Pippenger - - - - - - - H. R. - - - Strong - - - - - - - - ACM Trans. Database Syst. 4 - - - - - - - - - - <link xmlns:xlink="http://www.w3.org/1999/xlink" - xlink:href="http://cristal.inria.fr/~frisch/icfp06_contest/advtr/applyOmatic/ptset.ml"> - Ptset: Sets of integers implemented as Patricia trees - </link> - - - - 2000 - - - - - - Jean-Christophe - - - Filliatre - - - - - - - - - - - <link xmlns:xlink="http://www.w3.org/1999/xlink" - xlink:href="http://www.cs.cmu.edu/~sleator/papers/pairing-heaps.pdf"> - The pairing heap: a new form of self-adjusting heap - </link> - - - 1986 - - - - - - M. L. - - - Fredman - - - - - - - R. - - - Sedgewick - - - - - - - D. D. - - - Sleator - - - - - - - R. E. - - - Tarjan - - - - - - - - - - - Design Patterns - Elements of Reusable Object-Oriented Software - - - 1995 - - - - - - E. - - - Gamma - - - - - - - R. - - - Helm - - - - - - - R. - - - Johnson - - - - - - - J. - - - Vlissides - - - - - - - Addison-Wesley Publishing Company - - - - - - - - - Order-preserving key transformations - - - 1986 - - - - - - A. K. - - - Garg - - - - - - - C. C. - - - Gotlieb - - - - - - - - Trans. Database Syst. 11 - - - - - - - - Making a real hash of things - - - May 2002 - - - - - - J. - - - Hyslop - - - - - - - Herb - - - Sutter - - - - - - - - C++ Report - - - - - - - - - The C++ Standard Library - A Tutorial and Reference - - - 2001 - - - - - - N. M. - - - Jossutis - - - - - - Addison-Wesley Publishing Company - - - - - - - - <link xmlns:xlink="http://www.w3.org/1999/xlink" - xlink:href="http://www.cs.princeton.edu/research/techreps/TR-597-99"> - New Heap Data Structures - </link> - - - 1999 - - - - - - - Haim - - - Kaplan - - - - - - - Robert E. - - - Tarjan - - - - - - - - - - - Are Set Iterators Mutable or Immutable? - - - October 2000 - - - - - - Angelika - - - Langer - - - - - - - - Klaus - - - Kleft - - - - - - - - C/C++ Users Jornal - - - - - - - - The Art of Computer Programming - Sorting and Searching - - - 1998 - - - - - - D. E. - - - Knuth - - - - - - - Addison-Wesley Publishing Company - - - - - - - - Data abstraction and hierarchy - - - May 1998 - - - - - - B. - - - Liskov - - - - - - - SIGPLAN Notices 23 - - - - - - - - Linear hashing: A new tool for file and table addressing - - - June 1980 - - - - - - W. - - - Litwin - - - - - - - Proceedings of International Conference on Very Large Data Bases - - - - - - - - <link xmlns:xlink="http://www.w3.org/1999/xlink" - xlink:href="http://magic.aladdin.cs.cmu.edu/2005/08/01/deamortization-part-2-binomial-heaps"> - Deamortization - Part 2: Binomial Heaps - </link> - - - 2005 - - - - - - Maverik - - - Woo - - - - - - - - - More Effective C++: 35 New Ways to Improve Your Programs and Designs - - - 1996 - - - - - - Scott - - - Meyers - - - - - - - Addison-Wesley Publishing Company - - - - - - - - How Non-Member Functions Improve Encapsulation - - - 2000 - - - - - - Scott - - - Meyers - - - - - - - C/C++ Users Journal - - - - - - - - Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library - - - 2001 - - - - - - Scott - - - Meyers - - - - - - - Addison-Wesley Publishing Company - - - - - - - - Class Template, Member Template - or Both? - - - 2003 - - - - - - Scott - - - Meyers - - - - - - - C/C++ Users Journal - - - - - - - - Randomized Algorithms - - - 2003 - - - - - - R. - - - Motwani - - - - - - - P. - - - Raghavan - - - - - - - Cambridge University Press - - - - - - - - - <link xmlns:xlink="http://www.w3.org/1999/xlink" - xlink:href="http://www.microsoft.com/com"> - COM: Component Model Object Technologies - </link> - - - - Microsoft - - - - - - - - Rationale for Adding Hash Tables to the C++ Standard Template Library - - - 1995 - - - - - - David R. - - - Musser - - - - - - - - - - STL Tutorial and Reference Guide - - - 1996 - - - - - - - David R. - - - Musser - - - - - - - A. - - - Saini - - - - - - - Addison-Wesley Publishing Company - - - - - - - - - - <link xmlns:xlink="http://www.w3.org/1999/xlink" - xlink:href="http://www.dogma.net/markn/articles/pq_stl/priority.htm">Priority Queues and the STL - </link> - - - January 1996 - - - - - - Mark - - - Nelson - - - - - - - Dr. Dobbs Journal - - - - - - - - - Fast mergeable integer maps - - - September 1998 - - - - - - C. - - - Okasaki - - - - - - - A. - - - Gill - - - - - - - In Workshop on ML - - - - - - - - <link xmlns:xlink="http://www.w3.org/1999/xlink" - xlink:href="http://www.sgi.com/tech/stl"> - Standard Template Library Programmer's Guide - </link> - - - - - Matt - - - Austern - - - - - - - SGI - - - - - - - - <link xmlns:xlink="http://www.w3.org/1999/xlink" - xlink:href="http://www.scit.wlv.ac.uk/cgi-bin/mansec?3C+select"> - select - </link> - - - - - - - - Amortized Efficiency of List Update Problems - - - 1984 - - - - - - D. D. - - - Sleator - - - - - - - - R. E. - - - Tarjan - - - - - - - - ACM Symposium on Theory of Computing - - - - - - - - Self-Adjusting Binary Search Trees - - - 1985 - - - - - - - D. D. - - - Sleator - - - - - - - - R. E. - - - Tarjan - - - - - - - - ACM Symposium on Theory of Computing - - - - - - - - The Standard Template Library - - - 1984 - - - - - - A. A. - - - Stepanov - - - - - - - M. - - - Lee - - - - - - - - - - The C++ Programming Langugage - - - 1997 - - - - - - Bjarne - - - Stroustrup - - - - - - - Addison-Wesley Publishing Company - - - - - - - - C++ Templates: The Complete Guide - - - 2002 - - - - - - D. - - - Vandevoorde - - - - - - - - N. M. - - - Josuttis - - - - - - - Addison-Wesley Publishing Company - - - - - - - - - <link xmlns:xlink="http://www.w3.org/1999/xlink" - xlink:href="http://myweb.wvnet.edu/~gsa00121/books/amongdead30.zip"> - Thirty Years Among the Dead - </link> - - - 1996 - - - - - - C. A. - - - Wickland - - - - - - - National Psychological Institute - - - - - - - Index: libstdc++-v3/doc/xml/manual/documentation_hacking.xml =================================================================== --- libstdc++-v3/doc/xml/manual/documentation_hacking.xml (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/doc/xml/manual/documentation_hacking.xml (.../branches/gcc-4_7-branch) (wersja 194650) @@ -102,14 +102,10 @@ in the following directories: - - doc/libstdc++/libstdc++-api.html - + doc/libstdc++/libstdc++-api.html - - doc/libstdc++/libstdc++-manual.html - + doc/libstdc++/libstdc++-manual.html @@ -346,6 +342,76 @@ +
+ Debugging Generation + + + Sometimes, mis-configuration of the pre-requisite tools can + lead to errors when attempting to build the + documentation. Here are some of the obvious errors, and ways + to fix some common issues that may appear quite cryptic. + + + + First, if using a rule like make pdf, try to + narrow down the scope of the error to either docbook + (make doc-pdf-docbook) or doxygen (make + doc-pdf-doxygen). + + + Working on the doxygen path only, closely examine the + contents of the following build directory: + build/target/libstdc++-v3/doc/doxygen/latex. + Pay attention to three files enclosed within, annotated as follows. + + + + + + refman.tex + + + + The actual latex file, or partial latex file. This is generated + via doxygen, and is the LaTeX version of the + Doxygen XML file libstdc++-api.xml. Go to a specific + line, and look at the genrated LaTeX, and try to deduce what + markup in libstdc++-api.xml is causing it. + + + + + + refman.out + + + + A log of the compilation of the converted LaTeX form to pdf. This + is a linear list, from the beginning of the + refman.tex file: the last entry of this file + should be the end of the LaTeX file. If it is truncated, then you + know that the last entry is the last part of the generated LaTeX + source file that is valid. Often this file contains an error with + a specific line number of refman.tex that is + incorrect, or will have clues at the end of the file with the dump + of the memory usage of LaTeX. + + + + + + If the error at hand is not obvious after examination, a + fall-back strategy is to start commenting out the doxygen + input sources, which can be found in + doc/doxygen/user.cfg.in, look for the + INPUT tag. Start by commenting out whole + directories of header files, until the offending header is + identified. Then, read the latex log files to try and find + surround text, and look for that in the offending header. + + +
+
Markup @@ -742,6 +808,95 @@
+
+ Debugging Generation + + + Sometimes, mis-configuration of the pre-requisite tools can + lead to errors when attempting to build the + documentation. Here are some of the obvious errors, and ways + to fix some common issues that may appear quite cryptic. + + + + First, if using a rule like make pdf, try to + narrow down the scope of the error to either docbook + (make doc-pdf-docbook) or doxygen (make + doc-pdf-doxygen). + + + + Working on the docbook path only, closely examine the + contents of the following build directory: + build/target/libstdc++-v3/doc/docbook/latex. + Pay attention to three files enclosed within, annotated as follows. + + + + + + + spine.tex + + + + The actual latex file, or partial latex file. This is generated + via dblatex, and is the LaTeX version of the + DocBook XML file spine.xml. Go to a specific + line, and look at the genrated LaTeX, and try to deduce what + markup in spine.xml is causing it. + + + + + + spine.out + + + + A log of the conversion from the XML form to the LaTeX form. This + is a linear list, from the beginning of the + spine.xml file: the last entry of this file + should be the end of the DocBook file. If it is truncated, then + you know that the last entry is the last part of the XML source + file that is valid. The error is after this point. + + + + + + + spine.log + + + + A log of the compilation of the converted LaTeX form to pdf. This + is a linear list, from the beginning of the + spine.tex file: the last entry of this file + should be the end of the LaTeX file. If it is truncated, then you + know that the last entry is the last part of the generated LaTeX + source file that is valid. Often this file contains an error with + a specific line number of spine.tex that is + incorrect. + + + + + + + If the error at hand is not obvious after examination, or if one + encounters the inscruitable Incomplete + \ifmmode error, a fall-back strategy is to start + commenting out parts of the XML document (regardless of what + this does to over-all document validity). Start by + commenting out each of the largest parts of the + spine.xml file, section by section, + until the offending section is identified. + + + +
+
Editing and Validation Index: libstdc++-v3/doc/xml/manual/spine.xml =================================================================== --- libstdc++-v3/doc/xml/manual/spine.xml (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/doc/xml/manual/spine.xml (.../branches/gcc-4_7-branch) (wersja 194650) @@ -19,6 +19,7 @@ 2009 2010 2011 + 2012 FSF Index: libstdc++-v3/doc/Makefile.in =================================================================== --- libstdc++-v3/doc/Makefile.in (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/doc/Makefile.in (.../branches/gcc-4_7-branch) (wersja 194650) @@ -160,7 +160,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PDFLATEX = @PDFLATEX@ -PIC_CXXFLAGS = @PIC_CXXFLAGS@ RANLIB = @RANLIB@ SECTION_FLAGS = @SECTION_FLAGS@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ @@ -210,7 +209,10 @@ glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@ glibcxx_POFILES = @glibcxx_POFILES@ glibcxx_builddir = @glibcxx_builddir@ +glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@ +glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@ glibcxx_localedir = @glibcxx_localedir@ +glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@ glibcxx_prefixdir = @glibcxx_prefixdir@ glibcxx_srcdir = @glibcxx_srcdir@ glibcxx_toolexecdir = @glibcxx_toolexecdir@ @@ -386,6 +388,7 @@ ${xml_dir}/manual/numerics.xml \ ${xml_dir}/manual/parallel_mode.xml \ ${xml_dir}/manual/policy_data_structures.xml \ + ${xml_dir}/manual/policy_data_structures_biblio.xml \ ${xml_dir}/manual/prerequisites.xml \ ${xml_dir}/manual/profile_mode.xml \ ${xml_dir}/manual/shared_ptr.xml \ @@ -517,27 +520,30 @@ #XSL_STYLE_DIR = /usr/share/xml/docbook/stylesheet/docbook-xsl-ns #XSL_STYLE_DIR = /usr/share/sgml/docbook/xsl-ns-stylesheets XSL_FO_STYLE = $(XSL_STYLE_DIR)/fo/docbook.xsl -XSL_HTML_STYLE = $(XSL_STYLE_DIR)/xhtml-1_1/chunk.xsl -XSL_HTML_SINGLE_STYLE = $(XSL_STYLE_DIR)/xhtml-1_1/docbook.xsl +XSL_HTML_STYLE = $(XSL_STYLE_DIR)/xhtml/chunk.xsl +XSL_HTML_SINGLE_STYLE = $(XSL_STYLE_DIR)/html/docbook.xsl XSL_EPUB_STYLE = $(XSL_STYLE_DIR)/epub3/chunk.xsl -LINT_FLAGS = --debug --xinclude --noent --noblanks --noout -SCHEMA_FLAGS = http://www.docbook.org/xml/5.0/dtd/docbook.dtd -#SCHEMA_FLAGS = --nonet /usr/share/xml/docbook5/schema/dtd/5.0/docbook.dtd -XMLLINT_VALID_FLAGS = $(LINT_FLAGS) --dtdvalid $(SCHEMA_FLAGS) -XMLLINT_FLAGS = --xinclude --nsclean --c14n --noent --noblanks --nocdata +XSL_LOCAL_STYLE = ${glibcxx_builddir}/doc/xsl/customization.xsl # XML, all one page # Some info on canonicalization # http://www.mail-archive.com/help-texinfo@gnu.org/msg00864.html manual_xml = ${docbook_outdir}/xml/libstdc++-manual-single.xml set_xml = ${docbook_outdir}/xml/libstdc++-set-single.xml +LINT_FLAGS = --debug --xinclude --noent --noblanks --noout +SCHEMA_FLAGS = --dtdvalid http://www.docbook.org/xml/5.0/dtd/docbook.dtd +SCHEMA_RNG_FLAGS = --relaxng http://www.docbook.org/xml/5.0/rng/docbook.rng +#SCHEMA_FLAGS = --nonet --dtdvalid /usr/share/xxx/dtd/5.0/docbook.dtd +XMLLINT_VALID_FLAGS = $(LINT_FLAGS) $(SCHEMA_FLAGS) +XMLLINT_FLAGS = --xinclude --nsclean --c14n --noent --noblanks --nocdata # HTML, all one page +# NB: Have to generate customization XSL for UTF-8 output. manual_html = ${docbook_outdir}/html/libstdc++-manual-single.html # PDF, via dblatex manual_pdf = ${docbook_outdir}/pdf/libstdc++-manual.pdf -DBLATEX_FLAGS = --dump --verbose --pdf +DBLATEX_FLAGS = --verbose --pdf --dump --debug --tmpdir=${docbook_outdir}/latex # TEXINFO, via docbook2X # NB: Both experimental and tempermental @@ -887,14 +893,14 @@ ${docbook_outdir}/pdf: mkdir -p ${docbook_outdir}/pdf +${docbook_outdir}/latex: + mkdir -p ${docbook_outdir}/latex + ${docbook_outdir}/texinfo: mkdir -p ${docbook_outdir}/texinfo ${docbook_outdir}/xml: mkdir -p ${docbook_outdir}/xml -doc-xml-validate-docbook: $(xml_sources) $(xml_images) - @echo "Generating XML validation log..." - $(XMLLINT) $(XMLLINT_VALID_FLAGS) ${top_srcdir}/doc/xml/spine.xml stamp-xml-single-docbook: $(xml_sources) ${docbook_outdir}/xml @echo "Generating XML single..." $(XMLLINT) $(XMLLINT_FLAGS) \ @@ -904,7 +910,16 @@ $(STAMP) stamp-xml-single-docbook doc-xml-single-docbook: stamp-xml-single-docbook +doc-xml-validate-docbook: doc-xml-validate-dtd-db +doc-xml-validate-dtd-db: $(xml_sources) $(xml_images) + @echo "Generating XML validation log..." + $(XMLLINT) $(XMLLINT_VALID_FLAGS) ${top_srcdir}/doc/xml/spine.xml + +doc-xml-validate-rng-db: $(xml_sources) $(xml_images) doc-xml-single-docbook + @echo "Generating XML RelaxNG validation log..." + $(XMLLINT) $(LINT_FLAGS) $(SCHEMA_RNG_FLAGS) ${set_xml} + # HTML support files stamp-html-docbook-images: stamp-html-docbook $(xml_images) $(INSTALL_DATA) $(xml_images) ${docbook_outdir}/html/images @@ -917,18 +932,21 @@ stamp-html-docbook-data: stamp-html-docbook-images stamp-html-docbook-lwg $(STAMP) stamp-html-docbook-data -# HTML, index plus chapters +# HTML, "chunked" into index plus chapters as separate pages stamp-html-docbook: $(xml_sources) ${docbook_outdir}/html @echo "Generating html files..." $(XSLTPROC) $(XSLT_PARAM) $(XSLT_FLAGS) -o ${docbook_outdir}/html/ \ - $(XSL_HTML_STYLE) ${top_srcdir}/doc/xml/spine.xml + --stringparam chunker.output.encoding UTF-8 \ + $(XSL_HTML_STYLE) \ + ${top_srcdir}/doc/xml/spine.xml $(STAMP) stamp-html-docbook doc-html-docbook: stamp-html-docbook-data stamp-html-single-docbook: $(xml_sources) ${docbook_outdir}/html @echo "Generating html single file..." $(XSLTPROC) $(XSLT_PARAM) $(XSLT_FLAGS) -o ${manual_html} \ - $(XSL_HTML_SINGLE_STYLE) ${top_srcdir}/doc/xml/spine.xml + ${XSL_LOCAL_STYLE} \ + ${top_srcdir}/doc/xml/spine.xml $(STAMP) stamp-html-single-docbook doc-html-single-docbook: stamp-html-single-docbook @@ -941,10 +959,15 @@ $(STAMP) stamp-fo-docbook doc-fo-docbook: stamp-fo-docbook -stamp-pdf-docbook: $(xml_sources) ${docbook_outdir}/pdf + +doc-pdf-docbook-dirs: ${docbook_outdir}/pdf ${docbook_outdir}/latex + +doc-pdf-docbook-pre: $(xml_sources) doc-pdf-docbook-dirs + +stamp-pdf-docbook: doc-pdf-docbook-pre doc-xml-single-docbook @echo "Generating pdf dblatex files..." - dblatex $(DBLATEX_FLAGS) \ - -o ${manual_pdf} ${top_srcdir}/doc/xml/spine.xml + dblatex $(DBLATEX_FLAGS) -o ${manual_pdf} \ + ${top_srcdir}/doc/xml/spine.xml $(STAMP) stamp-pdf-docbook doc-pdf-docbook: stamp-pdf-docbook Index: libstdc++-v3/doc/html/bk02.html =================================================================== --- libstdc++-v3/doc/html/bk02.html (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/doc/html/bk02.html (.../branches/gcc-4_7-branch) (wersja 194650) @@ -1,3 +1,3 @@ - -<meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="index.html" title="The GNU C++ Library"/><link rel="up" href="index.html" title="The GNU C++ Library"/><link rel="prev" href="manual/backwards.html" title="Backwards Compatibility"/><link rel="next" href="api.html" title="The GNU C++ Library API Reference"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"/></tr><tr><td align="left"><a accesskey="p" href="manual/backwards.html">Prev</a> </td><th width="60%" align="center"> </th><td align="right"> <a accesskey="n" href="api.html">Next</a></td></tr></table><hr/></div><div class="book"><div class="titlepage"><hr/></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="article"><a href="api.html">The GNU C++ Library API Reference</a></span></dt></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="manual/backwards.html">Prev</a> </td><td align="center"> </td><td align="right"> <a accesskey="n" href="api.html">Next</a></td></tr><tr><td align="left" valign="top">Backwards Compatibility </td><td align="center"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top"> The GNU C++ Library API Reference</td></tr></table></div></body></html> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title> Index: libstdc++-v3/doc/html/bk03.html =================================================================== --- libstdc++-v3/doc/html/bk03.html (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/doc/html/bk03.html (.../branches/gcc-4_7-branch) (wersja 194650) @@ -1,3 +1,3 @@ - -<meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content=" ISO C++ , runtime , library "/><link rel="home" href="index.html" title="The GNU C++ Library"/><link rel="up" href="index.html" title="The GNU C++ Library"/><link rel="prev" href="api.html" title="The GNU C++ Library API Reference"/><link rel="next" href="faq.html" title="Frequently Asked Questions"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"/></tr><tr><td align="left"><a accesskey="p" href="api.html">Prev</a> </td><th width="60%" align="center"> </th><td align="right"> <a accesskey="n" href="faq.html">Next</a></td></tr></table><hr/></div><div class="book"><div class="titlepage"><hr/></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="article"><a href="faq.html">Frequently Asked Questions</a></span></dt></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="api.html">Prev</a> </td><td align="center"> </td><td align="right"> <a accesskey="n" href="faq.html">Next</a></td></tr><tr><td align="left" valign="top">The GNU C++ Library API Reference </td><td align="center"><a accesskey="h" href="index.html">Home</a></td><td align="right" valign="top"> Frequently Asked Questions</td></tr></table></div></body></html> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title> Index: libstdc++-v3/doc/html/faq.html =================================================================== --- libstdc++-v3/doc/html/faq.html (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/doc/html/faq.html (.../branches/gcc-4_7-branch) (wersja 194650) @@ -1,10 +1,10 @@ - -Frequently Asked Questions

Frequently Asked Questions



1.1. What is libstdc++?
1.2. Why should I use libstdc++? @@ -18,7 +18,7 @@ What happened to the older libg++? I need that!
1.7. What if I have more questions? -
2.1. +
2.1. What are the license terms for libstdc++?
2.2. So any program which uses libstdc++ falls under the GPL? @@ -26,7 +26,7 @@ How is that different from the GNU {Lesser,Library} GPL?
2.4. I see. So, what restrictions are there on programs that use the library? -
3.1. How do I install libstdc++? +
3.1. How do I install libstdc++?
3.2. How does one get current libstdc++ sources?
3.3. How do I know if it works?
3.4. How do I insure that the dynamically linked library will be found? @@ -34,7 +34,7 @@ What's libsupc++?
3.6. This library is HUGE! -
4.1. +
4.1. Can libstdc++ be used with non-GNU compilers?
4.2. No 'long long' type on Solaris? @@ -50,13 +50,13 @@ Recent GNU/Linux glibc required?
4.8. Can't use wchar_t/wstring on FreeBSD -
5.1. +
5.1. What works already?
5.2. Bugs in the ISO C++ language or library specification
5.3. Bugs in the compiler (gcc/g++) and not libstdc++ -
6.1. +
6.1. Reopening a stream fails
6.2. -Weffc++ complains too much @@ -76,7 +76,7 @@ list::size() is O(n)!
6.9. Aw, that's easy to fix! -
7.1. +
7.1. string::iterator is not char*; vector<T>::iterator is not T*
7.2. What's next after libstdc++? @@ -91,7 +91,7 @@ What's an ABI and why is it so messy?
7.8. How do I make std::vector<T>::capacity() == std::vector<T>::size? -
1.1. +
1.1. What is libstdc++?
1.2. Why should I use libstdc++? @@ -105,19 +105,19 @@ What happened to the older libg++? I need that!
1.7. What if I have more questions? -

1.1.

+

1.1.

What is libstdc++? -

+

The GNU Standard C++ Library v3 is an ongoing project to implement the ISO 14882 Standard C++ library as described in chapters 17 through 27 and annex D. For those who want to see exactly how far the project has come, or just want the latest bleeding-edge code, the up-to-date source is available over anonymous SVN, and can even be browsed over - the web. -

1.2.

+ the web. +

1.2.

Why should I use libstdc++? -

+

The completion of the ISO C++ standardization gave the C++ community a powerful set of reuseable tools in the form of the C++ Standard Library. However, all existing C++ implementations are @@ -129,9 +129,9 @@ (gcc, g++, etc) is widely considered to be one of the leading compilers in the world. Its development is overseen by the - GCC team. All of + GCC team. All of the rapid development and near-legendary - portability + portability that are the hallmarks of an open-source project are being applied to libstdc++.

@@ -141,9 +141,9 @@ vector<>, iostreams, and algorithms.) Programmers will no longer need to “roll their own” nor be worried about platform-specific incompatibilities. -

1.3.

+

1.3.

Who's in charge of it? -

+

The libstdc++ project is contributed to by several developers all over the world, in the same way as GCC or the Linux kernel. Benjamin Kosnik, Gabriel Dos Reis, Phil Edwards, Ulrich Drepper, @@ -153,17 +153,17 @@ Development and discussion is held on the libstdc++ mailing list. Subscribing to the list, or searching the list archives, is open to everyone. You can read instructions for - doing so on the homepage. + doing so on the homepage. If you have questions, ideas, code, or are just curious, sign up! -

1.4.

+

1.4.

When is libstdc++ going to be finished? -

+

Nathan Myers gave the best of all possible answers, responding to a Usenet article asking this question: Sooner, if you help. -

1.5.

+

1.5.

How do I contribute to the effort? -

+

Here is a page devoted to this topic. Subscribing to the mailing list (see above, or the homepage) is a very good idea if you have something to @@ -172,17 +172,17 @@ anybody who is willing to help write documentation, for example, or has found a bug in code that we all thought was working and is willing to provide details, is more than welcome! -

1.6.

+

1.6.

What happened to the older libg++? I need that! -

+

The most recent libg++ README states that libg++ is no longer being actively maintained. It should not be used for new projects, and is only being kicked along to support older code.

More information in the backwards compatibility documentation -

1.7.

+

1.7.

What if I have more questions? -

+

If you have read the README file, and your question remains unanswered, then just ask the mailing list. At present, you do not need to be subscribed to the list to send a message to it. More @@ -201,19 +201,19 @@ How is that different from the GNU {Lesser,Library} GPL?

2.4. I see. So, what restrictions are there on programs that use the library? -

2.1.

+

2.1.

What are the license terms for libstdc++? -

+

See our license description for these and related questions. -

2.2.

+

2.2.

So any program which uses libstdc++ falls under the GPL? -

+

No. The special exception permits use of the library in proprietary applications. -

2.3.

+

2.3.

How is that different from the GNU {Lesser,Library} GPL? -

+

The LGPL requires that users be able to replace the LGPL code with a modified version; this is trivial if the library in question is a C shared library. But there's no way to make that work with C++, where @@ -221,9 +221,9 @@ are expanded inside the code that uses the library. So to allow people to replace the library code, someone using the library would have to distribute their own source, rendering the LGPL equivalent to the GPL. -

2.4.

+

2.4.

I see. So, what restrictions are there on programs that use the library? -

+

None. We encourage such programs to be released as open source, but we won't punish you or sue you if you choose otherwise.

3.1. How do I install libstdc++? @@ -234,8 +234,8 @@ What's libsupc++?
3.6. This library is HUGE! -

3.1.

How do I install libstdc++? -

+

3.1.

How do I install libstdc++? +

Often libstdc++ comes pre-installed as an integral part of many existing GNU/Linux and Unix systems, as well as many embedded development tools. It may be necessary to install extra @@ -247,11 +247,11 @@ documentation for detailed instructions. You may wish to browse those files ahead of time to get a feel for what's required. -

3.2.

How does one get current libstdc++ sources? -

+

3.2.

How does one get current libstdc++ sources? +

Libstdc++ sources for all official releases can be obtained as part of the GCC sources, available from various sites and - mirrors. A full list of + mirrors. A full list of download sites is provided on the main GCC site.

Current libstdc++ sources can always be checked out of the main @@ -262,7 +262,7 @@ Subversion, or SVN, is one of several revision control packages. It was selected for GNU projects because it's free (speech), free (beer), and very high - quality. The Subversion + quality. The Subversion home page has a better description.

The “anonymous client checkout” feature of SVN is @@ -270,21 +270,21 @@ the latest libstdc++ sources.

For more information - see SVN + see SVN details. -

3.3.

How do I know if it works? -

+

3.3.

How do I know if it works? +

Libstdc++ comes with its own validation testsuite, which includes conformance testing, regression testing, ABI testing, and performance testing. Please consult the - testing + testing documentation for more details.

If you find bugs in the testsuite programs themselves, or if you think of a new test program that should be added to the suite, please write up your idea and send it to the list! -

3.4.

How do I insure that the dynamically linked library will be found? -

+

3.4.

How do I insure that the dynamically linked library will be found? +

Depending on your platform and library version, the error message might be similar to one of the following:

@@ -318,9 +318,9 @@
     

Using LD_LIBRARY_PATH is not always the best solution, Finding Dynamic or Shared Libraries in the manual gives some alternatives. -

3.5.

+

3.5.

What's libsupc++? -

+

If the only functions from libstdc++.a which you need are language support functions (those listed in clause 18 of the @@ -335,9 +335,9 @@ using anything from the rest of the library, such as IOStreams or vectors, then you'll still need pieces from libstdc++.a. -

3.6.

+

3.6.

This library is HUGE! -

+

Usually the size of libraries on disk isn't noticeable. When a link editor (or simply “linker”) pulls things from a static archive library, only the necessary object files are copied @@ -382,9 +382,9 @@ Recent GNU/Linux glibc required?

4.8. Can't use wchar_t/wstring on FreeBSD -

4.1.

+

4.1.

Can libstdc++ be used with non-GNU compilers? -

+

Perhaps.

Since the goal of ISO Standardization is for all C++ @@ -402,9 +402,9 @@ been known to work with versions of the EDG C++ compiler, and vendor-specific proprietary C++ compilers such as the Intel ICC C++ compiler. -

4.2.

+

4.2.

No 'long long' type on Solaris? -

+

By default we try to support the C99 long long type. This requires that certain functions from your C library be present.

@@ -414,9 +414,9 @@ commonly reported platform affected was Solaris.

This has been fixed for libstdc++ releases greater than 3.0.3. -

4.3.

+

4.3.

_XOPEN_SOURCE and _GNU_SOURCE are always defined? -

On Solaris, g++ (but not gcc) always defines the preprocessor +

On Solaris, g++ (but not gcc) always defines the preprocessor macro _XOPEN_SOURCE. On GNU/Linux, the same happens with _GNU_SOURCE. (This is not an exhaustive list; other macros and other platforms are also affected.) @@ -440,18 +440,18 @@ g++ -E -dM - < /dev/null" to display a list of predefined macros for any particular installation.

This has been discussed on the mailing lists - quite a bit. + quite a bit.

This method is something of a wart. We'd like to find a cleaner solution, but nobody yet has contributed the time. -

4.4.

+

4.4.

Mac OS X ctype.h is broken! How can I fix it? -

This is a long-standing bug in the OS X support. Fortunately, +

This is a long-standing bug in the OS X support. Fortunately, the patch is quite simple, and well-known. - Here's a + Here's a link to the solution. -

4.5.

+

4.5.

Threading is broken on i386? -

+

Support for atomic integer operations is/was broken on i386 platforms. The assembly code accidentally used opcodes that are only available on the i486 and later. So if you configured GCC @@ -459,9 +459,9 @@ on an i686, then you would encounter no problems. Only when actually running the code on a i386 will the problem appear.

This is fixed in 3.2.2. -

4.6.

+

4.6.

MIPS atomic operations -

+

The atomic locking routines for MIPS targets requires MIPS II and later. A patch went in just after the 3.3 release to make mips* use the generic implementation instead. You can also @@ -469,9 +469,9 @@

The mips*-*-linux* port continues to use the MIPS II routines, and more work in this area is expected. -

4.7.

+

4.7.

Recent GNU/Linux glibc required? -

When running on GNU/Linux, libstdc++ 3.2.1 (shared library version +

When running on GNU/Linux, libstdc++ 3.2.1 (shared library version 5.0.1) and later uses localization and formatting code from the system C library (glibc) version 2.2.5 which contains necessary bugfixes. Most GNU/Linux distros make more recent versions available now. @@ -480,9 +480,9 @@

The guideline is simple: the more recent the C++ library, the more recent the C library. (This is also documented in the main GCC installation instructions.) -

4.8.

+

4.8.

Can't use wchar_t/wstring on FreeBSD -

+

Older versions of FreeBSD's C library do not have sufficient support for wide character functions, and as a result the libstdc++ configury decides that wchar_t support should be @@ -499,9 +499,9 @@ Bugs in the ISO C++ language or library specification

5.3. Bugs in the compiler (gcc/g++) and not libstdc++ -

5.1.

+

5.1.

What works already? -

+

Short answer: Pretty much everything works except for some corner cases. Support for localization in locale may be incomplete on non-GNU @@ -513,24 +513,24 @@ C++98, TR1, and C++11. -

5.2.

+

5.2.

Bugs in the ISO C++ language or library specification -

+

Unfortunately, there are some.

For those people who are not part of the ISO Library Group (i.e., nearly all of us needing to read this page in the first place), a public list of the library defects is occasionally - published on the WG21 + published on the WG21 website. Some of these issues have resulted in code changes in libstdc++.

If you think you've discovered a new bug that is not listed, please post a message describing your problem to the author of the library issues list or the Usenet group comp.lang.c++.moderated. -

5.3.

+

5.3.

Bugs in the compiler (gcc/g++) and not libstdc++ -

+

On occasion, the compiler is wrong. Please be advised that this happens much less often than one would think, and avoid jumping to conclusions. @@ -541,7 +541,7 @@ these lists with terms describing your issue.

Before reporting a bug, please examine the - bugs database with the + bugs database with the category set to “g++”.

6.1. Reopening a stream fails @@ -563,19 +563,19 @@ list::size() is O(n)!
6.9. Aw, that's easy to fix! -

6.1.

+

6.1.

Reopening a stream fails -

+

One of the most-reported non-bug reports. Executing a sequence like: -


-    #include <fstream>
-    ...
-    std::fstream  fs(“a_file”);
-    // .
-    // . do things with fs...
-    // .
-    fs.close();
-    fs.open(“a_new_file”);
+


+    #include <fstream>
+    ...
+    std::fstream  fs(“a_file”);
+    // .
+    // . do things with fs...
+    // .
+    fs.close();
+    fs.open(“a_new_file”);
    

All operations on the re-opened fs will fail, or at least act very strangely. Yes, they often will, especially if @@ -590,9 +590,9 @@ Update: for GCC 4.0 we implemented the resolution of DR #409 and open() now calls clear() on success! -

6.2.

+

6.2.

-Weffc++ complains too much -

+

Many warnings are emitted when -Weffc++ is used. Making libstdc++ -Weffc++-clean is not a goal of the project, for a few reasons. Mainly, that option tries to enforce @@ -602,21 +602,21 @@ We do, however, try to have libstdc++ sources as clean as possible. If you see some simple changes that pacify -Weffc++ without other drawbacks, send us a patch. -

6.3.

+

6.3.

Ambiguous overloads after including an old-style header -

+

Another problem is the rel_ops namespace and the template comparison operator functions contained therein. If they become visible in the same namespace as other comparison functions (e.g., “using” them and the <iterator> header), then you will suddenly be faced with huge numbers of ambiguity errors. This was discussed on the -v3 list; Nathan Myers - sums + sums things up here. The collisions with vector/string iterator types have been fixed for 3.1. -

6.4.

+

6.4.

The g++-3 headers are not ours -

+

If you are using headers in ${prefix}/include/g++-3, or if the installed library's name looks like libstdc++-2.10.a or @@ -630,10 +630,10 @@ 'v'?). Starting with version 3.2 the headers are installed in ${prefix}/include/c++/${version} as this prevents headers from previous versions being found by mistake. -

6.5.

+

6.5.

Errors about *Concept and constraints in the STL -

+

If you see compilation errors containing messages about foo Concept and something to do with a constraints member function, then most @@ -647,31 +647,31 @@ checks, is available in the Diagnostics. chapter of the manual. -

6.6.

+

6.6.

Program crashes when using library code in a dynamically-loaded library -

+

If you are using the C++ library across dynamically-loaded objects, make certain that you are passing the correct options when compiling and linking: -


-    // compile your library components
-    g++ -fPIC -c a.cc
-    g++ -fPIC -c b.cc
-    ...
-    g++ -fPIC -c z.cc
-
-    // create your library
-    g++ -fPIC -shared -rdynamic -o libfoo.so a.o b.o ... z.o
-
-    // link the executable
-    g++ -fPIC -rdynamic -o foo ... -L. -lfoo -ldl
-    

6.7.

+


+    // compile your library components
+    g++ -fPIC -c a.cc
+    g++ -fPIC -c b.cc
+    ...
+    g++ -fPIC -c z.cc
+
+    // create your library
+    g++ -fPIC -shared -rdynamic -o libfoo.so a.o b.o ... z.o
+
+    // link the executable
+    g++ -fPIC -rdynamic -o foo ... -L. -lfoo -ldl
+    

6.7.

“Memory leaks” in containers -

+

A few people have reported that the standard containers appear to leak memory when tested with memory checkers such as - valgrind. + valgrind. The library's default allocators keep free memory in a pool for later reuse, rather than returning it to the OS. Although this memory is always reachable by the library and is never @@ -679,18 +679,18 @@ want to test the library for memory leaks please read Tips for memory leak hunting first. -

6.8.

+

6.8.

list::size() is O(n)! -

+

See the Containers chapter. -

6.9.

+

6.9.

Aw, that's easy to fix! -

+

If you have found a bug in the library and you think you have a working fix, then send it in! The main GCC site has a page - on submitting + on submitting patches that covers the procedure, but for libstdc++ you should also send the patch to our mailing list in addition to the GCC patches mailing list. The libstdc++ @@ -718,9 +718,9 @@ What's an ABI and why is it so messy?

7.8. How do I make std::vector<T>::capacity() == std::vector<T>::size? -

7.1.

+

7.1.

string::iterator is not char*; vector<T>::iterator is not T* -

+

If you have code that depends on container<T> iterators being implemented as pointer-to-T, your code is broken. It's considered a feature, not a bug, that libstdc++ points this out. @@ -737,9 +737,9 @@ certain expressions to &*i. Future revisions of the Standard are expected to bless this usage for vector<> (but not for basic_string<>). -

7.2.

+

7.2.

What's next after libstdc++? -

+

Hopefully, not much. The goal of libstdc++ is to produce a fully-compliant, fully-portable Standard Library. After that, we're mostly done: there won't be any @@ -748,12 +748,12 @@ There is an effort underway to add significant extensions to the standard library specification. The latest version of this effort is described in - + The C++ Library Technical Report 1. -

7.3.

+

7.3.

What about the STL from SGI? -

- The STL from SGI, +

+ The STL from SGI, version 3.3, was the final merge of the STL codebase. The code in libstdc++ contains many fixes and changes, and the SGI code is no longer under active @@ -773,24 +773,24 @@

The FAQ for SGI's STL (one jump off of their main page) is still recommended reading. -

7.4.

+

7.4.

Extensions and Backward Compatibility -

+

See the link on backwards compatibility and link on evolution. -

7.5.

+

7.5.

Does libstdc++ support TR1? -

+

Yes.

The C++ Standard Library Technical Report adds many new features to the library. The latest version of this effort is described in - + Technical Report 1.

The implementation status of TR1 in libstdc++ can be tracked on the TR1 status page. -

7.6.

How do I get a copy of the ISO C++ Standard? -

+

7.6.

How do I get a copy of the ISO C++ Standard? +

Copies of the full ISO 14882 standard are available on line via the ISO mirror site for committee members. Non-members, or those who have not paid for the privilege of sitting on the committee @@ -798,19 +798,19 @@ get a copy of the standard from their respective national standards organization. In the USA, this national standards organization is ANSI and their website is - right here. (And if + right here. (And if you've already registered with them, clicking this link will take you to directly to the place where you can - buy the standard on-line. + buy the standard on-line.

Who is your country's member body? Visit the - ISO homepage and find out! + ISO homepage and find out!

The 2003 version of the standard (the 1998 version plus TC1) is available in print, ISBN 0-470-84674-7. -

7.7.

+

7.7.

What's an ABI and why is it so messy? -

+

ABI stands for “Application Binary Interface”. Conventionally, it refers to a great mass of details about how arguments are arranged on the call @@ -856,17 +856,17 @@ so they may later be changed. Deciding which, and implementing the decisions, must happen before you can reasonably document a candidate C++ ABI that encompasses the standard library. -

7.8.

+

7.8.

How do I make std::vector<T>::capacity() == std::vector<T>::size? -

+

The standard idiom for deallocating a vector<T>'s unused memory is to create a temporary copy of the vector and swap their contents, e.g. for vector<T> v -


-     std::vector<T>(v).swap(v);
+


+     std::vector<T>(v).swap(v);
    

The copy will take O(n) time and the swap is constant time.

See Shrink-to-fit strings for a similar solution for strings. -

+

Index: libstdc++-v3/doc/html/index.html =================================================================== --- libstdc++-v3/doc/html/index.html (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/doc/html/index.html (.../branches/gcc-4_7-branch) (wersja 194650) @@ -1,8 +1,8 @@ - -The GNU C++ Library

Short Contents

+ +The GNU C++ Library

The GNU C++ Library

Short Contents

Copyright 2008, 2009, 2011 - FSF + FSF

Permission is granted to copy, distribute and/or modify this @@ -14,14 +14,14 @@ This is the top level of the libstdc++ documentation set. The documentation is divided into the following three sections.

-



Table of Contents

The GNU C++ Library Manual
I. Introduction
1. Status
Implementation Status
C++ 1998/2003
Implementation Status
Implementation Specific Behavior
C++ 2011
Implementation Specific Behavior
C++ TR1
Implementation Specific Behavior
C++ TR 24733
License
The Code: GPL
The Documentation: GPL, FDL
Bugs
Implementation Bugs
Standard Bugs
2. Setup
Prerequisites
Configure
Make
3. Using
Command Options
Headers
Header Files
Mixing Headers
The C Headers and namespace std
Precompiled Headers
Macros
Namespaces
Available Namespaces
namespace std
Using Namespace Composition
Linking
Almost Nothing
Finding Dynamic or Shared Libraries
Concurrency
Prerequisites
Thread Safety
Atomics
IO
Structure
Defaults
Future
Alternatives
Containers
Exceptions
Exception Safety
Exception Neutrality
Doing without
Compatibility
With C
With POSIX thread cancellation
Debugging Support
Using g++
Debug Versions of Library Binary Files
Memory Leak Hunting
Data Race Hunting
Using gdb
Tracking uncaught exceptions
Debug Mode
Compile Time Checking
Profile-based Performance Analysis
II. @@ -35,13 +35,13 @@
Exceptions
API Reference
Adding Data to exception
Concept Checking
6. Utilities -
Functors
Pairs
Memory
Allocators
Requirements
Design Issues
Implementation
Interface Design
Selecting Default Allocation Policy
Disabling Memory Caching
Using a Specific Allocator
Custom Allocators
Extension Allocators
auto_ptr
Limitations
Use in Containers
shared_ptr
Requirements
Design Issues
Implementation
Class Hierarchy
Thread Safety
Selecting Lock Policy
Related functions and classes
Use
Examples
Unresolved Issues
Acknowledgments
Traits
7. +
Functors
Pairs
Memory
Allocators
Requirements
Design Issues
Implementation
Interface Design
Selecting Default Allocation Policy
Disabling Memory Caching
Using a Specific Allocator
Custom Allocators
Extension Allocators
auto_ptr
Limitations
Use in Containers
shared_ptr
Requirements
Design Issues
Implementation
Class Hierarchy
Thread Safety
Selecting Lock Policy
Related functions and classes
Use
Examples
Unresolved Issues
Acknowledgments
Traits
7. Strings
String Classes
Simple Transformations
Case Sensitivity
Arbitrary Character Types
Tokenizing
Shrink to Fit
CString (MFC)
8. Localization -
Locales
locale
Requirements
Design
Implementation
Interacting with "C" locales
Future
Facets
ctype
Implementation
Specializations
Future
codecvt
Requirements
Design
wchar_t Size
Support for Unicode
Other Issues
Implementation
Use
Future
messages
Requirements
Design
Implementation
Models
The GNU Model
Use
Future
9. +
Locales
locale
Requirements
Design
Implementation
Interacting with "C" locales
Future
Facets
ctype
Implementation
Specializations
Future
codecvt
Requirements
Design
wchar_t Size
Support for Unicode
Other Issues
Implementation
Use
Future
messages
Requirements
Design
Implementation
Models
The GNU Model
Use
Future
9. Containers
Sequences
list
list::size() is O(n)
vector
Space Overhead Management
Associative
Insertion Hints
bitset
Size Variable
Type String
Interacting with C
Containers vs. Arrays
10. @@ -65,7 +65,7 @@
API Reference
III. Extensions -
16. Compile Time Checks
17. Debug Mode
Intro
Semantics
Using
Using the Debug Mode
Using a Specific Debug Container
Design
Goals
Methods
The Wrapper Model
Safe Iterators
Safe Sequences (Containers)
Precondition Checking
Release- and debug-mode coexistence
Compile-time coexistence of release- and debug-mode components
Link- and run-time coexistence of release- and +
16. Compile Time Checks
17. Debug Mode
Intro
Semantics
Using
Using the Debug Mode
Using a Specific Debug Container
Design
Goals
Methods
The Wrapper Model
Safe Iterators
Safe Sequences (Containers)
Precondition Checking
Release- and debug-mode coexistence
Compile-time coexistence of release- and debug-mode components
Link- and run-time coexistence of release- and debug-mode components
Alternatives for Coexistence
Other Implementations
18. Parallel Mode
Intro
Semantics
Using
Prerequisite Compiler Flags
Using Parallel Mode
Using Specific Parallel Components
Design
Interface Basics
Configuration and Tuning
Setting up the OpenMP Environment
Compile Time Switches
Run Time Settings and Defaults
Implementation Namespaces
Testing
Bibliography
19. Profile Mode
Intro
Using the Profile Mode
Tuning the Profile Mode
Design
Wrapper Model
Instrumentation
Run Time Behavior
Analysis and Diagnostics
Cost Model
Reports
Testing
Extensions for Custom Containers
Empirical Cost Model
Implementation Issues
Stack Traces
Symbolization of Instruction Addresses
Concurrency
Using the Standard Library in the Instrumentation Implementation
Malloc Hooks
Construction and Destruction of Global Objects
Developer Information
Big Picture
How To Add A Diagnostic
Diagnostics
Diagnostic Template
Containers
Hashtable Too Small
Hashtable Too Large
Inefficient Hash
Vector Too Small
Vector Too Large
Vector to Hashtable
Hashtable to Vector
Vector to List
List to Vector
List to Forward List (Slist)
Ordered to Unordered Associative Container
Algorithms
Sort Algorithm Performance
Data Locality
Need Software Prefetch
Linked Structure Locality
Multithreaded Data Access
Data Dependence Violations at Container Level
False Sharing
Statistics
Bibliography
20. The mt_allocator
Intro
Design Issues
Overview
Implementation
Tunable Parameters
Initialization
Deallocation Notes
Single Thread Example
Multiple Thread Example
21. The bitmap_allocator
Design
Implementation
Free List Store
Super Block
Super Block Data Layout
Maximum Wasted Percentage
allocate
deallocate
Questions
1
2
3
Locality
Overhead and Grow Policy
22. Policy-Based Data Structures
Intro
Performance Issues
Associative
Priority Que
Goals
Associative
Policy Choices
Underlying Data Structures
Iterators
Functional
Priority Queues
Policy Choices
Underlying Data Structures
Binary Heaps
Using
Prerequisites
Organization
Tutorial
Basic Use
Configuring via Template Parameters
@@ -128,9 +128,7 @@ Text modify Up
Text modify Down -
Observations
Associative
Priority_Queue
Acknowledgments
- Bibliography -
23. HP/SGI Extensions
Backwards Compatibility
Deprecated
24. Utilities
25. Algorithms
26. Numerics
27. Iterators
28. Input and Output
Derived filebufs
29. Demangling
30. Concurrency
Design
Interface to Locks and Mutexes
Interface to Atomic Functions
Implementation
Using Builtin Atomic Functions
Thread Abstraction
Use
IV. +
Observations
Associative
Priority_Queue
Acknowledgments
Bibliography
23. HP/SGI Extensions
Backwards Compatibility
Deprecated
24. Utilities
25. Algorithms
26. Numerics
27. Iterators
28. Input and Output
Derived filebufs
29. Demangling
30. Concurrency
Design
Interface to Locks and Mutexes
Interface to Atomic Functions
Implementation
Using Builtin Atomic Functions
Thread Abstraction
Use
IV. Appendices
A. Contributing @@ -138,7 +136,7 @@
Contributor Checklist
Reading
Assignment
Getting Sources
Submitting Patches
Directory Layout and Source Conventions
Coding Style
Bad Identifiers
By Example
Design Notes
B. Porting and Maintenance -
Configure and Build Hacking
Prerequisites
Overview: What Comes from Where
Storing Information in non-AC files (like configure.host)
Coding and Commenting Conventions
The acinclude.m4 layout
GLIBCXX_ENABLE, the --enable maker
Writing and Generating Documentation
Introduction
Generating Documentation
Doxygen
Prerequisites
Generating the Doxygen Files
Markup
Docbook
Prerequisites
Generating the DocBook Files
Editing and Validation
File Organization and Basics
Markup By Example
Porting to New Hardware or Operating Systems
Operating System
CPU
Character Types
Thread Safety
Numeric Limits
Libtool
Test
Organization
Directory Layout
Naming Conventions
Running the Testsuite
Basic
Variations
Permutations
Writing a new test case
Test Harness and Utilities
Dejagnu Harness Details
Utilities
Special Topics
+
Configure and Build Hacking
Prerequisites
Overview
General Process
What Comes from Where
Configure
Storing Information in non-AC files (like configure.host)
Coding and Commenting Conventions
The acinclude.m4 layout
GLIBCXX_ENABLE, the --enable maker
Make
Writing and Generating Documentation
Introduction
Generating Documentation
Doxygen
Prerequisites
Generating the Doxygen Files
Debugging Generation
Markup
Docbook
Prerequisites
Generating the DocBook Files
Debugging Generation
Editing and Validation
File Organization and Basics
Markup By Example
Porting to New Hardware or Operating Systems
Operating System
CPU
Character Types
Thread Safety
Numeric Limits
Libtool
Test
Organization
Directory Layout
Naming Conventions
Running the Testsuite
Basic
Variations
Permutations
Writing a new test case
Test Harness and Utilities
Dejagnu Harness Details
Utilities
Special Topics
Qualifying Exception Safety Guarantees
Overview
@@ -165,4 +163,4 @@
D. GNU General Public License version 3 -
E. GNU Free Documentation License
The GNU C++ Library API Reference
Frequently Asked Questions
+
E. GNU Free Documentation License
The GNU C++ Library API Reference
Frequently Asked Questions
Index: libstdc++-v3/doc/html/api.html =================================================================== --- libstdc++-v3/doc/html/api.html (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/doc/html/api.html (.../branches/gcc-4_7-branch) (wersja 194650) @@ -1,16 +1,16 @@ - -The GNU C++ Library API Reference

The GNU C++ Library API Reference


+


The GNU C++ library sources have been specially formatted so that with the proper invocation of another tool (Doxygen), a set of indexed reference material can generated from the sources files @@ -20,29 +20,29 @@ particular include file, looking at inheritance diagrams, etc.

The API documentation, rendered into HTML, can be viewed online: -

+

Index: libstdc++-v3/doc/html/manual/policy_data_structures_biblio.html =================================================================== --- libstdc++-v3/doc/html/manual/policy_data_structures_biblio.html (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/doc/html/manual/policy_data_structures_biblio.html (.../branches/gcc-4_7-branch) (wersja 194650) @@ -1,29 +0,0 @@ - - -Acknowledgments

- Written by Ami Tavory and Vladimir Dreizin (IBM Haifa Research - Laboratories), and Benjamin Kosnik (Red Hat). -

- This library was partially written at - IBM's Haifa Research Labs. - It is based heavily on policy-based design and uses many useful - techniques from Modern C++ Design: Generic Programming and Design - Patterns Applied by Andrei Alexandrescu. -

- Two ideas are borrowed from the SGI-STL implementation: -

  1. - The prime-based resize policies use a list of primes taken from - the SGI-STL implementation. -

  2. - The red-black trees contain both a root node and a header node - (containing metadata), connected in a way that forward and - reverse iteration can be performed efficiently. -

- Some test utilities borrow ideas from - boost::timer. -

- We would like to thank Scott Meyers for useful comments (without - attributing to him any flaws in the design or implementation of the - library). -

We would like to thank Matt Austern for the suggestion to - include tries.

Index: libstdc++-v3/doc/html/manual/iterators.html =================================================================== --- libstdc++-v3/doc/html/manual/iterators.html (.../tags/gcc_4_7_2_release) (wersja 194650) +++ libstdc++-v3/doc/html/manual/iterators.html (.../branches/gcc-4_7-branch) (wersja 194650) @@ -1,14 +1,14 @@ - -Chapter 10.  Iterators

Predefined

Iterators vs. Pointers

The following FAQ entry points out that iterators are not implemented as pointers. They are a generalization @@ -44,7 +44,7 @@ down through inheritance, so while the compiler has to do work looking up all the names, your runtime code does not. (This has been a prime concern from the beginning.) -

One Past the End

This starts off sounding complicated, but is actually very easy, especially towards the end. Trust me.

Beginners usually have a little trouble understand the whole 'past-the-end' thing, until they remember their early algebra classes @@ -53,7 +53,7 @@

First, some history, and a reminder of some of the funkier rules in C and C++ for builtin arrays. The following rules have always been true for both languages: -

  1. You can point anywhere in the array, or to the first element +

    1. You can point anywhere in the array, or to the first element past the end of the array. A pointer that points to one past the end of the array is guaranteed to be as unique as a pointer to somewhere inside the array, so that you can compare @@ -124,7 +124,7 @@ sequences very simple to recognize: if the two endpoints compare equal, then the {array, sequence, container, whatever} is empty.

      Just don't dereference end(). -