Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Nov 2016 19:08:40 +0000 (UTC)
From:      Alan Cox <alc@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r308475 - in user/alc/PQ_LAUNDRY: bin/echo bin/hostname bin/sleep contrib/elftoolchain/cxxfilt contrib/elftoolchain/libelftc contrib/jemalloc contrib/jemalloc/doc contrib/jemalloc/inclu...
Message-ID:  <201611091908.uA9J8eUu024612@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: alc
Date: Wed Nov  9 19:08:39 2016
New Revision: 308475
URL: https://svnweb.freebsd.org/changeset/base/308475

Log:
  MFH r308474
  
  There are still user-land changes here to be merged.

Added:
  user/alc/PQ_LAUNDRY/contrib/jemalloc/include/jemalloc/internal/spin.h
     - copied unchanged from r308474, head/contrib/jemalloc/include/jemalloc/internal/spin.h
  user/alc/PQ_LAUNDRY/contrib/jemalloc/src/spin.c
     - copied unchanged from r308474, head/contrib/jemalloc/src/spin.c
  user/alc/PQ_LAUNDRY/sys/boot/fdt/dts/arm/ubmc.dtsi
     - copied unchanged from r308474, head/sys/boot/fdt/dts/arm/ubmc.dtsi
  user/alc/PQ_LAUNDRY/sys/boot/fdt/dts/arm/ufw.dts
     - copied unchanged from r308474, head/sys/boot/fdt/dts/arm/ufw.dts
  user/alc/PQ_LAUNDRY/sys/dev/gpio/gpioled_fdt.c
     - copied unchanged from r308474, head/sys/dev/gpio/gpioled_fdt.c
Deleted:
  user/alc/PQ_LAUNDRY/sys/arm/allwinner/a10_common.c
  user/alc/PQ_LAUNDRY/sys/arm/broadcom/bcm2835/bcm2835_common.c
  user/alc/PQ_LAUNDRY/sys/arm/broadcom/bcm2835/bcm2836.h
  user/alc/PQ_LAUNDRY/sys/arm/qemu/virt_common.c
  user/alc/PQ_LAUNDRY/sys/arm/ti/ti_common.c
