Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Apr 2014 03:23:31 GMT
From:      pkg-fallout-builder@FreeBSD.org
To:        brooks@FreeBSD.org
Cc:        pkg-fallout@FreeBSD.org
Subject:   [REL - 83i386-default][devel/llvm-devel] Failed for llvm-devel-3.5.r203994 in build
Message-ID:  <201404170323.s3H3NVi5028267@beefy1.isc.freebsd.org>

next in thread | raw e-mail | index | archive | help
You are receiving this mail as a port that you maintain
is failing to build on the FreeBSD package build server.
Please investigate the failure and submit a PR to fix
build.

Maintainer:     brooks@FreeBSD.org
Last committer: brooks@FreeBSD.org
Ident:          $FreeBSD: head/devel/llvm-devel/Makefile 351292 2014-04-14 21:34:25Z brooks $
Log URL:        http://beefy1.isc.freebsd.org/bulk/83i386-default/2014-04-17_00h49m42s/logs/llvm-devel-3.5.r203994.log
Build URL:      http://beefy1.isc.freebsd.org/bulk/83i386-default/2014-04-17_00h49m42s
Log:

====>> Building devel/llvm-devel
build started at Thu Apr 17 03:20:43 UTC 2014
port directory: /usr/ports/devel/llvm-devel
building for: FreeBSD 83i386-default-job-19 8.3-RELEASE-p15 FreeBSD 8.3-RELEASE-p15 i386
maintained by: brooks@FreeBSD.org
Makefile ident:      $FreeBSD: head/devel/llvm-devel/Makefile 351292 2014-04-14 21:34:25Z brooks $
Poudriere version: 3.1-pre
Host OSVERSION: 1100013
Jail OSVERSION: 803000

---Begin Environment---
UNAME_m=i386
UNAME_p=i386
OSVERSION=803000
UNAME_v=FreeBSD 8.3-RELEASE-p15
UNAME_r=8.3-RELEASE-p15
FTP_PASSIVE_MODE=YES
BLOCKSIZE=K
MAIL=/var/mail/root
STATUS=1
SAVED_TERM=
MASTERMNT=/usr/local/poudriere/data/build/83i386-default/ref
PKG_EXT=txz
tpid=13723
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin
POUDRIERE_BUILD_TYPE=bulk
PKGNG=1
PKGNAME=llvm-devel-3.5.r203994
PKG_DELETE=/usr/local/sbin/pkg-static delete -y -f
PKG_ADD=/usr/local/sbin/pkg-static add
OLDPWD=/usr/local/poudriere/data/build/83i386-default/ref/poudriere/rdeps
PWD=/usr/local/poudriere/data/build/83i386-default/ref/poudriere/pool
MASTERNAME=83i386-default
USER=root
HOME=/root
POUDRIERE_VERSION=3.1-pre
LOCALBASE=/usr/local
PACKAGE_BUILDING=yes
PKG_VERSION=/poudriere/pkg-static version
PKG_BIN=/usr/local/sbin/pkg-static
---End Environment---

---Begin OPTIONS List---
===> The following configuration options are available for llvm-devel-3.5.r203994:
     ASSERTS=off: Enable assertions (thread unsafe)
     CMAKE=on: Build cmake support files
     DOCS=on: Build and/or install documentation
     LIT=on: Install lit and FileCheck test tools (requires python)
     LTOPLUGIN=off: Build LTO plugin (requires gold)
     MANPAGES=on: Build and/or install manual pages
===> Use 'make config' to modify these settings
---End OPTIONS List---

--CONFIGURE_ARGS--
--enable-shared --enable-bindings=none --enable-optimized --disable-assertions --enable-docs --with-optimize-option=-O2 --prefix=/usr/local/llvm-devel ${_LATE_CONFIGURE_ARGS}
--End CONFIGURE_ARGS--

