Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 20 Jul 2014 20:56:38 GMT
From:      pkg-fallout@FreeBSD.org
To:        pkg-fallout@FreeBSD.org
Subject:   [package - head-amd64-default][devel/openzz] Failed for openzz-1.0.4.4_2 in build
Message-ID:  <201407202056.s6KKuc5n063790@beefy2.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:     ports@FreeBSD.org
Last committer: amdmi3@FreeBSD.org
Ident:          $FreeBSD: head/devel/openzz/Makefile 355598 2014-05-28 08:42:58Z amdmi3 $
Log URL:        http://beefy2.isc.freebsd.org/data/head-amd64-default/2014-07-20_03h18m02s/logs/openzz-1.0.4.4_2.log
Build URL:      http://beefy2.isc.freebsd.org/build.html?mastername=head-amd64-default&build=2014-07-20_03h18m02s
Log:

====>> Building devel/openzz
build started at Sun Jul 20 20:56:24 UTC 2014
port directory: /usr/ports/devel/openzz
building for: FreeBSD head-amd64-default-job-14 11.0-CURRENT FreeBSD 11.0-CURRENT r268728 amd64
maintained by: ports@FreeBSD.org
Makefile ident:      $FreeBSD: head/devel/openzz/Makefile 355598 2014-05-28 08:42:58Z amdmi3 $
Poudriere version: 3.1-pre
Host OSVERSION: 1100027
Jail OSVERSION: 1100027

---Begin Environment---
OSVERSION=1100027
UNAME_v=FreeBSD 11.0-CURRENT r268728
UNAME_r=11.0-CURRENT
BLOCKSIZE=K
MAIL=/var/mail/root
STATUS=1
SAVED_TERM=
MASTERMNT=/usr/local/poudriere/data/.m/head-amd64-default/ref
PKG_EXT=txz
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin
POUDRIERE_BUILD_TYPE=bulk
PKGNG=1
PKGNAME=openzz-1.0.4.4_2
PKG_DELETE=/usr/local/sbin/pkg-static delete -y -f
PKG_ADD=/usr/local/sbin/pkg-static add
OLDPWD=/root
PWD=/usr/local/poudriere/data/.m/head-amd64-default/ref/.p/pool
MASTERNAME=head-amd64-default
USER=root
HOME=/root
POUDRIERE_VERSION=3.1-pre
LOCALBASE=/usr/local
PACKAGE_BUILDING=yes
PKG_VERSION=/.p/pkg-static version
PKG_BIN=/usr/local/sbin/pkg-static
---End Environment---

---Begin OPTIONS List---
---End OPTIONS List---

--CONFIGURE_ARGS--
--prefix=/usr/local ${_LATE_CONFIGURE_ARGS}
--End CONFIGURE_ARGS--

--CONFIGURE_ENV--
XDG_DATA_HOME=/wrkdirs/usr/ports/devel/openzz/work  XDG_CONFIG_HOME=/wrkdirs/usr/ports/devel/openzz/work  HOME=/wrkdirs/usr/ports/devel/openzz/work TMPDIR="/tmp" SHELL=/bin/sh CONFIG_SHELL=/bin/sh CONFIG_SITE=/usr/ports/Templates/config.site lt_cv_sys_max_cmd_len=262144
--End CONFIGURE_ENV--

--MAKE_ENV--
XDG_DATA_HOME=/wrkdirs/usr/ports/devel/openzz/work  XDG_CONFIG_HOME=/wrkdirs/usr/ports/devel/openzz/work  HOME=/wrkdirs/usr/ports/devel/openzz/work TMPDIR="/tmp" NO_PIE=yes SHELL=/bin/sh NO_LINT=YES PREFIX=/usr/local  LOCALBASE=/usr/local  LIBDIR="/usr/lib"  CC="cc" CFLAGS="-O2 -pipe  -Wno-return-type -fno-strict-aliasing"  CPP="cpp" CPPFLAGS=""  LDFLAGS="" LIBS=""  CXX="c++" CXXFLAGS="-O2 -pipe -Wno-return-type -fno-strict-aliasing "  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"  BSD_INSTALL_DATA="install  -o root -g wheel -m 444"  BSD_INSTALL_MAN="install  -o root -g wheel -m 444"
--End MAKE_ENV--

