When building a 4k page kernel we use 2M blocks to map the kernel
contents. As the .text section may not end on a 2M aligned address
we need to split one block into level 3 pages and pad the end of the
section to an appropriate boundary.
With both these changes we can then mapjust the code as executable.
While here also map it as read-only as none ofthis shouldbe written
to directly.
Reviewed by: alc
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D45064
Setting loader_brand to none in loader.conf now result in a lua error
as we try to get a non-existant table
Defines it
Differential Revision: https://reviews.freebsd.org/D50875
Fixes: bef6d85b6d ("lualoader: allow graphical bits to be disabled with loader_gfx")
Reviewed by: kevans, tsoome
Sponsored by: Beckhoff Automation GmbH & Co. KG
We previously emitted the generic currency sign `¤` for Ctrl+4.
Generally speaking the modifer should be AltGr not Ctrl, and this should
be the Euro symbol `€`.
Fixes: eb8f9028fb ("Add the Euro symbol mapping to the UK keyboard keymap.")
Fixes: a232c1d130 ("Copy country-code .iso syscons keymaps for vt(4)")
Fixes: fdd869bd8a ("Another rpund of fixes, after checking keymaps for plausibility and with")
Reviewed by: ivy
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D50702
As of commit 62d18f8c4c ("release: Add -DPKGBASE option to include
pkgbase packages") we can include base system packages on the install
media instead of dist tarballs.
Set the default for the traditional/pkgbase question to match the
artifact type included in the install image.
Reviewed by: jrm
Event: Kitchener-Waterloo Hackathon 202506
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D50467
This reverts commit c13f4b1574.
Using MSEC_2_TICKS() breaks compiling
contrib/bsnmp/snmp_mibII/mibII_tcp.c
since it includes tcp_timer.h in userland and MSEC_2_TICKS() is
only defined for kernel land.
Now that we have a _WANT_ZNODE we can use that instead of defining
_KERNEL, and we're able to move the code back into zfs.c using a real
znode_t pointer.
Whilst here, tidy the includes.
Reviewed by: imp, kib, markj
Differential Revision: https://reviews.freebsd.org/D50721
Note that ZNODE_OS_FIELDS needs to change to using struct vnode over
vnode_t (matching struct zfsvfs rather than vnode_t) since vnode_t is
only defined in the kernel SPL, not the userspace SPL (libspl).
Whilst here, tidy up the includes and clarify a comment.
Reviewed by: imp, markj
Differential Revision: https://reviews.freebsd.org/D50720
Defining _KERNEL is a historical hack that can often break due to the
environment not actually being that of a kernel build. Now that we have
other targeted macros we can define instead that don't have far-reaching
implications like _KERNEL we can drop this.
Reviewed by: imp, kib, markj
Differential Revision: https://reviews.freebsd.org/D50719
This lets other bits of userspace expose these various definitions too.
In particular, this will be used by libprocstat so it can stop defining
_KERNEL.
The function prototypes surely won't be useful in other contexts, but
the various types are, and it's not worth hiding the prototypes unless
they end up causing issues, but so long as they aren't called they
shouldn't be a problem.
Note the MAKEFS define continues to exist, but only for use in
newfs_msdos, as those sources are reused by makefs with some changed
behaviour.
Reviewed by: imp, markj
Differential Revision: https://reviews.freebsd.org/D50718
Whilst these aren't used by makefs, they do little harm existing once
the needed headers are included, and having structs change layout based
on defines like this can be fraught. This will be particularly true once
this code is exposed by defines other than _KERNEL and MAKEFS, as any
consumer will be able to opt into exposing this kernel type and all the
definitions should match.
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D50885
This allows struct iso_mnt to be defined for userspace without resorting
to the gross hack of defining _KERNEL. In particular, it will be used by
libprocstat so it can stop defining _KERNEL.
Reviewed by: imp, kib, markj
Differential Revision: https://reviews.freebsd.org/D50717
This header uses various types that come from here regardless of whether
_KERNEL is defined, so unconditionally include it rather than relying on
other headers implicitly including it for when _KERNEL is not defined.
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D50884
These will be needed by future changes to continue to allow building
makefs as a bootstrap tool on Linux and macOS. This also requires
defining __sbintime_t in our cross-build sys/_types.
In the unlikely event of a hash collision, the collision differentiator
is used to create a unique lookup key for ZAP entries. While the fat
ZAP implementation in makefs implemented this, the micro ZAP
implementation did not, so it's possible to end up with collisions in
directory entries. These are caught deterministically by OpenZFS, but
the result is a panic.
Implement a simple differentiator by simply assigning a unique value to
each ZAP entry. This scheme works since the 16-bit space of
differentiators is larger than the maximum number of entries in a micro
ZAP. (While the on-disk encoding provides 32 bits of space for the
differentiator, the in-memory representation of micro ZAP entries is
smaller.)
PR: 287482
MFC after: 1 week
Use MSEC_2_TICKS() to make clearer, which values are used and to
ensure that the value stored is at least one tick.
This also avoids the need of some protection code.
Reviewed by: cc, glebius
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D50840
Add the ability to parse char literals needed to compile DTBs currently
in base.
Reviewed by: theraven, emaste
Approved by: emaste (mentor)
Differential Revision: https://reviews.freebsd.org/D42438
This file is already included in cam.ko which nvme.ko depends on
unconditionally.
Reviewed by: imp
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D50705
While C++ does seem to permit this, both GCC and clang do not do this
in their bundled <stddef.h> headers. Instead, both use the __null
builtin (and g++ unconditionally overrides NULL back to __null).
Our local change makes FreeBSD's C++ environment subtly different from
the rest of the world such that code that compiles fine with clang++
on FreeBSD doesn't compile fine on other systems and doesn't compile
on FreeBSD using g++.
This reverts commit 3033610f5d.
PR: 286477 (exp-run)
Reviewed by: olce, imp, dim, emaste
Differential Revision: https://reviews.freebsd.org/D50089
Revert b44147bb12. It doesn't work right since it doesn't bootstrap
things quite right. It doesn't look trivial to fix, so revert until a
proper solution is done (though maybe that solution is just do `make
update-packages` and not document/support these other targets).
Suggested by: bapt, emaste
Sponsored by: Netflix
This was an attempt to fix b44147bb12, but it's still not right. Per
conversation on irc, revert it and the other commit so we can redo them
correctly.
Suggested by: bapt, kevans
Stealed from the CTR() macro in sys/ktr.h.
Suggested by: jhb
Reviewed by: markj
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D50845
ether_ifattach() no longer sets if_type to IFT_ETHER and keeps it as is
since the change [1].
[1] fc74a9f93a Stop embedding struct ifnet at the top of driver softcs
No functional change intended.
MFC after: 1 week
After b44147bb12 there is no dependence
relationshop between create-packages and real-update-packages, which
results on the package building cluster in a race condition
real-update-packages tries to open a package which is being created by
the create-packages target and make the whole build fail.
Ensure create-packages and real-update-packages is sequential
refactor nuageinit to allow a 3rd execution point during boot:
1. nuageinit is invoked before NETWORKING with a minimalistic network setup
for openstrack and potentially other network config setup. it tries
to configure everything which is not requiring any network.
2. nuageinit is invoked again post NETWORKING but pre SERVERS, in the
phase it does all that requires network, like dealing with packages.
Note that creating users have been moved to this phase to allow the
installation of shells like bash or zsh prior the creation of the
users, before that the user creation was failing if a non installed
shell was requested.
3. nuageinit will execute at the rc.local time all the specified scripts
and commands.
MFC After: 1 week
People may wish to play with it before it does become default. Add an
UPDATING entry to discuss the anything required to update.
Bump __FreeBSD_version to indicate that MIT KRB5 has been imported.
We will see an another __FreeBSD_version bump when MIT KRB5 becomes
the default Kerberos.
Add tests for MK_MITKRB5. If "yes" build MIT KRB5. If "no" build Heimdal.
The default is MK_MITKRB5 = no, added by "krb5: Add build plumbing".
At some point we will change the default to MK_MITKRB5 = yes. A ports
exp-run will need to be successfully run first.
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D50815
If no Kerberos is wanted (MK_KERBEROS == no) remove whatever kerberos
is installed.
If MIT KRB5 is wanted (MK_MITKRB5 == yes) remove the Heimdal files.
If Heimdal is wanted (MK_MITKRB5 == no) remove the MIT KRB5 files.
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D50814
MIT KRB5 krb5kdc differs from the Heimdal kdc.
- The MIT kdc is named krb5kdc while the Heimdal one is named kdc.
- krb5kdc -d flag has a different meaning. krb5kdc -d specifies a
database name. While the Heimdal kdc uses the -d flag to daemonize
it. krb5kdc automaticially daemonizes itself unless the -n flag is
specified.
We do this by looking at the name of the kdc program to determine if
we assume it's a Heimdal kdc or the MIT krb5kdc.
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D50813
The MIT GSS uses different library names. And MIT KRB5 supports more
OIDs than our ancient Heimdal does.
The intention is to remove etc/gss when Heimdal is finally retired and
rename etc/gss-krb5 to etc/gss.
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D50812
Fix gssd build when building with MIT KRB5.
krb5_get_init_creds_opt_set_default_flags() is not an MIT KRB5 function.
It is also not needed to resolve the default keytable.
Sponsored by: The FreeBSD Foundation
Reviewed by: rmacklem
Differential revision: https://reviews.freebsd.org/D50810
MIT KRB5 does not support telnet. This is because telnet uses 3DES
encryption, which requires 3DES encrypted keys in the KDC database.
As MIT had deprecated and removed 3DES support about a decade ago,
telnet is not supported.
Sponsored by: The FreeBSD Foundation
Reviewed by: markj
Differential revision: https://reviews.freebsd.org/D50785
MIT KRB5 provides its own libcom_err.
Sponsored by: The FreeBSD Foundation
Reviewed by: markj, emaste
Differential revision: https://reviews.freebsd.org/D50809
Remove HEIMDAL=1 from openssh/krb5_config.h and move the definition
to the Makefile in order to control whether we're building under
Heimdal or MIT.
Add MIT KRB5 LIBS and INCLUDES to the openssh build.
Sponsored by: The FreeBSD Foundation
Reviewed by: markj
Differential revision: https://reviews.freebsd.org/D50782