From owner-svn-src-user@FreeBSD.ORG Thu Jul 11 23:30:19 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 8985DAA2; Thu, 11 Jul 2013 23:30:19 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 79AA21D82; Thu, 11 Jul 2013 23:30:19 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6BNUIhK062490; Thu, 11 Jul 2013 23:30:18 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6BNUGjj062473; Thu, 11 Jul 2013 23:30:16 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201307112330.r6BNUGjj062473@svn.freebsd.org> From: Attilio Rao Date: Thu, 11 Jul 2013 23:30:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r253225 - in user/attilio/vmcontention: . contrib/libc++/include contrib/libc++/src contrib/libcxxrt contrib/llvm/lib/CodeGen/SelectionDAG contrib/tcpdump contrib/tzdata contrib/wpa/src... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jul 2013 23:30:19 -0000 Author: attilio Date: Thu Jul 11 23:30:15 2013 New Revision: 253225 URL: http://svnweb.freebsd.org/changeset/base/253225 Log: MFC Added: user/attilio/vmcontention/share/doc/legal/realtek/ - copied from r253224, head/share/doc/legal/realtek/ user/attilio/vmcontention/sys/contrib/dev/urtwn/ - copied from r253224, head/sys/contrib/dev/urtwn/ user/attilio/vmcontention/sys/crypto/siphash/ - copied from r253224, head/sys/crypto/siphash/ user/attilio/vmcontention/sys/dev/mbox/ - copied from r253224, head/sys/dev/mbox/ user/attilio/vmcontention/sys/mips/atheros/ar934xreg.h - copied unchanged from r253224, head/sys/mips/atheros/ar934xreg.h user/attilio/vmcontention/sys/modules/usb/urtwnfw/ - copied from r253224, head/sys/modules/usb/urtwnfw/ user/attilio/vmcontention/usr.sbin/bhyve/rtc.h - copied unchanged from r253224, head/usr.sbin/bhyve/rtc.h Modified: user/attilio/vmcontention/Makefile user/attilio/vmcontention/ObsoleteFiles.inc user/attilio/vmcontention/UPDATING user/attilio/vmcontention/contrib/libc++/include/__bit_reference user/attilio/vmcontention/contrib/libc++/include/__config user/attilio/vmcontention/contrib/libc++/include/__functional_base user/attilio/vmcontention/contrib/libc++/include/__hash_table user/attilio/vmcontention/contrib/libc++/include/__locale user/attilio/vmcontention/contrib/libc++/include/__split_buffer user/attilio/vmcontention/contrib/libc++/include/__std_stream user/attilio/vmcontention/contrib/libc++/include/__tree user/attilio/vmcontention/contrib/libc++/include/algorithm user/attilio/vmcontention/contrib/libc++/include/atomic user/attilio/vmcontention/contrib/libc++/include/deque user/attilio/vmcontention/contrib/libc++/include/forward_list user/attilio/vmcontention/contrib/libc++/include/functional user/attilio/vmcontention/contrib/libc++/include/future user/attilio/vmcontention/contrib/libc++/include/istream user/attilio/vmcontention/contrib/libc++/include/iterator user/attilio/vmcontention/contrib/libc++/include/list user/attilio/vmcontention/contrib/libc++/include/locale user/attilio/vmcontention/contrib/libc++/include/map user/attilio/vmcontention/contrib/libc++/include/memory user/attilio/vmcontention/contrib/libc++/include/random user/attilio/vmcontention/contrib/libc++/include/regex user/attilio/vmcontention/contrib/libc++/include/string user/attilio/vmcontention/contrib/libc++/include/type_traits user/attilio/vmcontention/contrib/libc++/include/unordered_map user/attilio/vmcontention/contrib/libc++/include/utility user/attilio/vmcontention/contrib/libc++/include/vector user/attilio/vmcontention/contrib/libc++/src/debug.cpp user/attilio/vmcontention/contrib/libc++/src/hash.cpp user/attilio/vmcontention/contrib/libc++/src/iostream.cpp user/attilio/vmcontention/contrib/libc++/src/locale.cpp user/attilio/vmcontention/contrib/libc++/src/stdexcept.cpp user/attilio/vmcontention/contrib/libc++/src/string.cpp user/attilio/vmcontention/contrib/libc++/src/thread.cpp user/attilio/vmcontention/contrib/libcxxrt/atomic.h user/attilio/vmcontention/contrib/libcxxrt/auxhelper.cc user/attilio/vmcontention/contrib/libcxxrt/cxxabi.h user/attilio/vmcontention/contrib/libcxxrt/dwarf_eh.h user/attilio/vmcontention/contrib/libcxxrt/exception.cc user/attilio/vmcontention/contrib/libcxxrt/guard.cc user/attilio/vmcontention/contrib/libcxxrt/memory.cc user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp user/attilio/vmcontention/contrib/tcpdump/tcpdump.c user/attilio/vmcontention/contrib/tzdata/africa user/attilio/vmcontention/contrib/tzdata/asia user/attilio/vmcontention/contrib/tzdata/australasia user/attilio/vmcontention/contrib/tzdata/europe user/attilio/vmcontention/contrib/tzdata/southamerica user/attilio/vmcontention/contrib/tzdata/zone.tab user/attilio/vmcontention/contrib/wpa/src/rsn_supp/wpa.c user/attilio/vmcontention/etc/rc.d/zfs user/attilio/vmcontention/lib/libc/net/getaddrinfo.3 user/attilio/vmcontention/lib/libc/net/getnameinfo.3 user/attilio/vmcontention/lib/libc/net/sctp_sys_calls.c user/attilio/vmcontention/lib/libkvm/Makefile user/attilio/vmcontention/lib/libkvm/kvm.h user/attilio/vmcontention/lib/msun/src/math.h user/attilio/vmcontention/sbin/devd/devd.cc user/attilio/vmcontention/sbin/mount_nfs/mount_nfs.8 user/attilio/vmcontention/sbin/nvmecontrol/devlist.c user/attilio/vmcontention/sbin/nvmecontrol/firmware.c user/attilio/vmcontention/sbin/nvmecontrol/identify.c user/attilio/vmcontention/sbin/nvmecontrol/logpage.c user/attilio/vmcontention/sbin/nvmecontrol/nvmecontrol.c user/attilio/vmcontention/sbin/nvmecontrol/nvmecontrol.h user/attilio/vmcontention/sbin/nvmecontrol/perftest.c user/attilio/vmcontention/sbin/nvmecontrol/reset.c user/attilio/vmcontention/share/doc/legal/Makefile user/attilio/vmcontention/share/man/man4/bridge.4 user/attilio/vmcontention/share/man/man4/nvd.4 user/attilio/vmcontention/share/man/man4/nvme.4 user/attilio/vmcontention/share/man/man5/rc.conf.5 user/attilio/vmcontention/share/man/man9/SDT.9 user/attilio/vmcontention/share/misc/committers-ports.dot user/attilio/vmcontention/sys/amd64/amd64/pmap.c user/attilio/vmcontention/sys/arm/arm/elf_trampoline.c user/attilio/vmcontention/sys/arm/arm/pmap-v6.c user/attilio/vmcontention/sys/arm/arm/trap.c user/attilio/vmcontention/sys/arm/broadcom/bcm2835/bcm2835_fb.c user/attilio/vmcontention/sys/arm/broadcom/bcm2835/bcm2835_mbox.c user/attilio/vmcontention/sys/arm/broadcom/bcm2835/bcm2835_mbox.h user/attilio/vmcontention/sys/arm/broadcom/bcm2835/files.bcm2835 user/attilio/vmcontention/sys/arm/ti/am335x/am335x_pmic.c user/attilio/vmcontention/sys/arm/ti/ti_mmchs.c user/attilio/vmcontention/sys/boot/fdt/dts/beaglebone-black.dts user/attilio/vmcontention/sys/boot/ficl/loader.c user/attilio/vmcontention/sys/boot/forth/loader.conf user/attilio/vmcontention/sys/cam/ata/ata_da.c user/attilio/vmcontention/sys/cam/scsi/scsi_da.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c user/attilio/vmcontention/sys/conf/Makefile.amd64 user/attilio/vmcontention/sys/conf/WITHOUT_SOURCELESS_UCODE user/attilio/vmcontention/sys/conf/files user/attilio/vmcontention/sys/conf/kmod.mk user/attilio/vmcontention/sys/contrib/v4l/videodev2.h user/attilio/vmcontention/sys/crypto/sha2/sha2.c user/attilio/vmcontention/sys/crypto/sha2/sha2.h user/attilio/vmcontention/sys/dev/ahci/ahci.c user/attilio/vmcontention/sys/dev/cxgbe/t4_main.c user/attilio/vmcontention/sys/dev/hme/if_hme.c user/attilio/vmcontention/sys/dev/ixgb/if_ixgb.c user/attilio/vmcontention/sys/dev/ixgb/ixgb_ids.h user/attilio/vmcontention/sys/dev/ixgbe/ixgbe.c user/attilio/vmcontention/sys/dev/mmc/mmcsd.c user/attilio/vmcontention/sys/dev/nvd/nvd.c user/attilio/vmcontention/sys/dev/nvme/nvme.c user/attilio/vmcontention/sys/dev/nvme/nvme.h user/attilio/vmcontention/sys/dev/nvme/nvme_ctrlr.c user/attilio/vmcontention/sys/dev/nvme/nvme_ctrlr_cmd.c user/attilio/vmcontention/sys/dev/nvme/nvme_ns.c user/attilio/vmcontention/sys/dev/nvme/nvme_private.h user/attilio/vmcontention/sys/dev/nvme/nvme_qpair.c user/attilio/vmcontention/sys/dev/nvme/nvme_sysctl.c user/attilio/vmcontention/sys/dev/nvme/nvme_test.c user/attilio/vmcontention/sys/dev/pci/pci.c user/attilio/vmcontention/sys/dev/pci/pci_pci.c user/attilio/vmcontention/sys/dev/pci/pcib_private.h user/attilio/vmcontention/sys/dev/pci/pcivar.h user/attilio/vmcontention/sys/dev/random/probe.c user/attilio/vmcontention/sys/dev/random/randomdev.c user/attilio/vmcontention/sys/dev/random/randomdev.h user/attilio/vmcontention/sys/dev/random/randomdev_soft.c user/attilio/vmcontention/sys/dev/sound/pci/hda/hdaa_patches.c user/attilio/vmcontention/sys/dev/sound/pci/hda/hdac.h user/attilio/vmcontention/sys/dev/uart/uart_core.c user/attilio/vmcontention/sys/dev/usb/controller/xhci.h user/attilio/vmcontention/sys/dev/usb/controller/xhci_pci.c user/attilio/vmcontention/sys/dev/usb/wlan/if_urtwn.c user/attilio/vmcontention/sys/fs/ext2fs/ext2_vnops.c user/attilio/vmcontention/sys/fs/nfs/nfs.h user/attilio/vmcontention/sys/fs/nfs/nfs_commonkrpc.c user/attilio/vmcontention/sys/fs/nfsclient/nfs_clvfsops.c user/attilio/vmcontention/sys/geom/journal/g_journal.c user/attilio/vmcontention/sys/i386/i386/pmap.c user/attilio/vmcontention/sys/kern/kern_mbuf.c user/attilio/vmcontention/sys/kern/kern_rmlock.c user/attilio/vmcontention/sys/kern/kern_synch.c user/attilio/vmcontention/sys/kern/subr_witness.c user/attilio/vmcontention/sys/kern/vfs_bio.c user/attilio/vmcontention/sys/kern/vfs_cache.c user/attilio/vmcontention/sys/kern/vfs_mount.c user/attilio/vmcontention/sys/kern/vfs_vnops.c user/attilio/vmcontention/sys/kgssapi/gss_impl.c user/attilio/vmcontention/sys/mips/atheros/ar71xx_setup.h user/attilio/vmcontention/sys/mips/include/elf.h user/attilio/vmcontention/sys/net/if_arp.h user/attilio/vmcontention/sys/net/vnet.h user/attilio/vmcontention/sys/net80211/ieee80211_output.c user/attilio/vmcontention/sys/netinet/icmp6.h user/attilio/vmcontention/sys/netinet/icmp_var.h user/attilio/vmcontention/sys/netinet/if_ether.c user/attilio/vmcontention/sys/netinet/in.c user/attilio/vmcontention/sys/netinet/ip_carp.c user/attilio/vmcontention/sys/netinet/ip_carp.h user/attilio/vmcontention/sys/netinet/ip_icmp.c user/attilio/vmcontention/sys/netinet/ip_input.c user/attilio/vmcontention/sys/netinet/ip_mroute.c user/attilio/vmcontention/sys/netinet/ip_mroute.h user/attilio/vmcontention/sys/netinet/ip_var.h user/attilio/vmcontention/sys/netinet/pim_var.h user/attilio/vmcontention/sys/netinet/sctp_input.c user/attilio/vmcontention/sys/netinet/tcp_input.c user/attilio/vmcontention/sys/netinet/tcp_syncache.c user/attilio/vmcontention/sys/netinet/tcp_syncache.h user/attilio/vmcontention/sys/netinet/tcp_var.h user/attilio/vmcontention/sys/netinet/udp_usrreq.c user/attilio/vmcontention/sys/netinet/udp_var.h user/attilio/vmcontention/sys/netinet6/icmp6.c user/attilio/vmcontention/sys/netinet6/in6.c user/attilio/vmcontention/sys/netinet6/in6_proto.c user/attilio/vmcontention/sys/netinet6/in6_var.h user/attilio/vmcontention/sys/netinet6/ip6_input.c user/attilio/vmcontention/sys/netinet6/ip6_mroute.h user/attilio/vmcontention/sys/netinet6/ip6_var.h user/attilio/vmcontention/sys/netinet6/pim6_var.h user/attilio/vmcontention/sys/netinet6/raw_ip6.c user/attilio/vmcontention/sys/netinet6/raw_ip6.h user/attilio/vmcontention/sys/netipsec/ah_var.h user/attilio/vmcontention/sys/netipsec/esp_var.h user/attilio/vmcontention/sys/netipsec/ipcomp_var.h user/attilio/vmcontention/sys/netipsec/ipip_var.h user/attilio/vmcontention/sys/netipsec/ipsec.c user/attilio/vmcontention/sys/netipsec/ipsec.h user/attilio/vmcontention/sys/netipsec/ipsec6.h user/attilio/vmcontention/sys/netipsec/keysock.c user/attilio/vmcontention/sys/netipsec/keysock.h user/attilio/vmcontention/sys/netipsec/xform_ah.c user/attilio/vmcontention/sys/netipsec/xform_esp.c user/attilio/vmcontention/sys/netipsec/xform_ipcomp.c user/attilio/vmcontention/sys/netipsec/xform_ipip.c user/attilio/vmcontention/sys/ofed/drivers/net/mlx4/main.c user/attilio/vmcontention/sys/ofed/include/linux/sysfs.h user/attilio/vmcontention/sys/rpc/rpcsec_gss.h user/attilio/vmcontention/sys/rpc/rpcsec_gss/rpcsec_gss.c user/attilio/vmcontention/sys/security/audit/audit.c user/attilio/vmcontention/sys/sys/counter.h user/attilio/vmcontention/sys/sys/elf_common.h user/attilio/vmcontention/sys/sys/eventhandler.h user/attilio/vmcontention/sys/sys/param.h user/attilio/vmcontention/sys/sys/sdt.h user/attilio/vmcontention/sys/sys/systm.h user/attilio/vmcontention/sys/sys/vnode.h user/attilio/vmcontention/sys/ufs/ffs/ffs_snapshot.c user/attilio/vmcontention/sys/ufs/ffs/ffs_suspend.c user/attilio/vmcontention/sys/ufs/ffs/ffs_vfsops.c user/attilio/vmcontention/sys/ufs/ufs/inode.h user/attilio/vmcontention/sys/vm/swap_pager.c user/attilio/vmcontention/sys/vm/vm_fault.c user/attilio/vmcontention/sys/vm/vm_map.c user/attilio/vmcontention/sys/vm/vm_map.h user/attilio/vmcontention/sys/vm/vm_object.c user/attilio/vmcontention/sys/vm/vm_object.h user/attilio/vmcontention/sys/vm/vm_page.c user/attilio/vmcontention/tools/tools/crypto/ipsecstats.c user/attilio/vmcontention/tools/tools/zfsboottest/zfsboottest.c user/attilio/vmcontention/tools/tools/zfsboottest/zfsboottest.sh user/attilio/vmcontention/usr.bin/dtc/fdt.cc user/attilio/vmcontention/usr.bin/netstat/inet.c user/attilio/vmcontention/usr.bin/netstat/inet6.c user/attilio/vmcontention/usr.bin/netstat/ipsec.c user/attilio/vmcontention/usr.bin/netstat/main.c user/attilio/vmcontention/usr.bin/netstat/mroute.c user/attilio/vmcontention/usr.bin/netstat/netstat.h user/attilio/vmcontention/usr.bin/netstat/pfkey.c user/attilio/vmcontention/usr.sbin/authpf/Makefile user/attilio/vmcontention/usr.sbin/bhyve/bhyverun.c user/attilio/vmcontention/usr.sbin/bhyve/rtc.c user/attilio/vmcontention/usr.sbin/bsdconfig/share/common.subr user/attilio/vmcontention/usr.sbin/bsdconfig/share/dialog.subr user/attilio/vmcontention/usr.sbin/gssd/gssd.8 user/attilio/vmcontention/usr.sbin/gssd/gssd.c user/attilio/vmcontention/usr.sbin/nvram/nvram.c user/attilio/vmcontention/usr.sbin/portsnap/portsnap/portsnap.sh user/attilio/vmcontention/usr.sbin/rtadvd/config.c user/attilio/vmcontention/usr.sbin/rtadvd/rtadvd.c Directory Properties: user/attilio/vmcontention/ (props changed) user/attilio/vmcontention/contrib/libc++/ (props changed) user/attilio/vmcontention/contrib/libcxxrt/ (props changed) user/attilio/vmcontention/contrib/llvm/ (props changed) user/attilio/vmcontention/contrib/tcpdump/ (props changed) user/attilio/vmcontention/contrib/tzdata/ (props changed) user/attilio/vmcontention/contrib/wpa/ (props changed) user/attilio/vmcontention/lib/libc/ (props changed) user/attilio/vmcontention/sbin/ (props changed) user/attilio/vmcontention/share/man/man4/ (props changed) user/attilio/vmcontention/sys/ (props changed) user/attilio/vmcontention/sys/boot/ (props changed) user/attilio/vmcontention/sys/cddl/contrib/opensolaris/ (props changed) user/attilio/vmcontention/sys/conf/ (props changed) user/attilio/vmcontention/usr.sbin/bhyve/ (props changed) user/attilio/vmcontention/usr.sbin/rtadvd/ (props changed) Modified: user/attilio/vmcontention/Makefile ============================================================================== --- user/attilio/vmcontention/Makefile Thu Jul 11 22:19:18 2013 (r253224) +++ user/attilio/vmcontention/Makefile Thu Jul 11 23:30:15 2013 (r253225) @@ -32,6 +32,12 @@ # targets - Print a list of supported TARGET/TARGET_ARCH pairs # for world and kernel targets. # toolchains - Build a toolchain for all world and kernel targets. +# +# "quick" way to test all kernel builds: +# _jflag=`sysctl -n hw.ncpu` +# _jflag=$(($_jflag * 2)) +# [ $_jflag -gt 12 ] && _jflag=12 +# make universe -DMAKE_JUST_KERNELS JFLAG=-j${_jflag} # # This makefile is simple by design. The FreeBSD make automatically reads # the /usr/share/mk/sys.mk unless the -m argument is specified on the Modified: user/attilio/vmcontention/ObsoleteFiles.inc ============================================================================== --- user/attilio/vmcontention/ObsoleteFiles.inc Thu Jul 11 22:19:18 2013 (r253224) +++ user/attilio/vmcontention/ObsoleteFiles.inc Thu Jul 11 23:30:15 2013 (r253225) @@ -38,6 +38,9 @@ # xargs -n1 | sort | uniq -d; # done +# 20130710: libkvm version bump +OLD_LIBS+=lib/libkvm.so.5 +OLD_LIBS+=usr/lib32/libkvm.so.5 # 20130623: dialog update from 1.1 to 1.2 OLD_LIBS+=usr/lib/libdialog.so.7 OLD_LIBS+=usr/lib32/libdialog.so.7 Modified: user/attilio/vmcontention/UPDATING ============================================================================== --- user/attilio/vmcontention/UPDATING Thu Jul 11 22:19:18 2013 (r253224) +++ user/attilio/vmcontention/UPDATING Thu Jul 11 23:30:15 2013 (r253225) @@ -31,6 +31,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20130709: + Most of network statistics structures were changed to be able + keep 64-bits counters. Thus all tools, that work with networking + statistics, must be rebuilded (netstat(1), bsnmpd(1), etc.) + 20130629: Fix targets that run multiple make's to use && rather than ; so that subsequent steps depend on success of previous. Modified: user/attilio/vmcontention/contrib/libc++/include/__bit_reference ============================================================================== --- user/attilio/vmcontention/contrib/libc++/include/__bit_reference Thu Jul 11 22:19:18 2013 (r253224) +++ user/attilio/vmcontention/contrib/libc++/include/__bit_reference Thu Jul 11 23:30:15 2013 (r253225) @@ -333,7 +333,7 @@ __fill_n_false(__bit_iterator<_Cp, false } // do middle whole words __storage_type __nw = __n / __bits_per_word; - _VSTD::memset(__first.__seg_, 0, __nw * sizeof(__storage_type)); + _VSTD::memset(_VSTD::__to_raw_pointer(__first.__seg_), 0, __nw * sizeof(__storage_type)); __n -= __nw * __bits_per_word; // do last partial word if (__n > 0) @@ -363,7 +363,7 @@ __fill_n_true(__bit_iterator<_Cp, false> } // do middle whole words __storage_type __nw = __n / __bits_per_word; - _VSTD::memset(__first.__seg_, -1, __nw * sizeof(__storage_type)); + _VSTD::memset(_VSTD::__to_raw_pointer(__first.__seg_), -1, __nw * sizeof(__storage_type)); __n -= __nw * __bits_per_word; // do last partial word if (__n > 0) @@ -430,7 +430,9 @@ __copy_aligned(__bit_iterator<_Cp, _IsCo // __first.__ctz_ == 0; // do middle words __storage_type __nw = __n / __bits_per_word; - _VSTD::memmove(__result.__seg_, __first.__seg_, __nw * sizeof(__storage_type)); + _VSTD::memmove(_VSTD::__to_raw_pointer(__result.__seg_), + _VSTD::__to_raw_pointer(__first.__seg_), + __nw * sizeof(__storage_type)); __n -= __nw * __bits_per_word; __result.__seg_ += __nw; // do last word @@ -569,7 +571,9 @@ __copy_backward_aligned(__bit_iterator<_ __storage_type __nw = __n / __bits_per_word; __result.__seg_ -= __nw; __last.__seg_ -= __nw; - _VSTD::memmove(__result.__seg_, __last.__seg_, __nw * sizeof(__storage_type)); + _VSTD::memmove(_VSTD::__to_raw_pointer(__result.__seg_), + _VSTD::__to_raw_pointer(__last.__seg_), + __nw * sizeof(__storage_type)); __n -= __nw * __bits_per_word; // do last word if (__n > 0) @@ -870,6 +874,7 @@ struct __bit_array { typedef typename _Cp::difference_type difference_type; typedef typename _Cp::__storage_type __storage_type; + typedef typename _Cp::__storage_pointer __storage_pointer; typedef typename _Cp::iterator iterator; static const unsigned __bits_per_word = _Cp::__bits_per_word; static const unsigned _Np = 4; @@ -880,9 +885,15 @@ struct __bit_array _LIBCPP_INLINE_VISIBILITY static difference_type capacity() {return static_cast(_Np * __bits_per_word);} _LIBCPP_INLINE_VISIBILITY explicit __bit_array(difference_type __s) : __size_(__s) {} - _LIBCPP_INLINE_VISIBILITY iterator begin() {return iterator(__word_, 0);} - _LIBCPP_INLINE_VISIBILITY iterator end() {return iterator(__word_ + __size_ / __bits_per_word, - static_cast(__size_ % __bits_per_word));} + _LIBCPP_INLINE_VISIBILITY iterator begin() + { + return iterator(pointer_traits<__storage_pointer>::pointer_to(__word_[0]), 0); + } + _LIBCPP_INLINE_VISIBILITY iterator end() + { + return iterator(pointer_traits<__storage_pointer>::pointer_to(__word_[0]) + __size_ / __bits_per_word, + static_cast(__size_ % __bits_per_word)); + } }; template Modified: user/attilio/vmcontention/contrib/libc++/include/__config ============================================================================== --- user/attilio/vmcontention/contrib/libc++/include/__config Thu Jul 11 22:19:18 2013 (r253224) +++ user/attilio/vmcontention/contrib/libc++/include/__config Thu Jul 11 23:30:15 2013 (r253225) @@ -56,6 +56,18 @@ # endif // __LONG_LONG_SUPPORTED #endif // __FreeBSD__ +#ifdef __NetBSD__ +# include +# if _BYTE_ORDER == _LITTLE_ENDIAN +# define _LIBCPP_LITTLE_ENDIAN 1 +# define _LIBCPP_BIG_ENDIAN 0 +# else // _BYTE_ORDER == _LITTLE_ENDIAN +# define _LIBCPP_LITTLE_ENDIAN 0 +# define _LIBCPP_BIG_ENDIAN 1 +# endif // _BYTE_ORDER == _LITTLE_ENDIAN +# define _LIBCPP_HAS_QUICK_EXIT +#endif // __NetBSD__ + #ifdef _WIN32 # define _LIBCPP_LITTLE_ENDIAN 1 # define _LIBCPP_BIG_ENDIAN 0 @@ -135,6 +147,10 @@ #endif // _WIN32 +#ifndef __has_attribute +#define __has_attribute(__x) 0 +#endif + #ifndef _LIBCPP_HIDDEN #define _LIBCPP_HIDDEN __attribute__ ((__visibility__("hidden"))) #endif @@ -212,7 +228,9 @@ typedef __char32_t char32_t; # define _LIBCPP_NORETURN __attribute__ ((noreturn)) #endif +#if !(__has_feature(cxx_defaulted_functions)) #define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS +#endif // !(__has_feature(cxx_defaulted_functions)) #if !(__has_feature(cxx_deleted_functions)) #define _LIBCPP_HAS_NO_DELETED_FUNCTIONS @@ -272,10 +290,20 @@ typedef __char32_t char32_t; #define _LIBCPP_HAS_NO_CONSTEXPR #endif -#if defined(__FreeBSD__) && (__ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L) +#if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L +#if defined(__FreeBSD__) +#define _LIBCPP_HAS_QUICK_EXIT +#define _LIBCPP_HAS_C11_FEATURES +#elif defined(__linux__) +#include +#if __GLIBC_PREREQ(2, 15) #define _LIBCPP_HAS_QUICK_EXIT +#endif +#if __GLIBC_PREREQ(2, 17) #define _LIBCPP_HAS_C11_FEATURES #endif +#endif +#endif #if (__has_feature(cxx_noexcept)) # define _NOEXCEPT noexcept @@ -418,8 +446,14 @@ template struct __static_asse #define _LIBCPP_CONSTEXPR constexpr #endif +#ifdef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS +#define _LIBCPP_DEFAULT {} +#else +#define _LIBCPP_DEFAULT = default; +#endif + #ifdef __GNUC__ -#define _NOALIAS __attribute__((malloc)) +#define _NOALIAS __attribute__((__malloc__)) #else #define _NOALIAS #endif @@ -451,7 +485,7 @@ template struct __static_asse #define _LIBCPP_EXTERN_TEMPLATE(...) extern template __VA_ARGS__; #endif -#if defined(__APPLE__) || defined(__FreeBSD__) || defined(_WIN32) || defined(__sun__) +#if defined(__APPLE__) || defined(__FreeBSD__) || defined(_WIN32) || defined(__sun__) || defined(__NetBSD__) #define _LIBCPP_LOCALE__L_EXTENSIONS 1 #endif #ifdef __FreeBSD__ @@ -476,6 +510,14 @@ template struct __static_asse # endif #endif +#ifndef _LIBCPP_STD_VER +# if __cplusplus <= 201103L +# define _LIBCPP_STD_VER 11 +# else +# define _LIBCPP_STD_VER 13 // current year, or date of c++14 ratification +# endif +#endif // _LIBCPP_STD_VER + #ifdef _LIBCPP_DEBUG2 # include <__debug> #else Modified: user/attilio/vmcontention/contrib/libc++/include/__functional_base ============================================================================== --- user/attilio/vmcontention/contrib/libc++/include/__functional_base Thu Jul 11 22:19:18 2013 (r253224) +++ user/attilio/vmcontention/contrib/libc++/include/__functional_base Thu Jul 11 23:30:15 2013 (r253225) @@ -292,7 +292,8 @@ struct __weak_result_type<_Rp (_Cp::*)(_ // bullets 1 and 2 -template +template inline _LIBCPP_INLINE_VISIBILITY auto __invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args) @@ -301,7 +302,8 @@ __invoke(_Fp&& __f, _A0&& __a0, _Args&& return (_VSTD::forward<_A0>(__a0).*__f)(_VSTD::forward<_Args>(__args)...); } -template +template inline _LIBCPP_INLINE_VISIBILITY auto __invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args) @@ -312,7 +314,8 @@ __invoke(_Fp&& __f, _A0&& __a0, _Args&& // bullets 3 and 4 -template +template inline _LIBCPP_INLINE_VISIBILITY auto __invoke(_Fp&& __f, _A0&& __a0) @@ -321,7 +324,8 @@ __invoke(_Fp&& __f, _A0&& __a0) return _VSTD::forward<_A0>(__a0).*__f; } -template +template inline _LIBCPP_INLINE_VISIBILITY auto __invoke(_Fp&& __f, _A0&& __a0) Modified: user/attilio/vmcontention/contrib/libc++/include/__hash_table ============================================================================== --- user/attilio/vmcontention/contrib/libc++/include/__hash_table Thu Jul 11 22:19:18 2013 (r253224) +++ user/attilio/vmcontention/contrib/libc++/include/__hash_table Thu Jul 11 23:30:15 2013 (r253225) @@ -33,7 +33,6 @@ template struct __hash_node_base { typedef __hash_node_base __first_node; - // typedef _NodePtr pointer; _NodePtr __next_; @@ -111,7 +110,7 @@ public: _LIBCPP_INLINE_VISIBILITY reference operator*() const {return __node_->__value_;} _LIBCPP_INLINE_VISIBILITY - pointer operator->() const {return _VSTD::addressof(__node_->__value_);} + pointer operator->() const {return pointer_traits::pointer_to(__node_->__value_);} _LIBCPP_INLINE_VISIBILITY __hash_iterator& operator++() @@ -189,7 +188,7 @@ public: _LIBCPP_INLINE_VISIBILITY reference operator*() const {return __node_->__value_;} _LIBCPP_INLINE_VISIBILITY - pointer operator->() const {return _VSTD::addressof(__node_->__value_);} + pointer operator->() const {return pointer_traits::pointer_to(__node_->__value_);} _LIBCPP_INLINE_VISIBILITY __hash_const_iterator& operator++() @@ -255,7 +254,7 @@ public: _LIBCPP_INLINE_VISIBILITY reference operator*() const {return __node_->__value_;} _LIBCPP_INLINE_VISIBILITY - pointer operator->() const {return &__node_->__value_;} + pointer operator->() const {return pointer_traits::pointer_to(__node_->__value_);} _LIBCPP_INLINE_VISIBILITY __hash_local_iterator& operator++() @@ -345,7 +344,7 @@ public: _LIBCPP_INLINE_VISIBILITY reference operator*() const {return __node_->__value_;} _LIBCPP_INLINE_VISIBILITY - pointer operator->() const {return &__node_->__value_;} + pointer operator->() const {return pointer_traits::pointer_to(__node_->__value_);} _LIBCPP_INLINE_VISIBILITY __hash_const_local_iterator& operator++() @@ -505,8 +504,15 @@ public: __node_allocator; typedef allocator_traits<__node_allocator> __node_traits; typedef typename __node_traits::pointer __node_pointer; - typedef typename __node_traits::const_pointer __node_const_pointer; + typedef typename __node_traits::pointer __node_const_pointer; typedef __hash_node_base<__node_pointer> __first_node; + typedef typename pointer_traits<__node_pointer>::template +#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES + rebind<__first_node> +#else + rebind<__first_node>::other +#endif + __node_base_pointer; private: @@ -558,9 +564,9 @@ public: public: typedef __hash_iterator<__node_pointer> iterator; - typedef __hash_const_iterator<__node_const_pointer> const_iterator; + typedef __hash_const_iterator<__node_pointer> const_iterator; typedef __hash_local_iterator<__node_pointer> local_iterator; - typedef __hash_const_local_iterator<__node_const_pointer> const_local_iterator; + typedef __hash_const_local_iterator<__node_pointer> const_local_iterator; __hash_table() _NOEXCEPT_( @@ -706,7 +712,7 @@ public: _LIBCPP_INLINE_VISIBILITY size_type max_bucket_count() const _NOEXCEPT - {return __bucket_list_.get_deleter().__alloc().max_size();} + {return __pointer_alloc_traits::max_size(__bucket_list_.get_deleter().__alloc());} size_type bucket_size(size_type __n) const; _LIBCPP_INLINE_VISIBILITY float load_factor() const _NOEXCEPT { @@ -807,6 +813,9 @@ private: void __deallocate(__node_pointer __np) _NOEXCEPT; __node_pointer __detach() _NOEXCEPT; + + template friend class _LIBCPP_TYPE_VIS unordered_map; + template friend class _LIBCPP_TYPE_VIS unordered_multimap; }; template @@ -893,7 +902,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc> if (size() > 0) { __bucket_list_[__constrain_hash(__p1_.first().__next_->__hash_, bucket_count())] = - static_cast<__node_pointer>(_VSTD::addressof(__p1_.first())); + static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first())); __u.__p1_.first().__next_ = nullptr; __u.size() = 0; } @@ -917,7 +926,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc> __p1_.first().__next_ = __u.__p1_.first().__next_; __u.__p1_.first().__next_ = nullptr; __bucket_list_[__constrain_hash(__p1_.first().__next_->__hash_, bucket_count())] = - static_cast<__node_pointer>(_VSTD::addressof(__p1_.first())); + static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first())); size() = __u.size(); __u.size() = 0; } @@ -1014,7 +1023,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc> if (size() > 0) { __bucket_list_[__constrain_hash(__p1_.first().__next_->__hash_, bucket_count())] = - static_cast<__node_pointer>(_VSTD::addressof(__p1_.first())); + static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first())); __u.__p1_.first().__next_ = nullptr; __u.size() = 0; } @@ -1236,7 +1245,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc> __node_pointer __pn = __bucket_list_[__chash]; if (__pn == nullptr) { - __pn = static_cast<__node_pointer>(_VSTD::addressof(__p1_.first())); + __pn = static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first())); __nd->__next_ = __pn->__next_; __pn->__next_ = __nd; // fix up __bucket_list_ @@ -1274,7 +1283,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc> __node_pointer __pn = __bucket_list_[__chash]; if (__pn == nullptr) { - __pn = static_cast<__node_pointer>(_VSTD::addressof(__p1_.first())); + __pn = static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first())); __cp->__next_ = __pn->__next_; __pn->__next_ = __cp; // fix up __bucket_list_ @@ -1322,7 +1331,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc> { if (__p != end() && key_eq()(*__p, __cp->__value_)) { - __node_pointer __np = const_cast<__node_pointer>(__p.__node_); + __node_pointer __np = __p.__node_; __cp->__hash_ = __np->__hash_; size_type __bc = bucket_count(); if (size()+1 > __bc * max_load_factor() || __bc == 0) @@ -1380,7 +1389,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc> __node_pointer __pn = __bucket_list_[__chash]; if (__pn == nullptr) { - __pn = static_cast<__node_pointer>(_VSTD::addressof(__p1_.first())); + __pn = static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first())); __h->__next_ = __pn->__next_; __pn->__next_ = __h.get(); // fix up __bucket_list_ @@ -1542,7 +1551,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc> { for (size_type __i = 0; __i < __nbc; ++__i) __bucket_list_[__i] = nullptr; - __node_pointer __pp(static_cast<__node_pointer>(_VSTD::addressof(__p1_.first()))); + __node_pointer __pp(static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first()))); __node_pointer __cp = __pp->__next_; if (__cp != nullptr) { @@ -1700,7 +1709,7 @@ template ::iterator __hash_table<_Tp, _Hash, _Equal, _Alloc>::erase(const_iterator __p) { - __node_pointer __np = const_cast<__node_pointer>(__p.__node_); + __node_pointer __np = __p.__node_; iterator __r(__np); ++__r; remove(__p); @@ -1717,7 +1726,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc> ++__first; erase(__p); } - __node_pointer __np = const_cast<__node_pointer>(__last.__node_); + __node_pointer __np = __last.__node_; return iterator (__np); } @@ -1757,7 +1766,7 @@ typename __hash_table<_Tp, _Hash, _Equal __hash_table<_Tp, _Hash, _Equal, _Alloc>::remove(const_iterator __p) _NOEXCEPT { // current node - __node_pointer __cn = const_cast<__node_pointer>(__p.__node_); + __node_pointer __cn = __p.__node_; size_type __bc = bucket_count(); size_t __chash = __constrain_hash(__cn->__hash_, __bc); // find previous node @@ -1767,7 +1776,8 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc> // Fix up __bucket_list_ // if __pn is not in same bucket (before begin is not in same bucket) && // if __cn->__next_ is not in same bucket (nullptr is not in same bucket) - if (__pn == _VSTD::addressof(__p1_.first()) || __constrain_hash(__pn->__hash_, __bc) != __chash) + if (__pn == static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first())) + || __constrain_hash(__pn->__hash_, __bc) != __chash) { if (__cn->__next_ == nullptr || __constrain_hash(__cn->__next_->__hash_, __bc) != __chash) __bucket_list_[__chash] = nullptr; @@ -1907,10 +1917,10 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc> __p3_.swap(__u.__p3_); if (size() > 0) __bucket_list_[__constrain_hash(__p1_.first().__next_->__hash_, bucket_count())] = - static_cast<__node_pointer>(_VSTD::addressof(__p1_.first())); + static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first())); if (__u.size() > 0) __u.__bucket_list_[__constrain_hash(__u.__p1_.first().__next_->__hash_, __u.bucket_count())] = - static_cast<__node_pointer>(_VSTD::addressof(__u.__p1_.first())); + static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__u.__p1_.first())); } template Modified: user/attilio/vmcontention/contrib/libc++/include/__locale ============================================================================== --- user/attilio/vmcontention/contrib/libc++/include/__locale Thu Jul 11 22:19:18 2013 (r253224) +++ user/attilio/vmcontention/contrib/libc++/include/__locale Thu Jul 11 23:30:15 2013 (r253225) @@ -339,12 +339,12 @@ public: static const mask punct = _PUNCT; static const mask xdigit = _HEX; static const mask blank = _BLANK; -#elif (defined(__APPLE__) || defined(__FreeBSD__)) || defined(EMSCRIPTEN) +#elif defined(__APPLE__) || defined(__FreeBSD__) || defined(EMSCRIPTEN) || defined(__NetBSD__) #ifdef __APPLE__ typedef __uint32_t mask; #elif defined(__FreeBSD__) typedef unsigned long mask; -#elif defined(EMSCRIPTEN) +#elif defined(EMSCRIPTEN) || defined(__NetBSD__) typedef unsigned short mask; #endif static const mask space = _CTYPE_S; @@ -356,7 +356,11 @@ public: static const mask digit = _CTYPE_D; static const mask punct = _CTYPE_P; static const mask xdigit = _CTYPE_X; +# if defined(__NetBSD__) + static const mask blank = _CTYPE_BL; +# else static const mask blank = _CTYPE_B; +# endif #elif defined(__sun__) typedef unsigned int mask; static const mask space = _ISSPACE; @@ -596,6 +600,10 @@ public: static const int* __classic_upper_table() _NOEXCEPT; static const int* __classic_lower_table() _NOEXCEPT; #endif +#if defined(__NetBSD__) + static const short* __classic_upper_table() _NOEXCEPT; + static const short* __classic_lower_table() _NOEXCEPT; +#endif protected: ~ctype(); Modified: user/attilio/vmcontention/contrib/libc++/include/__split_buffer ============================================================================== --- user/attilio/vmcontention/contrib/libc++/include/__split_buffer Thu Jul 11 22:19:18 2013 (r253224) +++ user/attilio/vmcontention/contrib/libc++/include/__split_buffer Thu Jul 11 23:30:15 2013 (r253225) @@ -290,7 +290,7 @@ void __split_buffer<_Tp, _Allocator>::__destruct_at_begin(pointer __new_begin, false_type) { while (__begin_ != __new_begin) - __alloc_traits::destroy(__alloc(), __begin_++); + __alloc_traits::destroy(__alloc(), __to_raw_pointer(__begin_++)); } template @@ -307,7 +307,7 @@ void __split_buffer<_Tp, _Allocator>::__destruct_at_end(pointer __new_last, false_type) _NOEXCEPT { while (__new_last != __end_) - __alloc_traits::destroy(__alloc(), --__end_); + __alloc_traits::destroy(__alloc(), __to_raw_pointer(--__end_)); } template @@ -320,7 +320,7 @@ __split_buffer<_Tp, _Allocator>::__destr template __split_buffer<_Tp, _Allocator>::__split_buffer(size_type __cap, size_type __start, __alloc_rr& __a) - : __end_cap_(0, __a) + : __end_cap_(nullptr, __a) { __first_ = __cap != 0 ? __alloc_traits::allocate(__alloc(), __cap) : nullptr; __begin_ = __end_ = __first_ + __start; @@ -331,21 +331,21 @@ template _LIBCPP_INLINE_VISIBILITY inline __split_buffer<_Tp, _Allocator>::__split_buffer() _NOEXCEPT_(is_nothrow_default_constructible::value) - : __first_(0), __begin_(0), __end_(0), __end_cap_(0) + : __first_(nullptr), __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr) { } template _LIBCPP_INLINE_VISIBILITY inline __split_buffer<_Tp, _Allocator>::__split_buffer(__alloc_rr& __a) - : __first_(0), __begin_(0), __end_(0), __end_cap_(0, __a) + : __first_(nullptr), __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr, __a) { } template _LIBCPP_INLINE_VISIBILITY inline __split_buffer<_Tp, _Allocator>::__split_buffer(const __alloc_rr& __a) - : __first_(0), __begin_(0), __end_(0), __end_cap_(0, __a) + : __first_(nullptr), __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr, __a) { } Modified: user/attilio/vmcontention/contrib/libc++/include/__std_stream ============================================================================== --- user/attilio/vmcontention/contrib/libc++/include/__std_stream Thu Jul 11 22:19:18 2013 (r253224) +++ user/attilio/vmcontention/contrib/libc++/include/__std_stream Thu Jul 11 23:30:15 2013 (r253225) @@ -55,6 +55,8 @@ private: const codecvt* __cv_; state_type* __st_; int __encoding_; + int_type __last_consumed_; + bool __last_consumed_is_next_; bool __always_noconv_; __stdinbuf(const __stdinbuf&); @@ -66,7 +68,9 @@ private: template __stdinbuf<_CharT>::__stdinbuf(FILE* __fp, state_type* __st) : __file_(__fp), - __st_(__st) + __st_(__st), + __last_consumed_(traits_type::eof()), + __last_consumed_is_next_(false) { imbue(this->getloc()); } @@ -100,6 +104,16 @@ template typename __stdinbuf<_CharT>::int_type __stdinbuf<_CharT>::__getchar(bool __consume) { + if (__last_consumed_is_next_) + { + int_type __result = __last_consumed_; + if (__consume) + { + __last_consumed_ = traits_type::eof(); + __last_consumed_is_next_ = false; + } + return __result; + } char __extbuf[__limit]; int __nread = _VSTD::max(1, __encoding_); for (int __i = 0; __i < __nread; ++__i) @@ -154,6 +168,8 @@ __stdinbuf<_CharT>::__getchar(bool __con return traits_type::eof(); } } + else + __last_consumed_ = traits_type::to_int_type(__1buf); return traits_type::to_int_type(__1buf); } @@ -162,28 +178,41 @@ typename __stdinbuf<_CharT>::int_type __stdinbuf<_CharT>::pbackfail(int_type __c) { if (traits_type::eq_int_type(__c, traits_type::eof())) - return __c; - char __extbuf[__limit]; - char* __enxt; - const char_type __ci = traits_type::to_char_type(__c); - const char_type* __inxt; - switch (__cv_->out(*__st_, &__ci, &__ci + 1, __inxt, - __extbuf, __extbuf + sizeof(__extbuf), __enxt)) { - case _VSTD::codecvt_base::ok: - break; - case _VSTD::codecvt_base::noconv: - __extbuf[0] = static_cast(__c); - __enxt = __extbuf + 1; - break; - case codecvt_base::partial: - case codecvt_base::error: - return traits_type::eof(); + if (!__last_consumed_is_next_) + { + __c = __last_consumed_; + __last_consumed_is_next_ = !traits_type::eq_int_type(__last_consumed_, + traits_type::eof()); + } + return __c; } - while (__enxt > __extbuf) - if (ungetc(*--__enxt, __file_) == EOF) + if (__last_consumed_is_next_) + { + char __extbuf[__limit]; + char* __enxt; + const char_type __ci = traits_type::to_char_type(__last_consumed_); + const char_type* __inxt; + switch (__cv_->out(*__st_, &__ci, &__ci + 1, __inxt, + __extbuf, __extbuf + sizeof(__extbuf), __enxt)) + { + case _VSTD::codecvt_base::ok: + break; + case _VSTD::codecvt_base::noconv: + __extbuf[0] = static_cast(__last_consumed_); + __enxt = __extbuf + 1; + break; + case codecvt_base::partial: + case codecvt_base::error: return traits_type::eof(); - return traits_type::not_eof(__c); + } + while (__enxt > __extbuf) + if (ungetc(*--__enxt, __file_) == EOF) + return traits_type::eof(); + } + __last_consumed_ = __c; + __last_consumed_is_next_ = true; + return __c; } // __stdoutbuf @@ -234,30 +263,31 @@ __stdoutbuf<_CharT>::overflow(int_type _ char_type __1buf; if (!traits_type::eq_int_type(__c, traits_type::eof())) { - this->setp(&__1buf, &__1buf+1); - *this->pptr() = traits_type::to_char_type(__c); - this->pbump(1); + __1buf = traits_type::to_char_type(__c); if (__always_noconv_) { - if (fwrite(this->pbase(), sizeof(char_type), 1, __file_) != 1) + if (fwrite(&__1buf, sizeof(char_type), 1, __file_) != 1) return traits_type::eof(); } else { char* __extbe = __extbuf; codecvt_base::result __r; + char_type* pbase = &__1buf; + char_type* pptr = pbase + 1; + char_type* epptr = pptr; do { const char_type* __e; - __r = __cv_->out(*__st_, this->pbase(), this->pptr(), __e, + __r = __cv_->out(*__st_, pbase, pptr, __e, __extbuf, __extbuf + sizeof(__extbuf), __extbe); - if (__e == this->pbase()) + if (__e == pbase) return traits_type::eof(); if (__r == codecvt_base::noconv) { - if (fwrite(this->pbase(), 1, 1, __file_) != 1) + if (fwrite(pbase, 1, 1, __file_) != 1) return traits_type::eof(); } else if (__r == codecvt_base::ok || __r == codecvt_base::partial) @@ -267,15 +297,13 @@ __stdoutbuf<_CharT>::overflow(int_type _ return traits_type::eof(); if (__r == codecvt_base::partial) { - this->setp((char_type*)__e, this->pptr()); - this->pbump(static_cast(this->epptr() - this->pbase())); + pbase = (char_type*)__e; } } else return traits_type::eof(); } while (__r == codecvt_base::partial); } - this->setp(0, 0); } return traits_type::not_eof(__c); } Modified: user/attilio/vmcontention/contrib/libc++/include/__tree ============================================================================== --- user/attilio/vmcontention/contrib/libc++/include/__tree Thu Jul 11 22:19:18 2013 (r253224) +++ user/attilio/vmcontention/contrib/libc++/include/__tree Thu Jul 11 23:30:15 2013 (r253225) @@ -644,7 +644,8 @@ public: _LIBCPP_INLINE_VISIBILITY __tree_iterator() _NOEXCEPT {} _LIBCPP_INLINE_VISIBILITY reference operator*() const {return __ptr_->__value_;} - _LIBCPP_INLINE_VISIBILITY pointer operator->() const {return &__ptr_->__value_;} + _LIBCPP_INLINE_VISIBILITY pointer operator->() const + {return pointer_traits::pointer_to(__ptr_->__value_);} _LIBCPP_INLINE_VISIBILITY __tree_iterator& operator++() @@ -686,7 +687,7 @@ class _LIBCPP_TYPE_VIS __tree_const_iter { typedef _ConstNodePtr __node_pointer; typedef typename pointer_traits<__node_pointer>::element_type __node; - typedef const typename __node::base __node_base; + typedef typename __node::base __node_base; typedef typename pointer_traits<__node_pointer>::template #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES rebind<__node_base> @@ -729,7 +730,8 @@ public: : __ptr_(__p.__ptr_) {} _LIBCPP_INLINE_VISIBILITY reference operator*() const {return __ptr_->__value_;} - _LIBCPP_INLINE_VISIBILITY pointer operator->() const {return &__ptr_->__value_;} + _LIBCPP_INLINE_VISIBILITY pointer operator->() const + {return pointer_traits::pointer_to(__ptr_->__value_);} _LIBCPP_INLINE_VISIBILITY __tree_const_iterator& operator++() @@ -779,8 +781,10 @@ public: typedef typename __alloc_traits::size_type size_type; typedef typename __alloc_traits::difference_type difference_type; - typedef __tree_node __node; - typedef __tree_node_base __node_base; + typedef typename __alloc_traits::void_pointer __void_pointer; + + typedef __tree_node __node; + typedef __tree_node_base<__void_pointer> __node_base; typedef typename __alloc_traits::template #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES rebind_alloc<__node> @@ -790,9 +794,9 @@ public: __node_allocator; typedef allocator_traits<__node_allocator> __node_traits; typedef typename __node_traits::pointer __node_pointer; - typedef typename __node_traits::const_pointer __node_const_pointer; + typedef typename __node_traits::pointer __node_const_pointer; typedef typename __node_base::pointer __node_base_pointer; - typedef typename __node_base::const_pointer __node_base_const_pointer; + typedef typename __node_base::pointer __node_base_const_pointer; private: typedef typename __node_base::base __end_node_t; typedef typename pointer_traits<__node_pointer>::template @@ -804,9 +808,9 @@ private: __end_node_ptr; typedef typename pointer_traits<__node_pointer>::template #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES - rebind + rebind<__end_node_t> #else - rebind::other + rebind<__end_node_t>::other #endif __end_node_const_ptr; @@ -828,7 +832,7 @@ public: { return static_cast<__node_const_pointer> ( - pointer_traits<__end_node_const_ptr>::pointer_to(__pair1_.first()) + pointer_traits<__end_node_const_ptr>::pointer_to(const_cast<__end_node_t&>(__pair1_.first())) ); } _LIBCPP_INLINE_VISIBILITY @@ -865,7 +869,7 @@ public: {return static_cast<__node_const_pointer>(__end_node()->__left_);} typedef __tree_iterator iterator; - typedef __tree_const_iterator const_iterator; + typedef __tree_const_iterator const_iterator; explicit __tree(const value_compare& __comp) _NOEXCEPT_( @@ -1102,6 +1106,9 @@ private: __node_pointer __detach(); static __node_pointer __detach(__node_pointer); + + template friend class _LIBCPP_TYPE_VIS map; + template friend class _LIBCPP_TYPE_VIS multimap; }; template @@ -1161,7 +1168,7 @@ __tree<_Tp, _Compare, _Allocator>::__det { if (__cache->__parent_ == nullptr) return nullptr; - if (__tree_is_left_child(__cache)) + if (__tree_is_left_child(static_cast<__node_base_pointer>(__cache))) { __cache->__parent_->__left_ = nullptr; __cache = static_cast<__node_pointer>(__cache->__parent_); @@ -1294,7 +1301,7 @@ __tree<_Tp, _Compare, _Allocator>::__tre __begin_node() = __end_node(); else { - __end_node()->__left_->__parent_ = __end_node(); + __end_node()->__left_->__parent_ = static_cast<__node_base_pointer>(__end_node()); __t.__begin_node() = __t.__end_node(); __t.__end_node()->__left_ = nullptr; __t.size() = 0; @@ -1314,7 +1321,7 @@ __tree<_Tp, _Compare, _Allocator>::__tre { __begin_node() = __t.__begin_node(); __end_node()->__left_ = __t.__end_node()->__left_; - __end_node()->__left_->__parent_ = __end_node(); + __end_node()->__left_->__parent_ = static_cast<__node_base_pointer>(__end_node()); size() = __t.size(); __t.__begin_node() = __t.__end_node(); __t.__end_node()->__left_ = nullptr; @@ -1342,7 +1349,7 @@ __tree<_Tp, _Compare, _Allocator>::__mov __begin_node() = __end_node(); else { - __end_node()->__left_->__parent_ = __end_node(); + __end_node()->__left_->__parent_ = static_cast<__node_base_pointer>(__end_node()); __t.__begin_node() = __t.__end_node(); __t.__end_node()->__left_ = nullptr; __t.size() = 0; @@ -1447,11 +1454,11 @@ __tree<_Tp, _Compare, _Allocator>::swap( if (size() == 0) __begin_node() = __end_node(); else - __end_node()->__left_->__parent_ = __end_node(); + __end_node()->__left_->__parent_ = static_cast<__node_base_pointer>(__end_node()); if (__t.size() == 0) __t.__begin_node() = __t.__end_node(); else - __t.__end_node()->__left_->__parent_ = __t.__end_node(); + __t.__end_node()->__left_->__parent_ = static_cast<__node_base_pointer>(__t.__end_node()); } template @@ -1483,7 +1490,7 @@ __tree<_Tp, _Compare, _Allocator>::__fin __nd = static_cast<__node_pointer>(__nd->__right_); else { - __parent = __nd; + __parent = static_cast<__node_base_pointer>(__nd); return __parent->__right_; } } @@ -1493,13 +1500,13 @@ __tree<_Tp, _Compare, _Allocator>::__fin __nd = static_cast<__node_pointer>(__nd->__left_); else { - __parent = __nd; + __parent = static_cast<__node_base_pointer>(__nd); return __parent->__left_; } } } } - __parent = __end_node(); + __parent = static_cast<__node_base_pointer>(__end_node()); return __parent->__left_; } @@ -1522,7 +1529,7 @@ __tree<_Tp, _Compare, _Allocator>::__fin __nd = static_cast<__node_pointer>(__nd->__left_); else { - __parent = __nd; + __parent = static_cast<__node_base_pointer>(__nd); return __parent->__left_; } } @@ -1532,13 +1539,13 @@ __tree<_Tp, _Compare, _Allocator>::__fin __nd = static_cast<__node_pointer>(__nd->__right_); else { - __parent = __nd; + __parent = static_cast<__node_base_pointer>(__nd); return __parent->__right_; } } } } - __parent = __end_node(); + __parent = static_cast<__node_base_pointer>(__end_node()); return __parent->__left_; } @@ -1563,12 +1570,12 @@ __tree<_Tp, _Compare, _Allocator>::__fin // *prev(__hint) <= __v <= *__hint if (__hint.__ptr_->__left_ == nullptr) { - __parent = const_cast<__node_pointer&>(__hint.__ptr_); + __parent = static_cast<__node_base_pointer>(__hint.__ptr_); return __parent->__left_; } else { - __parent = const_cast<__node_pointer&>(__prior.__ptr_); + __parent = static_cast<__node_base_pointer>(__prior.__ptr_); return __parent->__right_; } } @@ -1600,7 +1607,7 @@ __tree<_Tp, _Compare, _Allocator>::__fin __nd = static_cast<__node_pointer>(__nd->__left_); else { - __parent = __nd; + __parent = static_cast<__node_base_pointer>(__nd); return __parent->__left_; } } @@ -1610,18 +1617,18 @@ __tree<_Tp, _Compare, _Allocator>::__fin __nd = static_cast<__node_pointer>(__nd->__right_); else { - __parent = __nd; + __parent = static_cast<__node_base_pointer>(__nd); return __parent->__right_; } } else { - __parent = __nd; + __parent = static_cast<__node_base_pointer>(__nd); return __parent; } } } - __parent = __end_node(); + __parent = static_cast<__node_base_pointer>(__end_node()); return __parent->__left_; } @@ -1648,12 +1655,12 @@ __tree<_Tp, _Compare, _Allocator>::__fin // *prev(__hint) < __v < *__hint if (__hint.__ptr_->__left_ == nullptr) { - __parent = const_cast<__node_pointer&>(__hint.__ptr_); + __parent = static_cast<__node_base_pointer>(__hint.__ptr_); return __parent->__left_; } else { - __parent = const_cast<__node_pointer&>(__prior.__ptr_); + __parent = static_cast<__node_base_pointer>(__prior.__ptr_); return __parent->__right_; } } @@ -1669,12 +1676,12 @@ __tree<_Tp, _Compare, _Allocator>::__fin // *__hint < __v < *_VSTD::next(__hint) if (__hint.__ptr_->__right_ == nullptr) { - __parent = const_cast<__node_pointer&>(__hint.__ptr_); + __parent = static_cast<__node_base_pointer>(__hint.__ptr_); return __parent->__right_; } else { - __parent = const_cast<__node_pointer&>(__next.__ptr_); + __parent = static_cast<__node_base_pointer>(__next.__ptr_); *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***