--CONFIGURE_ENV--
TMPDIR="/tmp" TMPDIR="/tmp" PYTHON="/usr/local/bin/python2.7" MAKE=gmake ac_cv_path_PERL=/usr/local/bin/perl ac_cv_path_PERL_PATH=/usr/local/bin/perl TMPDIR="/tmp" SHELL=/bin/sh CONFIG_SHELL=/bin/sh ADDR2LINE="/usr/local/bin/addr2line" AR="/usr/local/bin/ar" AS="/usr/local/bin/as" CPPFILT="/usr/local/bin/c++filt" GPROF="/usr/local/bin/gprof" LD="/usr/local/bin/ld" NM="/usr/local/bin/nm" OBJCOPY="/usr/local/bin/objcopy" OBJDUMP="/usr/local/bin/objdump" RANLIB="/usr/local/bin/ranlib" READELF="/usr/local/bin/readelf" SIZE="/usr/local/bin/size" STRINGS="/usr/local/bin/strings" CONFIG_SITE=/usr/ports/Templates/config.site lt_cv_sys_max_cmd_len=262144
--End CONFIGURE_ENV--

--MAKE_ENV--
TMPDIR="/tmp" TMPDIR="/tmp" TMPDIR="/tmp" SHELL=/bin/sh NO_LINT=YES ADDR2LINE="/usr/local/bin/addr2line" AR="/usr/local/bin/ar" AS="/usr/local/bin/as" CPPFILT="/usr/local/bin/c++filt" GPROF="/usr/local/bin/gprof" LD="/usr/local/bin/ld" NM="/usr/local/bin/nm" OBJCOPY="/usr/local/bin/objcopy" OBJDUMP="/usr/local/bin/objdump" RANLIB="/usr/local/bin/ranlib" READELF="/usr/local/bin/readelf" SIZE="/usr/local/bin/size" STRINGS="/usr/local/bin/strings" PREFIX=/usr/local  LOCALBASE=/usr/local  LIBDIR="/usr/lib"  CC="gcc47" CFLAGS="-O2 -pipe -Wl,-rpath=/usr/local/lib/gcc47 -fno-strict-aliasing"  CPP="cpp47" CPPFLAGS=""  LDFLAGS=" -Wl,-rpath=/usr/local/lib/gcc47 -L/usr/local/lib/gcc47"  CXX="g++47" CXXFLAGS="-O2 -pipe -Wl,-rpath=/usr/local/lib/gcc47 -fno-strict-aliasing -Wl,-rpath=/usr/local/lib/gcc47"  MANPREFIX="/usr/local" BSD_INSTALL_PROGRAM="install  -s -o root -g wheel -m 555"  BSD_INSTALL_LIB="install  -s -o root -g wheel -m 444"  BSD_INSTALL_SCRIPT="install  -o root -g wheel -m 555"  BS
 D_INSTALL_DATA="install  -o root -g wheel -m 444"  BSD_INSTALL_MAN="install  -o root -g wheel -m 444"
--End MAKE_ENV--

--PLIST_SUB--
LLVM_RELEASE=3.5
ASSERTS="@comment
"
NO_ASSERTS=""
CMAKE=""
NO_CMAKE="@comment
"
DOCS=""
NO_DOCS="@comment
"
LIT=""
NO_LIT="@comment
"
LTOPLUGIN="@comment
"
NO_LTOPLUGIN=""
MANPAGES=""
NO_MANPAGES="@comment
"
PYTHON_INCLUDEDIR=include/python2.7
PYTHON_LIBDIR=lib/python2.7
PYTHON_PLATFORM=freebsd8
PYTHON_SITELIBDIR=lib/python2.7/site-packages
PYTHON_VERSION=python2.7
OSREL=8.3
PREFIX=%D
LOCALBASE=/usr/local
PORTDOCS=""
PORTEXAMPLES=""
PORTDATA=""
LIB32DIR=lib
PERL_VERSION=5.16.3
PERL_VER=5.16
PERL_ARCH=mach
PERL5_MAN3=lib/perl5/5.16/man/man3
SITE_PERL=lib/perl5/site_perl/5.16
DOCSDIR="share/doc/llvm-devel"
EXAMPLESDIR="share/examples/llvm"
DATADIR="share/llvm-devel"
WWWDIR="www/llvm"
ETCDIR="etc/llvm"
--End PLIST_SUB--

