FreeBSD_HEAD_amd64_gcc - Build #1506 - Fixed:

Build information:
Full change log:
Full build log:

Change summaries:

305176 by sephe:
hyperv/hn: Stringent per-packet-info verification.

While I'm here, minor style changes.

MFC after:      1 week
Sponsored by:   Microsoft
Differential Revision:

305175 by sephe:
net/rndis: Define per-packet-info for RNDIS packet message

MFC after:      1 week
Sponsored by:   Microsoft
Differential Revision:

305174 by sephe:
hyperv/hn: Remove unused function

MFC after:      1 week
Sponsored by:   Microsoft
Differential Revision:

305173 by sephe:
net/rndis: Add comment for rndis_set_parameter

MFC after:      1 week
Sponsored by:   Microsoft
Differential Revision:

305171 by emaste:
allow kern.proc.nfds sysctl in capability mode

Reviewed by:    allanjude
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:

305170 by ngie:
Don't bake all of CC/CPP/CXX into CFLAGS

Capture executable names for CC, CPP, CXX (assumed to be the
first non-CCACHE_BIN word).

This change strips out all of the cross-compiler arguments, (-target,
-B, etc), added to ${CC}, etc via ${CROSSENV} in Makefile.inc1, so it
doesn't infect the build and subsequently the test.

Add comments noting why this logic is being added, and why the logic in
r305041 was necessary/what it was trying to achieve.