Modified:
  user/alc/PQ_LAUNDRY/bin/echo/echo.c
  user/alc/PQ_LAUNDRY/bin/hostname/hostname.1
  user/alc/PQ_LAUNDRY/bin/hostname/hostname.c
  user/alc/PQ_LAUNDRY/bin/sleep/sleep.c
  user/alc/PQ_LAUNDRY/contrib/elftoolchain/cxxfilt/cxxfilt.c
  user/alc/PQ_LAUNDRY/contrib/elftoolchain/libelftc/elftc_bfd_find_target.3
  user/alc/PQ_LAUNDRY/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c
  user/alc/PQ_LAUNDRY/contrib/jemalloc/ChangeLog
  user/alc/PQ_LAUNDRY/contrib/jemalloc/FREEBSD-Xlist
  user/alc/PQ_LAUNDRY/contrib/jemalloc/FREEBSD-diffs
  user/alc/PQ_LAUNDRY/contrib/jemalloc/VERSION
  user/alc/PQ_LAUNDRY/contrib/jemalloc/doc/jemalloc.3
  user/alc/PQ_LAUNDRY/contrib/jemalloc/include/jemalloc/internal/arena.h
  user/alc/PQ_LAUNDRY/contrib/jemalloc/include/jemalloc/internal/chunk.h
  user/alc/PQ_LAUNDRY/contrib/jemalloc/include/jemalloc/internal/chunk_dss.h
  user/alc/PQ_LAUNDRY/contrib/jemalloc/include/jemalloc/internal/ckh.h
  user/alc/PQ_LAUNDRY/contrib/jemalloc/include/jemalloc/internal/huge.h
  user/alc/PQ_LAUNDRY/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal.h
  user/alc/PQ_LAUNDRY/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal_decls.h
  user/alc/PQ_LAUNDRY/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal_defs.h
  user/alc/PQ_LAUNDRY/contrib/jemalloc/include/jemalloc/internal/mb.h
  user/alc/PQ_LAUNDRY/contrib/jemalloc/include/jemalloc/internal/mutex.h
  user/alc/PQ_LAUNDRY/contrib/jemalloc/include/jemalloc/internal/nstime.h
  user/alc/PQ_LAUNDRY/contrib/jemalloc/include/jemalloc/internal/private_namespace.h
  user/alc/PQ_LAUNDRY/contrib/jemalloc/include/jemalloc/internal/prng.h
  user/alc/PQ_LAUNDRY/contrib/jemalloc/include/jemalloc/internal/prof.h
  user/alc/PQ_LAUNDRY/contrib/jemalloc/include/jemalloc/internal/size_classes.h
  user/alc/PQ_LAUNDRY/contrib/jemalloc/include/jemalloc/internal/tcache.h
  user/alc/PQ_LAUNDRY/contrib/jemalloc/include/jemalloc/internal/tsd.h
  user/alc/PQ_LAUNDRY/contrib/jemalloc/include/jemalloc/internal/util.h
  user/alc/PQ_LAUNDRY/contrib/jemalloc/include/jemalloc/internal/witness.h
  user/alc/PQ_LAUNDRY/contrib/jemalloc/include/jemalloc/jemalloc.h
  user/alc/PQ_LAUNDRY/contrib/jemalloc/src/arena.c
  user/alc/PQ_LAUNDRY/contrib/jemalloc/src/chunk.c
  user/alc/PQ_LAUNDRY/contrib/jemalloc/src/chunk_dss.c
  user/alc/PQ_LAUNDRY/contrib/jemalloc/src/ckh.c
  user/alc/PQ_LAUNDRY/contrib/jemalloc/src/ctl.c
  user/alc/PQ_LAUNDRY/contrib/jemalloc/src/huge.c
  user/alc/PQ_LAUNDRY/contrib/jemalloc/src/jemalloc.c
  user/alc/PQ_LAUNDRY/contrib/jemalloc/src/mutex.c
  user/alc/PQ_LAUNDRY/contrib/jemalloc/src/nstime.c
  user/alc/PQ_LAUNDRY/contrib/jemalloc/src/pages.c
  user/alc/PQ_LAUNDRY/contrib/jemalloc/src/prof.c
  user/alc/PQ_LAUNDRY/contrib/jemalloc/src/rtree.c
  user/alc/PQ_LAUNDRY/contrib/jemalloc/src/stats.c
  user/alc/PQ_LAUNDRY/contrib/jemalloc/src/tcache.c
  user/alc/PQ_LAUNDRY/contrib/jemalloc/src/tsd.c
  user/alc/PQ_LAUNDRY/contrib/jemalloc/src/util.c
  user/alc/PQ_LAUNDRY/lib/libc/stdlib/jemalloc/Makefile.inc
  user/alc/PQ_LAUNDRY/lib/libgcc_s/Version.map
  user/alc/PQ_LAUNDRY/lib/libstand/stand.h
  user/alc/PQ_LAUNDRY/libexec/rtld-elf/rtld.c
  user/alc/PQ_LAUNDRY/libexec/rtld-elf/sparc64/reloc.c
  user/alc/PQ_LAUNDRY/sbin/pfctl/pfctl_optimize.c
  user/alc/PQ_LAUNDRY/sys/amd64/vmm/io/vlapic.c
  user/alc/PQ_LAUNDRY/sys/arm/allwinner/a10/a10_intc.c
  user/alc/PQ_LAUNDRY/sys/arm/allwinner/clk/aw_ahbclk.c
  user/alc/PQ_LAUNDRY/sys/arm/allwinner/files.allwinner
  user/alc/PQ_LAUNDRY/sys/arm/broadcom/bcm2835/bcm2835_audio.c
  user/alc/PQ_LAUNDRY/sys/arm/broadcom/bcm2835/bcm2835_gpio.c
  user/alc/PQ_LAUNDRY/sys/arm/broadcom/bcm2835/bcm2835_intr.c
  user/alc/PQ_LAUNDRY/sys/arm/broadcom/bcm2835/bcm2836.c
  user/alc/PQ_LAUNDRY/sys/arm/broadcom/bcm2835/bcm2836_mp.c
  user/alc/PQ_LAUNDRY/sys/arm/broadcom/bcm2835/files.bcm283x
  user/alc/PQ_LAUNDRY/sys/arm/include/profile.h
  user/alc/PQ_LAUNDRY/sys/arm/qemu/files.qemu
  user/alc/PQ_LAUNDRY/sys/arm/ti/aintc.c
  user/alc/PQ_LAUNDRY/sys/arm/ti/files.ti
  user/alc/PQ_LAUNDRY/sys/arm/ti/omap4/omap4_prcm_clks.c
  user/alc/PQ_LAUNDRY/sys/arm/ti/ti_gpio.c
  user/alc/PQ_LAUNDRY/sys/arm/ti/ti_gpio.h
  user/alc/PQ_LAUNDRY/sys/arm64/arm64/identcpu.c
  user/alc/PQ_LAUNDRY/sys/boot/common/dev_net.c
  user/alc/PQ_LAUNDRY/sys/boot/common/module.c
  user/alc/PQ_LAUNDRY/sys/boot/common/part.c
  user/alc/PQ_LAUNDRY/sys/boot/common/util.c
  user/alc/PQ_LAUNDRY/sys/boot/common/util.h
  user/alc/PQ_LAUNDRY/sys/boot/efi/libefi/efinet.c
  user/alc/PQ_LAUNDRY/sys/boot/efi/libefi/efipart.c
  user/alc/PQ_LAUNDRY/sys/boot/efi/loader/main.c
  user/alc/PQ_LAUNDRY/sys/boot/i386/libfirewire/firewire.c
  user/alc/PQ_LAUNDRY/sys/boot/i386/libi386/bioscd.c
  user/alc/PQ_LAUNDRY/sys/boot/i386/libi386/biosdisk.c
  user/alc/PQ_LAUNDRY/sys/boot/i386/libi386/pxe.c
  user/alc/PQ_LAUNDRY/sys/boot/mips/beri/loader/beri_disk_cfi.c
  user/alc/PQ_LAUNDRY/sys/boot/mips/beri/loader/beri_disk_sdcard.c
  user/alc/PQ_LAUNDRY/sys/boot/ofw/libofw/ofw_disk.c
  user/alc/PQ_LAUNDRY/sys/boot/pc98/libpc98/bioscd.c
  user/alc/PQ_LAUNDRY/sys/boot/pc98/libpc98/biosdisk.c
  user/alc/PQ_LAUNDRY/sys/boot/powerpc/kboot/hostdisk.c
  user/alc/PQ_LAUNDRY/sys/boot/powerpc/ps3/ps3cdrom.c
  user/alc/PQ_LAUNDRY/sys/boot/powerpc/ps3/ps3disk.c
  user/alc/PQ_LAUNDRY/sys/boot/uboot/lib/disk.c
  user/alc/PQ_LAUNDRY/sys/boot/usb/storage/umass_loader.c
  user/alc/PQ_LAUNDRY/sys/boot/userboot/userboot/host.c
  user/alc/PQ_LAUNDRY/sys/boot/userboot/userboot/userboot_disk.c
  user/alc/PQ_LAUNDRY/sys/boot/zfs/zfs.c
  user/alc/PQ_LAUNDRY/sys/boot/zfs/zfsimpl.c
  user/alc/PQ_LAUNDRY/sys/cam/cam.h
  user/alc/PQ_LAUNDRY/sys/cam/cam_xpt.c
  user/alc/PQ_LAUNDRY/sys/cam/scsi/scsi_enc_ses.c
  user/alc/PQ_LAUNDRY/sys/cam/scsi/scsi_pass.c
  user/alc/PQ_LAUNDRY/sys/cam/scsi/scsi_ses.h
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
  user/alc/PQ_LAUNDRY/sys/cddl/dev/dtrace/aarch64/dtrace_subr.c
  user/alc/PQ_LAUNDRY/sys/cddl/dev/dtrace/arm/dtrace_asm.S
  user/alc/PQ_LAUNDRY/sys/cddl/dev/dtrace/arm/dtrace_subr.c
  user/alc/PQ_LAUNDRY/sys/cddl/dev/dtrace/riscv/dtrace_subr.c
  user/alc/PQ_LAUNDRY/sys/conf/files
  user/alc/PQ_LAUNDRY/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_eeprom.c
  user/alc/PQ_LAUNDRY/sys/contrib/vchiq/interface/vchiq_arm/vchiq_arm.c
  user/alc/PQ_LAUNDRY/sys/dev/aic7xxx/aic7xxx.seq
  user/alc/PQ_LAUNDRY/sys/dev/ath/if_ath_tdma.c
  user/alc/PQ_LAUNDRY/sys/dev/e1000/if_igb.c
  user/alc/PQ_LAUNDRY/sys/dev/extres/clk/clk.c
  user/alc/PQ_LAUNDRY/sys/dev/gpio/gpioled.c
  user/alc/PQ_LAUNDRY/sys/dev/ichsmb/ichsmb_pci.c
  user/alc/PQ_LAUNDRY/sys/dev/isci/scil/sati_design.h
  user/alc/PQ_LAUNDRY/sys/dev/isci/scil/sci_base_controller.h
  user/alc/PQ_LAUNDRY/sys/dev/mpt/mpt.c
  user/alc/PQ_LAUNDRY/sys/dev/nvme/nvme_ctrlr.c
  user/alc/PQ_LAUNDRY/sys/dev/nvme/nvme_private.h
  user/alc/PQ_LAUNDRY/sys/dev/nvme/nvme_qpair.c
  user/alc/PQ_LAUNDRY/sys/dev/sfxge/common/efx_mcdi.c
  user/alc/PQ_LAUNDRY/sys/dev/sound/pci/hda/hdaa.c
  user/alc/PQ_LAUNDRY/sys/dev/sound/pci/hda/hdac.c
  user/alc/PQ_LAUNDRY/sys/dev/sound/pci/hda/hdac.h
  user/alc/PQ_LAUNDRY/sys/dev/sound/pci/hda/hdacc.c
  user/alc/PQ_LAUNDRY/sys/dev/sound/usb/uaudio.c
  user/alc/PQ_LAUNDRY/sys/dev/usb/controller/xhci_pci.c
  user/alc/PQ_LAUNDRY/sys/dev/usb/usbdevs
  user/alc/PQ_LAUNDRY/sys/fs/nullfs/null_vnops.c
  user/alc/PQ_LAUNDRY/sys/geom/raid/md_ddf.c
  user/alc/PQ_LAUNDRY/sys/geom/raid/md_intel.c
  user/alc/PQ_LAUNDRY/sys/geom/raid/md_jmicron.c
  user/alc/PQ_LAUNDRY/sys/geom/raid/md_nvidia.c
  user/alc/PQ_LAUNDRY/sys/geom/raid/md_promise.c
  user/alc/PQ_LAUNDRY/sys/geom/raid/md_sii.c
  user/alc/PQ_LAUNDRY/sys/i386/include/cserial.h
  user/alc/PQ_LAUNDRY/sys/kern/init_main.c
  user/alc/PQ_LAUNDRY/sys/kern/kern_ctf.c
  user/alc/PQ_LAUNDRY/sys/kern/subr_firmware.c
  user/alc/PQ_LAUNDRY/sys/kern/uipc_mbuf.c
  user/alc/PQ_LAUNDRY/sys/kern/vfs_bio.c
  user/alc/PQ_LAUNDRY/sys/modules/dtb/am335x/Makefile
  user/alc/PQ_LAUNDRY/sys/modules/gpio/gpioled/Makefile
  user/alc/PQ_LAUNDRY/sys/net80211/ieee80211_node.h
  user/alc/PQ_LAUNDRY/sys/netgraph/ng_base.c
  user/alc/PQ_LAUNDRY/sys/powerpc/powerpc/mmu_if.m
  user/alc/PQ_LAUNDRY/sys/security/mac/mac_inet.c
  user/alc/PQ_LAUNDRY/sys/vm/vm_fault.c
  user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c
  user/alc/PQ_LAUNDRY/sys/x86/xen/xen_intr.c
  user/alc/PQ_LAUNDRY/usr.bin/basename/basename.c
  user/alc/PQ_LAUNDRY/usr.bin/dc/dc.c
  user/alc/PQ_LAUNDRY/usr.bin/dirname/dirname.c
  user/alc/PQ_LAUNDRY/usr.bin/du/du.c
  user/alc/PQ_LAUNDRY/usr.bin/fold/fold.c
  user/alc/PQ_LAUNDRY/usr.bin/getopt/getopt.c
  user/alc/PQ_LAUNDRY/usr.bin/locate/bigram/locate.bigram.c
  user/alc/PQ_LAUNDRY/usr.bin/logname/logname.c
  user/alc/PQ_LAUNDRY/usr.bin/printenv/printenv.c
  user/alc/PQ_LAUNDRY/usr.bin/xlint/lint2/read.c
  user/alc/PQ_LAUNDRY/usr.bin/yes/yes.c
  user/alc/PQ_LAUNDRY/usr.sbin/bhyve/bhyverun.c
  user/alc/PQ_LAUNDRY/usr.sbin/bsnmpd/modules/snmp_bridge/BEGEMOT-BRIDGE-MIB.txt
  user/alc/PQ_LAUNDRY/usr.sbin/gstat/gstat.8
  user/alc/PQ_LAUNDRY/usr.sbin/gstat/gstat.c
  user/alc/PQ_LAUNDRY/usr.sbin/newsyslog/newsyslog.c
