[JITLink][COFF] Synthesize __imp_ IAT entries (#203906)
Adds a default COFF/x86_64 JITLink pass that synthesizes `__imp_` Import
Address Table (IAT) entries for dllimport references. This allows COFF
objects using dllimport to be JIT-linked without a hand-built import library or
a special generator.
On COFF, `__declspec(dllimport)` codegen emits indirect accesses through a named
`__imp_X` symbol (`callq *__imp_bar(%rip)`; `movq __imp_g(%rip)` for data),
with `__imp_X` left undefined. JITLink had no handling for this. The new pass —
the COFF counterpart of the ELF/Mach-O GOT builder — defines each undefined
external `__imp_X` over an 8-byte slot holding the address of `X`, and leaves `X`
as an ordinary external to be resolved normally (import library, dynamic-library
search generator, etc.). Both the call and data-access forms then resolve
indirectly through the slot.
Rather than the `GOTTableManager` pattern (anonymous entry + edge redirection),
the pass defines the *named* `__imp_X` symbol over the slot. ELF GOT references
are nameless edge kinds, so that builder must create an anonymous entry and
[14 lines not shown]
java/openjdk26: fix build on freebsd 16/aarch64
=== Output from failing command(s) repeated here ===
* For target hotspot_variant-server_libjvm_objs_os_bsd.o:
In file included from /wrkdirs/usr/ports/java/openjdk26/work-jdk/openjdk-jdk-26-35-1/src/hotspot/os/bsd/os_bsd.cpp:135:
In file included from /usr/include/sys/user.h:52:
In file included from /usr/include/vm/pmap.h:88:
In file included from /usr/include/machine/pmap.h:46:
In file included from /usr/include/sys/systm.h:46:
/usr/include/machine/cpufunc.h:35:1: error: static declaration of 'breakpoint' follows non-static declaration
35 | breakpoint(void)
| ^
/wrkdirs/usr/ports/java/openjdk26/work-jdk/openjdk-jdk-26-35-1/src/hotspot/share/utilities/breakpoint.hpp:31:17: note: previous declaration is here
31 | extern "C" void breakpoint();
| ^
1 error generated.
* For target hotspot_variant-server_libjvm_objs_os_perf_bsd.o:
In file included from /wrkdirs/usr/ports/java/openjdk26/work-jdk/openjdk-jdk-26-35-1/src/hotspot/os/bsd/os_perf_bsd.cpp:37:
In file included from /usr/include/sys/user.h:52:
[21 lines not shown]
java/openjdk25: fix build on freebsd 16/aarch64
=== Output from failing command(s) repeated here ===
* For target hotspot_variant-server_libjvm_objs_os_bsd.o:
In file included from /wrkdirs/usr/ports/java/openjdk25/work-jdk/openjdk-jdk-25.0.3-9-freebsd-1/src/hotspot/os/bsd/os_bsd.cpp:135:
In file included from /usr/include/sys/user.h:52:
In file included from /usr/include/vm/pmap.h:88:
In file included from /usr/include/machine/pmap.h:46:
In file included from /usr/include/sys/systm.h:46:
/usr/include/machine/cpufunc.h:35:1: error: static declaration of 'breakpoint' follows non-static declaration
35 | breakpoint(void)
| ^
/wrkdirs/usr/ports/java/openjdk25/work-jdk/openjdk-jdk-25.0.3-9-freebsd-1/src/hotspot/share/utilities/breakpoint.hpp:31:17: note: previous declaration is here
31 | extern "C" void breakpoint();
| ^
1 error generated.
* For target hotspot_variant-server_libjvm_objs_os_perf_bsd.o:
In file included from /wrkdirs/usr/ports/java/openjdk25/work-jdk/openjdk-jdk-25.0.3-9-freebsd-1/src/hotspot/os/bsd/os_perf_bsd.cpp:37:
In file included from /usr/include/sys/user.h:52:
[22 lines not shown]
lhasa: update to 0.6.0
pkgsrc change:
- take maintainership
Upstream changelog:
https://github.com/fragglet/lhasa/blob/v0.6.0/NEWS.md
## v0.6.0 (2026-06-17):
* This release fixes a read overflow in the -pm2- decoder, where a
specially-crafted -pm2- sequence could cause reads from beyond the
end of the `copy_decode[]` array. However, it is not believed to be
an exploitable bug so this is not a security issue. Thanks to
Yukimura / @damseleng for reporting the bug.
* Archived files with empty filenames are now skipped over during
extract so that subsequent files can be extracted properly. This
allows some files in the Aminet archive to be extracted that were
previously only partially extracted (thanks @polluks).
[2 lines not shown]
CodeGenPassBuilder: Use cl::boolOrDefault directly in CGPassBuilderOption (#204196)
Current implementation that uses std::optional<bool> captures cl::BOU_FALSE,
for example -global-isel=0, as true. Explictly setting option to 0 should be
false, forced option not set.
This could be fixed but I find it cleaner to use boolOrDefault directly and
use same logic as in TargetPassConfig.
Options EnableIPRA and EnableGlobalISelAbort are left as optional since for
them it is explicitly checked if they are set using getNumOccurrences.
boolOrDefault has encoded unset option.
ruby-nokogiri: update to 1.19.4
Upstream changelog:
https://github.com/sparklemotion/nokogiri/releases/tag/v1.19.4
v1.19.4 / 2026-06-18
Security
* [CRuby] (Low) Fixed a possible invalid memory read when XML::Node#
initialize_copy_with_args is called with an argument that is not a
Node. See GHSA-g9g8-vgvw-g3vf for more information.
* [CRuby] (Low) Fixed a possible use-after-free when an
XML::XPathContext is used after its source document has been
garbage collected. See GHSA-p67v-3w7g-wjg7 for more information.
* [CRuby] (Low) Fixed a possible use-after-free during XInclude
processing via Node#do_xinclude. See GHSA-wfpw-mmfh-qq69 for more
information.
* [CRuby] (Low) Fixed a possible use-after-free when Document#root=
[21 lines not shown]
mvc: guard BaseField::setNodes() against a list given for a scalar leaf (#10434)
setNodes() rejects a non-array given for a container node, but the leaf branch passed any value straight to setValue(). Posting a JSON array for a scalar/AsList field therefore reached field setters that assume a string, e.g. NetworkField::setValue() does strtolower() on it. producing a fatal "TypeError: strtolower(): array given" and an uncontrolled 500.
Mirror the container guard: throw an Exception so a mis-typed request yields a controlled error with a message for the log instead of a crash.
[libc++][test] Migrate _BitInt probe to __BITINT_MAXWIDTH__ and fix latent test bugs (#203876)
`libcxx` tests gate `_BitInt` blocks on `TEST_HAS_EXTENSION(bit_int)`,
which is not a recognized Clang extension and returns 0 in every
language mode. The blocks have been compiling as dead code, hiding
latent bugs across 23 files.
Migrate to a `TEST_HAS_BITINT` helper backed by the standard
`__BITINT_MAXWIDTH__`. The latent bugs the activation surfaces are fixed
in the same commit:
- overflow-safe `min`;
- post-P4052R0 saturating-arithmetic renames plus a
`clang-21`/`apple-clang-21` skip for `saturating.bitint.pass.cpp` (Clang
21 asserts in constexpr eval on non-byte-aligned `_BitInt`);
- an `intcmp` syntax fix;
- `byteswap.verify` directive tightening;
- a missing `<climits>` include in `byteswap.pass` (only visible under
`-fmodules`);
- C++03-compatible `static_assert` form in `digits10`; gating
[13 lines not shown]
[clang][bytecode] Check const writes more thorougly (#204529)
We used to only have a list of blocks under construction, but now we
have a list of pointers, which gives us more information.
Use this new list to diagnose a case we couldn't previously diagnose.
The test case is from `constant-expression-cxx14.cpp` and shows that a
write to a const member is invalid, even if the parent object is being
constructed right now.