mirror of
https://github.com/openharmony/third_party_FreeBSD.git
synced 2026-07-01 08:11:39 -04:00
Description: FreeBSD版本升级
IssueNo: https://gitee.com/openharmony/third_party_FreeBSD/issues/IBOJVX Feature Or Bugfix: Feature Binary Source: No Signed-off-by: hw_llm <liu.limin@huawei.com>
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
The compilation of software known as FreeBSD is distributed under the
|
||||
following terms:
|
||||
|
||||
Copyright (c) 1992-2021 The FreeBSD Project.
|
||||
Copyright (c) 1992-2023 The FreeBSD Project.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
|
||||
+11
-9
@@ -34,11 +34,12 @@ makes a commit to the specified subtree.
|
||||
|
||||
subsystem login notes
|
||||
-----------------------------
|
||||
aio(4) asomers Pre-commit review requested.
|
||||
ath(4) adrian Pre-commit review requested, send to freebsd-wireless@freebsd.org
|
||||
contrib/atf ngie,#test Pre-commit review requested.
|
||||
contrib/capsicum-test ngie,#capsicum,#test Pre-commit review requested.
|
||||
contrib/googletest ngie,#test Pre-commit review requested.
|
||||
contrib/ipfilter cy Pre-commit review requested.
|
||||
sbin/ipf cy Pre-commit review requested.
|
||||
contrib/libcxxrt dim,emaste Pre-commit review preferred.
|
||||
contrib/llvm-project/compiler-rt dim Pre-commit review preferred.
|
||||
contrib/llvm-project/libcxx dim Pre-commit review preferred.
|
||||
@@ -75,7 +76,7 @@ nvme(4) jimharris Pre-commit review requested.
|
||||
nvmecontrol(8) jimharris Pre-commit review requested.
|
||||
opencrypto jmg Pre-commit review requested. Documentation Required.
|
||||
openssh des Pre-commit review requested, email only.
|
||||
openssl benl,jkim Pre-commit review requested.
|
||||
openssl benl Pre-commit review requested.
|
||||
otus(4) adrian Pre-commit review requested, send to freebsd-wireless@freebsd.org
|
||||
pci bus imp,jhb Pre-commit review requested.
|
||||
pmcstudy(8) rrs Pre-commit review requested.
|
||||
@@ -95,13 +96,14 @@ share/mk/*.test.mk imp,bapt,bdrewery, Pre-commit review requested.
|
||||
emaste,ngie,sjg,#test
|
||||
stand/forth dteske Pre-commit review requested.
|
||||
stand/lua kevans Pre-commit review requested
|
||||
stand imp Pre-commit review strongly requested.
|
||||
sys/compat/linuxkpi hselasky If in doubt, ask.
|
||||
zeising, johalun pre-commit review requested via
|
||||
#x11 phabricator group.
|
||||
(to avoid drm graphics drivers
|
||||
impact)
|
||||
sys/contrib/dev/ice erj Pre-commit phabricator review requested.
|
||||
sys/contrib/ipfilter cy Pre-commit review requested.
|
||||
sys/netpfil/ipfilter cy Pre-commit review requested.
|
||||
sys/dev/e1000 erj Pre-commit phabricator review requested.
|
||||
sys/dev/ixgbe erj Pre-commit phabricator review requested.
|
||||
sys/dev/ixl erj Pre-commit phabricator review requested.
|
||||
@@ -120,12 +122,12 @@ usr.sbin/bsdconfig dteske Pre-commit phabricator review requested.
|
||||
usr.sbin/dpv dteske Pre-commit review requested. Keep in sync with libdpv.
|
||||
usr.sbin/pkg pkg@ Please coordinate behavior or flag changes with pkg team.
|
||||
usr.sbin/sysrc dteske Pre-commit phabricator review requested. Keep in sync with bsdconfig(8) sysrc.subr.
|
||||
vmm(4) jhb, grehan Pre-commit review requested via #bhyve
|
||||
phabricator group.
|
||||
libvmmapi jhb, grehan Pre-commit review requested via #bhyve
|
||||
phabricator group.
|
||||
usr.sbin/bhyve* jhb, grehan Pre-commit review requested via #bhyve
|
||||
phabricator group.
|
||||
vmm(4) jhb Pre-commit review requested via #bhyve
|
||||
phabricator group.
|
||||
libvmmapi jhb Pre-commit review requested via #bhyve
|
||||
phabricator group.
|
||||
usr.sbin/bhyve* jhb Pre-commit review requested via #bhyve
|
||||
phabricator group.
|
||||
autofs(5) trasz Pre-commit review recommended.
|
||||
iscsi(4) trasz Pre-commit review recommended.
|
||||
rctl(8) trasz Pre-commit review recommended.
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
"Name" : "FreeBSD",
|
||||
"License" : "BSD-2-Clause License",
|
||||
"License File" : "COPYRIGHT",
|
||||
"Version Number" : "13.3",
|
||||
"Version Number" : "14.1",
|
||||
"Owner" : "tonghaoyang1@huawei.com",
|
||||
"Upstream URL" : "http://www.freebsd.org/",
|
||||
"Description" : "FreeBSD is an operating system used to power modern servers, desktops, and embedded platforms."
|
||||
|
||||
@@ -24,7 +24,7 @@ Source Roadmap:
|
||||
| contrib | Packages contributed by 3rd parties. |
|
||||
| crypto | Cryptography stuff (see [crypto/README](crypto/README)). |
|
||||
| etc | Template files for /etc. |
|
||||
| gnu | Commands and libraries under the GNU General Public License (GPL) or Lesser General Public License (LGPL). Please see gnu/COPYING* for more information. |
|
||||
| gnu | Commands and libraries under the GNU General Public License (GPL) or Lesser General Public License (LGPL). Please see [gnu/COPYING](gnu/COPYING) and [gnu/COPYING.LIB](gnu/COPYING.LIB) for more information. |
|
||||
| include | System include files. |
|
||||
| kerberos5 | Kerberos5 (Heimdal) package. |
|
||||
| lib | System libraries. |
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Release notes for FreeBSD 13.0.
|
||||
Release notes for FreeBSD 14.0.
|
||||
|
||||
This file describes new user-visible features, changes and updates relevant to
|
||||
users of binary FreeBSD releases. Each entry should describe the change in no
|
||||
@@ -10,7 +10,104 @@ newline. Entries should be separated by a newline.
|
||||
|
||||
Changes to this file should not be MFCed.
|
||||
|
||||
0644746d5091:
|
||||
eeb04a736cb9:
|
||||
date(1) now supports nanoseconds. For example:
|
||||
`date -Ins` prints "2024-04-22T12:20:28,763742224+02:00" and
|
||||
`date +%N` prints "415050400".
|
||||
|
||||
7b9a772f9f64:
|
||||
usbconfig(8) now reads the descriptions of the usb vendor and products
|
||||
from usb.ids when available, similarly to what pciconf(8) does.
|
||||
|
||||
daf917daba9c:
|
||||
One True Awk updated to 2nd Edition with new -csv support and UTF-8
|
||||
support. See https://awk.dev for more details.
|
||||
|
||||
b8e137d8d32d:
|
||||
This commit added some statistics collection to the NFS-over-TLS
|
||||
code in the NFS server so that sysadmins can moditor usage.
|
||||
The statistics are available via the kern.rpc.tls.* sysctls.
|
||||
|
||||
41582f28ddf7:
|
||||
FreeBSD 15.0 will not include support for 32-bit platforms.
|
||||
However, 64-bit systems will still be able to run older 32-bit
|
||||
binaries.
|
||||
|
||||
Support for executing 32-bit binaries on 64-bit platforms via
|
||||
COMPAT_FREEBSD32 will remain supported for at least the
|
||||
stable/15 and stable/16 branches.
|
||||
|
||||
Support for compiling individual 32-bit applications via
|
||||
`cc -m32` will also be supported for at least the stable/15
|
||||
branch which includes suitable headers in /usr/include and
|
||||
libraries in /usr/lib32.
|
||||
|
||||
Support for 32-bit platforms in ports for 15.0 and later
|
||||
releases is also deprecated, and these future releases may not
|
||||
include binary packages for 32-bit platforms or support for
|
||||
building 32-bit applications from ports.
|
||||
|
||||
stable/14 and earlier branches will retain existing 32-bit
|
||||
kernel and world support. Ports will retain existing support
|
||||
for building ports and packages for 32-bit systems on stable/14
|
||||
and earlier branches as long as those branches are supported
|
||||
by the ports system. However, all 32-bit platforms are Tier-2
|
||||
or Tier-3 and support for individual ports should be expected
|
||||
to degrade as upstreams deprecate 32-bit platforms.
|
||||
|
||||
With the current support schedule, stable/14 will be EOLed 5
|
||||
years after the release of 14.0. The EOL of stable/14 would
|
||||
mark the end of support for 32-bit platforms including source
|
||||
releases, pre-built packages, and support for building
|
||||
applications from ports. Given an estimated release date of
|
||||
October 2023 for 14.0, support for 32-bit platforms would end
|
||||
in October 2028.
|
||||
|
||||
The project may choose to alter this approach when 15.0 is
|
||||
released by extending some level of 32-bit support for one or
|
||||
more platforms in 15.0 or later. Users should use the
|
||||
stable/14 branch to migrate off of 32-bit platforms.
|
||||
|
||||
3cb2f5f369ec:
|
||||
The lua-flavored loader(8) will now interpret .lua files that appear in
|
||||
loader_conf_files as lua, and execute them in a sandbox. Existing
|
||||
loader environment variables are available as globals in the sandbox,
|
||||
and any global variable set, if not a table value, will be reflected in
|
||||
the loader environment upon successful execution of the configuration
|
||||
file. Environment variables with names that aren't valid lua names may
|
||||
be accessed as indices of _ENV; e.g., _ENV['net.fibs'].
|
||||
|
||||
bdc81eeda05d:
|
||||
nda is now the default nvme device on all platforms. While nda creates
|
||||
nvd links by default so fstab, etc continues to work, configuration
|
||||
should be updated to the new nda devices.
|
||||
|
||||
To restore the old behavior, add hw.nvme.use_nvd=1 to loader.conf or
|
||||
`options NVME_USE_NVD=1` to the kernel config. To disable the nvd
|
||||
compatibility aliases, add kern.cam.nda.nvd_compat=0 to loader.conf.
|
||||
|
||||
bbb2d2ce4220:
|
||||
Change pw (hence bsdinstall) not to move /home to /usr/home.
|
||||
Previously, when creating the path to home directories, pw
|
||||
would move any path in the root directory under /usr, creating
|
||||
a symlink in root. In particular, the default /home would become
|
||||
/usr/home. Now /home is at the top level by default. /usr/home
|
||||
can be used explicitly.
|
||||
|
||||
3416e102c4e9:
|
||||
Remove TI code from armv7 GENERIC kernel.
|
||||
This code doesn't cope with newer DTS and hasn't in a long time so
|
||||
support for TI armv7 platform (like BeagleBone and Pandaboard) is now
|
||||
removed from GENERIC.
|
||||
|
||||
d198b8774d2c:
|
||||
Add a new "fwget" utility.
|
||||
The goal of this utility is to inspect the system for peripherals
|
||||
that needs firmware and install the appropriate packages for them.
|
||||
For now only pci subsystem is supported and only firmwares for Intel
|
||||
and AMD GPUs are known.
|
||||
|
||||
896516e54a8c:
|
||||
Add a new "syskrb5" mount option for Kerberized NFSv4.1/4.2 mounts.
|
||||
Without this patch, a Kerberized NFSv4.1/4.2 mount must provide
|
||||
a Kerberos credential for the client at mount time.
|
||||
@@ -21,7 +118,16 @@ Changes to this file should not be MFCed.
|
||||
credential is required at mount time.
|
||||
See mount_nfs(8).
|
||||
|
||||
b4805d577787 and many others:
|
||||
330aa8acdec7,ff2f1f691cdb:
|
||||
Adds support for the SP4_MACH_CRED case for the
|
||||
NFSv4.1/4.2 ExchangeID operation since the Linux
|
||||
NFSv4.1/4.2 client is now using this for Kerberized mounts.
|
||||
This change should only affect Kerberized NFSv4.1/4.2 mounts.
|
||||
The Linux Kerberized NFSv4.1/4.2 mounts currently work without
|
||||
support for this because Linux will fall back to SP4_NONE,
|
||||
but there is no guarantee this fallback will work forever.
|
||||
|
||||
7344856e3a6d and many others:
|
||||
Add support so that nfsd(8), nfsuserd(8), mountd(8), gssd(8)
|
||||
and rpc.tlsservd(8) can be run in an appropriately configured
|
||||
vnet prison. The vnet prison must be on its own file system,
|
||||
@@ -31,66 +137,129 @@ b4805d577787 and many others:
|
||||
and "-m" are not supported.)
|
||||
See jail(8), nfsd(8) and mountd(8).
|
||||
|
||||
68e86d5265bc,e58dfd0de589,59f5a5cb724e,6e272a78de36,4c4a4fd4a649,ba2ae2cca63a:
|
||||
2fb4f839f3fc,d89513ed2050,3413ee88c39d,f97a19ecb985,021562c5020d,431d2a81d421:
|
||||
sendmail has been updated to the latest upstream version (8.17.1).
|
||||
|
||||
225443828ec6..c44d097dcf92:
|
||||
bhyve now supports more than 16 vCPUs in a guest. By default
|
||||
bhyve permits each guest to create the same number of vCPUs as
|
||||
the count of physical CPUs on the host. This limit can be
|
||||
adjusted via the loader tunable hw.vmm.maxcpu.
|
||||
|
||||
1462dc95f796:
|
||||
4a30d7bb373c,d670a8f7c596,af01b4722577,4e240e55d818:
|
||||
The growfs(7) script can now add a swap partition at the end of
|
||||
the expansion area, and does so by default if there is no existing
|
||||
swap. See growfs(7).
|
||||
|
||||
86edb11e7491:
|
||||
llvm-objdump is now always installed as objdump.
|
||||
|
||||
616f32ea6da7:
|
||||
mta_start_script along with othermta rc.d script has been retired.
|
||||
|
||||
a67b925ff3e5:
|
||||
The default mail transport agent is now dma(8) replacing sendmail.
|
||||
|
||||
22893e584032:
|
||||
L3 filtering on if_bridge will do surprising things which aren't
|
||||
fail-safe, so net.link.bridge.pfil_member and
|
||||
net.link.bridge.pfil_bridge now default to zero.
|
||||
|
||||
f0bc4ed144fc:
|
||||
A new DTrace provider, kinst, is introduced and documented in
|
||||
dtrace_kinst(4). The provider allows kernel instructions to be traced,
|
||||
similar to the FBT (function boundary tracing) provider except that all
|
||||
instructions may be probed instead of logical entry and return
|
||||
instructions. The provider is currently amd64-only.
|
||||
|
||||
0aa2700123e2:
|
||||
OPIE has been removed from the base system. If you still wish
|
||||
to use it, install the security/opie port. Otherwise, make
|
||||
sure to remove or comment out any mention of pam_opie and
|
||||
pam_opieaccess from your PAM policies (etcupdate will normally
|
||||
take care of this for the stock policies).
|
||||
|
||||
0eea46fb1f83:
|
||||
Removed telnetd.
|
||||
|
||||
981ef32230b2,33721eb991d8:
|
||||
These commits make the use of NFSv4.1/4.2 mounts with the "intr"
|
||||
mount option fairly usable, although not 100% correct, so long as
|
||||
the "nolockd" mount option is used as well. See the mount_nfs(8)
|
||||
manual page for more information.
|
||||
|
||||
b875d4f5ddcb,0685c73cfe88:
|
||||
The NFSv4.1/4.2 client and server will now generate console messages
|
||||
if sessions are broken, suggesting that users check to ensure
|
||||
that the /etc/hostid strings are unique for all NFSv4.1/4.2 clients.
|
||||
|
||||
240afd8c1fcc:
|
||||
makefs(8) has ZFS support; it can create a ZFS pool, backed by a
|
||||
single disk vdev, containing one or more datasets populated from
|
||||
the staging directory.
|
||||
|
||||
78ee8d1c4cda,f4f56ff43dbd:
|
||||
The in-tree qat(4) driver has been replaced with Intel's QAT driver.
|
||||
The new version provides additional interfaces to the chipset's
|
||||
cryptographic and compression offload functionality.
|
||||
|
||||
This will have no visible change for most users; however, the new
|
||||
driver does not support Atom C2000 chipsets. To preserve support for
|
||||
those chipsets, the old driver has been renamed to qat_c2xxx and kept
|
||||
in the tree. Users of qat(4) on C2000 hardware will thus need to
|
||||
ensure that qat_c2xxx(4) is loaded instead of qat(4).
|
||||
|
||||
da5b7e90e740,5a8fceb3bd9f,7b0a665d72c0,13ec1e3155c7,318d0db5fe8a,1ae2c59bcf21:
|
||||
Boottrace is a new kernel-userspace interface for capturing trace
|
||||
events during system boot and shutdown. Event annotations are
|
||||
present in:
|
||||
|
||||
- The boot and shutdown paths in the kernel
|
||||
- Some key system utilities (init(8), shutdown(8), reboot(8))
|
||||
- rc(8) scripts (via boottrace(8))
|
||||
|
||||
In contrast to other existing boot-time tracing facilities like TSLOG,
|
||||
Boottrace focuses on the ease of use and is aimed primarily at system
|
||||
administrators.
|
||||
|
||||
It is available in the default GENERIC kernel and can be enabled by
|
||||
toggling a single sysctl(8) variable.
|
||||
|
||||
See boottrace(4) for more details.
|
||||
|
||||
05a1d0f5d7ac:
|
||||
Kernel TLS offload now supports receive-side offload of TLS 1.3.
|
||||
|
||||
3ee882bf21af:
|
||||
Change handling of the lowest address on an IPv4 (sub)net so that
|
||||
packets are not sent as a broadcast unless this has been set as the
|
||||
broadcast address. This makes the lowest address usable for a host.
|
||||
The old behavior can be restored with the net.inet.ip.broadcast_lowest
|
||||
sysctl. For more information, see
|
||||
https://datatracker.ietf.org/doc/draft-schoen-intarea-lowest-address/.
|
||||
19dc64451179:
|
||||
if_stf now supports 6rd (RFC5969).
|
||||
|
||||
33ff39796ffe,8719e8a951b7:
|
||||
A new rc(8) service script zfskeys allows for automatic decryption
|
||||
of ZFS datasets encrypted with ZFS native encryption during boot.
|
||||
See the rc.conf(5) manual page for more information.
|
||||
c1d255d3ffdb, 3968b47cd974, bd452dcbede6:
|
||||
Add WiFi 6 support to wpa.
|
||||
|
||||
b7a2cf0d9102 - eae02d959363:
|
||||
Upgrade bhyve's emulation to version 1.4 of the NVMe specification
|
||||
ba48d52ca6c8,4ac3d08a9693,2533eca1c2b9:
|
||||
The default bell tone is now 800Hz. It may be set with kbdcontrol
|
||||
again. There's devd integration for people wishing to use their sound
|
||||
cards for the beep.
|
||||
|
||||
0a6760a1de32, 3f3676a71266, 580c04df4db6:
|
||||
Add WiFi 6 support.
|
||||
92b3e07229ba:
|
||||
net.inet.tcp.nolocaltimewait enabled by default. It prevents
|
||||
creation of timewait entries for TCP connections that were
|
||||
terminated locally.
|
||||
|
||||
various:
|
||||
Add support for the HiFive Unmatched RISC-V board.
|
||||
d410b585b6f0:
|
||||
sh(1) is now the default shell for the root user.
|
||||
|
||||
9fb6e613373c:
|
||||
Add a sysctl called vfs.nfsd.srvmaxio that can be used to
|
||||
increase the NFS server's maximum I/O size from 128Kbytes
|
||||
to any power of 2 up to 1Mbyte. It can only be set when
|
||||
the nfsd threads are not running and will normally require
|
||||
an increase in kern.ipc.maxsockbuf to at least the value
|
||||
recommended by the console log message generated when
|
||||
setting vfs.nfsd.srvmaxio is first attempted.
|
||||
396851c20aeb:
|
||||
libncursesw has been split into libtinfow and libncursesw, linker
|
||||
scripts should make it transparent for consumers. pkg-config files
|
||||
are also now installed to ease ports detecting the ncurses setup from
|
||||
base.
|
||||
|
||||
9ec7dbf46b0a:
|
||||
Add a new NFSv4.1/4.2 mount option "nconnect" that can
|
||||
be used to specify the number of TCP connections that
|
||||
will be used for the mount, up to a maximum of 16.
|
||||
The first (default) TCP connection will be used for
|
||||
all RPCs that consist of small RPC messages.
|
||||
The RPCs that can consist of large RPC messages
|
||||
(Read/Readdir/ReaddirPlus/Write) will be sent on the
|
||||
additional TCP connections in a round robin fashion.
|
||||
If either the NFS client or NFS server have multiple
|
||||
network interfaces aggregated together or a network
|
||||
interface that uses multiple queues, this can increase
|
||||
NFS performance for the mount.
|
||||
a422084abbda:
|
||||
LLVM's MemorySanitizer can now be used in amd64 kernels. See the
|
||||
kmsan(9) manual page for more information.
|
||||
|
||||
various:
|
||||
38da497a4dfc:
|
||||
LLVM's AddressSanitizer can now be used in amd64 kernels. See the
|
||||
kasan(9) manual page for more information.
|
||||
|
||||
f39dd6a97844,23f24377b1a9,628bd30ab5a4:
|
||||
One True Awk has been updated to the latest from upstream
|
||||
(20210215). All the FreeBSD patches, but one, have now been
|
||||
(20210727). All the FreeBSD patches, but one, have now been
|
||||
either up streamed or discarded. Notable changes include:
|
||||
o Locale is no longer used for ranges
|
||||
o Various bugs fixed
|
||||
@@ -102,321 +271,30 @@ various:
|
||||
true awk now) interpret them as 0 in line with awk's historic
|
||||
behavior.
|
||||
|
||||
8a04edfdcbd2:
|
||||
Change the default minor version used for an NFSv4 mount
|
||||
to the highest minor version supported by the NFSv4 server.
|
||||
This default can be overridden by using the "minorversion"
|
||||
mount option.
|
||||
A second change, less likely to be noticed, is the historic wart
|
||||
if -Ft meaning to use hard tab characters as the field separator
|
||||
is deprecated and will likely be removed in FreeBSD 14.
|
||||
|
||||
2c76eebca71b, 59f6f5e23c1a:
|
||||
Add two daemons rpc.tlsclntd(8) and rpc.tlsservd(8) that provide
|
||||
support for NFS-over-TLS as described in the Internet Draft titled
|
||||
"Towards Remote Procedure Call Encryption By Default".
|
||||
These daemons are only built when WITH_OPENSSL_KTLS is specified
|
||||
and are only tested on amd64 at this time.
|
||||
They use KTLS to encrypt/decrypt all NFS RPC message traffic, plus
|
||||
optional verification of machine identity via X.509 certificates.
|
||||
ee29e6f31111:
|
||||
Commit ee29e6f31111 added a new sysctl called vfs.nfsd.srvmaxio
|
||||
that can be used to increase the maximum I/O size for the NFS
|
||||
server to any power of 2 up to 1Mbyte while the nfsd(8) is not running.
|
||||
The FreeBSD NFS client can now be set to use a 1Mbyte I/O size
|
||||
via the vfs.maxbcachebuf tunable and the Linux NFS client
|
||||
can also do 1Mbyte I/O.
|
||||
kern.ipc.maxsockbuf will need to be increased. A console
|
||||
message will suggest a setting for it.
|
||||
|
||||
f76393a6305b6:
|
||||
Add AES-GCM support to armv8crypto(4) providing accelerated
|
||||
support for KTLS, IPsec, and other crypto API consumers.
|
||||
d575e81fbcfa:
|
||||
gconcat(8) has added support for appending devices to the device
|
||||
not present at creation time.
|
||||
|
||||
074a91f746bd:
|
||||
The aesni(4) and armv8crypto(4) devices are now included in
|
||||
GENERIC on amd64, i386, and arm64.
|
||||
|
||||
2e1c94aa1fd5:
|
||||
Add support for enforcing W^X mapping policy for user
|
||||
processes. The policy is not enforced by default but can be
|
||||
enabled by setting the kern.elf32.allow_wx and
|
||||
kern.elf64.allow_wx sysctls to 0. Individual binaries can be
|
||||
exempted from the policy by elfctl(1) via the wxneeded
|
||||
feature.
|
||||
|
||||
4979620ece98:
|
||||
Add AES-XTS support to armv8crypto(4) providing accelerated
|
||||
software support for the default GELI cipher on arm64 systems.
|
||||
|
||||
022ca2fc7fe0:
|
||||
Add aio_writev(2) and aio_readv(2), vectored analogues of aio_write(2)
|
||||
and aio_read(2).
|
||||
|
||||
92bbfe1f0d1f:
|
||||
The fusefs(5) protocol has been updated to 7.28. Support for
|
||||
FUSE_COPY_FILE_RANGE and FUSE_LSEEK is added.
|
||||
|
||||
r368667:
|
||||
GDB 6.1.1 was removed. Users of crashinfo(8) should install the
|
||||
gdb package or devel/gdb port.
|
||||
|
||||
r368559:
|
||||
The hme(4) driver was removed.
|
||||
|
||||
r367660:
|
||||
Fixes the case where gssd will not startup because /usr is a separate
|
||||
local file system that is not yet mounted. It does not fix the case
|
||||
where /usr is a separately mounted remote file system (such as NFS).
|
||||
This latter case can be fixed by adding mountcritremote to the
|
||||
REQUIRED line. Unfortunately doing so implies that all Kerberized
|
||||
NFS mounts in /etc/fstab will need the "late" mount option.
|
||||
This was not done, since the requirement for "late" would introduce
|
||||
a POLA violation.
|
||||
|
||||
r367423:
|
||||
This commit added a new startup scripts variable called
|
||||
nfsv4_server_only which uses the -R option on mountd added by r367026.
|
||||
When nfsv4_server_only is set to "YES" in /etc/rc.conf, the NFS server
|
||||
only handles NFSv4 and does not register with rpcbind. As such, rpcbind
|
||||
does not need to be running. Useful for sites which consider rpcbind a
|
||||
security issue.
|
||||
|
||||
r366267:
|
||||
Kernel option ACPI_DMAR was renamed to IOMMU. amd64's IOMMU subsystem
|
||||
was split out from amd64 DMAR support and is now generic, i.e., it can
|
||||
be used by all architectures.
|
||||
|
||||
r364896:
|
||||
A series of commits ending with r364896 added NFS over TLS
|
||||
to the kernel. This is believed to be compatible with
|
||||
the Internet Draft titled "Towards Remote Procedure Call Encryption
|
||||
By Default" (expected to soon become an RFC).
|
||||
The mount_nfs(8) and exports(5) man pages describe the mount and
|
||||
export option(s) related to NFS over TLS.
|
||||
For NFS over TLS to work, the rpctlscd(8) { client } or rpctlssd(8)
|
||||
{ server } must be running on a kernel built with "options KERN_TLS"
|
||||
on an architecture where PMAP_HAS_DMAP != 0.
|
||||
|
||||
r364725:
|
||||
Changes to one obscure devd event generated on resume need to
|
||||
be documented. The old form will still be generated in 13, but not
|
||||
in 14.
|
||||
|
||||
r363679:
|
||||
Applications using regex(3), e.g. sed/grep, will no longer accept
|
||||
redundant escapes for most ordinary characters.
|
||||
|
||||
r363253:
|
||||
SCTP support has been removed from GENERIC kernel configurations.
|
||||
The SCTP stack is now built as sctp.ko and can be dynamically loaded.
|
||||
|
||||
r363233:
|
||||
Merge sendmail 8.16.1: See contrib/sendmail/RELEASE_NOTES for details.
|
||||
|
||||
r363180:
|
||||
The safexcel(4) crypto offload driver has been added.
|
||||
|
||||
r363084:
|
||||
nc(1) now implements SCTP mode, enabled by specifying the --sctp option.
|
||||
|
||||
r362681:
|
||||
A new implementation of bc and dc has been imported. It offers
|
||||
better standards compliance, performance, localization and comes
|
||||
with extensive test cases that are optionally installed.
|
||||
Use WITHOUT_GH_BC=yes to build and install the world with the
|
||||
previous version instead of the new one, if required.
|
||||
|
||||
r362158, r362163:
|
||||
struct export_args has changed so that the "user" specified for
|
||||
the -maproot and -mapall exports(5) options may be in more than
|
||||
16 groups.
|
||||
|
||||
r361884:
|
||||
sed(1) has learned about hex escapes (e.g. \x27) and will now do the
|
||||
right thing with them, removing the need for printf magic or obnoxious
|
||||
escaping in many scenarios.
|
||||
|
||||
r361238, r361798, r361799:
|
||||
ZFS will now unconditionally reject read(2) of a directory with EISDIR.
|
||||
Additionally, read(2) of a directory is now rejected with EISDIR by
|
||||
default and may be re-enabled for non-ZFS filesystems that allow it with
|
||||
the sysctl(8) MIB 'security.bsd.allow_read_dir'.
|
||||
|
||||
Aliases for grep to default to '-d skip' may be desired if commonly
|
||||
non-recursively grepping a list that includes directories and the
|
||||
possibility of EISDIR errors in stderr is not tolerable. Example
|
||||
aliases, commented out, have been installed in /root/.cshrc and
|
||||
/root/.shrc.
|
||||
|
||||
r361066:
|
||||
Add exec.prepare and exec.release hooks for jail(8) and jail.conf(5).
|
||||
exec.prepare runs before mounts, so can be used to populate new jails.
|
||||
exec.release runs after unmounts, so can be used to remove ephemeral
|
||||
jails.
|
||||
|
||||
r360920,r360923,r360924,r360927,r360928,r360931,r360933,r360936:
|
||||
Remove support for ARC4, Blowfish, Cast, DES, Triple DES, MD5,
|
||||
MD5-KPDK, MD5-HMAC, SHA1-KPDK, and Skipjack algorithms from
|
||||
76681661be28:
|
||||
Remove support for asymmetric cryptographic operations from
|
||||
the kernel open cryptographic framework (OCF).
|
||||
|
||||
r360562:
|
||||
Remove support for ARC4, Blowfish, Cast, DES, Triple DES,
|
||||
MD5-HMAC, and Skipjack algorithms from /dev/crypto.
|
||||
|
||||
r360557:
|
||||
Remove support for DES, Triple DES, Blowfish, Cast, and
|
||||
Camellia ciphers from IPsec(4). Remove support for MD5-HMAC,
|
||||
Keyed MD5, Keyed SHA1, and RIPEMD160-HMAC from IPsec(4).
|
||||
|
||||
r359945:
|
||||
Remove support for Triple DES, Blowfish, and MD5 HMAC from
|
||||
geli(4).
|
||||
|
||||
r359786-r359787:
|
||||
Remove support for DES, Triple DES, and RC4 from in-kernel GSS
|
||||
authentication.
|
||||
|
||||
r357627:
|
||||
remove elf2aout.
|
||||
|
||||
r357560-r357565:
|
||||
init(8), service(8), and cron(8) will now adopt user/class environment
|
||||
variables (excluding PATH, by default, which will be overwritten) by
|
||||
default. Notably, environment variables for all cron jobs and rc
|
||||
services can now be set via login.conf(5).
|
||||
|
||||
r357455:
|
||||
sparc64 has been removed from FreeBSD.
|
||||
|
||||
r355677:
|
||||
Adds support for NFSv4.2 (RFC-7862) and Extended Attributes
|
||||
(RFC-8276) to the NFS client and server.
|
||||
NFSv4.2 is comprised of several optional features that can be supported
|
||||
in addition to NFSv4.1. This patch adds the following optional features:
|
||||
- posix_fadvise(POSIX_FADV_WILLNEED/POSIX_FADV_DONTNEED)
|
||||
- posix_fallocate()
|
||||
- intra server file range copying via the copy_file_range(2) syscall
|
||||
--> Avoiding data tranfer over the wire to/from the NFS client.
|
||||
- lseek(SEEK_DATA/SEEK_HOLE)
|
||||
- Extended attribute syscalls for "user" namespace attributes as defined
|
||||
by RFC-8276.
|
||||
|
||||
For the client, NFSv4.2 is only used if the mount command line option
|
||||
minorversion=2 is specified.
|
||||
For the server, two new sysctls called vfs.nfsd.server_min_minorversion4
|
||||
and vfs.nfsd.server_max_minorversion4 have been added that allow
|
||||
sysadmins to limit the minor versions of NFSv4 supported by the nfsd
|
||||
server.
|
||||
Setting vfs.nfsd.server_max_minorversion4 to 0 or 1 will disable NFSv4.2
|
||||
on the server.
|
||||
|
||||
r356263:
|
||||
armv5 support has been removed from FreeBSD.
|
||||
|
||||
r354517:
|
||||
iwm(4) now supports most Intel 9260, 9460 and 9560 Wi-Fi devices.
|
||||
|
||||
r354269:
|
||||
sqlite3 is updated to sqlite3-3.30.1.
|
||||
|
||||
r352668:
|
||||
cron(8) now supports the -n (suppress mail on succesful run) and -q
|
||||
(suppress logging of command execution) options in the crontab format.
|
||||
See the crontab(5) manpage for details.
|
||||
|
||||
r352304:
|
||||
ntpd is no longer by default locked in memory. rlimit memlock 32
|
||||
or rlimit memlock 0 can be used to restore this behaviour.
|
||||
|
||||
r351863:
|
||||
rc.subr(8) now honors ${name}_env in all rc(8) scripts. Previously,
|
||||
environment variables set by a user via ${name}_env were ignored
|
||||
if the service defined a custom *_cmd variable to control the behavior
|
||||
of the run_rc_command function, e.g., start_cmd, instead of relying on
|
||||
the variables like command and command_args,
|
||||
|
||||
r351770,r352920,r352922,r352923:
|
||||
dd(1) now supports conv=fsync, conv=fdatasync, oflag=fsync, oflag=sync,
|
||||
and iflag=fullblock flags, compatible with illumos and GNU.
|
||||
|
||||
r351522:
|
||||
Add kernel-side support for in-kernel Transport Layer Security
|
||||
(KTLS). KTLS permits using sendfile(2) over sockets using
|
||||
TLS.
|
||||
|
||||
r351397:
|
||||
WPA is updated from 2.8 to 2.9.
|
||||
|
||||
r351361:
|
||||
Add probes for lockmgr(9) to the lockstat DTrace provider, add
|
||||
corresponding lockstat(1) events, and document the new probes in
|
||||
dtrace_lockstat.4.
|
||||
|
||||
r351356:
|
||||
Intel RST is a new 'feature' that remaps NVMe devices from
|
||||
their normal location to part of the AHCI bar space. This
|
||||
will eliminate the need to set the BIOS SATA setting from RST
|
||||
to AHCI causing the nvme drive to be erased before FreeBSD
|
||||
will see the nvme drive. FreeBSD will now be able to see the
|
||||
nvme drive now in the default config.
|
||||
|
||||
r351201, r351372:
|
||||
Add a vop_stdioctl() call, so that file systems that do not support
|
||||
holes will have a trivial implementation of lseek(SEEK_DATA/SEEK_HOLE).
|
||||
The algorithm appears to be compatible with the POSIX draft and
|
||||
the implementation in Linux for the case of a file system that
|
||||
does not support holes. Prior to this patch, lseek(2) would reply
|
||||
-1 with errno set to ENOTTY for SEEK_DATA/SEEK_HOLE on files in
|
||||
file systems that do not support holes.
|
||||
r351372 maps ENOTTY to EINVAL for lseek(SEEK_DATA/SEEK_HOLE) for
|
||||
any other cases, such as a ENOTTY return from vn_bmap_seekhole().
|
||||
|
||||
r350665:
|
||||
The fuse driver has been renamed to fusefs(5) and been substantially
|
||||
rewritten. The new driver includes many bug fixes and performance
|
||||
enhancements, as well as the following user-visible features:
|
||||
* Optional kernel-side permissions checks (-o default_permissions)
|
||||
* mknod(2), socket(2), and pipe(2) support
|
||||
* server side locking with fcntl(2)
|
||||
* FUSE operations are now interruptible when mounted with -o intr
|
||||
* server side handling of UTIME_NOW during utimensat(2)
|
||||
* mount options may be updated with "mount -u"
|
||||
* fusefs file system may now be exported over NFS
|
||||
* RLIMIT_FSIZE support
|
||||
* support for fuse file systems using protocols as old as 7.4
|
||||
|
||||
FUSE file system developers should also take note of the following new
|
||||
features:
|
||||
* The protocol level has been raised from 7.8 to 7.23
|
||||
* kqueue support on /dev/fuse
|
||||
* server-initiated cache invalidation via FUSE_NOTIFY_REPLY
|
||||
|
||||
r350471:
|
||||
gnop(8) can now configure a delay to be applied to read and write
|
||||
request delays. See the -d, -q and -x parameters.
|
||||
|
||||
r350315, r350316:
|
||||
Adds a Linux compatible copy_file_range(2) syscall.
|
||||
|
||||
r350307:
|
||||
libcap_random(3) has been removed. Applications can use native
|
||||
APIs to get random data in capability mode.
|
||||
|
||||
r349529,r349530:
|
||||
Add support for using unmapped mbufs with sendfile(2).
|
||||
|
||||
r349352:
|
||||
nand(4) and related components have been removed.
|
||||
|
||||
r349349:
|
||||
The UEFI loader now supports HTTP boot.
|
||||
|
||||
r349335:
|
||||
bhyve(8) now implements a High Definition Audio (HDA) driver, allowing
|
||||
guests to play to and record audio data from the host.
|
||||
|
||||
r349286:
|
||||
swapon(8) can now erase a swap device immediately before enabling it,
|
||||
similar to newfs(8)'s -E option. This behaviour can be specified by
|
||||
adding -E to swapon(8)'s command-line parameters, or by adding the
|
||||
"trimonce" option to a swap device's /etc/fstab entry.
|
||||
|
||||
r347908-r347923:
|
||||
The following network drivers have been removed: bm(4), cs(4), de(4),
|
||||
ed(4), ep(4), ex(4), fe(4), pcn(4), sf(4), sn(4), tl(4), tx(4), txp(4),
|
||||
vx(4), wb(4), xe(4).
|
||||
|
||||
r347532:
|
||||
Wired page accounting has been split into kernel wirings and user
|
||||
wirings (e.g., by mlock(2)). Kernel wirings no long count towards
|
||||
the global limit, which is renamed to vm.max_user_wired. bhyve -S
|
||||
allocates user-wired memory and is now subject to that limit.
|
||||
a145cf3f73c7:
|
||||
The NFSv4 client now uses the highest minor version of NFSv4
|
||||
supported by the NFSv4 server by default instead of minor version 0,
|
||||
for NFSv4 mounts.
|
||||
The "minorversion" mount option may be used to override this default.
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
/*
|
||||
* MD header for contrib/gdtoa
|
||||
*/
|
||||
|
||||
/*
|
||||
*
|
||||
* NOTE: The definitions in this file must be correct or strtod(3) and
|
||||
* floating point formats in printf(3) will break! The file can be
|
||||
* generated by running contrib/gdtoa/arithchk.c on the target
|
||||
* architecture. See contrib/gdtoa/gdtoaimp.h for details.
|
||||
*
|
||||
* Generated on CA15, verified on CA9, CA7(with VFP lite) and on 32-bit ARMv9.
|
||||
*
|
||||
*/
|
||||
|
||||
#define IEEE_8087
|
||||
#define Arith_Kind_ASL 1
|
||||
#define Sudden_Underflow
|
||||
#define Double_Align
|
||||
|
||||
@@ -4,18 +4,19 @@
|
||||
* This file can be generated by compiling and running contrib/gdtoa/qnan.c
|
||||
* on the target architecture after arith.h has been generated.
|
||||
*
|
||||
* XXX I don't have ARM hardware, so I just guessed. --das
|
||||
* Generated on CA15, verified on CA9, CA7(with VFP lite) and on 32-bit ARMv9.
|
||||
*
|
||||
*/
|
||||
|
||||
#define f_QNAN 0x7fc00000
|
||||
#define d_QNAN0 0x0
|
||||
#define d_QNAN1 0x7ff80000
|
||||
#define ld_QNAN0 0x0
|
||||
#define ld_QNAN1 0xc0000000
|
||||
#define ld_QNAN2 0x7fff
|
||||
#define ld_QNAN1 0x7ff80000
|
||||
#define ld_QNAN2 0x0
|
||||
#define ld_QNAN3 0x0
|
||||
#define ldus_QNAN0 0x0
|
||||
#define ldus_QNAN1 0x0
|
||||
#define ldus_QNAN2 0x0
|
||||
#define ldus_QNAN3 0xc000
|
||||
#define ldus_QNAN4 0x7fff
|
||||
#define ldus_QNAN3 0x7ff8
|
||||
#define ldus_QNAN4 0x0
|
||||
|
||||
+25
-3
@@ -93,6 +93,8 @@ __FBSDID("$FreeBSD$");
|
||||
// #include "libc_private.h"
|
||||
|
||||
#if defined(I_AM_QSORT_R)
|
||||
typedef int cmp_t(const void *, const void *, void *);
|
||||
#elif defined(I_AM_QSORT_R_COMPAT)
|
||||
typedef int cmp_t(void *, const void *, const void *);
|
||||
#elif defined(I_AM_QSORT_S)
|
||||
typedef int cmp_t(const void *, const void *, void *);
|
||||
@@ -123,6 +125,8 @@ swapfunc(char *a, char *b, size_t es)
|
||||
if ((n) > 0) swapfunc(a, b, n)
|
||||
|
||||
#if defined(I_AM_QSORT_R)
|
||||
#define CMP(t, x, y) (cmp((x), (y), (t)))
|
||||
#elif defined(I_AM_QSORT_R_COMPAT)
|
||||
#define CMP(t, x, y) (cmp((t), (x), (y)))
|
||||
#elif defined(I_AM_QSORT_S)
|
||||
#define CMP(t, x, y) (cmp((x), (y), (t)))
|
||||
@@ -132,7 +136,7 @@ swapfunc(char *a, char *b, size_t es)
|
||||
|
||||
static inline char *
|
||||
med3(char *a, char *b, char *c, cmp_t *cmp, void *thunk
|
||||
#if !defined(I_AM_QSORT_R) && !defined(I_AM_QSORT_S)
|
||||
#if !defined(I_AM_QSORT_R) && !defined(I_AM_QSORT_R_COMPAT) && !defined(I_AM_QSORT_S)
|
||||
__unused
|
||||
#endif
|
||||
)
|
||||
@@ -148,6 +152,8 @@ __unused
|
||||
*/
|
||||
#if defined(I_AM_QSORT_R)
|
||||
#define local_qsort local_qsort_r
|
||||
#elif defined(I_AM_QSORT_R_COMPAT)
|
||||
#define local_qsort local_qsort_r_compat
|
||||
#elif defined(I_AM_QSORT_S)
|
||||
#define local_qsort local_qsort_s
|
||||
#endif
|
||||
@@ -159,7 +165,8 @@ local_qsort(void *a, size_t n, size_t es, cmp_t *cmp, void *thunk)
|
||||
int cmp_result;
|
||||
int swap_cnt;
|
||||
|
||||
if (__predict_false(n == 0))
|
||||
/* if there are less than 2 elements, then sorting is not needed */
|
||||
if (__predict_false(n < 2))
|
||||
return;
|
||||
loop:
|
||||
swap_cnt = 0;
|
||||
@@ -224,6 +231,11 @@ loop:
|
||||
pn = (char *)a + n * es;
|
||||
d1 = MIN(pa - (char *)a, pb - pa);
|
||||
vecswap(a, pb - d1, d1);
|
||||
/*
|
||||
* Cast es to preserve signedness of right-hand side of MIN()
|
||||
* expression, to avoid sign ambiguity in the implied comparison. es
|
||||
* is safely within [0, SSIZE_MAX].
|
||||
*/
|
||||
d1 = MIN(pd - pc, pn - pd - es);
|
||||
vecswap(pb, pn - d1, d1);
|
||||
|
||||
@@ -257,10 +269,16 @@ loop:
|
||||
|
||||
#if defined(I_AM_QSORT_R)
|
||||
void
|
||||
qsort_r(void *a, size_t n, size_t es, void *thunk, cmp_t *cmp)
|
||||
(qsort_r)(void *a, size_t n, size_t es, cmp_t *cmp, void *thunk)
|
||||
{
|
||||
local_qsort_r(a, n, es, cmp, thunk);
|
||||
}
|
||||
#elif defined(I_AM_QSORT_R_COMPAT)
|
||||
void
|
||||
__qsort_r_compat(void *a, size_t n, size_t es, void *thunk, cmp_t *cmp)
|
||||
{
|
||||
local_qsort_r_compat(a, n, es, cmp, thunk);
|
||||
}
|
||||
#elif defined(I_AM_QSORT_S)
|
||||
errno_t
|
||||
qsort_s(void *a, rsize_t n, rsize_t es, cmp_t *cmp, void *thunk)
|
||||
@@ -281,6 +299,10 @@ qsort_s(void *a, rsize_t n, rsize_t es, cmp_t *cmp, void *thunk)
|
||||
__throw_constraint_handler_s("qsort_s : cmp == NULL",
|
||||
EINVAL);
|
||||
return (EINVAL);
|
||||
} else if (es <= 0) {
|
||||
__throw_constraint_handler_s("qsort_s : es <= 0",
|
||||
EINVAL);
|
||||
return (EINVAL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+12
-16
@@ -63,8 +63,6 @@ expl(long double x)
|
||||
int k;
|
||||
uint16_t hx, ix;
|
||||
|
||||
DOPRINT_START(&x);
|
||||
|
||||
/* Filter out exceptional cases. */
|
||||
u.e = x;
|
||||
hx = u.xbits.expsign;
|
||||
@@ -72,15 +70,15 @@ expl(long double x)
|
||||
if (ix >= BIAS + 13) { /* |x| >= 8192 or x is NaN */
|
||||
if (ix == BIAS + LDBL_MAX_EXP) {
|
||||
if (hx & 0x8000) /* x is -Inf or -NaN */
|
||||
RETURNP(-1 / x);
|
||||
RETURNP(x + x); /* x is +Inf or +NaN */
|
||||
RETURNF(-1 / x);
|
||||
RETURNF(x + x); /* x is +Inf or +NaN */
|
||||
}
|
||||
if (x > o_threshold)
|
||||
RETURNP(huge * huge);
|
||||
RETURNF(huge * huge);
|
||||
if (x < u_threshold)
|
||||
RETURNP(tiny * tiny);
|
||||
RETURNF(tiny * tiny);
|
||||
} else if (ix < BIAS - 114) { /* |x| < 0x1p-114 */
|
||||
RETURN2P(1, x); /* 1 with inexact iff x != 0 */
|
||||
RETURNF(1 + x); /* 1 with inexact iff x != 0 */
|
||||
}
|
||||
|
||||
ENTERI();
|
||||
@@ -208,8 +206,6 @@ expm1l(long double x)
|
||||
int k, n, n2;
|
||||
uint16_t hx, ix;
|
||||
|
||||
DOPRINT_START(&x);
|
||||
|
||||
/* Filter out exceptional cases. */
|
||||
u.e = x;
|
||||
hx = u.xbits.expsign;
|
||||
@@ -217,11 +213,11 @@ expm1l(long double x)
|
||||
if (ix >= BIAS + 7) { /* |x| >= 128 or x is NaN */
|
||||
if (ix == BIAS + LDBL_MAX_EXP) {
|
||||
if (hx & 0x8000) /* x is -Inf or -NaN */
|
||||
RETURNP(-1 / x - 1);
|
||||
RETURNP(x + x); /* x is +Inf or +NaN */
|
||||
RETURNF(-1 / x - 1);
|
||||
RETURNF(x + x); /* x is +Inf or +NaN */
|
||||
}
|
||||
if (x > o_threshold)
|
||||
RETURNP(huge * huge);
|
||||
RETURNF(huge * huge);
|
||||
/*
|
||||
* expm1l() never underflows, but it must avoid
|
||||
* unrepresentable large negative exponents. We used a
|
||||
@@ -230,7 +226,7 @@ expm1l(long double x)
|
||||
* in the same way as large ones here.
|
||||
*/
|
||||
if (hx & 0x8000) /* x <= -128 */
|
||||
RETURN2P(tiny, -1); /* good for x < -114ln2 - eps */
|
||||
RETURNF(tiny - 1); /* good for x < -114ln2 - eps */
|
||||
}
|
||||
|
||||
ENTERI();
|
||||
@@ -242,7 +238,7 @@ expm1l(long double x)
|
||||
if (x < T3) {
|
||||
if (ix < BIAS - 113) { /* |x| < 0x1p-113 */
|
||||
/* x (rounded) with inexact if x != 0: */
|
||||
RETURNPI(x == 0 ? x :
|
||||
RETURNI(x == 0 ? x :
|
||||
(0x1p200 * x + fabsl(x)) * 0x1p-200);
|
||||
}
|
||||
q = x * x2 * C3 + x2 * x2 * (C4 + x * (C5 + x * (C6 +
|
||||
@@ -263,9 +259,9 @@ expm1l(long double x)
|
||||
hx2_hi = x_hi * x_hi / 2;
|
||||
hx2_lo = x_lo * (x + x_hi) / 2;
|
||||
if (ix >= BIAS - 7)
|
||||
RETURN2PI(hx2_hi + x_hi, hx2_lo + x_lo + q);
|
||||
RETURNI((hx2_hi + x_hi) + (hx2_lo + x_lo + q));
|
||||
else
|
||||
RETURN2PI(x, hx2_lo + q + hx2_hi);
|
||||
RETURNI(x + (hx2_lo + q + hx2_hi));
|
||||
}
|
||||
|
||||
/* Reduce x to (k*ln2 + endpoint[n2] + r1 + r2). */
|
||||
|
||||
+9
-15
@@ -571,24 +571,23 @@ log1pl(long double x)
|
||||
int i, k;
|
||||
int16_t ax, hx;
|
||||
|
||||
DOPRINT_START(&x);
|
||||
EXTRACT_LDBL128_WORDS(hx, lx, llx, x);
|
||||
if (hx < 0x3fff) { /* x < 1, or x neg NaN */
|
||||
ax = hx & 0x7fff;
|
||||
if (ax >= 0x3fff) { /* x <= -1, or x neg NaN */
|
||||
if (ax == 0x3fff && (lx | llx) == 0)
|
||||
RETURNP(-1 / zero); /* log1p(-1) = -Inf */
|
||||
RETURNF(-1 / zero); /* log1p(-1) = -Inf */
|
||||
/* log1p(x < 1, or x NaN) = qNaN: */
|
||||
RETURNP((x - x) / (x - x));
|
||||
RETURNF((x - x) / (x - x));
|
||||
}
|
||||
if (ax <= 0x3f8d) { /* |x| < 2**-113 */
|
||||
if ((int)x == 0)
|
||||
RETURNP(x); /* x with inexact if x != 0 */
|
||||
RETURNF(x); /* x with inexact if x != 0 */
|
||||
}
|
||||
f_hi = 1;
|
||||
f_lo = x;
|
||||
} else if (hx >= 0x7fff) { /* x +Inf or non-neg NaN */
|
||||
RETURNP(x + x); /* log1p(Inf or NaN) = Inf or qNaN */
|
||||
RETURNF(x + x); /* log1p(Inf or NaN) = Inf or qNaN */
|
||||
} else if (hx < 0x40e1) { /* 1 <= x < 2**226 */
|
||||
f_hi = x;
|
||||
f_lo = 1;
|
||||
@@ -667,7 +666,7 @@ log1pl(long double x)
|
||||
#endif
|
||||
|
||||
_3sumF(val_hi, val_lo, F_hi(i) + dk * ln2_hi);
|
||||
RETURN2PI(val_hi, val_lo);
|
||||
RETURNI(val_hi + val_lo);
|
||||
}
|
||||
|
||||
#ifdef STRUCT_RETURN
|
||||
@@ -678,7 +677,6 @@ logl(long double x)
|
||||
struct ld r;
|
||||
|
||||
ENTERI();
|
||||
DOPRINT_START(&x);
|
||||
k_logl(x, &r);
|
||||
RETURNSPI(&r);
|
||||
}
|
||||
@@ -706,15 +704,13 @@ log10l(long double x)
|
||||
long double hi, lo;
|
||||
|
||||
ENTERI();
|
||||
DOPRINT_START(&x);
|
||||
k_logl(x, &r);
|
||||
if (!r.lo_set)
|
||||
RETURNPI(r.hi);
|
||||
RETURNI(r.hi);
|
||||
_2sumF(r.hi, r.lo);
|
||||
hi = (float)r.hi;
|
||||
lo = r.lo + (r.hi - hi);
|
||||
RETURN2PI(invln10_hi * hi,
|
||||
invln10_lo_plus_hi * lo + invln10_lo * hi);
|
||||
RETURNI(invln10_hi * hi + (invln10_lo_plus_hi * lo + invln10_lo * hi));
|
||||
}
|
||||
|
||||
long double
|
||||
@@ -724,15 +720,13 @@ log2l(long double x)
|
||||
long double hi, lo;
|
||||
|
||||
ENTERI();
|
||||
DOPRINT_START(&x);
|
||||
k_logl(x, &r);
|
||||
if (!r.lo_set)
|
||||
RETURNPI(r.hi);
|
||||
RETURNI(r.hi);
|
||||
_2sumF(r.hi, r.lo);
|
||||
hi = (float)r.hi;
|
||||
lo = r.lo + (r.hi - hi);
|
||||
RETURN2PI(invln2_hi * hi,
|
||||
invln2_lo_plus_hi * lo + invln2_lo * hi);
|
||||
RETURNI(invln2_hi * hi + (invln2_lo_plus_hi * lo + invln2_lo * hi));
|
||||
}
|
||||
|
||||
#endif /* STRUCT_RETURN */
|
||||
|
||||
+59
-172
@@ -629,7 +629,7 @@ rnintf(__float_t x)
|
||||
* The complications for extra precision are smaller for rnintl() since it
|
||||
* can safely assume that the rounding precision has been increased from
|
||||
* its default to FP_PE on x86. We don't exploit that here to get small
|
||||
* optimizations from limiting the rangle to double. We just need it for
|
||||
* optimizations from limiting the range to double. We just need it for
|
||||
* the magic number to work with long doubles. ld128 callers should use
|
||||
* rnint() instead of this if possible. ld80 callers should prefer
|
||||
* rnintl() since for amd64 this avoids swapping the register set, while
|
||||
@@ -693,6 +693,59 @@ irintl(long double x)
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The following are fast floor macros for 0 <= |x| < 0x1p(N-1), where
|
||||
* N is the precision of the type of x. These macros are used in the
|
||||
* half-cycle trignometric functions (e.g., sinpi(x)).
|
||||
*/
|
||||
#define FFLOORF(x, j0, ix) do { \
|
||||
(j0) = (((ix) >> 23) & 0xff) - 0x7f; \
|
||||
(ix) &= ~(0x007fffff >> (j0)); \
|
||||
SET_FLOAT_WORD((x), (ix)); \
|
||||
} while (0)
|
||||
|
||||
#define FFLOOR(x, j0, ix, lx) do { \
|
||||
(j0) = (((ix) >> 20) & 0x7ff) - 0x3ff; \
|
||||
if ((j0) < 20) { \
|
||||
(ix) &= ~(0x000fffff >> (j0)); \
|
||||
(lx) = 0; \
|
||||
} else { \
|
||||
(lx) &= ~((uint32_t)0xffffffff >> ((j0) - 20)); \
|
||||
} \
|
||||
INSERT_WORDS((x), (ix), (lx)); \
|
||||
} while (0)
|
||||
|
||||
#define FFLOORL80(x, j0, ix, lx) do { \
|
||||
j0 = ix - 0x3fff + 1; \
|
||||
if ((j0) < 32) { \
|
||||
(lx) = ((lx) >> 32) << 32; \
|
||||
(lx) &= ~((((lx) << 32)-1) >> (j0)); \
|
||||
} else { \
|
||||
uint64_t _m; \
|
||||
_m = (uint64_t)-1 >> (j0); \
|
||||
if ((lx) & _m) (lx) &= ~_m; \
|
||||
} \
|
||||
INSERT_LDBL80_WORDS((x), (ix), (lx)); \
|
||||
} while (0)
|
||||
|
||||
#define FFLOORL128(x, ai, ar) do { \
|
||||
union IEEEl2bits u; \
|
||||
uint64_t m; \
|
||||
int e; \
|
||||
u.e = (x); \
|
||||
e = u.bits.exp - 16383; \
|
||||
if (e < 48) { \
|
||||
m = ((1llu << 49) - 1) >> (e + 1); \
|
||||
u.bits.manh &= ~m; \
|
||||
u.bits.manl = 0; \
|
||||
} else { \
|
||||
m = (uint64_t)-1 >> (e - 48); \
|
||||
u.bits.manl &= ~m; \
|
||||
} \
|
||||
(ai) = u.e; \
|
||||
(ar) = (x) - (ai); \
|
||||
} while (0)
|
||||
|
||||
#ifdef DEBUG
|
||||
#if defined(__amd64__) || defined(__i386__)
|
||||
#define breakpoint() asm("int $3")
|
||||
@@ -703,191 +756,25 @@ irintl(long double x)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Write a pari script to test things externally. */
|
||||
#ifdef DOPRINT
|
||||
#include <stdio.h>
|
||||
|
||||
#ifndef DOPRINT_SWIZZLE
|
||||
#define DOPRINT_SWIZZLE 0
|
||||
#endif
|
||||
|
||||
#ifdef DOPRINT_LD80
|
||||
|
||||
#define DOPRINT_START(xp) do { \
|
||||
uint64_t __lx; \
|
||||
uint16_t __hx; \
|
||||
\
|
||||
/* Hack to give more-problematic args. */ \
|
||||
EXTRACT_LDBL80_WORDS(__hx, __lx, *xp); \
|
||||
__lx ^= DOPRINT_SWIZZLE; \
|
||||
INSERT_LDBL80_WORDS(*xp, __hx, __lx); \
|
||||
printf("x = %.21Lg; ", (long double)*xp); \
|
||||
} while (0)
|
||||
#define DOPRINT_END1(v) \
|
||||
printf("y = %.21Lg; z = 0; show(x, y, z);\n", (long double)(v))
|
||||
#define DOPRINT_END2(hi, lo) \
|
||||
printf("y = %.21Lg; z = %.21Lg; show(x, y, z);\n", \
|
||||
(long double)(hi), (long double)(lo))
|
||||
|
||||
#elif defined(DOPRINT_D64)
|
||||
|
||||
#define DOPRINT_START(xp) do { \
|
||||
uint32_t __hx, __lx; \
|
||||
\
|
||||
EXTRACT_WORDS(__hx, __lx, *xp); \
|
||||
__lx ^= DOPRINT_SWIZZLE; \
|
||||
INSERT_WORDS(*xp, __hx, __lx); \
|
||||
printf("x = %.21Lg; ", (long double)*xp); \
|
||||
} while (0)
|
||||
#define DOPRINT_END1(v) \
|
||||
printf("y = %.21Lg; z = 0; show(x, y, z);\n", (long double)(v))
|
||||
#define DOPRINT_END2(hi, lo) \
|
||||
printf("y = %.21Lg; z = %.21Lg; show(x, y, z);\n", \
|
||||
(long double)(hi), (long double)(lo))
|
||||
|
||||
#elif defined(DOPRINT_F32)
|
||||
|
||||
#define DOPRINT_START(xp) do { \
|
||||
uint32_t __hx; \
|
||||
\
|
||||
GET_FLOAT_WORD(__hx, *xp); \
|
||||
__hx ^= DOPRINT_SWIZZLE; \
|
||||
SET_FLOAT_WORD(*xp, __hx); \
|
||||
printf("x = %.21Lg; ", (long double)*xp); \
|
||||
} while (0)
|
||||
#define DOPRINT_END1(v) \
|
||||
printf("y = %.21Lg; z = 0; show(x, y, z);\n", (long double)(v))
|
||||
#define DOPRINT_END2(hi, lo) \
|
||||
printf("y = %.21Lg; z = %.21Lg; show(x, y, z);\n", \
|
||||
(long double)(hi), (long double)(lo))
|
||||
|
||||
#else /* !DOPRINT_LD80 && !DOPRINT_D64 (LD128 only) */
|
||||
|
||||
#ifndef DOPRINT_SWIZZLE_HIGH
|
||||
#define DOPRINT_SWIZZLE_HIGH 0
|
||||
#endif
|
||||
|
||||
#define DOPRINT_START(xp) do { \
|
||||
uint64_t __lx, __llx; \
|
||||
uint16_t __hx; \
|
||||
\
|
||||
EXTRACT_LDBL128_WORDS(__hx, __lx, __llx, *xp); \
|
||||
__llx ^= DOPRINT_SWIZZLE; \
|
||||
__lx ^= DOPRINT_SWIZZLE_HIGH; \
|
||||
INSERT_LDBL128_WORDS(*xp, __hx, __lx, __llx); \
|
||||
printf("x = %.36Lg; ", (long double)*xp); \
|
||||
} while (0)
|
||||
#define DOPRINT_END1(v) \
|
||||
printf("y = %.36Lg; z = 0; show(x, y, z);\n", (long double)(v))
|
||||
#define DOPRINT_END2(hi, lo) \
|
||||
printf("y = %.36Lg; z = %.36Lg; show(x, y, z);\n", \
|
||||
(long double)(hi), (long double)(lo))
|
||||
|
||||
#endif /* DOPRINT_LD80 */
|
||||
|
||||
#else /* !DOPRINT */
|
||||
#define DOPRINT_START(xp)
|
||||
#define DOPRINT_END1(v)
|
||||
#define DOPRINT_END2(hi, lo)
|
||||
#endif /* DOPRINT */
|
||||
|
||||
#define RETURNP(x) do { \
|
||||
DOPRINT_END1(x); \
|
||||
RETURNF(x); \
|
||||
} while (0)
|
||||
#define RETURNPI(x) do { \
|
||||
DOPRINT_END1(x); \
|
||||
RETURNI(x); \
|
||||
} while (0)
|
||||
#define RETURN2P(x, y) do { \
|
||||
DOPRINT_END2((x), (y)); \
|
||||
RETURNF((x) + (y)); \
|
||||
} while (0)
|
||||
#define RETURN2PI(x, y) do { \
|
||||
DOPRINT_END2((x), (y)); \
|
||||
RETURNI((x) + (y)); \
|
||||
} while (0)
|
||||
#ifdef STRUCT_RETURN
|
||||
#define RETURNSP(rp) do { \
|
||||
if (!(rp)->lo_set) \
|
||||
RETURNP((rp)->hi); \
|
||||
RETURN2P((rp)->hi, (rp)->lo); \
|
||||
RETURNF((rp)->hi); \
|
||||
RETURNF((rp)->hi + (rp)->lo); \
|
||||
} while (0)
|
||||
#define RETURNSPI(rp) do { \
|
||||
if (!(rp)->lo_set) \
|
||||
RETURNPI((rp)->hi); \
|
||||
RETURN2PI((rp)->hi, (rp)->lo); \
|
||||
RETURNI((rp)->hi); \
|
||||
RETURNI((rp)->hi + (rp)->lo); \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
#define SUM2P(x, y) ({ \
|
||||
const __typeof (x) __x = (x); \
|
||||
const __typeof (y) __y = (y); \
|
||||
\
|
||||
DOPRINT_END2(__x, __y); \
|
||||
__x + __y; \
|
||||
})
|
||||
|
||||
/*
|
||||
* ieee style elementary functions
|
||||
*
|
||||
* We rename functions here to improve other sources' diffability
|
||||
* against fdlibm.
|
||||
*/
|
||||
#define __ieee754_sqrt sqrt
|
||||
#define __ieee754_acos acos
|
||||
#define __ieee754_acosh acosh
|
||||
#define __ieee754_log log
|
||||
#define __ieee754_log2 log2
|
||||
#define __ieee754_atanh atanh
|
||||
#define __ieee754_asin asin
|
||||
#define __ieee754_atan2 atan2
|
||||
#define __ieee754_exp exp
|
||||
#define __ieee754_cosh cosh
|
||||
#define __ieee754_fmod fmod
|
||||
#define __ieee754_pow pow
|
||||
#define __ieee754_lgamma lgamma
|
||||
#define __ieee754_gamma gamma
|
||||
#define __ieee754_lgamma_r lgamma_r
|
||||
#define __ieee754_gamma_r gamma_r
|
||||
#define __ieee754_log10 log10
|
||||
#define __ieee754_sinh sinh
|
||||
#define __ieee754_hypot hypot
|
||||
#define __ieee754_j0 j0
|
||||
#define __ieee754_j1 j1
|
||||
#define __ieee754_y0 y0
|
||||
#define __ieee754_y1 y1
|
||||
#define __ieee754_jn jn
|
||||
#define __ieee754_yn yn
|
||||
#define __ieee754_remainder remainder
|
||||
#define __ieee754_scalb scalb
|
||||
#define __ieee754_sqrtf sqrtf
|
||||
#define __ieee754_acosf acosf
|
||||
#define __ieee754_acoshf acoshf
|
||||
#define __ieee754_logf logf
|
||||
#define __ieee754_atanhf atanhf
|
||||
#define __ieee754_asinf asinf
|
||||
#define __ieee754_atan2f atan2f
|
||||
#define __ieee754_expf expf
|
||||
#define __ieee754_coshf coshf
|
||||
#define __ieee754_fmodf fmodf
|
||||
#define __ieee754_powf powf
|
||||
#define __ieee754_lgammaf lgammaf
|
||||
#define __ieee754_gammaf gammaf
|
||||
#define __ieee754_lgammaf_r lgammaf_r
|
||||
#define __ieee754_gammaf_r gammaf_r
|
||||
#define __ieee754_log10f log10f
|
||||
#define __ieee754_log2f log2f
|
||||
#define __ieee754_sinhf sinhf
|
||||
#define __ieee754_hypotf hypotf
|
||||
#define __ieee754_j0f j0f
|
||||
#define __ieee754_j1f j1f
|
||||
#define __ieee754_y0f y0f
|
||||
#define __ieee754_y1f y1f
|
||||
#define __ieee754_jnf jnf
|
||||
#define __ieee754_ynf ynf
|
||||
#define __ieee754_remainderf remainderf
|
||||
#define __ieee754_scalbf scalbf
|
||||
|
||||
/* fdlibm kernel function */
|
||||
int __kernel_rem_pio2(double*,double*,int,int,int);
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
# Autogenerated - do NOT edit!
|
||||
|
||||
DIRDEPS = \
|
||||
gnu/lib/csu \
|
||||
include \
|
||||
include/xlocale \
|
||||
lib/${CSU_DIR} \
|
||||
lib/libc \
|
||||
lib/libcompiler_rt \
|
||||
lib/libutil \
|
||||
|
||||
|
||||
.include <dirdeps.mk>
|
||||
|
||||
+16
-3
@@ -398,8 +398,21 @@ checksize(struct fat_descriptor *fat, u_char *p, struct dosDirEntry *dir)
|
||||
if (dir->head == CLUST_FREE) {
|
||||
physicalSize = 0;
|
||||
} else {
|
||||
if (!fat_is_valid_cl(fat, dir->head))
|
||||
return FSERROR;
|
||||
if (!fat_is_valid_cl(fat, dir->head) || !fat_is_cl_head(fat, dir->head)) {
|
||||
pwarn("Directory entry %s of size %u referencing invalid cluster %u\n",
|
||||
fullpath(dir), dir->size, dir->head);
|
||||
if (ask(1, "Truncate")) {
|
||||
p[28] = p[29] = p[30] = p[31] = 0;
|
||||
p[26] = p[27] = 0;
|
||||
if (boot->ClustMask == CLUST32_MASK)
|
||||
p[20] = p[21] = 0;
|
||||
dir->size = 0;
|
||||
dir->head = CLUST_FREE;
|
||||
return FSDIRMOD;
|
||||
} else {
|
||||
return FSERROR;
|
||||
}
|
||||
}
|
||||
ret = checkchain(fat, dir->head, &chainsize);
|
||||
/*
|
||||
* Upon return, chainsize would hold the chain length
|
||||
@@ -982,7 +995,7 @@ readDosDirSection(struct fat_descriptor *fat, struct dosDirEntry *dir)
|
||||
n->next = pendingDirectories;
|
||||
n->dir = d;
|
||||
pendingDirectories = n;
|
||||
} else {
|
||||
} else if (!(mod & FSERROR)) {
|
||||
mod |= k = checksize(fat, p, &dirent);
|
||||
if (k & FSDIRMOD)
|
||||
mod |= THISMOD;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
# Autogenerated - do NOT edit!
|
||||
|
||||
DIRDEPS = \
|
||||
gnu/lib/csu \
|
||||
include \
|
||||
include/xlocale \
|
||||
lib/${CSU_DIR} \
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.Dd June 14, 2018
|
||||
.Dd January 12, 2024
|
||||
.Dt NEWFS_MSDOS 8
|
||||
.Os
|
||||
.Sh NAME
|
||||
@@ -134,7 +134,7 @@ File system block size (bytes per cluster).
|
||||
This should resolve to an
|
||||
acceptable number of sectors per cluster (see below).
|
||||
.It Fl c Ar cluster-size
|
||||
Sectors per cluster.
|
||||
Sectors per cluster, also called allocation size.
|
||||
Acceptable values are powers of 2 in the range
|
||||
1 through 128.
|
||||
If the block or cluster size are not specified, the code
|
||||
@@ -224,6 +224,12 @@ Create a file system, using default parameters, on
|
||||
newfs_msdos /dev/ada0s1
|
||||
.Ed
|
||||
.Pp
|
||||
Create a FAT32 filesystem with a 32K allocation size on
|
||||
.Pa /dev/mmcsd0s1 :
|
||||
.Bd -literal -offset indent
|
||||
newfs_msdos -F 32 -A -c 64 /dev/mmcsd0s1
|
||||
.Ed
|
||||
.Pp
|
||||
Create a standard 1.44M file system, with volume label
|
||||
.Ar foo ,
|
||||
on
|
||||
|
||||
Reference in New Issue
Block a user