libroken: Rename static pidfile_path to rk_pidfile_path
This is odd because libroken uses pidfile(3) AND it's own pidfile system.
So potentially it's managing two pidfiles.
libutil.h owns the pidfile namespace (other OS expose other names which
may conflict) so rename the local vars to rk_pidfile_*.
pidfile: Add functionality for use in sandboxing
pidfile_fd() returns the file descriptor of the locked pidfile so it can
be limited in sandboxes like Capsicum.
pidfile_unremoveable() will avoid unlink(2) being called at program exit
to avoid tripping any sandboxes like Pledge which may restrict it or
it's just not reachable anymore if the program is in a chroot(2).
pidfile_path() returns the path of the locked pidfile so it can be removed
by a process than can reach it if pidfile_unremoveable() has been called.
pidfile_unlock() just releases the resources held by the locked pidfile.
This is lighter weight than pidfile_clean() as it avoids a lseek and read.
- Reduce delays for MII access.
- Fix multicast filter setup (and thus IPv6).
- Align MAC address setup code with other drivers.
- Create bus_dma map with BUS_DMA_ALLOCNOW to prevent failures
when loading the map.
eqos: More performance improvements.
- Move TX to a separate kthread and allow TX and RX to run under separate
locks. Lazily clean up TX descriptors instead of requesting an interrupt
for TX completions.
- Use the hardware watchdog to implement RX interrupt coalescing.
- Remove some redundant MMIO writes and bus_dma syncs.
[offload][OpenMP] Add strict flag for blocks and threads in kernel arguments (#199483)
Until now, strict behavior in the number of threads and blocks has been
applied only when the kernel is in bare mode. When this mode is enabled,
the values passed in UserNumBlocks and UserThreadLimit are not adjusted
and are the definitive values used to launch the kernel. This commit
detaches the strictness from the kernel mode.
This is going to be used by the kernel replay tool. Additionally, it
starts clearing the path for the upcoming OpenMP dims modifier, used to
configure multidimensional teams and leagues, which will include
strictness choices for teams and threads.
All the bare kernels must indicate strict behavior. Asserts are added to
check this condition.
[bazel] Fix compiler_rt:interception
- Add `-DCOMPILER_RT_BUILD_PROFILE_ROCM=1`
- Prune `"lib/sanitizer_common/*.S"`, it means `*.inc.S`
- Add `-fvisibility=hidden`
Bazel doesn't add `-gline-tables-only` by default. Add flags to CMake side to align the build to Bazel.
- `-DCOMPILER_RT_HAS_G_FLAG=OFF`
- `-DCOMPILER_RT_HAS_GLINE_TABLES_ONLY_FLAG=OFF`
[libc++] std::byteswap support for _BitInt(N) (#196512)
Add a byte-reversal loop fallback for `std::byteswap` when `sizeof(T) >
16`,
so the function works for `_BitInt(N)` with `N > 128` and any future
wider
integer type. Without it, those calls hit `static_assert(sizeof(_Tp) ==
0)`
and fail to compile.
Reject `_BitInt(N)` where `N` is not a multiple of `CHAR_BIT`. The
existing
`__builtin_bswap{16,32,64,128}` paths swap the storage representation
including padding bits, and the resulting value's meaning is
unspecified.
A new `static_assert` catches that case and reports it. Size-1 types are
exempt from the check, since no bytes move there.
Part of the [_BitInt(N) libc++
[6 lines not shown]
Handle sections that specify alignment as 0 when loading an ELF interpreter
(i.e. ld.so). Since the smallest possible alignment actually is a the
page size just start with that and only increase it if a larger alignment
is requested. Also reject interpreters without loadable segments, just
like we did for ld.so a few weeks ago.
Distilled from a report by Andrew Griffiths.
ok jsg@, deraadt@
[Clang][test] Fix leading slash (#200549)
A reviewer in #200012 required checking for a leading (back-)slash to
the test despite none of the other tests doing so. Turns out, the slash
isn't there if the driver is unable to resolve the full path to the
linker. Remove the leading slash from the test.
Fixes reported buildbot failures:
* clang-solaris11-sparcv9
* clang-solaris11-amd64