git: 3fd60a6b73ac - main - awk: Merge upstream 2nd Edition Awk Book
Date: Tue, 14 Nov 2023 04:51:05 UTC
The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=3fd60a6b73ac01a72df89751f173970fae4cae73 commit 3fd60a6b73ac01a72df89751f173970fae4cae73 Merge: 194df014feeb 2e406c584fe4 Author: Warner Losh <imp@FreeBSD.org> AuthorDate: 2023-11-02 16:32:01 +0000 Commit: Warner Losh <imp@FreeBSD.org> CommitDate: 2023-11-14 04:49:34 +0000 awk: Merge upstream 2nd Edition Awk Book Merge in the November 2nd, 2023 version of one true awk. This brings in Unicode support, CSV support and a number of bug fixes. Sponsored by: Netflix Reviewed by: delphij Differential Revision: https://reviews.freebsd.org/D42447 .gitattributes | 1 + UPDATING | 5 + contrib/one-true-awk/FIXES | 1373 +------------------ contrib/one-true-awk/FIXES.1e | 1429 ++++++++++++++++++++ contrib/one-true-awk/README.md | 79 +- contrib/one-true-awk/awk.1 | 31 +- contrib/one-true-awk/awk.h | 18 +- contrib/one-true-awk/awkgram.y | 49 +- contrib/one-true-awk/b.c | 322 ++++- .../one-true-awk/bugs-fixed/getline-corruption.awk | 5 + .../one-true-awk/bugs-fixed/getline-corruption.in | 1 + .../one-true-awk/bugs-fixed/getline-corruption.ok | 1 + contrib/one-true-awk/bugs-fixed/rstart-rlength.awk | 10 + contrib/one-true-awk/bugs-fixed/rstart-rlength.ok | 4 + .../one-true-awk/bugs-fixed/unicode-fs-rs-1.awk | 6 + contrib/one-true-awk/bugs-fixed/unicode-fs-rs-1.in | 2 + contrib/one-true-awk/bugs-fixed/unicode-fs-rs-1.ok | 5 + .../one-true-awk/bugs-fixed/unicode-fs-rs-2.awk | 7 + contrib/one-true-awk/bugs-fixed/unicode-fs-rs-2.in | 2 + contrib/one-true-awk/bugs-fixed/unicode-fs-rs-2.ok | 4 + .../one-true-awk/bugs-fixed/unicode-null-match.awk | 6 + .../one-true-awk/bugs-fixed/unicode-null-match.bad | 1 + .../one-true-awk/bugs-fixed/unicode-null-match.ok | 1 + contrib/one-true-awk/lex.c | 56 +- contrib/one-true-awk/lib.c | 137 +- contrib/one-true-awk/main.c | 15 +- contrib/one-true-awk/makefile | 1 + contrib/one-true-awk/parse.c | 2 +- contrib/one-true-awk/proto.h | 7 +- contrib/one-true-awk/run.c | 647 ++++++++- contrib/one-true-awk/testdir/T.argv | 6 + contrib/one-true-awk/testdir/T.csv | 81 ++ contrib/one-true-awk/testdir/T.misc | 6 + contrib/one-true-awk/testdir/T.utf | 194 +++ contrib/one-true-awk/testdir/T.utfre | 234 ++++ contrib/one-true-awk/testdir/tt.15 | 2 +- contrib/one-true-awk/testdir/xc | 17 - contrib/one-true-awk/tran.c | 26 +- 38 files changed, 3178 insertions(+), 1615 deletions(-) diff --cc .gitattributes index 11fec084166f,000000000000..ab5a1eee005d mode 100644,000000..100644 --- a/.gitattributes +++ b/.gitattributes @@@ -1,7 -1,0 +1,8 @@@ +*.c diff=cpp +*.h diff=cpp +*.cpp diff=cpp +*.hpp diff=cpp +*.py diff=python +. svn-properties=svn:keywords=tools/build/options/WITHOUT_LOADER_ZFS +.clang-format svn-properties=svn:keywords=FreeBSD=%H ++contrib/one-true-awk/bugs-fixed/unicode-null-match.bad binary diff --cc UPDATING index 763f8f29a4f0,000000000000..17117a193394 mode 100644,000000..100644 --- a/UPDATING +++ b/UPDATING @@@ -1,2101 -1,0 +1,2106 @@@ +Updating Information for users of FreeBSD-CURRENT. + +This file is maintained and copyrighted by M. Warner Losh <imp@freebsd.org>. +See end of file for further details. For commonly done items, please see the +COMMON ITEMS: section later in the file. These instructions assume that you +basically know what you are doing. If not, then please consult the FreeBSD +handbook: + + https://docs.freebsd.org/en/books/handbook/cutting-edge/#makeworld + +Items affecting the ports and packages system can be found in +/usr/ports/UPDATING. Please read that file before updating system packages +and/or ports. + +NOTE TO PEOPLE WHO THINK THAT FreeBSD 15.x IS SLOW: + FreeBSD 15.x has many debugging features turned on, in both the kernel + and userland. These features attempt to detect incorrect use of + system primitives, and encourage loud failure through extra sanity + checking and fail stop semantics. They also substantially impact + system performance. If you want to do performance measurement, + benchmarking, and optimization, you'll want to turn them off. This + includes various WITNESS- related kernel options, INVARIANTS, malloc + debugging flags in userland, and various verbose features in the + kernel. Many developers choose to disable these features on build + machines to maximize performance. (To completely disable malloc + debugging, define WITH_MALLOC_PRODUCTION in /etc/src.conf and rebuild + world, or to merely disable the most expensive debugging functionality + at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) + ++20231114: ++ One True Awk updated to the Second Edition as of 20231102 (254b979f32df) ++ Notable features include UTF-8 support and --csv to support comma ++ separated data. ++ +20231113: + The WITHOUT_LLD_IS_LD option has been removed. When LLD is enabled + it is always installed as /usr/bin/ld. + +20231027: + Forward compatibility (running the new code on old kernels) for the + "ino64" project have been removed. The need for it has passed long ago. + +20231018: + Commit 57ce37f9dcd0 changed the internal KAPI between the + nfscommon and nfscl modules. Both must be rebuilt from sources. + +20231010: + dialog(1) has been replaced in base by bsddialog(1), while most of the + time replacing a dialog(1) call by a bsddialog(1) call works out of the + box, bsddialog(1) is not considered as a drop-in replacement for + dialog(1). + + If you do depend on dialog(1) functionality, please install cdialog + from ports: + + pkg install cdialog + +20230927: + The EARLY_AP_STARTUP kernel option is mandatory on x86. The option + has been added to DEFAULTS, so it should automatically be included in + custom kernel configurations without any additional change. + +20230922: + A new loader tunable net.pf.default_to_drop allows pf(4)’s default + behaviour to be changed from pass to drop. Previously this required + recompiling the kernel with the option PF_DEFAULT_TO_DROP. + +20230914: + Enable splitting out pkgbase manpages into separate packages by + default. To disable this, set WITHOUT_MANSPLITPKG=yes in src.conf. + +20230911: + Move standard include files to the clibs-dev package and move clang + internal libraries and headers to clang and clang-dev. Upgrading systems + installed using pkgbase past this change involves extra steps to allow + for these file moves: + + pkg upgrade -y FreeBSD-utilities + pkg upgrade -y FreeBSD-utilities-dev + pkg upgrade -y + +20230909: + Enable vnet sysctl variables to be loader tunable. SYSCTLs which + belongs to VNETs can be initialized during early boot or module + loading if they are marked with CTLFLAG_TUN and there are + corresponding kernel environment variables. + +20230901: + The WITH_INIT_ALL_PATTERN and WITH_INIT_ALL_ZERO build options have + been replaced by INIT_ALL=pattern and INIT_ALL=zero respectively. + +20230824: + FreeBSD 15.0-CURRENT. + +20230817: + Serial communication (in boot loaders, kernel, and userland) has + been changed to default to 115200 bps, in line with common industry + practice and typcial firmware serial console redirection + configuration. + + Note that the early x86 BIOS bootloader (i.e., boot0sio) does not + support rates above 9600 bps and is not changed. boot0sio users may + set BOOT_COMCONSOLE_SPEED=9600 to use 9600 for all of the boot + components, or use the standard boot0 and have the boot2 stage start + with the serial port at 115200. + +20230807: + Following the general removal of MIPS support, the ath(4) AHB bus- + frontend has been removed, too, and building of the PCI support is + integrated with the ath(4) main module again. As a result, there's + no longer a need for if_ath_pci_load="YES" in /boot/loader.conf or + "device ath_pci" in the kernel configuration. + +20230803: + MAXCPU has been increased to 1024 in the amd64 GENERIC kernel config. + Out-of-tree kernel modules will need to be rebuilt. + +20230724: + CAM has been mechanically updated s/u_int(64|32|16|8)_t/uint\1_t/g + to move to the standard uintXX_t types from the old, traditional + BSD u_intXX_t types. This should be a NOP, but may cause problems + for out of tree changes. The SIMs were not updated since most of + the old u_intXX_t uses weren't due to CAM interfaces. + +20230713: + stable/14 branch created. + +20230629: + The heuristic for detecting old chromebooks with an EC bug that requires + atkbdc driver workarounds has changed. There should be no functional + change, but if your old chromebook's keyboard stops working, please + file a PR and assign it to imp. + +20230623: + OpenSSL has been updated to version 3.0, including changes throughout + the base system. It is important to rebuild third-party software + after upgrading. + +20230619: + To enable pf rdr rules for connections initiated from the host, pf + filter rules can be optionally enabled for packets delivered + locally. This can change the behavior of rules which match packets + delivered to lo0. To enable this feature: + + sysctl net.pf.filter_local=1 + service pf restart + + When enabled, its best to ensure that packets delivered locally are not + filtered, e.g. by adding a 'skip on lo' rule. + +20230613: + Improvements to libtacplus(8) mean that tacplus.conf(5) now + follows POSIX shell syntax rules. This may cause TACACS+ + authentication to fail if the shared secret contains a single + quote, double quote, or backslash character which isn't + already properly quoted or escaped. + +20230612: + Belatedly switch the default nvme block device on x86 from nvd to nda. + nda created nvd compatibility links by default, so this should be a + nop. If this causes problems for your application, set hw.nvme.use_nvd=1 + in your loader.conf or add `options NVME_USE_NVD=1` to your kernel + config. To disable the nvd compatibility aliases, add + kern.cam.nda.nvd_compat=0 to loader.conf. The default has been nda on + all non-x86 platforms for some time now. If you need to fall back, + please email imp@freebsd.org about why. + + Encrypted swap partitions need to be changed from nvd to nda if you + migrate, or you need to use the above to switch back to nvd. + +20230422: + Remove portsnap(8). Users are encouraged to obtain the ports tree + using git instead. + +20230420: + Add jobs.mk to save typing. Enables -j${JOB_MAX} and logging + eg. + make buildworld-jobs + runs + make -j${JOB_MAX} buildworld > ../buildworld.log 2>&1 + + where JOB_MAX is derrived from ncpus in local.sys.mk if not set in env. + +20230316: + Video related devices for some arm devices have been renamed. + If you have a custom kernel config and want to use hdmi output on + IMX6 board you need to add "device dwc_hdmi" "device imx6_hdmi" and + "device imx6_ipu" to it. + If you have a custom kernel config and want to use hdmi output on + TI AM335X board you need to add "device tda19988" to it. + If you add "device hdmi" in it you need to remove it as it doesn't + exist anymore. + +20230221: + Introduce new kernel options KBD_DELAY1 and KBD_DELAY2. See atkbdc(4) + for details. + +20230206: + sshd now defaults to having X11Forwarding disabled, following upstream. + Administrators who wish to enable X11Forwarding should add + `X11Forwarding yes` to /etc/ssh/sshd_config. + +20230204: + Since commit 75d41cb6967 Huawei 3G/4G LTE Mobile Devices do not default + to ECM, but NCM mode and need u3g and ucom modules loaded. See cdce(4). + +20230130: + As of commit 7c40e2d5f685, the dependency on netlink(4) has been added + to the linux_common(4) module. Users relying on linux_common may need + to complile netlink(4) module if it is not present in their kernel. + +20230126: + The WITHOUT_CXX option has been removed. C++ components in the base + system are now built unconditionally. + +20230113: + LinuxKPI pci.h changes may require out-of-tree drivers to be recompiled. + Bump _FreeBSD_version to 1400078 to be able to detect this change. + +20221212: + llvm-objump is now always installed as objdump. Previously there was + no /usr/bin/objdump unless the WITH_LLVM_BINUTILS knob was used. + + Some LLVM objdump options have a different output format compared to + GNU objdump; readelf is available for inspecting ELF files, and GNU + objdump is available from the devel/binutils port or package. + +20221205: + dma(8) has replaced sendmail(8) as the default mta. For people willing + to reenable sendmail(8): + + $ cp /usr/share/examples/sendmail/mailer.conf /etc/mail/mailer.conf + + and add sendmail_enable="YES" to rc.conf. + +20221204: + hw.bus.disable_failed_devices has changed from 'false' to 'true' by + default. Now if newbus succeeds in probing a device, but fails to attach + the device, we'll disable the device. In the past, we'd keep retrying + the device on each new driver loaded. To get that behavior now, one + needs to use devctl to re-enable the device, and reprobe it (or set + the sysctl/tunable hw.bus.disable_failed_devices=false). + + NOTE: This was reverted 20221205 due to unexpected compatibility issues + +20221122: + pf no longer accepts 'scrub fragment crop' or 'scrub fragment drop-ovl'. + These configurations are no longer automatically reinterpreted as + 'scrub fragment reassemble'. + +20221121: + The WITHOUT_CLANG_IS_CC option has been removed. When Clang is enabled + it is always installed as /usr/bin/cc (and c++, cpp). + +20221026: + Some programs have been moved into separate packages. It is recommended + for pkgbase users to do: + + pkg install FreeBSD-dhclient FreeBSD-geom FreeBSD-resolvconf \ + FreeBSD-devd FreeBSD-devmatch + + after upgrading to restore all the component that were previously + installed. + +20221002: + OPIE has been removed from the base system. If needed, it can + be installed from ports (security/opie) or packages (opie). + Otherwise, make sure that your PAM policies do not reference + pam_opie or pam_opieaccess. + +20220610: + LinuxKPI pm.h changes require an update to the latest drm-kmod version + before re-compiling to avoid errors. + +20211230: + The macros provided for the manipulation of CPU sets (e.g. CPU_AND) + have been modified to take 2 source arguments instead of only 1. + Externally maintained sources that use these macros will have to + be adapted. The FreeBSD version has been bumped to 1400046 to + reflect this change. + +20211214: + A number of the kernel include files are able to be included by + themselves. A test has been added to buildworld to enforce this. + +20211209: + Remove mips as a recognized target. This starts the decommissioning of + mips support in FreeBSD. mips related items will be removed wholesale in + the coming days and weeks. + + This broke the NO_CLEAN build for some people. Either do a clean build + or touch + lib/clang/include/llvm/Config/Targets.def + lib/clang/include/llvm/Config/AsmParsers.def + lib/clang/include/llvm/Config/Disassemblers.def + lib/clang/include/llvm/Config/AsmPrinters.def + before the build to force everything to rebuild that needs to. + +20211202: + Unbound support for RFC8375: The special-use domain 'home.arpa' is + by default blocked. To unblock it use a local-zone nodefault + statement in unbound.conf: + local-zone: "home.arpa." nodefault + + Or use another type of local-zone to override with your choice. + + The reason for this is discussed in Section 6.1 of RFC8375: + Because 'home.arpa.' is not globally scoped and cannot be secured + using DNSSEC based on the root domain's trust anchor, there is no way + to tell, using a standard DNS query, in which homenet scope an answer + belongs. Consequently, users may experience surprising results with + such names when roaming to different homenets. + +20211110: + Commit b8d60729deef changed the TCP congestion control framework so + that any of the included congestion control modules could be + the single module built into the kernel. Previously newreno + was automatically built in through direct reference. As of + this commit you are required to declare at least one congestion + control module (e.g. 'options CC_NEWRENO') and to also declare a + default using the CC_DEFAULT option (e.g. options CC_DEFAULT="newreno\"). + The GENERIC configuration includes CC_NEWRENO and defines newreno + as the default. If no congestion control option is built into the + kernel and you are including networking, the kernel compile will + fail. Also if no default is declared the kernel compile will fail. + +20211118: + Mips has been removed from universe builds. It will be removed from the + tree shortly. + +20211106: + Commit f0c9847a6c47 changed the arguments for VOP_ALLOCATE. + The NFS modules must be rebuilt from sources and any out + of tree file systems that implement their own VOP_ALLOCATE + may need to be modified. + +20211022: + The synchronous PPP kernel driver sppp(4) has been removed. + The cp(4) and ce(4) drivers are now always compiled with netgraph(4) + support, formerly enabled by NETGRAPH_CRONYX option. + +20211020: + sh(1) is now the default shell for the root user. To force root to use + the csh shell, please run the following command as root: + + # chsh -s csh + +20211004: + Ncurses distribution has been split between libtinfow and libncurses + with libncurses.so becoming a linker (ld) script to seamlessly link + to libtinfow as needed. Bump _FreeBSD_version to 1400035 to reflect + this change. + +20210923: + As of commit 8160a0f62be6, the dummynet module no longer depends on the + ipfw module. Dummynet can now be used by pf as well as ipfw. As such + users who relied on this dependency may need to include ipfw in the + list of modules to load on their systems. + +20210922: + As of commit 903873ce1560, the mixer(8) utility has got a slightly + new syntax. Please refer to the mixer(8) manual page for more + information. The old mixer utility can be installed from ports: + audio/freebsd-13-mixer + +20210911: + As of commit 55089ef4f8bb, the global variable nfs_maxcopyrange has + been deleted from the nfscommon.ko. As such, nfsd.ko must be built + from up to date sources to avoid an undefined reference when + being loaded. + +20210817: + As of commit 62ca9fc1ad56 OpenSSL no longer enables kernel TLS + by default. Users can enable kernel TLS via the "KTLS" SSL + option. This can be enabled globally by using a custom + OpenSSL config file via OPENSSL_CONF or via an + application-specific configuration option for applications + which permit setting SSL options via SSL_CONF_cmd(3). + +20210811: + Commit 3ad1e1c1ce20 changed the internal KAPI between the NFS + modules. Therefore, all need to be rebuilt from sources. + +20210730: + Commit b69019c14cd8 removes pf's DIOCGETSTATESNV ioctl. + As of be70c7a50d32 it is no longer used by userspace, but it does mean + users may not be able to enumerate pf states if they update the kernel + past b69019c14cd8 without first updating userspace past be70c7a50d32. + +20210729: + As of commit 01ad0c007964 if_bridge member interfaces can no longer + change their MTU. Changing the MTU of the bridge itself will change the + MTU on all member interfaces instead. + +20210716: + Commit ee29e6f31111 changed the internal KAPI between the nfscommon + and nfsd modules. Therefore, both need to be rebuilt from sources. + Bump __FreeBSD_version to 1400026 for this KAPI change. + +20210715: + The 20210707 awk update brought in a change in behavior. This has + been corrected as of d4d252c49976. Between these dates, if you + installed a new awk binary, you may not be able to build a new + kernel because the change in behavior affected the genoffset + script used to build the kernel. If you did update, the fix is + to update your sources past the above hash and do + % cd usr.bin/awk + % make clean all + % sudo -E make install + to enable building kernels again. + +20210708: + Commit 1e0a518d6548 changed the internal KAPI between the NFS + modules. They all need to be rebuilt from sources. I did not + bump __FreeBSD_version, since it was bumped recently. + +20210707: + awk has been updated to the latest one-true-awk version 20210215. + This contains a number of minor bug fixes. + +20210624: + 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. + +20210618: + Bump __FreeBSD_version to 1400024 for LinuxKPI changes. + Most notably netdev.h can change now as the (last) dependencies + (mlx4/ofed) are now using struct ifnet directly, but also for PCI + additions and others. + +20210618: + The directory "blacklisted" under /usr/share/certs/ has been + renamed to "untrusted". + +20210611: + svnlite has been removed from base. Should you need svn for any reason + please install the svn package or port. + +20210611: + Commit e1a907a25cfa changed the internal KAPI between the krpc + and nfsserver. As such, both modules must be rebuilt from + sources. Bump __FreeBSD_version to 1400022. + +20210610: + The an(4) driver has been removed from FreeBSD. + +20210608: + The vendor/openzfs branch was renamed to vendor/openzfs/legacy to + start tracking OpenZFS upstream more closely. Please see +https://lists.freebsd.org/archives/freebsd-current/2021-June/000153.html + for details on how to correct any errors that might result. The + short version is that you need to remove the old branch locally: + git update-ref -d refs/remotes/freebsd/vendor/openzfs + (assuming your upstream origin is named 'freebsd'). + +20210525: + Commits 17accc08ae15 and de102f870501 add new files to LinuxKPI + which break drm-kmod. In addition various other additions where + committed. Bump __FreeBSD_version to 1400015 to be able to + detect this. + +20210513: + Commit ca179c4d74f2 changed the package in which the OpenSSL + libraries and utilities are packaged. + It is recommended for pkgbase user to do: + pkg install -f FreeBSD-openssl + before pkg upgrade otherwise some dependencies might not be met + and pkg will stop working as libssl will not be present anymore + on the system. + +20210426: + Commit 875977314881 changed the internal KAPI between + the nfsd and nfscommon modules. As such these modules + need to be rebuilt from sources. + Without this patch in your NFSv4.1/4.2 server, enabling + delegations by setting vfs.nfsd.issue_delegations non-zero + is not recommended. + +20210411: + Commit 7763814fc9c2 changed the internal KAPI between + the krpc and NFS. As such, the krpc, nfscommon and + nfscl modules must all be rebuilt from sources. + Without this patch, NFSv4.1/4.2 mounts should not + be done with the nfscbd(8) daemon running, to avoid + needing a working back channel for server->client RPCs. + +20210330: + Commit 01ae8969a9ee fixed the NFSv4.1/4.2 server so that it + handles binding of the back channel as required by RFC5661. + Until this patch is in your server, avoid use of the "nconnects" + mount option for Linux NFSv4.1/4.2 mounts. + +20210225: + For 64-bit architectures the base system is now built with Position + Independent Executable (PIE) support enabled by default. It may be + disabled using the WITHOUT_PIE knob. A clean build is required. + +20210128: + Various LinuxKPI functionality was added which conflicts with DRM. + Please update your drm-kmod port to after the __FreeBSD_version 1400003 + update. + +20210121: + stable/13 branch created. + +20210108: + PC Card attachments for all devices have been removed. In the case of + wi and cmx, the entire drivers were removed because they were only + PC Card devices. FreeBSD_version 1300134 should be used for this + since it was bumped so recently. + +20210107: + Transport-independent parts of HID support have been split off the USB + code in to separate subsystem. Kernel configs which include one of + ums, ukbd, uhid, atp, wsp, wmt, uaudio, ugold or ucycom drivers should + be updated with adding of "device hid" line. + +20210105: + ncurses installation has been modified to only keep the widechar + enabled version. Incremental build is broken for that change, so it + requires a clean build. + +20201223: + The FreeBSD project has migrated from Subversion to Git. Temporary + instructions can be found at + https://github.com/bsdimp/freebsd-git-docs/blob/main/src-cvt.md + and other documents in that repo. + +20201216: + The services database has been updated to cover more of the basic + services expected in a modern system. The database is big enough + that it will cause issues in mergemaster in Releases previous to + 12.2 and 11.3, or in very old current systems from before r358154. + +20201215: + Obsolete in-tree GDB 6.1.1 has been removed. GDB (including kgdb) + may be installed from ports or packages. + +20201124: + ping6 has been merged into ping. It can now be called as "ping -6". + See ping(8) for details. + +20201108: + Default value of net.add_addr_allfibs has been changed to 0. + If you have multi-fib configuration and rely on existence of all + interface routes in every fib, you need to set the above sysctl to 1. + +20201030: + The internal pre-processor in the calendar(1) program has been + extended to support more C pre-processor commands (e.g. #ifdef, #else, + and #undef) and to detect unbalanced conditional statements. + Error messages have been extended to include the filename and line + number if processing stops to help fixing malformed data files. + +20201026: + All the data files for the calendar(1) program, except calendar.freebsd, + have been moved to the deskutils/calendar-data port, much like the + jewish calendar entries were moved to deskutils/hebcal years ago. After + make delete-old-files, you need to install it to retain full + functionality. calendar(1) will issue a reminder for files it can't + find. + +20200923: + LINT files are no longer generated. We now include the relevant NOTES + files. Note: This may cause conflicts with updating in some cases. + find sys -name LINT\* -delete + is suggested across this commit to remove the generated LINT files. + + If you have tried to update with generated files there, the svn + command you want to un-auger the tree is + cd sys/amd64/conf + svn revert -R . + and then do the above find from the top level. Substitute 'amd64' + above with where the error message indicates a conflict. + +20200824: + OpenZFS support has been integrated. Do not upgrade root pools until + the loader is updated to support zstd. Furthermore, we caution against + 'zpool upgrade' for the next few weeks. The change should be transparent + unless you want to use new features. + + Not all "NO_CLEAN" build scenarios work across these changes. Many + scenarios have been tested and fixed, but rebuilding kernels without + rebuilding world may fail. + + The ZFS cache file has moved from /boot to /etc to match the OpenZFS + upstream default. A fallback to /boot has been added for mountroot. + + Pool auto import behavior at boot has been moved from the kernel module + to an explicit "zpool import -a" in one of the rc scripts enabled by + zfs_enable=YES. This means your non-root zpools won't auto import until + you upgrade your /etc/rc.d files. + +20200824: + The resume code now notifies devd with the 'kernel' system + rather than the old 'kern' subsystem to be consistent with + other use. The old notification will be created as well, but + will be removed prior to FreeBSD 14.0. + +20200821: + r362275 changed the internal API between the kernel RPC and the + NFS modules. As such, all the modules must be recompiled from + sources. + +20200817: + r364330 modified the internal API used between the NFS modules. + As such, all the NFS modules must be re-compiled from sources. + +20200816: + Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have + been upgraded to 11.0.0. Please see the 20141231 entry below for + information about prerequisites and upgrading, if you are not already + using clang 3.5.0 or higher. + +20200810: + r364092 modified the internal ABI used between the kernel NFS + modules. As such, all of these modules need to be rebuilt + from sources, so a version bump was done. + +20200807: + Makefile.inc has been updated to work around the issue documented in + 20200729. It was a case where the optimization of using symbolic links + to point to binaries created a situation where we'd run new binaries + with old libraries starting midway through the installworld process. + +20200729: + r363679 has redefined some undefined behavior in regcomp(3); notably, + extraneous escapes of most ordinary characters will no longer be + accepted. An exp-run has identified all of the problems with this in + ports, but other non-ports software may need extra escapes removed to + continue to function. + + Because of this change, installworld may encounter the following error + from rtld: Undefined symbol "regcomp@FBSD_1.6" -- It is imperative that + you do not halt installworld. Instead, let it run to completion (whether + successful or not) and run installworld once more. + +20200627: + A new implementation of bc and dc has been imported in r362681. This + implementation corrects non-conformant behavior of the previous bc + and adds GNU bc compatible options. It offers a number of extensions, + is much faster on large values, and has support for message catalogs + (a number of languages are already supported, contributions of further + languages welcome). The option WITHOUT_GH_BC can be used to build the + world with the previous versions of bc and dc. + +20200625: + r362639 changed the internal API used between the NFS kernel modules. + As such, they all need to be rebuilt from sources. + +20200613: + r362158 changed the arguments for VFS_CHECKEXP(). As such, any + out of tree file systems need to be modified and rebuilt. + Also, any file systems that are modules must be rebuilt. + +20200604: + read(2) of a directory fd is now rejected by default. root may + re-enable it for system root only on non-ZFS filesystems with the + security.bsd.allow_read_dir sysctl(8) MIB if + security.bsd.suser_enabled=1. + + It may be advised to setup aliases for grep to default to `-d skip` if + commonly non-recursively grepping a list that includes directories and + the potential for the resulting stderr output is not tolerable. Example + aliases are now installed, commented out, in /root/.cshrc and + /root/.shrc. + +20200523: + Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have + been upgraded to 10.0.1. Please see the 20141231 entry below for + information about prerequisites and upgrading, if you are not already + using clang 3.5.0 or higher. + +20200512: + Support for obsolete compilers has been removed from the build system. + Clang 6 and GCC 6.4 are the minimum supported versions. + +20200424: + closefrom(2) has been moved under COMPAT12, and replaced in libc with a + stub that calls close_range(2). If using a custom kernel configuration, + you may want to ensure that the COMPAT_FREEBSD12 option is included, as + a slightly older -CURRENT userland and older FreeBSD userlands may not + be functional without closefrom(2). + +20200414: + Upstream DTS from Linux 5.6 was merged and they now have the SID + and THS (Secure ID controller and THermal Sensor) node present. + The DTB overlays have now been removed from the tree for the H3/H5 and + A64 SoCs and the aw_sid and aw_thermal driver have been updated to + deal with upstream DTS. If you are using those overlays you need to + remove them from loader.conf and update the DTBs on the FAT partition. + +20200310: + Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have + been upgraded to 10.0.0. Please see the 20141231 entry below for + information about prerequisites and upgrading, if you are not already + using clang 3.5.0 or higher. + +20200309: + The amd(8) automount daemon has been removed from the source tree. + As of FreeBSD 10.1 autofs(5) is the preferred tool for automounting. + amd is still available in the sysutils/am-utils port. + +20200301: + Removed brooktree driver (bktr.4) from the tree. + +20200229: + The WITH_GPL_DTC option has been removed. The BSD-licenced device tree + compiler in usr.bin/dtc is used on all architectures which use dtc, and + the GPL dtc is available (if needed) from the sysutils/dtc port. + +20200229: + The WITHOUT_LLVM_LIBUNWIND option has been removed. LLVM's libunwind + is used by all supported CPU architectures. + +20200229: + GCC 4.2.1 has been removed from the tree. The WITH_GCC, + WITH_GCC_BOOTSTRAP, and WITH_GNUCXX options are no longer available. + Users who wish to build FreeBSD with GCC must use the external toolchain + ports or packages. + +20200220: + ncurses has been updated to a newer version (6.2-20200215). Given the ABI + has changed, users will have to rebuild all the ports that are linked to + ncurses. + +20200217: + The size of struct vnet and the magic cookie have changed. + Users need to recompile libkvm and all modules using VIMAGE + together with their new kernel. + +20200212: + Defining the long deprecated NO_CTF, NO_DEBUG_FILES, NO_INSTALLLIB, + NO_MAN, NO_PROFILE, and NO_WARNS variables is now an error. Update + your Makefiles and scripts to define MK_<var>=no instead as required. + + One exception to this is that program or library Makefiles should + define MAN to empty rather than setting MK_MAN=no. + +20200108: + Clang/LLVM is now the default compiler and LLD the default + linker for riscv64. + +20200107: + make universe no longer uses GCC 4.2.1 on any architectures. + Architectures not supported by in-tree Clang/LLVM require an + external toolchain package. + +20200104: + GCC 4.2.1 is now not built by default, as part of the GCC 4.2.1 + retirement plan. Specifically, the GCC, GCC_BOOTSTRAP, and GNUCXX + options default to off for all supported CPU architectures. As a + short-term transition aid they may be enabled via WITH_* options. + GCC 4.2.1 is expected to be removed from the tree on 2020-03-31. + +20200102: + Support for armv5 has been disconnected and is being removed. The + machine combination MACHINE=arm MACHINE_ARCH=arm is no longer valid. + You must now use a MACHINE_ARCH of armv6 or armv7. The default + MACHINE_ARCH for MACHINE=arm is now armv7. + +20191226: + Clang/LLVM is now the default compiler for all powerpc architectures. + LLD is now the default linker for powerpc64. The change for powerpc64 + also includes a change to the ELFv2 ABI, incompatible with the existing + ABI. + +20191226: + Kernel-loadable random(4) modules are no longer unloadable. + +20191222: + Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have + been upgraded to 9.0.1. Please see the 20141231 entry below for + information about prerequisites and upgrading, if you are not already + using clang 3.5.0 or higher. + +20191212: + r355677 has modified the internal interface used between the + NFS modules in the kernel. As such, they must all be upgraded + simultaneously. I will do a version bump for this. + +20191205: + The root certificates of the Mozilla CA Certificate Store have been + imported into the base system and can be managed with the certctl(8) + utility. If you have installed the security/ca_root_nss port or package + with the ETCSYMLINK option (the default), be advised that there may be + differences between those included in the port and those included in + base due to differences in nss branch used as well as general update + frequency. Note also that certctl(8) cannot manage certs in the + format used by the security/ca_root_nss port. + +20191120: + The amd(8) automount daemon has been disabled by default, and will be + removed in the future. As of FreeBSD 10.1 the autofs(5) is available + for automounting. + +20191107: + The nctgpio and wbwd drivers have been moved to the superio bus. + If you have one of these drivers in a kernel configuration, then + you should add device superio to it. If you use one of these drivers + as a module and you compile a custom set of modules, then you should + add superio to the set. + +20191021: + KPIs for network drivers to access interface addresses have changed. + Users need to recompile NIC driver modules together with kernel. + +20191021: + The net.link.tap.user_open sysctl no longer prevents user opening of + already created /dev/tapNN devices. Access is still controlled by + node permissions, just like tun devices. The net.link.tap.user_open + sysctl is now used only to allow users to perform devfs cloning of + tap devices, and the subsequent open may not succeed if the user is not + in the appropriate group. This sysctl may be deprecated/removed + completely in the future. + +20191009: + mips, powerpc, and sparc64 are no longer built as part of + universe / tinderbox unless MAKE_OBSOLETE_GCC is defined. If + not defined, mips, powerpc, and sparc64 builds will look for + the xtoolchain binaries and if installed use them for universe + builds. As llvm 9.0 becomes vetted for these architectures, they + will be removed from the list. + +20191009: + Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have + been upgraded to 9.0.0. Please see the 20141231 entry below for + information about prerequisites and upgrading, if you are not already + using clang 3.5.0 or higher. + +20191003: + The hpt27xx, hptmv, hptnr, and hptrr drivers have been removed from + GENERIC. They are available as modules and can be loaded by adding + to /boot/loader.conf hpt27xx_load="YES", hptmv_load="YES", + hptnr_load="YES", or hptrr_load="YES", respectively. + +20190913: + ntpd no longer by default locks its pages in memory, allowing them + to be paged out by the kernel. Use rlimit memlock to restore + historic BSD behaviour. For example, add "rlimit memlock 32" + to ntp.conf to lock up to 32 MB of ntpd address space in memory. + +20190823: + Several of ping6's options have been renamed for better consistency + with ping. If you use any of -ARWXaghmrtwx, you must update your + scripts. See ping6(8) for details. + +20190727: + The vfs.fusefs.sync_unmount and vfs.fusefs.init_backgrounded sysctls + and the "-o sync_unmount" and "-o init_backgrounded" mount options have + been removed from mount_fusefs(8). You can safely remove them from + your scripts, because they had no effect. + + The vfs.fusefs.fix_broken_io, vfs.fusefs.sync_resize, + vfs.fusefs.refresh_size, vfs.fusefs.mmap_enable, + vfs.fusefs.reclaim_revoked, and vfs.fusefs.data_cache_invalidate + sysctls have been removed. If you felt the need to set any of them to + a non-default value, please tell asomers@FreeBSD.org why. + +20190713: + Default permissions on the /var/account/acct file (and copies of it + rotated by periodic daily scripts) are changed from 0644 to 0640 + because the file contains sensitive information that should not be + world-readable. If the /var/account directory must be created by + rc.d/accounting, the mode used is now 0750. Admins who use the + accounting feature are encouraged to change the mode of an existing + /var/account directory to 0750 or 0700. + +20190620: + Entropy collection and the /dev/random device are no longer optional + components. The "device random" option has been removed. + Implementations of distilling algorithms can still be made loadable + with "options RANDOM_LOADABLE" (e.g., random_fortuna.ko). + +20190612: + Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have + been upgraded to 8.0.1. Please see the 20141231 entry below for + information about prerequisites and upgrading, if you are not already + using clang 3.5.0 or higher. + +20190608: + A fix was applied to i386 kernel modules to avoid panics with + dpcpu or vnet. Users need to recompile i386 kernel modules + having pcpu or vnet sections or they will refuse to load. + +20190513: + User-wired pages now have their own counter, + vm.stats.vm.v_user_wire_count. The vm.max_wired sysctl was renamed + to vm.max_user_wired and changed from an unsigned int to an unsigned + long. bhyve VMs wired with the -S are now subject to the user + wiring limit; the vm.max_user_wired sysctl may need to be tuned to + avoid running into the limit. + +20190507: + The IPSEC option has been removed from GENERIC. Users requiring + ipsec(4) must now load the ipsec(4) kernel module. + +20190507: + The tap(4) driver has been folded into tun(4), and the module has been + renamed to tuntap. You should update any kld_list="if_tap" or + kld_list="if_tun" entries in /etc/rc.conf, if_tap_load="YES" or + if_tun_load="YES" entries in /boot/loader.conf to load the if_tuntap + module instead, and "device tap" or "device tun" entries in kernel *** 1499 LINES SKIPPED ***