--PLIST_SUB--
OSREL=11.0
PREFIX=%D
LOCALBASE=/usr/local
PORTDOCS=""
PORTEXAMPLES=""
PORTDATA=""
LIB32DIR=lib
DOCSDIR="share/doc/openzz"
EXAMPLESDIR="share/examples/openzz"
DATADIR="share/openzz"
WWWDIR="www/openzz"
ETCDIR="etc/openzz"
--End PLIST_SUB--

--SUB_LIST--
PREFIX=/usr/local
LOCALBASE=/usr/local
DATADIR=/usr/local/share/openzz
DOCSDIR=/usr/local/share/doc/openzz
EXAMPLESDIR=/usr/local/share/examples/openzz
WWWDIR=/usr/local/www/openzz
ETCDIR=/usr/local/etc/openzz
--End SUB_LIST--

---Begin make.conf---
USE_PACKAGE_DEPENDS=yes
BATCH=yes
WRKDIRPREFIX=/wrkdirs
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
# clean-restricted ran via poudriere.conf NO_RESTRICTED
#NO_RESTRICTED=yes
DISABLE_MAKE_JOBS=poudriere
---End make.conf---
=======================<phase: check-sanity   >============================
===========================================================================
=======================<phase: pkg-depends    >============================
===>   openzz-1.0.4.4_2 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_4.txz
Installing pkg-1.2.7_4... done
If you are upgrading from the old package format, first run:

  # pkg2ng