--SUB_LIST--
LLVM_PREFIX="/usr/local/llvm-devel"
LLVM_SUFFIX="-devel"
ASSERTS="@comment
"
NO_ASSERTS=""
CMAKE=""
NO_CMAKE="@comment
"
DOCS=""
NO_DOCS="@comment
"
LIT=""
NO_LIT="@comment
"
LTOPLUGIN="@comment
"
NO_LTOPLUGIN=""
MANPAGES=""
NO_MANPAGES="@comment
"
PREFIX=/usr/local
LOCALBASE=/usr/local
DATADIR=/usr/local/share/llvm-devel
DOCSDIR=/usr/local/share/doc/llvm-devel
EXAMPLESDIR=/usr/local/share/examples/llvm
WWWDIR=/usr/local/www/llvm
ETCDIR=/usr/local/etc/llvm
--End SUB_LIST--

---Begin make.conf---
ARCH=i386
MACHINE=i386
MACHINE_ARCH=i386
USE_PACKAGE_DEPENDS=yes
BATCH=yes
WRKDIRPREFIX=/wrkdirs
PORTSDIR=/usr/ports
PACKAGES=/packages
DISTDIR=/distfiles
#### /usr/local/etc/poudriere.d/make.conf ####
WITH_PKGNG=yes
NO_RESTRICTED=yes
DISABLE_MAKE_JOBS=poudriere
---End make.conf---
===>  Cleaning for llvm-devel-3.5.r203994
=======================<phase: check-sanity   >============================
===========================================================================
=======================<phase: pkg-depends    >============================
===>   llvm-devel-3.5.r203994 depends on file: /usr/local/sbin/pkg - not found
===>    Verifying install for /usr/local/sbin/pkg in /usr/ports/ports-mgmt/pkg
===>   Installing existing package /packages/All/pkg-1.2.7_2.txz
Installing pkg-1.2.7_2... done
If you are upgrading from the old package format, first run:

  # pkg2ng