This is required after recent changes made to the toolchain to always
specify --sysroot, -target, -B, etc with clang in buildworld (presumably

Reviewed by:    rodrigc (earlier version)
Reported by:    Jenkins (FreeBSD_HEAD job from 559+)
MFC after:      12 days
X-MFC with:     r304681, r305041
Sponsored by:   EMC / Isilon Storage Division
Differential Revision:

305169 by pkelsey:
_taskqueue_start_threads() now fails if it doesn't actually start any threads.

Reviewed by:    jhb
MFC after:      1 week
Differential Revision:

305168 by erj:
Fix linker warnings (errors on gcc) that resulted from r304510.

The variables that are extern in the netmap header file should be
defined in ixl_txrx.c (the file that is included in both ixl(4)/ixlv(4),
not in the main driver source files.

Reported by:    ed@, dim@, ngie@

305167 by np:
cxgbe/t4_tom: Two new routines to allocate and write page pods for a
buffer in the kernel's address space.

305166 by np:
cxgbe/t4_tom: Add general purpose routines to deal with page pod regions
and allocations within them.  Switch to these routines to manage the TOE
DDP region.

Sponsored by:   Chelsio Communications

305164 by markj:
Rename unp_dispose_so() to unp_dispose().

It implements the dom_dispose method for local socket domain, so its name
should match the method name.

305160 by emaste:
Set UEFI boot loader PE/COFF timestamps to known value for reproducible builds

Reviewed by:    rpokala
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:

305156 by emaste:
users: don't build when we don't have a C++ toolchain

(On RISC-V MK_CXX is in BROKEN_OPTIONS, so users remains skipped there.)

Reviewed by:    bdrewery
Differential Revision:

305155 by emaste:
readelf: silence GCC 4.2.1 uninitialized variable warning

Sponsored by:   The FreeBSD Foundation

305154 by jilles:
directory(3): Deprecate readdir_r(). Clarify dirent buffers.

In existing implementations including FreeBSD, there is no reason to use
readdir_r() in the common case where potentially multiple threads each list
their own directory. Code using readdir() is simpler.

What's more, lthough readdir_r() can safely be used on FreeBSD because
NAME_MAX is forced to 255, it cannot be used safely on systems where
{NAME_MAX} is not fixed. As a concrete example, FAT/NTFS filenames can be up
to 255 UTF-16 code units long, which can be up to 765 UTF-8 bytes.

Deprecating readdir_r() in POSIX has been proposed in
and glibc wants to deprecate it as well.

Reviewed by:    ed, wblock
MFC after:      1 week
Differential Revision:

305149 by loos:
All the TI platforms are FDT based and it is not necessary to enumerate
the hinted children (there wont be any).

Spotted by:     gonzo

305148 by bdrewery:
DIRDEPS_BUILD: Add some missing dirctories to the build.

Sponsored by:   EMC / Isilon Storage Division

305147 by bdrewery:
Add a 'make print-dir' that simply traverses all directories and prints them.

This is useful for finding connected directories.

MFC after:      1 week
Sponsored by:   EMC / Isilon Storage Division

305146 by bdrewery:
DIRDEPS_BUILD: Update dependencies.

Sponsored by:   EMC / Isilon Storage Division

305145 by bdrewery:
DIRDEPS_BUILD: Avoid cyclic dependency with libc++.

The DIRDEPS_BUILD does not have a 'make includes' phase, so it would
otherwise want libc++ to be fully built/staged before building
libgcc.  Using the header directly works.

MFC after:      3 days
Sponsored by:   EMC / Isilon Storage Division

305144 by ache:
'addrlen' does not matter when we need to find the first non-zero bit in
the byte from the left and 'addrlen' already counted in 'lim'.

PR:     212121
Submitted by:
MFC after:      7 days

305143 by emaste:
Regnerate after r305140, getdtablesize in capability mode

Sponsored by:   The FreeBSD Foundation

305141 by loos:
Fix the build.

Works better when the file with the #define is actually included...

305140 by emaste:
Allow getdtablesize in capability mode

getdtablesize is "trivial global state" and is similar to
getrlimit(RLIMIT_NOFILE), so should be permitted in capability mode.

Reviewed by:    oshogbo
MFC after:      1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:

305139 by cem:
df(1): Allow duplicate -l flags gracefully

Rather than producing a misleading error message when duplicate -l flags are
provided to df(1), simply ignore extra flags and proceed as if only one was
specified.  This seems most reasonable given the usage for -l:

     -l      Only display information about locally-mounted file systems.

l and t flags still conflict, as before.

PR:             208169
Reported by:    by at
Reviewed by:    allanjude

305137 by allanjude:
Eliminate unnecessary loop in _cap_check()

Calling cap_rights_contains() several times with the same inputs is not
going to produce a different output. The variable being iterated, i, is
never used inside the for loop.

The loop is actually done in cap_rights_contains()

Submitted by:   Ryan Moeller <>
Reviewed by:    oshogbo, ed
MFC after:      1 month
Differential Revision:

305134 by jmcneill:
Add Allwinner A64 (sun50i) and Pine64 dts files.

Reviewed by:            andrew, imp, manu, wca
Differential Revision:

305133 by ache:
Apply the same qsort() usage fix as in r304911 getaddrinfo.c
qsort() can't be stabilized with just return(-1) alone.

MFC after:      3 days

305132 by imp:
Remove accidentally committed stray comment.

Noticed by: dteske@

305130 by emaste:
Update to ELF Tool Chain r3490

Improvements include:
 * readelf: report all relocation types in rel/rela for MIPS N64
 * readelf: add ELFOSABI_ARM_AEABI
 * Add recent RISC-V relocations
 * elfcopy: use elftc_timestamp, to support SOURCE_DATE_EPOCH

Sponsored by:   The FreeBSD Foundation

305129 by kib:
Make swapoff reliable.

The swap_pager_swapoff() function uses trylock for the object lock
before pagein, which means that either i/o to md(4) over swap, or
intensive page faults over swap pager objects might prevent swapoff()
from making any progress. Then the retry < 100 check fails and machine

If trylock fails, acquire the object lock in the blockable way and
restart the hash bucket walk.  Keep retries logic for now.

Reported and tested by: pho
Reviewed by:    alc, markj
Sponsored by:   The FreeBSD Foundation
MFC after:      2 weeks
Differential revision:

305128 by andrew:
Also handle instruction traps. We might hit these when the page we are
executing is being promoted to a superpage.

Obtained from:  ABT Systems Ltd
MFC after:      1 month
Sponsored by:   The FreeBSD Foundation

305125 by bapt:
Netboot: allow both tftpfs and nfs in both pxeboot and loader.efi

Add a new 'netproto' variable which can be set for now to
NET_TFTP or NET_NFS (default to NET_NONE)

>From the dhcp options if one sets the root-path option to:
"ip:path", the loader will consider it is booting over NFS
(meaning same behaviour as the default current behaviour)

if the dhcp option "tftp server address" is set (option 150)
the loader will consider it is booting over tftpfs, it will then
consider the root-path options with 2 possible case
1. "path" then the IP of the tftp server will be the one passed by
the option 150, and the files will be retrieved under "path" on the tftp
2. "ip:path" then the IP of the tftp server will be the one passed in
the option "overwritting the IP from the option 150.

We could not "abuse" the rootpath option in the form or tftp://ip:path because
this is already used for other purpose by iPXE preventing any chainload from
iPXE to the FreeBSD loader.

Given at each open(), the loader loops over all available filesystems and keep
the "best" error, we needed to prevent tftpfs to fallback on nfs and vice versa.
the tftpfs and nfs implementation in libstand now return EINVAL early if
'netproto' for that purpose.

Reviewed by:    tsoome
Relnotes:       yes
Sponsored by:
Differential Revision:

305124 by mjg:
fd: effectively revert r305091

Turns out fd_lastfile can survive being -1 for some processes, giving
incorrect results with the cast.

Noted by: cem

305123 by mav:
Fix kernel panic when inheriting properties without default.

There are two writable hidden properties "iscsioptions" and "stmf_sbd_lu",
that have no default string value.  Attempt to unset them or replicate
caused kernel panic.  This simple bandaid seems fixes the problem nicely.

MFC after:      2 weeks

305122 by ae:
Remove redundant sanity checks from ipsec[46]_common_input_cb().

This check already has been done in the each protocol callback.

305121 by bde:
Add some locking to sc_cngetc().

Keyboard input needs Giant locking, and that is not possible to do
correctly here.  Use mtx_trylock() and proceed unlocked as before if
we can't acquire Giant (non-recursively), except in kdb mode don't
even try to acquire Giant.  Everything here is a hack, but it often
works.  Even if mtx_trylock() succeeds, this might be a LOR.

Keyboard input also needs screen locking, to handle screen updates
and switches.  Add this, using the same simplistic screen locking
as for sc_cnputc().

Giant must be acquired before the screen lock, and the screen lock
must be dropped when calling the keyboard driver (else it would get a
harmless LOR if it tries to acquire Giant).  It was intended that sc
cn open/close hide the locking calls, and they do for i/o functions
functions except for this complication.

Non-console keyboard input is still only Giant-locked, with screen
locking in some called functions.  This is correct for the keyboard
parts only.

When Giant cannot be acquired properly, atkbd and kbdmux tend to race
and work (they assume that the caller acquired Giant properly and don't
try to acquire it again or check that it has been acquired, and the
races rarely matter), while ukbd tends to deadlock or panic (since it
does the opposite, and has other usb threads to deadlock with).

The keyboard (Giant) locking here does very little, but the screen
locking completes screen locking for console mode except for not
detecting or handling deadlock.

305120 by jmcneill:
Add support for Allwinner A64 USB PHY.

Reviewed by:    manu

305119 by bz:
After r305113, try to properly replace the magic numbers with
proper #defines for this driver (not using the wrong header).

305116 by tsoome:
recvtftp() is broken for large files, report file size

The tftp download for large files will cause internal block id
to wrap to 0 as the data type is unsigned short.

Also provide file size information for stat.

PR:             200500
Reported by:    tsoome
Reviewed by:    allanjude
Approved by:    allanjude (mentor)
Differential Revision:

305115 by loos:
Add a driver for the AM335x bandgap sensor, an on-die temperature sensor
as part of the AM335x control module extension.

TI says that the bandgap sensor is not very accurate on AM335x, but in our
tests it seems to be a good reference for the SoC temperature.

TI details:

Sponsored by:   Rubicon Communications, LLC (Netgate)

305114 by loos:
Allow the use of control module extensions to cope with specific platform

Sponsored by:   Rubicon Communications, LLC (Netgate)

305113 by loos:
Replace more magic numbers with the proper register names.

Sponsored by:   Rubicon Communications, LLC (Netgate)

305112 by loos:
Replace a magic number with the proper register name.

Sponsored by:   Rubicon Communications, LLC (Netgate)

305111 by sephe:
hyperv/timesync: Rework time adjustment policy

- By default, adjust time upon SYNC request.  It can be disabled
  through hw.hvtimesync.ignore_sync_req.  SYNC request will be
  sent by hypervisor the host is resumed, rebooted, etc.
- By default, adjust time upon SAMPLE request, if there is 100ms
  difference between VM time and hypervisor time.  This can be
  disabled through hw.hvtimesync.sample_drift.

And nuke the unnecessary task, since channel callback is running
in a Hyper-V taskqueue nowadays.

Submitted by:   YanZhe Chen <t-yachen microsoft com>
Discussed with: Dexuan Cui <decui microsoft com>, Hongjiang Zhang <honzhan 
microsoft com>, sephe
MFC after:      1 week
Sponsored by:   Microsoft
Differential Revision:

305110 by sephe:
hyperv/hn: Consolidate NVS transaction execution.

MFC after:      1 week
Sponsored by:   Microsoft
Differential Revision:

305109 by nwhitehorn:
Back out misfired extra file in r305108.

305108 by nwhitehorn:
Refix operation on sparse CPU mappings as in r302372, temporarily broken
by r304716.

PR:             kern/210106
MFC after:      2 days

305107 by imp:
Create a hook 'post-initialize' for people that want to define
something (perhaps in loader.rc.local) that can read in .conf files
after all the other .conf files have been read and override settings
in them. This is quite handy if the .conf file name is determined
while the loader is running, but might be generically useful for other
things. If this hook exists, call it, otherwise don't do anything.

Doing it in these functions ensures that this file is reliably
read. It also works around a defect in forth where s" isn't allowed
outside a function (well, in a compile context) leading to gross
workarounds if one were to hack loader.rc like:

: maybe-some-func s" some-func" sfind if execute else drop then ;

which somehow seems worse. Though I'm sure there's some clever forthy
way of doing that with a macro.

Sponsored by: Netflix, Inc

305104 by gonzo:
Update VCHIQ driver to upstream version 4eda74f2

PR:             211525
Submitted by:   Sylvain Garrigues <>

305102 by bapt:
Revert 305098

Was a wrong assumption from me badly look at the errors cross toolchain was
telling me

305098 by bapt:
Make ldscript sysroot friendly

305097 by cognet:
Nuke obio_bs_tag, it was used before it was initialized, and
arm_base_bs_tag is the same, anyway.

305096 by cognet:
Some old arm ports don't load the kernel at the beginning of the memory,
because the bootloader, ie redboot, won't let them do so, and so used the
memory before the kernel for early memory allocation, such as pagetables,
stacks, etc...
Make a bit of an effort to try to get that memory mapped.

305095 by bdrewery:
AUTO_OBJ: Support SRCS/DPSRCS that contain '/' and require a nested OBJDIR.

This is to be used by the new clang3.9 build and extends functionality
added to 'make obj' in r279980.

MFC after:      2 weeks
Sponsored by:   EMC / Isilon Storage Division

305094 by cognet:
Garbage collect bits forgotten in r295267.

305093 by mjg:
fd: add fdeget_locked and use in kern_descrip

305092 by pfg:
MFV r302423:
Bring older verbatim version of cpuid.h

This file is used regularly in FreeBSD builds but we usually use the
similar file provided by clang.

By providing the older file introduced in GCC 4.3, we hope to mimic
better what is provided by an external toolchain.

Obtained from:  GCC-4_3-branch (SVN rev. 129548, pre GPLv3)

305091 by mjg:
fd: simplify fd testing in fget_locked by casting to u_int

305090 by jilles:
getvfsbyname(3): Remove [EFAULT] error.

Since r101651 in 2002, getvfsbyname() has written *vfc using userland
memcpy(), so the [EFAULT] error no longer occurs.

MFC after:      1 week

305086 by dim:
Fix warnings in telnet about invalid constant conversions, e.g.:

contrib/telnet/telnet/commands.c:2914:13: error: implicit conversion
from 'int' to 'char' changes value from 137 to -119
                *lsrp++ = IPOPT_SSRR;
                        ~ ^~~~~~~~~~
/usr/include/netinet/ip.h:152:21: note: expanded from macro 'IPOPT_SSRR'
#define IPOPT_SSRR              137             /* strict source route */
contrib/telnet/telnet/commands.c:2916:13: error: implicit conversion
from 'int' to 'char' changes value from 131 to -125
                *lsrp++ = IPOPT_LSRR;
                        ~ ^~~~~~~~~~
/usr/include/netinet/ip.h:148:21: note: expanded from macro 'IPOPT_LSRR'
#define IPOPT_LSRR              131             /* loose source route */

Use unsigned char buffers instead.

MFC after:      1 week

305085 by dim:
Fix warnings in tnftp about invalid constant conversions, e.g.:

contrib/tnftp/src/ftp.c:2067:11: error: implicit conversion from 'int'
to 'char' changes value from 255 to -1 [-Werror,-Wconstant-conversion]
        buf[0] = IAC;
               ~ ^~~
/usr/include/arpa/telnet.h:39:13: note: expanded from macro 'IAC'
#define IAC     255             /* interpret as command: */
contrib/tnftp/src/ftp.c:2068:11: error: implicit conversion from 'int'
to 'char' changes value from 244 to -12 [-Werror,-Wconstant-conversion]
        buf[1] = IP;
               ~ ^~
/usr/include/arpa/telnet.h:50:12: note: expanded from macro 'IP'
#define IP      244             /* interrupt process--permanently */

Use an unsigned char buffer instead.

MFC after:      1 week

305084 by oshogbo:
Fix Capsicum syscalls test suite.

305083 by pfg:
libcpp: Complete the __COUNTER__ support with upstream implementation.

We brought an original __COUNTER__ implementation in r228474, however, it
was missing documentation and it had a different behaviour for precompiled
headers with respect to the upstream version. Since the upstream version
is under the same license as GCC4.2, bring the missing pieces to reduce
differences against upstream.

Optained from:  GCC pre-4.3 (rev. 125041 ; GPLv2)

305079 by bdrewery:
Reduce duplicated logic for !SMP

Sponsored by:   EMC / Isilon Storage Division

305078 by emaste:
iscsi_initiator: make logout_req::reason unsigned char

Previously this reported an error from Clang 3.9.0: implict conversion
from 'int' to 'char' changes value from 128 to -128.

Discussed with: dim, trasz
Sponsored by:   The FreeBSD Foundation
Differential Revision:

305077 by dim:
Squelch clang 3.9.0 warnings about BASE (which is 32768) being converted
to -32768 when it is used as an argument to mp_itom(), in both libtelnet
and newkey.  This code has been wrong since r26238 (!), so after almost
20 years it is rather useless to try to correct it.

MFC after:      1 week

305075 by imp:
The code only converts from bpbHugeSectors to bpbSectors if the sum of
the hidden and huge sectors is less than or equal MAXU16. When
formatting in Windows bpbSectors is still used for 63488 sectors and
2048 hidden (sum > MAXU16). The hidden sectors count is the number of
sectors before the FAT16 Boot Record so it shouldn't affect the sector
count. Attached patch (huge_sec_conversion.patch) to only check for
bpb.bpbHugeSectors <= MAXU16 when converting to bpbSectors.

Submitted by: Guy Yur
PR: 183234

305074 by imp:
Remove CHS alignment. It's not needed and causes problems for the BBB
boot partition. NetBSD removed it in 1.10 in their repo some time ago.

Submitted by: Guy Yur
PR: 183234

305071 by andrew:
Because we need to use a break-before-make sequence when promoting pages
there is a short period where functions that walk the kernel page table
without locking them may see an invalid entry. One solution would be to add
locking to these functions, however some may be called from locations where
we are unable to sleep.

Until a better solution can be found stop promoting pages in the kernel
pmap so these functions work as expected.

Obtained from:  ABT Systems Ltd
MFC after:      1 month
Sponsored by:   The FreeBSD Foundation

305066 by gnn:
Update cryptotest for modern algorithms

Reviewed by:    cem
Sponsored by:   Rubicon Communications, LLC (Netgate)
Differential Revision:

305065 by lidl:
Add refactored blacklist support to sshd

Change the calls to of blacklist_init() and blacklist_notify to be
macros defined in the blacklist_client.h file.  This avoids
the need for #ifdef USE_BLACKLIST / #endif except in the
blacklist.c file.

Remove redundent initialization attempts from within
blacklist_notify - everything always goes through

Added UseBlacklist option to sshd, which defaults to off.
To enable the functionality, use '-o UseBlacklist=yes' on
the command line, or uncomment in the sshd_config file.

Reviewed by:    des
Approved by:    des
MFC after:              1 week
Sponsored by:   The FreeBSD Foundation
Differential Revision:

305061 by araujo:
Invert calloc(3) argument order.

Reviewed by:    grehan, mav
MFC after:      1 week
Differential Revision:

305060 by bde:
Fix keyboard polling "on/off" to support recursion.  vt depends on
this, and sc will soon depend on it again.

The on/off request is passed without modification to lower layers,
so the bug was smaller in this layer than in in lower layers (the
sequence on;on;off left polling off when it should be on, but the
sequence on;on;off;on;off...  doesn't allow the interrupt handler
to eat the input after an "off" that should't turn off polled mode,
provided lower layers don't have the bug, since this layer is virtual.

The bug was small in lower layers too.  Normally everything is Giant
locked for keyboards, and this locks out the interrupt handler in
on;on;off;on;off... sequences.  However, PR 211884 says that fixing
this bug in ukbd in r303765 apparently causes the eating-by-interrupt
behaviour that the fix is to prevent.

Discussed with: emax

305059 by bde:
Start adding locking to sc_cngetc().

Restore an splx() lost in r228644.  We aren't nearly ready to remove
spl's.  They give hints about missing locking.  This lost one was
misplaced.  Dropping it early for convenience gave race windows for
accesses to the fkey buffer.  Giant locking accidentally fixed this
for non-console cases.

Put the spl's around the whole function.  Since there are many returns
that would need splx() just before them for a direct fix, split the
function into a wrapper that does the spl's and a "locked" function
that does the work.

Return earlier when no keyboard is attached to match the ordering in a
planned version.  This breaks the dubious feature of returning keys
from the fkey buffer after the keyboard has gone away.  Losing the keys
wouldn't matter, but we keep them too long now.

_______________________________________________ mailing list
To unsubscribe, send any mail to ""

Reply via email to