Some recent fairly important fixes in master and release

Matthew Dillon dillon at
Fri May 3 16:02:14 PDT 2019

Two important fixes have gone into master with a version of them also
brought in to the release branch.  The first is a floating point bug
related to a (long time) known hardware issue on Intel CPUs.  We thought we
had fixed this bug ages ago, but it turns out we didn't so it is being
fixed permanently with the removal of the of the remainder of the FP
switching heuristic.

If you do not want to update immediately, you can fix the problem live with
a simple sysctl:

sysctl machdep.npx_fpu_heuristic=1

or put 'machdep.npx_fpu_heuristic=1' in your /etc/sysctl.conf and reboot.


The second bug is related to mmap()s MAP_STACK feature, which a number of
interpreted languages use, in particular 'ruby'.   The kernel was not
handling several of the cases properly.  In addition to fixing that case,
we have also basically stopped allowing user programs to create grow-down
segments in memory any more.  We do this by converting MAP_STACK into a
normal anonymous mapping.

The grow-down feature will ultimately be removed entirely as it is not
really applicable to 64-bit systems, but because the -release threading
libraries still assume that the main user stack uses this mode, it will be
another one or two release cycles before we actually scrap it completely.

This fix requires updating sources and building and installing a new kernel.


This work is in both master and the release branch.  No sub-release has
been scheduled for the release branch at this time, we need to talk about
it internally a bit first.

Thanks for the bug reports everyone!

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Users mailing list