===>   Returning to build of llvm-devel-3.5.r203994
===========================================================================
=======================<phase: fetch-depends  >============================
===========================================================================
=======================<phase: fetch          >============================
===> Fetching all distfiles required by llvm-devel-3.5.r203994 for building
===========================================================================
=======================<phase: checksum       >============================
===> Fetching all distfiles required by llvm-devel-3.5.r203994 for building
=> SHA256 Checksum OK for llvm-3.5.r203994.tar.bz2.
===========================================================================
=======================<phase: extract-depends>============================
===========================================================================
=======================<phase: extract        >============================
===> Fetching all distfiles required by llvm-devel-3.5.r203994 for building
===>  Extracting for llvm-devel-3.5.r203994
=> SHA256 Checksum OK for llvm-3.5.r203994.tar.bz2.
===========================================================================
=======================<phase: patch-depends  >============================
===========================================================================
=======================<phase: patch          >============================
===>  Patching for llvm-devel-3.5.r203994
===>  Applying FreeBSD patches for llvm-devel-3.5.r203994
/usr/bin/sed -i.bak -e 's|\(PROJ_docsdir.*:=\).*$|\1/usr/local/share/doc/llvm-devel|g'  /wrkdirs/usr/ports/devel/llvm-devel/work/llvm-3.5.r203994/Makefile.config.in
/usr/bin/sed -i.bak -e 's|\(PROJ_mandir.*:=\).*$|\1/usr/local/man|g'  /wrkdirs/usr/ports/devel/llvm-devel/work/llvm-3.5.r203994/Makefile.config.in
/usr/bin/sed -i.bak -e 's|import lit|import lit-devel|'  -e 's|from lit|from lit-devel|'  -e 's|lit\.|lit-devel.|'  /wrkdirs/usr/ports/devel/llvm-devel/work/llvm-3.5.r203994/utils/lit/lit.py /wrkdirs/usr/ports/devel/llvm-devel/work/llvm-3.5.r203994/utils/lit/lit/*.py
===========================================================================
=======================<phase: build-depends  >============================
===>   llvm-devel-3.5.r203994 depends on executable: cmake - not found
===>    Verifying install for cmake in /usr/ports/devel/cmake
===>   Installing existing package /packages/All/cmake-2.8.12.1_4.txz
Installing cmake-2.8.12.1_4...Installing cmake-modules-2.8.12.1_1... done
 done
===>   Returning to build of llvm-devel-3.5.r203994
<snip>
-- Looking for srand48 - found
-- Looking for lrand48
-- Looking for lrand48 - found
-- Looking for drand48
-- Looking for drand48 - found
-- Looking for strtoll
-- Looking for strtoll - found
-- Looking for strtoq
-- Looking for strtoq - found
-- Looking for strerror
-- Looking for strerror - found
-- Looking for strerror_r
-- Looking for strerror_r - found
-- Looking for strerror_s
-- Looking for strerror_s - not found
-- Looking for setenv
-- Looking for setenv - found
-- Looking for dlerror
-- Looking for dlerror - found
-- Looking for dlopen
-- Looking for dlopen - found
-- Looking for __GLIBC__
-- Looking for __GLIBC__ - not found
-- Performing Test HAVE_INT64_T
-- Performing Test HAVE_INT64_T - Success
-- Performing Test HAVE_UINT64_T
-- Performing Test HAVE_UINT64_T - Success
-- Performing Test HAVE_U_INT64_T
-- Performing Test HAVE_U_INT64_T - Success
-- Performing Test LLVM_HAS_ATOMICS
-- Performing Test LLVM_HAS_ATOMICS - Success
-- Could NOT find LibXml2 (missing:  LIBXML2_LIBRARIES LIBXML2_INCLUDE_DIR) 
-- Performing Test SUPPORTS_NO_VARIADIC_MACROS_FLAG
-- Performing Test SUPPORTS_NO_VARIADIC_MACROS_FLAG - Success
-- Performing Test HAS_MAYBE_UNINITIALIZED
-- Performing Test HAS_MAYBE_UNINITIALIZED - Success
-- Target triple: i386-unknown-freebsd8.3
-- Native target architecture is X86
-- Threads enabled.
-- Doxygen disabled.
-- Performing Test C_SUPPORTS_FLAG
-- Performing Test C_SUPPORTS_FLAG - Success
-- Performing Test CXX_SUPPORTS_FLAG
-- Performing Test CXX_SUPPORTS_FLAG - Success
-- Building with -fPIC
-- Performing Test SUPPORTS_FVISIBILITY_INLINES_HIDDEN_FLAG
-- Performing Test SUPPORTS_FVISIBILITY_INLINES_HIDDEN_FLAG - Success
-- Performing Test CXX_SUPPORTS_MISSING_FIELD_INITIALIZERS_FLAG
-- Performing Test CXX_SUPPORTS_MISSING_FIELD_INITIALIZERS_FLAG - Success
-- Performing Test CXX_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG
-- Performing Test CXX_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG - Failed
-- Performing Test C_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG
-- Performing Test C_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG - Failed
-- Performing Test CXX_SUPPORTS_NON_VIRTUAL_DTOR_FLAG
-- Performing Test CXX_SUPPORTS_NON_VIRTUAL_DTOR_FLAG - Success
-- Performing Test CXX_SUPPORTS_CXX11
-- Performing Test CXX_SUPPORTS_CXX11 - Success
-- Performing Test C_SUPPORTS_FNO_FUNCTION_SECTIONS
-- Performing Test C_SUPPORTS_FNO_FUNCTION_SECTIONS - Success
-- Performing Test C_SUPPORTS_FFUNCTION_SECTIONS
-- Performing Test C_SUPPORTS_FFUNCTION_SECTIONS - Success
-- Performing Test CXX_SUPPORTS_FFUNCTION_SECTIONS
-- Performing Test CXX_SUPPORTS_FFUNCTION_SECTIONS - Success
-- Performing Test C_SUPPORTS_FDATA_SECTIONS
-- Performing Test C_SUPPORTS_FDATA_SECTIONS - Success
-- Performing Test CXX_SUPPORTS_FDATA_SECTIONS
-- Performing Test CXX_SUPPORTS_FDATA_SECTIONS - Success
-- Found PythonInterp: /usr/local/bin/python2.7 (found version "2.7.6") 
-- Constructing LLVMBuild project information
-- Targeting AArch64
-- Targeting ARM
-- Targeting CppBackend
-- Targeting Hexagon
-- Targeting Mips
-- Targeting MSP430
-- Targeting NVPTX
-- Targeting PowerPC
-- Targeting R600
-- Targeting Sparc
-- Targeting SystemZ
-- Targeting X86
-- Targeting XCore
-- Configuring done
-- Generating done
-- Build files have been written to: /wrkdirs/usr/ports/devel/llvm-devel/work/cmake
/usr/bin/sed -i.bak -e 's|/wrkdirs/usr/ports/devel/llvm-devel/work/cmake|/usr/local/llvm-devel|'  -e 's|/wrkdirs/usr/ports/devel/llvm-devel/work/llvm-3.5.r203994/cmake/modules|/usr/local/share/llvm-devel/cmake|'  /wrkdirs/usr/ports/devel/llvm-devel/work/cmake/share/llvm/cmake/LLVMConfig.cmake
===========================================================================
=======================<phase: build          >============================
===>  Building for llvm-devel-3.5.r203994
llvm[0]: Constructing LLVMBuild project information.
gmake[1]: Entering directory `/wrkdirs/usr/ports/devel/llvm-devel/work/llvm-3.5.r203994/lib/Support'
llvm[1]: Compiling APFloat.cpp for Release build
llvm[1]: Compiling APInt.cpp for Release build
llvm[1]: Compiling APSInt.cpp for Release build
llvm[1]: Compiling ARMBuildAttrs.cpp for Release build
llvm[1]: Compiling Allocator.cpp for Release build
llvm[1]: Compiling Atomic.cpp for Release build
llvm[1]: Compiling BlockFrequency.cpp for Release build
llvm[1]: Compiling BranchProbability.cpp for Release build
llvm[1]: Compiling CommandLine.cpp for Release build
llvm[1]: Compiling Compression.cpp for Release build
llvm[1]: Compiling ConvertUTF.c for Release build
llvm[1]: Compiling ConvertUTFWrapper.cpp for Release build
llvm[1]: Compiling CrashRecoveryContext.cpp for Release build
llvm[1]: Compiling DAGDeltaAlgorithm.cpp for Release build
llvm[1]: Compiling DataExtractor.cpp for Release build
llvm[1]: Compiling DataStream.cpp for Release build
llvm[1]: Compiling Debug.cpp for Release build
llvm[1]: Compiling DeltaAlgorithm.cpp for Release build
llvm[1]: Compiling Disassembler.cpp for Release build
llvm[1]: Compiling Dwarf.cpp for Release build
llvm[1]: Compiling DynamicLibrary.cpp for Release build
llvm[1]: Compiling Errno.cpp for Release build
llvm[1]: Compiling ErrorHandling.cpp for Release build
llvm[1]: Compiling FileOutputBuffer.cpp for Release build
llvm[1]: Compiling FileUtilities.cpp for Release build
llvm[1]: Compiling FoldingSet.cpp for Release build
llvm[1]: Compiling FormattedStream.cpp for Release build
llvm[1]: Compiling GraphWriter.cpp for Release build
llvm[1]: Compiling Hashing.cpp for Release build
llvm[1]: Compiling Host.cpp for Release build
llvm[1]: Compiling IncludeFile.cpp for Release build
llvm[1]: Compiling IntEqClasses.cpp for Release build
llvm[1]: Compiling IntervalMap.cpp for Release build
llvm[1]: Compiling IntrusiveRefCntPtr.cpp for Release build
llvm[1]: Compiling IsInf.cpp for Release build
llvm[1]: Compiling IsNAN.cpp for Release build
llvm[1]: Compiling LEB128.cpp for Release build
llvm[1]: Compiling LineIterator.cpp for Release build
llvm[1]: Compiling Locale.cpp for Release build
llvm[1]: Compiling LockFileManager.cpp for Release build
llvm[1]: Compiling MD5.cpp for Release build
llvm[1]: Compiling ManagedStatic.cpp for Release build
llvm[1]: Compiling Memory.cpp for Release build
llvm[1]: Compiling MemoryBuffer.cpp for Release build
llvm[1]: Compiling MemoryObject.cpp for Release build
llvm[1]: Compiling Mutex.cpp for Release build
llvm[1]: Compiling Path.cpp for Release build
llvm[1]: Compiling PluginLoader.cpp for Release build
llvm[1]: Compiling PrettyStackTrace.cpp for Release build
llvm[1]: Compiling Process.cpp for Release build
llvm[1]: Compiling Program.cpp for Release build
llvm[1]: Compiling RWMutex.cpp for Release build
llvm[1]: Compiling Regex.cpp for Release build
llvm[1]: Compiling SearchForAddressOfSpecialSymbol.cpp for Release build
llvm[1]: Compiling Signals.cpp for Release build
llvm[1]: Compiling SmallPtrSet.cpp for Release build
llvm[1]: Compiling SmallVector.cpp for Release build
llvm[1]: Compiling SourceMgr.cpp for Release build
llvm[1]: Compiling Statistic.cpp for Release build
llvm[1]: Compiling StreamableMemoryObject.cpp for Release build
llvm[1]: Compiling StringExtras.cpp for Release build
llvm[1]: Compiling StringMap.cpp for Release build
llvm[1]: Compiling StringPool.cpp for Release build
llvm[1]: Compiling StringRef.cpp for Release build
llvm[1]: Compiling StringRefMemoryObject.cpp for Release build
llvm[1]: Compiling SystemUtils.cpp for Release build
llvm[1]: Compiling TargetRegistry.cpp for Release build
llvm[1]: Compiling ThreadLocal.cpp for Release build
llvm[1]: Compiling Threading.cpp for Release build
llvm[1]: Compiling TimeValue.cpp for Release build
llvm[1]: Compiling Timer.cpp for Release build
llvm[1]: Compiling ToolOutputFile.cpp for Release build
llvm[1]: Compiling Triple.cpp for Release build
llvm[1]: Compiling Twine.cpp for Release build
llvm[1]: Compiling Unicode.cpp for Release build
llvm[1]: Compiling Valgrind.cpp for Release build
llvm[1]: Compiling Watchdog.cpp for Release build
llvm[1]: Compiling YAMLParser.cpp for Release build
llvm[1]: Compiling YAMLTraits.cpp for Release build
llvm[1]: Compiling circular_raw_ostream.cpp for Release build
llvm[1]: Compiling raw_os_ostream.cpp for Release build
llvm[1]: Compiling raw_ostream.cpp for Release build
llvm[1]: Compiling regcomp.c for Release build
llvm[1]: Compiling regerror.c for Release build
llvm[1]: Compiling regexec.c for Release build
llvm[1]: Compiling regfree.c for Release build
llvm[1]: Compiling regstrlcpy.c for Release build
llvm[1]: Compiling system_error.cpp for Release build
llvm[1]: Building Release Archive Library libLLVMSupport.a
gmake[1]: Leaving directory `/wrkdirs/usr/ports/devel/llvm-devel/work/llvm-3.5.r203994/lib/Support'
gmake[1]: Entering directory `/wrkdirs/usr/ports/devel/llvm-devel/work/llvm-3.5.r203994/lib/TableGen'
llvm[1]: Compiling Error.cpp for Release build
llvm[1]: Compiling Main.cpp for Release build
llvm[1]: Compiling Record.cpp for Release build
llvm[1]: Compiling StringMatcher.cpp for Release build
llvm[1]: Compiling TGLexer.cpp for Release build
TGLexer.cpp: In member function 'llvm::tgtok::TokKind llvm::TGLexer::LexNumber()':
TGLexer.cpp:392:42: error: 'strtoll' was not declared in this scope
TGLexer.cpp:397:54: error: 'strtoull' was not declared in this scope
TGLexer.cpp:413:41: error: 'strtoll' was not declared in this scope
TGLexer.cpp:428:38: error: 'strtoll' was not declared in this scope
rm: /wrkdirs/usr/ports/devel/llvm-devel/work/llvm-3.5.r203994/lib/TableGen/Release/TGLexer.d.tmp: No such file or directory
gmake[1]: *** [/wrkdirs/usr/ports/devel/llvm-devel/work/llvm-3.5.r203994/lib/TableGen/Release/TGLexer.o] Error 1
gmake[1]: Leaving directory `/wrkdirs/usr/ports/devel/llvm-devel/work/llvm-3.5.r203994/lib/TableGen'
gmake: *** [all] Error 1
*** Error code 1

Stop in /usr/ports/devel/llvm-devel.
===>  Cleaning for llvm-devel-3.5.r203994



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