===>   Returning to build of openzz-1.0.4.4_2
===========================================================================
=======================<phase: fetch-depends  >============================
===========================================================================
=======================<phase: fetch          >============================
===> Fetching all distfiles required by openzz-1.0.4.4_2 for building
===========================================================================
=======================<phase: checksum       >============================
===> Fetching all distfiles required by openzz-1.0.4.4_2 for building
=> SHA256 Checksum OK for openzz-1.0.4-4.tar.gz.
===========================================================================
=======================<phase: extract-depends>============================
===========================================================================
=======================<phase: extract        >============================
===> Fetching all distfiles required by openzz-1.0.4.4_2 for building
===>  Extracting for openzz-1.0.4.4_2
=> SHA256 Checksum OK for openzz-1.0.4-4.tar.gz.
===========================================================================
=======================<phase: patch-depends  >============================
===========================================================================
=======================<phase: patch          >============================
===>  Patching for openzz-1.0.4.4_2
===>  Applying FreeBSD patches for openzz-1.0.4.4_2
===========================================================================
=======================<phase: build-depends  >============================
===========================================================================
=======================<phase: lib-depends    >============================
===========================================================================
=======================<phase: configure      >============================
===>  Configuring for openzz-1.0.4.4_2
===>   FreeBSD 10 autotools fix applied to /wrkdirs/usr/ports/devel/openzz/work/openzz-1.0.4/aclocal.m4
===>   FreeBSD 10 autotools fix applied to /wrkdirs/usr/ports/devel/openzz/work/openzz-1.0.4/configure
loading site script /usr/ports/Templates/config.site
creating cache ./config.cache
checking for a BSD compatible install... /usr/bin/install -c -o root -g wheel
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... yes
checking for working aclocal... missing
checking for working autoconf... missing
checking for working automake... missing
checking for working autoheader... missing
checking for working makeinfo... missing
checking for gcc... cc
checking whether the C compiler (cc -O2 -pipe  -Wno-return-type -fno-strict-aliasing ) works... yes
checking whether the C compiler (cc -O2 -pipe  -Wno-return-type -fno-strict-aliasing ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether cc accepts -g... yes
checking for Cygwin environment... no
checking for mingw32 environment... no
checking how to run the C preprocessor... cpp
checking host system type... amd64-portbld-freebsd11.0
checking build system type... amd64-portbld-freebsd11.0
checking for ld used by GCC... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for /usr/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... yes
checking how to recognise dependant libraries... pass_all
checking for object suffix... o
checking for executable suffix... no
checking command to parse /usr/bin/nm -B output... ok
checking for dlfcn.h... (cached) yes
checking for ranlib... ranlib
checking for strip... strip
checking for objdir... .libs
checking for cc option to produce PIC... -fPIC
checking if cc PIC flag -fPIC works... yes
checking if cc static flag -static works... yes
checking if cc supports -c -o file.o... yes
checking if cc supports -c -o file.lo... yes
checking if cc supports -fno-rtti -fno-exceptions... yes
checking whether the linker (/usr/bin/ld) supports shared libraries... yes
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking dynamic linker characteristics... freebsd11.0 ld.so
checking if libtool supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
creating libtool
./configure: ./ltconfig: not found
checking for ranlib... (cached) ranlib
checking for a BSD compatible install... /usr/bin/install -c -o root -g wheel
checking for tputs in -ltermcap... yes
checking for readline in -lreadline... no
checking for dlopen in -ldl... no
checking for ANSI C header files... (cached) yes
checking for working const... yes
checking for inline... inline
checking for size_t... (cached) yes
checking for strdup... (cached) yes
checking for strtol... (cached) yes
checking for main in -lm... yes
updating cache ./config.cache
creating ./config.status
creating Makefile
creating src/Makefile
<snip>
#define PATH_LIST  (TREE_LIST + 1)
                    ^~~~~~~~~
avl.c:119:64: note: expanded from macro 'TREE_LIST'
#define TREE_LIST  (NODE_LIST + (sizeof (NODE) != sizeof(TREE))?1:0)
                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
avl.c:222:23: note: expanded from macro 'FREE_OBJ'
  do { __free_obj(ptr,list); } while(0)
                      ^
avl.c:1837:3: warning: operator '?:' has lower precedence than '+'; '+' will be evaluated first [-Wparentheses]
  FREE_PATH (tree->path);
  ^~~~~~~~~~~~~~~~~~~~~~
avl.c:242:42: note: expanded from macro 'FREE_PATH'
#define FREE_PATH(path)  FREE_OBJ (path, PATH_LIST)
                         ~~~~~~~~~~~~~~~~^~~~~~~~~~
avl.c:120:21: note: expanded from macro 'PATH_LIST'
#define PATH_LIST  (TREE_LIST + 1)
                    ^
avl.c:119:64: note: expanded from macro 'TREE_LIST'
#define TREE_LIST  (NODE_LIST + (sizeof (NODE) != sizeof(TREE))?1:0)
                                                               ^
avl.c:222:23: note: expanded from macro 'FREE_OBJ'
  do { __free_obj(ptr,list); } while(0)
                      ^
avl.c:1837:3: note: place parentheses around the '+' expression to silence this warning
  FREE_PATH (tree->path);
  ^~~~~~~~~~~~~~~~~~~~~~
avl.c:242:42: note: expanded from macro 'FREE_PATH'
#define FREE_PATH(path)  FREE_OBJ (path, PATH_LIST)
                         ~~~~~~~~~~~~~~~~^~~~~~~~~~
avl.c:120:21: note: expanded from macro 'PATH_LIST'
#define PATH_LIST  (TREE_LIST + 1)
                    ^
avl.c:119:64: note: expanded from macro 'TREE_LIST'
#define TREE_LIST  (NODE_LIST + (sizeof (NODE) != sizeof(TREE))?1:0)
                                                               ^
avl.c:222:23: note: expanded from macro 'FREE_OBJ'
  do { __free_obj(ptr,list); } while(0)
                      ^
avl.c:1837:3: note: place parentheses around the '?:' expression to evaluate it first
  FREE_PATH (tree->path);
  ^~~~~~~~~~~~~~~~~~~~~~
avl.c:242:42: note: expanded from macro 'FREE_PATH'
#define FREE_PATH(path)  FREE_OBJ (path, PATH_LIST)
                                         ^~~~~~~~~
avl.c:120:21: note: expanded from macro 'PATH_LIST'
#define PATH_LIST  (TREE_LIST + 1)
                    ^~~~~~~~~
avl.c:119:64: note: expanded from macro 'TREE_LIST'
#define TREE_LIST  (NODE_LIST + (sizeof (NODE) != sizeof(TREE))?1:0)
                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
avl.c:222:23: note: expanded from macro 'FREE_OBJ'
  do { __free_obj(ptr,list); } while(0)
                      ^
avl.c:1839:2: warning: operator '?:' has lower precedence than '+'; '+' will be evaluated first [-Wparentheses]
 FREE_TREE (tree);
 ^~~~~~~~~~~~~~~~
avl.c:241:42: note: expanded from macro 'FREE_TREE'
#define FREE_TREE(tree)  FREE_OBJ (tree, TREE_LIST)
                         ~~~~~~~~~~~~~~~~^~~~~~~~~~
avl.c:119:64: note: expanded from macro 'TREE_LIST'
#define TREE_LIST  (NODE_LIST + (sizeof (NODE) != sizeof(TREE))?1:0)
                                                               ^
avl.c:222:23: note: expanded from macro 'FREE_OBJ'
  do { __free_obj(ptr,list); } while(0)
                      ^
avl.c:1839:2: note: place parentheses around the '+' expression to silence this warning
 FREE_TREE (tree);
 ^~~~~~~~~~~~~~~~
avl.c:241:42: note: expanded from macro 'FREE_TREE'
#define FREE_TREE(tree)  FREE_OBJ (tree, TREE_LIST)
                         ~~~~~~~~~~~~~~~~^~~~~~~~~~
avl.c:119:64: note: expanded from macro 'TREE_LIST'
#define TREE_LIST  (NODE_LIST + (sizeof (NODE) != sizeof(TREE))?1:0)
                                                               ^
avl.c:222:23: note: expanded from macro 'FREE_OBJ'
  do { __free_obj(ptr,list); } while(0)
                      ^
avl.c:1839:2: note: place parentheses around the '?:' expression to evaluate it first
 FREE_TREE (tree);
 ^~~~~~~~~~~~~~~~
avl.c:241:42: note: expanded from macro 'FREE_TREE'
#define FREE_TREE(tree)  FREE_OBJ (tree, TREE_LIST)
                                         ^~~~~~~~~
avl.c:119:64: note: expanded from macro 'TREE_LIST'
#define TREE_LIST  (NODE_LIST + (sizeof (NODE) != sizeof(TREE))?1:0)
                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
avl.c:222:23: note: expanded from macro 'FREE_OBJ'
  do { __free_obj(ptr,list); } while(0)
                      ^
avl.c:1887:1: warning: operator '?:' has lower precedence than '+'; '+' will be evaluated first [-Wparentheses]
ALLOC_TREE (newtree);
^~~~~~~~~~~~~~~~~~~~
avl.c:237:65: note: expanded from macro 'ALLOC_TREE'
#define ALLOC_TREE(tree)  ALLOC_OBJ (tree, TREE *, SIZEOF_TREE, TREE_LIST)
                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
avl.c:119:64: note: expanded from macro 'TREE_LIST'
#define TREE_LIST  (NODE_LIST + (sizeof (NODE) != sizeof(TREE))?1:0)
                                                               ^
avl.c:219:44: note: expanded from macro 'ALLOC_OBJ'
  do { (ptr) = (ptr_type) __alloc_obj(size,list); } while(0)
                                           ^
avl.c:1887:1: note: place parentheses around the '+' expression to silence this warning
ALLOC_TREE (newtree);
^~~~~~~~~~~~~~~~~~~~
avl.c:237:65: note: expanded from macro 'ALLOC_TREE'
#define ALLOC_TREE(tree)  ALLOC_OBJ (tree, TREE *, SIZEOF_TREE, TREE_LIST)
                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
avl.c:119:64: note: expanded from macro 'TREE_LIST'
#define TREE_LIST  (NODE_LIST + (sizeof (NODE) != sizeof(TREE))?1:0)
                                                               ^
avl.c:219:44: note: expanded from macro 'ALLOC_OBJ'
  do { (ptr) = (ptr_type) __alloc_obj(size,list); } while(0)
                                           ^
avl.c:1887:1: note: place parentheses around the '?:' expression to evaluate it first
ALLOC_TREE (newtree);
^~~~~~~~~~~~~~~~~~~~
avl.c:237:65: note: expanded from macro 'ALLOC_TREE'
#define ALLOC_TREE(tree)  ALLOC_OBJ (tree, TREE *, SIZEOF_TREE, TREE_LIST)
                                                                ^~~~~~~~~
avl.c:119:64: note: expanded from macro 'TREE_LIST'
#define TREE_LIST  (NODE_LIST + (sizeof (NODE) != sizeof(TREE))?1:0)
                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
avl.c:219:44: note: expanded from macro 'ALLOC_OBJ'
  do { (ptr) = (ptr_type) __alloc_obj(size,list); } while(0)
                                           ^
avl.c:1989:19: warning: '&&' within '||' [-Wlogical-op-parentheses]
if ((chr1 > chr2) && (lng1 < lng2) || (chr1 < chr2) && (lng1 > lng2))
    ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ ~~
avl.c:1989:19: note: place parentheses around the '&&' expression to silence this warning
if ((chr1 > chr2) && (lng1 < lng2) || (chr1 < chr2) && (lng1 > lng2))
                  ^
    (                             )
avl.c:1989:53: warning: '&&' within '||' [-Wlogical-op-parentheses]
if ((chr1 > chr2) && (lng1 < lng2) || (chr1 < chr2) && (lng1 > lng2))
                                   ~~ ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
avl.c:1989:53: note: place parentheses around the '&&' expression to silence this warning
if ((chr1 > chr2) && (lng1 < lng2) || (chr1 < chr2) && (lng1 > lng2))
                                                    ^
                                      (                             )
44 warnings generated.
cc -DHAVE_CONFIG_H -I. -I. -I.. -O2 -pipe -Wno-return-type -fno-strict-aliasing -c avl.c -o avl.o >/dev/null 2>&1
mv -f .libs/avl.lo avl.lo
/bin/sh ../libtool --mode=compile cc -DHAVE_CONFIG_H -I. -I. -I..     -O2 -pipe  -Wno-return-type -fno-strict-aliasing -c printz.c
rm -f .libs/printz.lo
cc -DHAVE_CONFIG_H -I. -I. -I.. -O2 -pipe -Wno-return-type -fno-strict-aliasing -c printz.c  -fPIC -DPIC -o .libs/printz.lo
cc -DHAVE_CONFIG_H -I. -I. -I.. -O2 -pipe -Wno-return-type -fno-strict-aliasing -c printz.c -o printz.o >/dev/null 2>&1
mv -f .libs/printz.lo printz.lo
/bin/sh ../libtool --mode=compile cc -DHAVE_CONFIG_H -I. -I. -I..     -O2 -pipe  -Wno-return-type -fno-strict-aliasing -c util.c
rm -f .libs/util.lo
cc -DHAVE_CONFIG_H -I. -I. -I.. -O2 -pipe -Wno-return-type -fno-strict-aliasing -c util.c  -fPIC -DPIC -o .libs/util.lo
util.c:56:3: warning: implicit declaration of function 'kernel' is invalid in C99 [-Wimplicit-function-declaration]
  kernel();
  ^
util.c:57:3: warning: implicit declaration of function 'zkernel' is invalid in C99 [-Wimplicit-function-declaration]
  zkernel();
  ^
util.c:93:3: warning: implicit declaration of function 'source_list' is invalid in C99 [-Wimplicit-function-declaration]
  source_list(&lst,0);
  ^
util.c:94:9: warning: implicit declaration of function 'parse' is invalid in C99 [-Wimplicit-function-declaration]
  ret = parse(find_nt("root"));
        ^
util.c:95:3: warning: implicit declaration of function 'pop_source' is invalid in C99 [-Wimplicit-function-declaration]
  pop_source();
  ^
5 warnings generated.
cc -DHAVE_CONFIG_H -I. -I. -I.. -O2 -pipe -Wno-return-type -fno-strict-aliasing -c util.c -o util.o >/dev/null 2>&1
mv -f .libs/util.lo util.lo
/bin/sh ../libtool --mode=link cc  -O2 -pipe  -Wno-return-type -fno-strict-aliasing  -o libozz.la -rpath /usr/local/lib -version-info 1:4:1 -export-dynamic err.lo source.lo zlex.lo list.lo rule.lo scope.lo  table.lo dumpnet.lo parse.lo param.lo action.lo lazy.lo zkernel.lo  zsys.lo kernel.lo sys.lo interface.lo defopen.lo avl.lo printz.lo  util.lo -lm -ltermcap
rm -fr .libs/libozz.la .libs/libozz.* .libs/libozz.*
cc -shared  err.lo source.lo zlex.lo list.lo rule.lo scope.lo table.lo dumpnet.lo parse.lo param.lo action.lo lazy.lo zkernel.lo zsys.lo kernel.lo sys.lo interface.lo defopen.lo avl.lo printz.lo util.lo  -lm -ltermcap  -Wl,-soname -Wl,libozz.so.0 -o .libs/libozz.so.0.1.4
(cd .libs && rm -f libozz.so.0 && ln -s libozz.so.0.1.4 libozz.so.0)
(cd .libs && rm -f libozz.so && ln -s libozz.so.0.1.4 libozz.so)
ar cru .libs/libozz.a  err.o source.o zlex.o list.o rule.o scope.o table.o dumpnet.o parse.o param.o action.o lazy.o zkernel.o zsys.o kernel.o sys.o interface.o defopen.o avl.o printz.o util.o 
ranlib .libs/libozz.a
creating libozz.la
(cd .libs && rm -f libozz.la && ln -s ../libozz.la libozz.la)
/bin/sh ../libtool --mode=compile cc -DHAVE_CONFIG_H -I. -I. -I..     -O2 -pipe  -Wno-return-type -fno-strict-aliasing -c zzi.c
rm -f .libs/zzi.lo
cc -DHAVE_CONFIG_H -I. -I. -I.. -O2 -pipe -Wno-return-type -fno-strict-aliasing -c zzi.c  -fPIC -DPIC -o .libs/zzi.lo
zzi.c:30:10: fatal error: 'readline/readline.h' file not found
#include <readline/readline.h>
         ^
1 error generated.
*** Error code 1

Stop.
make[3]: stopped in /wrkdirs/usr/ports/devel/openzz/work/openzz-1.0.4/src
*** Error code 1

Stop.
make[2]: stopped in /wrkdirs/usr/ports/devel/openzz/work/openzz-1.0.4
*** Error code 1

Stop.
make[1]: stopped in /wrkdirs/usr/ports/devel/openzz/work/openzz-1.0.4
*** Error code 1

Stop.
make: stopped in /usr/ports/devel/openzz



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