Directory Properties:
  user/alc/PQ_LAUNDRY/   (props changed)
  user/alc/PQ_LAUNDRY/contrib/elftoolchain/   (props changed)
  user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/   (props changed)

Modified: user/alc/PQ_LAUNDRY/bin/echo/echo.c
==============================================================================
--- user/alc/PQ_LAUNDRY/bin/echo/echo.c	Wed Nov  9 18:48:37 2016	(r308474)
+++ user/alc/PQ_LAUNDRY/bin/echo/echo.c	Wed Nov  9 19:08:39 2016	(r308475)
@@ -45,6 +45,8 @@ __FBSDID("$FreeBSD$");
 #include <sys/uio.h>
 
 #include <assert.h>
+#include <capsicum_helpers.h>
+#include <err.h>
 #include <errno.h>
 #include <limits.h>
 #include <stdlib.h>
@@ -78,6 +80,9 @@ main(int argc, char *argv[])
 	char newline[] = "\n";
 	char *progname = argv[0];
 
+	if (caph_limit_stdio() < 0 || (cap_enter() < 0 && errno != ENOSYS))
+		err(1, "capsicum");
+
 	/* This utility may NOT do getopt(3) option parsing. */
 	if (*++argv && !strcmp(*argv, "-n")) {
 		++argv;

Modified: user/alc/PQ_LAUNDRY/bin/hostname/hostname.1
==============================================================================
--- user/alc/PQ_LAUNDRY/bin/hostname/hostname.1	Wed Nov  9 18:48:37 2016	(r308474)
+++ user/alc/PQ_LAUNDRY/bin/hostname/hostname.1	Wed Nov  9 19:08:39 2016	(r308475)
@@ -29,7 +29,7 @@
 .\"	@(#)hostname.1	8.2 (Berkeley) 4/28/95
 .\" $FreeBSD$
 .\"
-.Dd December 7, 2006
+.Dd November 10, 2016
 .Dt HOSTNAME 1
 .Os
 .Sh NAME
@@ -37,7 +37,8 @@
 .Nd set or print name of current host system
 .Sh SYNOPSIS
 .Nm
-.Op Fl fs
+.Op Fl f
+.Op Fl s | d
 .Op Ar name-of-host
 .Sh DESCRIPTION
 The
@@ -62,6 +63,8 @@ This is the default behavior.
 .It Fl s
 Trim off any domain information from the printed
 name.
+.It Fl d
+Only print domain information.
 .El
 .Sh SEE ALSO
 .Xr gethostname 3 ,

Modified: user/alc/PQ_LAUNDRY/bin/hostname/hostname.c
==============================================================================
--- user/alc/PQ_LAUNDRY/bin/hostname/hostname.c	Wed Nov  9 18:48:37 2016	(r308474)
+++ user/alc/PQ_LAUNDRY/bin/hostname/hostname.c	Wed Nov  9 19:08:39 2016	(r308475)
@@ -54,11 +54,12 @@ static void usage(void) __dead2;
 int
 main(int argc, char *argv[])
 {
-	int ch, sflag;
+	int ch, sflag, dflag;
 	char *p, hostname[MAXHOSTNAMELEN];
 
 	sflag = 0;
-	while ((ch = getopt(argc, argv, "fs")) != -1)
+	dflag = 0;
+	while ((ch = getopt(argc, argv, "fsd")) != -1)
 		switch (ch) {
 		case 'f':
 			/*
@@ -70,6 +71,9 @@ main(int argc, char *argv[])
 		case 's':
 			sflag = 1;
 			break;
+		case 'd':
+			dflag = 1;
+			break;
 		case '?':
 		default:
 			usage();
@@ -77,7 +81,7 @@ main(int argc, char *argv[])
 	argc -= optind;
 	argv += optind;
 
-	if (argc > 1)
+	if (argc > 1 || (sflag && dflag))
 		usage();
 
 	if (*argv) {
@@ -90,6 +94,10 @@ main(int argc, char *argv[])
 			p = strchr(hostname, '.');
 			if (p != NULL)
 				*p = '\0';
+		} else if (dflag) {
+			p = strchr(hostname, '.');
+			if (p != NULL)
+				strcpy(hostname, ++p);
 		}
 		(void)printf("%s\n", hostname);
 	}
@@ -100,6 +108,6 @@ static void
 usage(void)
 {
 
-	(void)fprintf(stderr, "usage: hostname [-fs] [name-of-host]\n");
+	(void)fprintf(stderr, "usage: hostname [-f] [-s | -d] [name-of-host]\n");
 	exit(1);
 }

Modified: user/alc/PQ_LAUNDRY/bin/sleep/sleep.c
==============================================================================
--- user/alc/PQ_LAUNDRY/bin/sleep/sleep.c	Wed Nov  9 18:48:37 2016	(r308474)
+++ user/alc/PQ_LAUNDRY/bin/sleep/sleep.c	Wed Nov  9 19:08:39 2016	(r308475)
@@ -41,6 +41,7 @@ static char sccsid[] = "@(#)sleep.c	8.3 
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
+#include <capsicum_helpers.h>
 #include <ctype.h>
 #include <err.h>
 #include <errno.h>
@@ -69,6 +70,9 @@ main(int argc, char *argv[])
 	time_t original;
 	char buf[2];
 
+	if (caph_limit_stdio() < 0 || (cap_enter() < 0 && errno != ENOSYS))
+		err(1, "capsicum");
+
 	if (argc != 2)
 		usage();
 

Modified: user/alc/PQ_LAUNDRY/contrib/elftoolchain/cxxfilt/cxxfilt.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/elftoolchain/cxxfilt/cxxfilt.c	Wed Nov  9 18:48:37 2016	(r308474)
+++ user/alc/PQ_LAUNDRY/contrib/elftoolchain/cxxfilt/cxxfilt.c	Wed Nov  9 19:08:39 2016	(r308475)
@@ -188,6 +188,8 @@ main(int argc, char **argv)
 				if (c == EOF)
 					break;
 				putchar(c);
+				if (c == '\n')
+					fflush(stdout);
 			} else {
 				if ((size_t) p >= sizeof(buf) - 1)
 					warnx("buffer overflowed");

Modified: user/alc/PQ_LAUNDRY/contrib/elftoolchain/libelftc/elftc_bfd_find_target.3
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/elftoolchain/libelftc/elftc_bfd_find_target.3	Wed Nov  9 18:48:37 2016	(r308474)
+++ user/alc/PQ_LAUNDRY/contrib/elftoolchain/libelftc/elftc_bfd_find_target.3	Wed Nov  9 19:08:39 2016	(r308475)
@@ -82,6 +82,7 @@ Known descriptor names and their propert
 .It Li elf32-shbig-linux Ta ELF Ta MSB Ta 32
 .It Li elf32-shl-linux Ta ELF Ta LSB Ta 32
 .It Li elf32-sparc Ta ELF Ta MSB Ta 32
+.It Li elf32-tradbigmips Ta ELF Ta MSB Ta 32
 .It Li elf64-alpha Ta ELF Ta LSB Ta 64
 .It Li elf64-alpha-freebsd Ta ELF Ta LSB Ta 64
 .It Li elf64-big Ta ELF Ta MSB Ta 64
@@ -101,6 +102,7 @@ Known descriptor names and their propert
 .It Li elf64-sh64-linux Ta ELF Ta LSB Ta 64
 .It Li elf64-sparc Ta ELF Ta MSB Ta 64
 .It Li elf64-sparc-freebsd Ta ELF Ta MSB Ta 64
+.It Li elf64-tradbigmips Ta ELF Ta MSB Ta 64
 .It Li elf64-x86-64 Ta ELF Ta LSB Ta 64
 .It Li elf64-x86-64-freebsd Ta ELF Ta LSB Ta 64
 .It Li ihex Ta IHEX Ta - Ta -

Modified: user/alc/PQ_LAUNDRY/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c	Wed Nov  9 18:48:37 2016	(r308474)
+++ user/alc/PQ_LAUNDRY/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c	Wed Nov  9 19:08:39 2016	(r308475)
@@ -195,6 +195,14 @@ struct _Elftc_Bfd_Target _libelftc_targe
 	},
 
 	{
+		.bt_name      = "elf32-tradbigmips",
+		.bt_type      = ETF_ELF,
+		.bt_byteorder = ELFDATA2MSB,
+		.bt_elfclass  = ELFCLASS32,
+		.bt_machine   = EM_MIPS,
+	},
+
+	{
 		.bt_name      = "elf64-alpha",
 		.bt_type      = ETF_ELF,
 		.bt_byteorder = ELFDATA2LSB,
@@ -351,6 +359,14 @@ struct _Elftc_Bfd_Target _libelftc_targe
 	},
 
 	{
+		.bt_name      = "elf64-tradbigmips",
+		.bt_type      = ETF_ELF,
+		.bt_byteorder = ELFDATA2MSB,
+		.bt_elfclass  = ELFCLASS64,
+		.bt_machine   = EM_MIPS,
+	},
+
+	{
 		.bt_name      = "elf64-x86-64",
 		.bt_type      = ETF_ELF,
 		.bt_byteorder =	ELFDATA2LSB,

Modified: user/alc/PQ_LAUNDRY/contrib/jemalloc/ChangeLog
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/jemalloc/ChangeLog	Wed Nov  9 18:48:37 2016	(r308474)
+++ user/alc/PQ_LAUNDRY/contrib/jemalloc/ChangeLog	Wed Nov  9 19:08:39 2016	(r308475)
@@ -4,6 +4,59 @@ brevity.  Much more detail can be found 
 
     https://github.com/jemalloc/jemalloc
 
+* 4.3.1 (November 7, 2016)
+
+  Bug fixes:
+  - Fix a severe virtual memory leak.  This regression was first released in
+    4.3.0.  (@interwq, @jasone)
+  - Refactor atomic and prng APIs to restore support for 32-bit platforms that
+    use pre-C11 toolchains, e.g. FreeBSD's mips.  (@jasone)
+
+* 4.3.0 (November 4, 2016)
+
+  This is the first release that passes the test suite for multiple Windows
+  configurations, thanks in large part to @glandium setting up continuous
+  integration via AppVeyor (and Travis CI for Linux and OS X).
+
+  New features:
+  - Add "J" (JSON) support to malloc_stats_print().  (@jasone)
+  - Add Cray compiler support.  (@ronawho)
+
+  Optimizations:
+  - Add/use adaptive spinning for bootstrapping and radix tree node
+    initialization.  (@jasone)
+
+  Bug fixes:
+  - Fix large allocation to search starting in the optimal size class heap,
+    which can substantially reduce virtual memory churn and fragmentation.  This
+    regression was first released in 4.0.0.  (@mjp41, @jasone)
+  - Fix stats.arenas.<i>.nthreads accounting.  (@interwq)
+  - Fix and simplify decay-based purging.  (@jasone)
+  - Make DSS (sbrk(2)-related) operations lockless, which resolves potential
+    deadlocks during thread exit.  (@jasone)
+  - Fix over-sized allocation of radix tree leaf nodes.  (@mjp41, @ogaun,
+    @jasone)
+  - Fix over-sized allocation of arena_t (plus associated stats) data
+    structures.  (@jasone, @interwq)
+  - Fix EXTRA_CFLAGS to not affect configuration.  (@jasone)
+  - Fix a Valgrind integration bug.  (@ronawho)
+  - Disallow 0x5a junk filling when running in Valgrind.  (@jasone)
+  - Fix a file descriptor leak on Linux.  This regression was first released in
+    4.2.0.  (@vsarunas, @jasone)
+  - Fix static linking of jemalloc with glibc.  (@djwatson)
+  - Use syscall(2) rather than {open,read,close}(2) during boot on Linux.  This
+    works around other libraries' system call wrappers performing reentrant
+    allocation.  (@kspinka, @Whissi, @jasone)
+  - Fix OS X default zone replacement to work with OS X 10.12.  (@glandium,
+    @jasone)
+  - Fix cached memory management to avoid needless commit/decommit operations
+    during purging, which resolves permanent virtual memory map fragmentation
+    issues on Windows.  (@mjp41, @jasone)
+  - Fix TSD fetches to avoid (recursive) allocation.  This is relevant to
+    non-TLS and Windows configurations.  (@jasone)
+  - Fix malloc_conf overriding to work on Windows.  (@jasone)
+  - Forcibly disable lazy-lock on Windows (was forcibly *enabled*).  (@jasone)
+
 * 4.2.1 (June 8, 2016)
 
   Bug fixes:

Modified: user/alc/PQ_LAUNDRY/contrib/jemalloc/FREEBSD-Xlist
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/jemalloc/FREEBSD-Xlist	Wed Nov  9 18:48:37 2016	(r308474)
+++ user/alc/PQ_LAUNDRY/contrib/jemalloc/FREEBSD-Xlist	Wed Nov  9 19:08:39 2016	(r308475)
@@ -1,6 +1,8 @@
 $FreeBSD$
+.appveyor.yml
 .autom4te.cfg
 .git*
+.travis.yml
 FREEBSD-*
 INSTALL
 Makefile*

Modified: user/alc/PQ_LAUNDRY/contrib/jemalloc/FREEBSD-diffs
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/jemalloc/FREEBSD-diffs	Wed Nov  9 18:48:37 2016	(r308474)
+++ user/alc/PQ_LAUNDRY/contrib/jemalloc/FREEBSD-diffs	Wed Nov  9 19:08:39 2016	(r308475)
@@ -1,11 +1,11 @@
 diff --git a/doc/jemalloc.xml.in b/doc/jemalloc.xml.in
-index c4a44e3..4626e9b 100644
+index 3d2e721..b361db2 100644
 --- a/doc/jemalloc.xml.in
 +++ b/doc/jemalloc.xml.in
 @@ -53,11 +53,23 @@
      <para>This manual describes jemalloc @jemalloc_version@.  More information
      can be found at the <ulink
-     url="http://www.canonware.com/jemalloc/">jemalloc website</ulink>.</para>
+     url="http://jemalloc.net/">jemalloc website</ulink>.</para>
 +
 +    <para>The following configuration options are enabled in libc's built-in
 +    jemalloc: <option>--enable-fill</option>,
@@ -27,30 +27,30 @@ index c4a44e3..4626e9b 100644
        <refsect2>
          <title>Standard API</title>
          <funcprototype>
-@@ -2961,4 +2973,18 @@ malloc_conf = "lg_chunk:24";]]></programlisting></para>
-     <para>The <function>posix_memalign<parameter/></function> function conforms
-     to IEEE Std 1003.1-2001 (&ldquo;POSIX.1&rdquo;).</para>
+@@ -2963,4 +2975,18 @@ malloc_conf = "lg_chunk:24";]]></programlisting></para>
+     <para>The <function>posix_memalign()</function> function conforms
+     to IEEE Std 1003.1-2001 (<quote>POSIX.1</quote>).</para>
    </refsect1>
 +  <refsect1 id="history">
 +    <title>HISTORY</title>
-+    <para>The <function>malloc_usable_size<parameter/></function> and
-+    <function>posix_memalign<parameter/></function> functions first appeared in
-+    FreeBSD 7.0.</para>
-+
-+    <para>The <function>aligned_alloc<parameter/></function>,
-+    <function>malloc_stats_print<parameter/></function>, and
-+    <function>mallctl*<parameter/></function> functions first appeared in
-+    FreeBSD 10.0.</para>
++    <para>The <function>malloc_usable_size()</function> and
++    <function>posix_memalign()</function> functions first appeared in FreeBSD
++    7.0.</para>
++
++    <para>The <function>aligned_alloc()</function>,
++    <function>malloc_stats_print()</function>, and
++    <function>mallctl*()</function> functions first appeared in FreeBSD
++    10.0.</para>
 +
-+    <para>The <function>*allocx<parameter/></function> functions first appeared
-+    in FreeBSD 11.0.</para>
++    <para>The <function>*allocx()</function> functions first appeared in FreeBSD
++    11.0.</para>
 +  </refsect1>
  </refentry>
 diff --git a/include/jemalloc/internal/arena.h b/include/jemalloc/internal/arena.h
-index b1de2b6..da6b6d2 100644
+index f39ce54..a3ba55d 100644
 --- a/include/jemalloc/internal/arena.h
 +++ b/include/jemalloc/internal/arena.h
-@@ -718,8 +718,13 @@ arena_miscelm_get_mutable(arena_chunk_t *chunk, size_t pageind)
+@@ -719,8 +719,13 @@ arena_miscelm_get_mutable(arena_chunk_t *chunk, size_t pageind)
  JEMALLOC_ALWAYS_INLINE const arena_chunk_map_misc_t *
  arena_miscelm_get_const(const arena_chunk_t *chunk, size_t pageind)
  {
@@ -64,7 +64,7 @@ index b1de2b6..da6b6d2 100644
  }
  
  JEMALLOC_ALWAYS_INLINE size_t
-@@ -778,8 +783,13 @@ arena_mapbitsp_get_mutable(arena_chunk_t *chunk, size_t pageind)
+@@ -779,8 +784,13 @@ arena_mapbitsp_get_mutable(arena_chunk_t *chunk, size_t pageind)
  JEMALLOC_ALWAYS_INLINE const size_t *
  arena_mapbitsp_get_const(const arena_chunk_t *chunk, size_t pageind)
  {
@@ -79,7 +79,7 @@ index b1de2b6..da6b6d2 100644
  
  JEMALLOC_ALWAYS_INLINE size_t
 diff --git a/include/jemalloc/internal/jemalloc_internal.h.in b/include/jemalloc/internal/jemalloc_internal.h.in
-index 8f82edd..78e2df2 100644
+index fdc8fef..56a35a4 100644
 --- a/include/jemalloc/internal/jemalloc_internal.h.in
 +++ b/include/jemalloc/internal/jemalloc_internal.h.in
 @@ -8,6 +8,9 @@
@@ -108,7 +108,7 @@ index 8f82edd..78e2df2 100644
  static const bool config_prof =
  #ifdef JEMALLOC_PROF
 diff --git a/include/jemalloc/internal/jemalloc_internal_decls.h b/include/jemalloc/internal/jemalloc_internal_decls.h
-index 2b8ca5d..42d97f2 100644
+index c907d91..4626632 100644
 --- a/include/jemalloc/internal/jemalloc_internal_decls.h
 +++ b/include/jemalloc/internal/jemalloc_internal_decls.h
 @@ -1,6 +1,9 @@
@@ -122,10 +122,10 @@ index 2b8ca5d..42d97f2 100644
  #ifdef _WIN32
  #  include <windows.h>
 diff --git a/include/jemalloc/internal/mutex.h b/include/jemalloc/internal/mutex.h
-index 5221799..60ab041 100644
+index b442d2d..76518db 100644
 --- a/include/jemalloc/internal/mutex.h
 +++ b/include/jemalloc/internal/mutex.h
-@@ -52,9 +52,6 @@ struct malloc_mutex_s {
+@@ -57,9 +57,6 @@ struct malloc_mutex_s {
  
  #ifdef JEMALLOC_LAZY_LOCK
  extern bool isthreaded;
@@ -135,7 +135,7 @@ index 5221799..60ab041 100644
  #endif
  
  bool	malloc_mutex_init(malloc_mutex_t *mutex, const char *name,
-@@ -62,6 +59,7 @@ bool	malloc_mutex_init(malloc_mutex_t *mutex, const char *name,
+@@ -67,6 +64,7 @@ bool	malloc_mutex_init(malloc_mutex_t *mutex, const char *name,
  void	malloc_mutex_prefork(tsdn_t *tsdn, malloc_mutex_t *mutex);
  void	malloc_mutex_postfork_parent(tsdn_t *tsdn, malloc_mutex_t *mutex);
  void	malloc_mutex_postfork_child(tsdn_t *tsdn, malloc_mutex_t *mutex);
@@ -144,10 +144,10 @@ index 5221799..60ab041 100644
  
  #endif /* JEMALLOC_H_EXTERNS */
 diff --git a/include/jemalloc/internal/private_symbols.txt b/include/jemalloc/internal/private_symbols.txt
-index f2b6a55..69369c9 100644
+index 87c8c9b..df576f6 100644
 --- a/include/jemalloc/internal/private_symbols.txt
 +++ b/include/jemalloc/internal/private_symbols.txt
-@@ -311,7 +311,6 @@ iralloct_realign
+@@ -307,7 +307,6 @@ iralloct_realign
  isalloc
  isdalloct
  isqalloc
@@ -335,7 +335,7 @@ index f943891..47d032c 100755
 +#include "jemalloc_FreeBSD.h"
  EOF
 diff --git a/src/jemalloc.c b/src/jemalloc.c
-index 5d1f493..46dd1d1 100644
+index 38650ff..f659b55 100644
 --- a/src/jemalloc.c
 +++ b/src/jemalloc.c
 @@ -4,6 +4,10 @@
@@ -347,9 +347,9 @@ index 5d1f493..46dd1d1 100644
 +__sym_compat(_malloc_options, __malloc_options_1_0, FBSD_1.0);
 +
  /* Runtime configuration options. */
- const char	*je_malloc_conf JEMALLOC_ATTR(weak);
- bool	opt_abort =
-@@ -2673,6 +2677,107 @@ je_malloc_usable_size(JEMALLOC_USABLE_SIZE_CONST void *ptr)
+ const char	*je_malloc_conf
+ #ifndef _WIN32
+@@ -2756,6 +2760,107 @@ je_malloc_usable_size(JEMALLOC_USABLE_SIZE_CONST void *ptr)
   */
  /******************************************************************************/
  /*
@@ -457,7 +457,7 @@ index 5d1f493..46dd1d1 100644
   * The following functions are used by threading libraries for protection of
   * malloc during fork().
   */
-@@ -2814,4 +2919,11 @@ jemalloc_postfork_child(void)
+@@ -2894,4 +2999,11 @@ jemalloc_postfork_child(void)
  	ctl_postfork_child(tsd_tsdn(tsd));
  }
  
@@ -470,7 +470,7 @@ index 5d1f493..46dd1d1 100644
 +
  /******************************************************************************/
 diff --git a/src/mutex.c b/src/mutex.c
-index a1fac34..a24e420 100644
+index 6333e73..13f8d79 100644
 --- a/src/mutex.c
 +++ b/src/mutex.c
 @@ -66,6 +66,17 @@ pthread_create(pthread_t *__restrict thread,
@@ -491,7 +491,7 @@ index a1fac34..a24e420 100644
  #endif
  
  bool
-@@ -140,7 +151,7 @@ malloc_mutex_postfork_child(tsdn_t *tsdn, malloc_mutex_t *mutex)
+@@ -142,7 +153,7 @@ malloc_mutex_postfork_child(tsdn_t *tsdn, malloc_mutex_t *mutex)
  }
  
  bool
@@ -500,7 +500,7 @@ index a1fac34..a24e420 100644
  {
  
  #ifdef JEMALLOC_MUTEX_INIT_CB
-@@ -154,3 +165,14 @@ malloc_mutex_boot(void)
+@@ -156,3 +167,14 @@ malloc_mutex_boot(void)
  #endif
  	return (false);
  }
@@ -516,7 +516,7 @@ index a1fac34..a24e420 100644
 +#endif
 +}
 diff --git a/src/util.c b/src/util.c
-index a1c4a2a..04f9153 100644
+index 7905267..bee1c77 100644
 --- a/src/util.c
 +++ b/src/util.c
 @@ -67,6 +67,22 @@ wrtmessage(void *cbopaque, const char *s)

Modified: user/alc/PQ_LAUNDRY/contrib/jemalloc/VERSION
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/jemalloc/VERSION	Wed Nov  9 18:48:37 2016	(r308474)
+++ user/alc/PQ_LAUNDRY/contrib/jemalloc/VERSION	Wed Nov  9 19:08:39 2016	(r308475)
@@ -1 +1 @@
-4.2.1-0-g3de035335255d553bdb344c32ffdb603816195d8
+4.3.1-0-g0110fa8451af905affd77c3bea0d545fee2251b2

Modified: user/alc/PQ_LAUNDRY/contrib/jemalloc/doc/jemalloc.3
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/jemalloc/doc/jemalloc.3	Wed Nov  9 18:48:37 2016	(r308474)
+++ user/alc/PQ_LAUNDRY/contrib/jemalloc/doc/jemalloc.3	Wed Nov  9 19:08:39 2016	(r308475)
@@ -2,12 +2,12 @@
 .\"     Title: JEMALLOC
 .\"    Author: Jason Evans
 .\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>;
-.\"      Date: 06/08/2016
+.\"      Date: 11/08/2016
 .\"    Manual: User Manual
-.\"    Source: jemalloc 4.2.1-0-g3de035335255d553bdb344c32ffdb603816195d8
+.\"    Source: jemalloc 4.3.1-0-g0110fa8451af905affd77c3bea0d545fee2251b2
 .\"  Language: English
 .\"
-.TH "JEMALLOC" "3" "06/08/2016" "jemalloc 4.2.1-0-g3de035335255" "User Manual"
+.TH "JEMALLOC" "3" "11/08/2016" "jemalloc 4.3.1-0-g0110fa8451af" "User Manual"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -31,7 +31,7 @@
 jemalloc \- general purpose memory allocation functions
 .SH "LIBRARY"
 .PP
-This manual describes jemalloc 4\&.2\&.1\-0\-g3de035335255d553bdb344c32ffdb603816195d8\&. More information can be found at the
+This manual describes jemalloc 4\&.3\&.1\-0\-g0110fa8451af905affd77c3bea0d545fee2251b2\&. More information can be found at the
 \m[blue]\fBjemalloc website\fR\m[]\&\s-2\u[1]\d\s+2\&.
 .PP
 The following configuration options are enabled in libc\*(Aqs built\-in jemalloc:
@@ -101,26 +101,26 @@ const char *\fImalloc_conf\fR;
 .SS "Standard API"
 .PP
 The
-\fBmalloc\fR\fB\fR
+malloc()
 function allocates
 \fIsize\fR
 bytes of uninitialized memory\&. The allocated space is suitably aligned (after possible pointer coercion) for storage of any type of object\&.
 .PP
 The
-\fBcalloc\fR\fB\fR
+calloc()
 function allocates space for
 \fInumber\fR
 objects, each
 \fIsize\fR
 bytes in length\&. The result is identical to calling
-\fBmalloc\fR\fB\fR
+malloc()
 with an argument of
 \fInumber\fR
 *
 \fIsize\fR, with the exception that the allocated memory is explicitly initialized to zero bytes\&.
 .PP
 The
-\fBposix_memalign\fR\fB\fR
+posix_memalign()
 function allocates
 \fIsize\fR
 bytes of memory such that the allocation\*(Aqs base address is a multiple of
@@ -131,7 +131,7 @@ must be a power of 2 at least as large a
 sizeof(\fBvoid *\fR)\&.
 .PP
 The
-\fBaligned_alloc\fR\fB\fR
+aligned_alloc()
 function allocates
 \fIsize\fR
 bytes of memory such that the allocation\*(Aqs base address is a multiple of
@@ -143,7 +143,7 @@ is not an integral multiple of
 \fIalignment\fR\&.
 .PP
 The
-\fBrealloc\fR\fB\fR
+realloc()
 function changes the size of the previously allocated memory referenced by
 \fIptr\fR
 to
@@ -151,19 +151,19 @@ to
 bytes\&. The contents of the memory are unchanged up to the lesser of the new and old sizes\&. If the new size is larger, the contents of the newly allocated portion of the memory are undefined\&. Upon success, the memory referenced by
 \fIptr\fR
 is freed and a pointer to the newly allocated memory is returned\&. Note that
-\fBrealloc\fR\fB\fR
+realloc()
 may move the memory allocation, resulting in a different return value than
 \fIptr\fR\&. If
 \fIptr\fR
 is
 \fBNULL\fR, the
-\fBrealloc\fR\fB\fR
+realloc()
 function behaves identically to
-\fBmalloc\fR\fB\fR
+malloc()
 for the specified size\&.
 .PP
 The
-\fBfree\fR\fB\fR
+free()
 function causes the allocated memory referenced by
 \fIptr\fR
 to be made available for future allocations\&. If
@@ -173,13 +173,13 @@ is
 .SS "Non\-standard API"
 .PP
 The
-\fBmallocx\fR\fB\fR,
-\fBrallocx\fR\fB\fR,
-\fBxallocx\fR\fB\fR,
-\fBsallocx\fR\fB\fR,
-\fBdallocx\fR\fB\fR,
-\fBsdallocx\fR\fB\fR, and
-\fBnallocx\fR\fB\fR
+mallocx(),
+rallocx(),
+xallocx(),
+sallocx(),
+dallocx(),
+sdallocx(), and
+nallocx()
 functions all have a
 \fIflags\fR
 argument that can be used to specify options\&. The functions only check the options that are contextually relevant\&. Use bitwise or (|) operations to specify one or more of the following:
@@ -211,7 +211,7 @@ Initialize newly allocated memory to con
 .RS 4
 Use the thread\-specific cache (tcache) specified by the identifier
 \fItc\fR, which must have been acquired via the
-"tcache\&.create"
+tcache\&.create
 mallctl\&. This macro does not validate that
 \fItc\fR
 specifies a valid identifier\&.
@@ -238,7 +238,7 @@ specifies an arena index in the valid ra
 .RE
 .PP
 The
-\fBmallocx\fR\fB\fR
+mallocx()
 function allocates at least
 \fIsize\fR
 bytes of memory, and returns a pointer to the base address of the allocation\&. Behavior is undefined if
@@ -247,7 +247,7 @@ is
 \fB0\fR\&.
 .PP
 The
-\fBrallocx\fR\fB\fR
+rallocx()
 function resizes the allocation at
 \fIptr\fR
 to be at least
@@ -258,7 +258,7 @@ is
 \fB0\fR\&.
 .PP
 The
-\fBxallocx\fR\fB\fR
+xallocx()
 function resizes the allocation at
 \fIptr\fR
 in place to be at least
@@ -274,33 +274,33 @@ is
 (\fIsize\fR + \fIextra\fR > \fBSIZE_T_MAX\fR)\&.
 .PP
 The
-\fBsallocx\fR\fB\fR
+sallocx()
 function returns the real size of the allocation at
 \fIptr\fR\&.
 .PP
 The
-\fBdallocx\fR\fB\fR
+dallocx()
 function causes the memory referenced by
 \fIptr\fR
 to be made available for future allocations\&.
 .PP
 The
-\fBsdallocx\fR\fB\fR
+sdallocx()
 function is an extension of
-\fBdallocx\fR\fB\fR
+dallocx()
 with a
 \fIsize\fR
 parameter to allow the caller to pass in the allocation size as an optimization\&. The minimum valid input size is the original requested size of the allocation, and the maximum valid input size is the corresponding value returned by
-\fBnallocx\fR\fB\fR
+nallocx()
 or
-\fBsallocx\fR\fB\fR\&.
+sallocx()\&.
 .PP
 The
-\fBnallocx\fR\fB\fR
+nallocx()
 function allocates no memory, but it performs the same size computation as the
-\fBmallocx\fR\fB\fR
+mallocx()
 function, and returns the real size of the allocation that would result from the equivalent
-\fBmallocx\fR\fB\fR
+mallocx()
 function call, or
 \fB0\fR
 if the inputs exceed the maximum supported size class and/or alignment\&. Behavior is undefined if
@@ -309,7 +309,7 @@ is
 \fB0\fR\&.
 .PP
 The
-\fBmallctl\fR\fB\fR
+mallctl()
 function provides a general interface for introspecting the memory allocator, as well as setting modifiable parameters and triggering actions\&. The period\-separated
 \fIname\fR
 argument specifies a location in a tree\-structured namespace; see the
@@ -328,10 +328,12 @@ and
 \fB0\fR\&.
 .PP
 The
-\fBmallctlnametomib\fR\fB\fR
-function provides a way to avoid repeated name lookups for applications that repeatedly query the same portion of the namespace, by translating a name to a \(lqManagement Information Base\(rq (MIB) that can be passed repeatedly to
-\fBmallctlbymib\fR\fB\fR\&. Upon successful return from
-\fBmallctlnametomib\fR\fB\fR,
+mallctlnametomib()
+function provides a way to avoid repeated name lookups for applications that repeatedly query the same portion of the namespace, by translating a name to a
+\(lqManagement Information Base\(rq
+(MIB) that can be passed repeatedly to
+mallctlbymib()\&. Upon successful return from
+mallctlnametomib(),
 \fImibp\fR
 contains an array of
 \fI*miblenp\fR
@@ -343,7 +345,7 @@ and the input value of
 \fI*miblenp\fR\&. Thus it is possible to pass a
 \fI*miblenp\fR
 that is smaller than the number of period\-separated name components, which results in a partial MIB that can be used as the basis for constructing a complete MIB\&. For name components that are integers (e\&.g\&. the 2 in
-"arenas\&.bin\&.2\&.size"), the corresponding MIB component will always be that integer\&. Therefore, it is legitimate to construct code like the following:
+arenas\&.bin\&.2\&.size), the corresponding MIB component will always be that integer\&. Therefore, it is legitimate to construct code like the following:
 .sp
 .if n \{\
 .RS 4
@@ -372,35 +374,50 @@ for (i = 0; i < nbins; i++) {
 .\}
 .PP
 The
-\fBmalloc_stats_print\fR\fB\fR
-function writes human\-readable summary statistics via the
+malloc_stats_print()
+function writes summary statistics via the
 \fIwrite_cb\fR
 callback function pointer and
 \fIcbopaque\fR
 data passed to
 \fIwrite_cb\fR, or
-\fBmalloc_message\fR\fB\fR
+malloc_message()
 if
 \fIwrite_cb\fR
 is
-\fBNULL\fR\&. This function can be called repeatedly\&. General information that never changes during execution can be omitted by specifying "g" as a character within the
+\fBNULL\fR\&. The statistics are presented in human\-readable form unless
+\(lqJ\(rq
+is specified as a character within the
+\fIopts\fR
+string, in which case the statistics are presented in
+\m[blue]\fBJSON format\fR\m[]\&\s-2\u[2]\d\s+2\&. This function can be called repeatedly\&. General information that never changes during execution can be omitted by specifying
+\(lqg\(rq
+as a character within the
 \fIopts\fR
 string\&. Note that
-\fBmalloc_message\fR\fB\fR
+malloc_message()
 uses the
-\fBmallctl*\fR\fB\fR
+mallctl*()
 functions internally, so inconsistent statistics can be reported if multiple threads use these functions simultaneously\&. If
 \fB\-\-enable\-stats\fR
-is specified during configuration, \(lqm\(rq and \(lqa\(rq can be specified to omit merged arena and per arena statistics, respectively; \(lqb\(rq, \(lql\(rq, and \(lqh\(rq can be specified to omit per size class statistics for bins, large objects, and huge objects, respectively\&. Unrecognized characters are silently ignored\&. Note that thread caching may prevent some statistics from being completely up to date, since extra locking would be required to merge counters that track thread cache operations\&.
+is specified during configuration,
+\(lqm\(rq
+and
+\(lqa\(rq
+can be specified to omit merged arena and per arena statistics, respectively;
+\(lqb\(rq,
+\(lql\(rq, and
+\(lqh\(rq
+can be specified to omit per size class statistics for bins, large objects, and huge objects, respectively\&. Unrecognized characters are silently ignored\&. Note that thread caching may prevent some statistics from being completely up to date, since extra locking would be required to merge counters that track thread cache operations\&.
 .PP
 The
-\fBmalloc_usable_size\fR\fB\fR
+malloc_usable_size()
 function returns the usable size of the allocation pointed to by
 \fIptr\fR\&. The return value may be larger than the size that was requested during allocation\&. The
-\fBmalloc_usable_size\fR\fB\fR
+malloc_usable_size()
 function is not a mechanism for in\-place
-\fBrealloc\fR\fB\fR; rather it is provided solely as a tool for introspection purposes\&. Any discrepancy between the requested allocation size and the size reported by
-\fBmalloc_usable_size\fR\fB\fR
+realloc(); rather it is provided solely as a tool for introspection purposes\&. Any discrepancy between the requested allocation size and the size reported by
+malloc_usable_size()
 should not be depended on, since such behavior is entirely implementation\-dependent\&.
 .SH "TUNING"
 .PP
@@ -408,12 +425,14 @@ Once, when the first call is made to one
 .PP
 The string specified via
 \fB\-\-with\-malloc\-conf\fR, the string pointed to by the global variable
-\fImalloc_conf\fR, the \(lqname\(rq of the file referenced by the symbolic link named
+\fImalloc_conf\fR, the
+\(lqname\(rq
+of the file referenced by the symbolic link named
 /etc/malloc\&.conf, and the value of the environment variable
 \fBMALLOC_CONF\fR, will be interpreted, in that order, from left to right as options\&. Note that
 \fImalloc_conf\fR
 may be read before
-\fBmain\fR\fB\fR
+main()
 is entered, so the declaration of
 \fImalloc_conf\fR
 should specify an initializer that contains the final value to be read by jemalloc\&.
@@ -427,15 +446,15 @@ and
 can be safely set any time prior to program invocation\&.
 .PP
 An options string is a comma\-separated list of option:value pairs\&. There is one key corresponding to each
-"opt\&.*"
+opt\&.*
 mallctl (see the
 MALLCTL NAMESPACE
 section for options documentation)\&. For example,
 abort:true,narenas:1
 sets the
-"opt\&.abort"
+opt\&.abort
 and
-"opt\&.narenas"
+opt\&.narenas
 options\&. Some options have boolean values (true/false), others have integer values (base 8, 10, or 16, depending on prefix), and yet others have raw string values\&.
 .SH "IMPLEMENTATION NOTES"
 .PP
@@ -460,22 +479,22 @@ Memory is conceptually broken into equal
 .PP
 Small objects are managed in groups by page runs\&. Each run maintains a bitmap to track which regions are in use\&. Allocation requests that are no more than half the quantum (8 or 16, depending on architecture) are rounded up to the nearest power of two that is at least
 sizeof(\fBdouble\fR)\&. All other object size classes are multiples of the quantum, spaced such that there are four size classes for each doubling in size, which limits internal fragmentation to approximately 20% for all but the smallest size classes\&. Small size classes are smaller than four times the page size, large size classes are smaller than the chunk size (see the
-"opt\&.lg_chunk"
+opt\&.lg_chunk
 option), and huge size classes extend from the chunk size up to the largest size class that does not exceed
 \fBPTRDIFF_MAX\fR\&.
 .PP
 Allocations are packed tightly together, which can be an issue for multi\-threaded applications\&. If you need to assure that allocations do not suffer from cacheline sharing, round your allocation requests up to the nearest multiple of the cacheline size, or specify cacheline alignment when allocating\&.
 .PP
 The
-\fBrealloc\fR\fB\fR,
-\fBrallocx\fR\fB\fR, and
-\fBxallocx\fR\fB\fR
+realloc(),
+rallocx(), and
+xallocx()
 functions may resize allocations without moving them under limited circumstances\&. Unlike the
-\fB*allocx\fR\fB\fR
+*allocx()
 API, the standard API does not officially round up the usable size of an allocation to the nearest size class, so technically it is necessary to call
-\fBrealloc\fR\fB\fR
+realloc()
 to grow e\&.g\&. a 9\-byte allocation to 16 bytes, or shrink a 16\-byte allocation to 9 bytes\&. Growth and shrinkage trivially succeeds in place as long as the pre\-size and post\-size both round up to the same size class\&. No other API guarantees are made regarding in\-place resizing, but the current implementation also tries to resize large and huge allocations in place, as long as the pre\-size and post\-size are both large or both huge\&. In such cases shrinkage always succeeds for large size classes, but for huge size classes the chunk allocator must support splitting (see
-"arena\&.<i>\&.chunk_hooks")\&. Growth only succeeds if the trailing memory is currently available, and additionally for huge size classes the chunk allocator must support merging\&.
+arena\&.<i>\&.chunk_hooks)\&. Growth only succeeds if the trailing memory is currently available, and additionally for huge size classes the chunk allocator must support merging\&.
 .PP
 Assuming 2 MiB chunks, 4 KiB pages, and a 16\-byte quantum on a 64\-bit system, the size classes in each category are as shown in
 Table 1\&.
@@ -663,7 +682,7 @@ T}
 .SH "MALLCTL NAMESPACE"
 .PP
 The following names are defined in the namespace accessible via the
-\fBmallctl*\fR\fB\fR
+mallctl*()
 functions\&. Value types are specified in parentheses, their readable/writable statuses are encoded as
 rw,
 r\-,
@@ -673,118 +692,118 @@ r\-,
 or
 <j>
 indicates an integer component, where the integer varies from 0 to some upper value that must be determined via introspection\&. In the case of
-"stats\&.arenas\&.<i>\&.*",
+stats\&.arenas\&.<i>\&.*,
 <i>
 equal to
-"arenas\&.narenas"
+arenas\&.narenas
 can be used to access the summation of statistics from all arenas\&. Take special note of the
-"epoch"
+epoch
 mallctl, which controls refreshing of cached dynamic statistics\&.
 .PP
-"version" (\fBconst char *\fR) r\-
+version (\fBconst char *\fR) r\-
 .RS 4
 Return the jemalloc version string\&.
 .RE
 .PP
-"epoch" (\fBuint64_t\fR) rw
+epoch (\fBuint64_t\fR) rw
 .RS 4
 If a value is passed in, refresh the data from which the
-\fBmallctl*\fR\fB\fR
+mallctl*()
 functions report values, and increment the epoch\&. Return the current epoch\&. This is useful for detecting whether another thread caused a refresh\&.
 .RE
 .PP
-"config\&.cache_oblivious" (\fBbool\fR) r\-
+config\&.cache_oblivious (\fBbool\fR) r\-
 .RS 4
 \fB\-\-enable\-cache\-oblivious\fR
 was specified during build configuration\&.
 .RE
 .PP
-"config\&.debug" (\fBbool\fR) r\-
+config\&.debug (\fBbool\fR) r\-
 .RS 4
 \fB\-\-enable\-debug\fR
 was specified during build configuration\&.
 .RE
 .PP
-"config\&.fill" (\fBbool\fR) r\-
+config\&.fill (\fBbool\fR) r\-
 .RS 4
 \fB\-\-enable\-fill\fR
 was specified during build configuration\&.
 .RE
 .PP
-"config\&.lazy_lock" (\fBbool\fR) r\-
+config\&.lazy_lock (\fBbool\fR) r\-
 .RS 4
 \fB\-\-enable\-lazy\-lock\fR
 was specified during build configuration\&.
 .RE
 .PP
-"config\&.malloc_conf" (\fBconst char *\fR) r\-
+config\&.malloc_conf (\fBconst char *\fR) r\-
 .RS 4
 Embedded configure\-time\-specified run\-time options string, empty unless
 \fB\-\-with\-malloc\-conf\fR
 was specified during build configuration\&.
 .RE
 .PP
-"config\&.munmap" (\fBbool\fR) r\-
+config\&.munmap (\fBbool\fR) r\-
 .RS 4
 \fB\-\-enable\-munmap\fR
 was specified during build configuration\&.
 .RE
 .PP
-"config\&.prof" (\fBbool\fR) r\-
+config\&.prof (\fBbool\fR) r\-
 .RS 4
 \fB\-\-enable\-prof\fR
 was specified during build configuration\&.
 .RE
 .PP
-"config\&.prof_libgcc" (\fBbool\fR) r\-
+config\&.prof_libgcc (\fBbool\fR) r\-
 .RS 4
 \fB\-\-disable\-prof\-libgcc\fR
 was not specified during build configuration\&.
 .RE
 .PP
-"config\&.prof_libunwind" (\fBbool\fR) r\-
+config\&.prof_libunwind (\fBbool\fR) r\-
 .RS 4
 \fB\-\-enable\-prof\-libunwind\fR
 was specified during build configuration\&.
 .RE
 .PP
-"config\&.stats" (\fBbool\fR) r\-
+config\&.stats (\fBbool\fR) r\-
 .RS 4
 \fB\-\-enable\-stats\fR
 was specified during build configuration\&.
 .RE
 .PP
-"config\&.tcache" (\fBbool\fR) r\-
+config\&.tcache (\fBbool\fR) r\-
 .RS 4
 \fB\-\-disable\-tcache\fR
 was not specified during build configuration\&.
 .RE
 .PP
-"config\&.tls" (\fBbool\fR) r\-
+config\&.tls (\fBbool\fR) r\-
 .RS 4
 \fB\-\-disable\-tls\fR
 was not specified during build configuration\&.
 .RE
 .PP
-"config\&.utrace" (\fBbool\fR) r\-
+config\&.utrace (\fBbool\fR) r\-
 .RS 4
 \fB\-\-enable\-utrace\fR
 was specified during build configuration\&.
 .RE
 .PP
-"config\&.valgrind" (\fBbool\fR) r\-
+config\&.valgrind (\fBbool\fR) r\-
 .RS 4
 \fB\-\-enable\-valgrind\fR
 was specified during build configuration\&.
 .RE
 .PP
-"config\&.xmalloc" (\fBbool\fR) r\-
+config\&.xmalloc (\fBbool\fR) r\-
 .RS 4
 \fB\-\-enable\-xmalloc\fR
 was specified during build configuration\&.
 .RE
 .PP
-"opt\&.abort" (\fBbool\fR) r\-
+opt\&.abort (\fBbool\fR) r\-
 .RS 4
 Abort\-on\-warning enabled/disabled\&. If true, most warnings are fatal\&. The process will call
 \fBabort\fR(3)
@@ -793,115 +812,132 @@ in these cases\&. This option is disable
 is specified during configuration, in which case it is enabled by default\&.
 .RE
 .PP
-"opt\&.dss" (\fBconst char *\fR) r\-
+opt\&.dss (\fBconst char *\fR) r\-
 .RS 4
 dss (\fBsbrk\fR(2)) allocation precedence as related to
 \fBmmap\fR(2)
 allocation\&. The following settings are supported if
 \fBsbrk\fR(2)
-is supported by the operating system: \(lqdisabled\(rq, \(lqprimary\(rq, and \(lqsecondary\(rq; otherwise only \(lqdisabled\(rq is supported\&. The default is \(lqsecondary\(rq if
+is supported by the operating system:
+\(lqdisabled\(rq,
+\(lqprimary\(rq, and
+\(lqsecondary\(rq; otherwise only
+\(lqdisabled\(rq
+is supported\&. The default is
+\(lqsecondary\(rq
+if
 \fBsbrk\fR(2)
-is supported by the operating system; \(lqdisabled\(rq otherwise\&.
+is supported by the operating system;
+\(lqdisabled\(rq
+otherwise\&.
 .RE
 .PP
-"opt\&.lg_chunk" (\fBsize_t\fR) r\-
+opt\&.lg_chunk (\fBsize_t\fR) r\-
 .RS 4
 Virtual memory chunk size (log base 2)\&. If a chunk size outside the supported size range is specified, the size is silently clipped to the minimum/maximum supported size\&. The default chunk size is 2 MiB (2^21)\&.

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201611091908.uA9J8eUu024612>