[debuginfod] Abort cached file stream if request fails (#232038)
When an HTTP request fails while it already received some data, the
cached file stream is never committed. Destroying it in that state
raises a fatal error, crashing the program (see #184728).
This PR adds an `abort` method that should be called in this situation
before destroying the stream. For the default implementation, only the
output stream is closed. For the `CacheStream` in `llvm::localCache`,
the temporary file is discarded as well.
The test is based on David's reproducer. Since WinHttp seems to discard
the content-length header, I switched to timing out the response
instead.
Fixes #184728. This is still a bug for the symstore locator in lldb, but
I'll fix that in a followup.
fix: disable test partial-response.test on system-windows
[flang][OpenMP] Ignore DECLARE_SIMD and warn about missing implementa… (#232712)
…tion
Currently DECLARE_SIMD emits a "not yet implemented" error in the MLIR
to LLVM IR translation.
DECLARE_SIMD is a hint to the compiler and ignoring it is technically
speaking a conforming implementation (although obviously not desirable).
Do not abort compilation when DECLARE_SIMD is encountered, but emit a
warning that it's currently ignored.
(cherry picked from commit 5ca62fdee645ec253263e41a45fe626c6b66be22)
Fixes: https://github.com/llvm/llvm-project/issues/234108
[lldb] Preserve the siginfo when running syscalls in the inferior (#234153)
NativeProcessLinux::Syscall (used to implement the _M and _m packets)
runs a syscall instruction in the current thread. It restores the
registers and memory afterwards, but not the siginfo, which ends up
describing the SIGTRAP from the syscall instead of the signal that the
thread originally stopped with.
lldb allocates memory quite often, even when evaluating expressions
which don't run any code in the inferior (e.g. "expr 1+1"). Afterwards,
"thread siginfo" shows the wrong data. More importantly, the inferior
doesn't get the original siginfo when lldb resumes it with the signal it
stopped with: the kernel sees that the signal does not match the
siginfo, and makes up a new one (with si_code=SI_USER and the pid of
lldb-server). This means that e.g. a SIGSEGV handler does not get the
fault address.
This patch makes Syscall save the siginfo before running the syscall,
and restore it (with PTRACE_SETSIGINFO) afterwards.
Assisted-by: Claude
[flang] Fix wrong result for exponentiation when denormal is expected (#205262)
Fixes #192639
Root cause:
Negative integer exponents used exponentiation-by-squaring that divides
by successively squared bases; for |base| > 1 intermediates overflow
before the final divide.
Fix
- Constant folding: After the direct path, retry with (1/base)^|n| only
when overflow was flagged, so ordinary negative powers stay accurate and
extreme cases still get subnormals. Handle INT_MIN via the original
exponent on retry (forceMultiply).
- Runtime FPowI: Same idea—invert after base^|n|; retry from 1/base only
when the quotient is exactly zero and base != 0, avoiding unnecessary
reciprocal-first rounding loss.
Scope - What changed
[7 lines not shown]
[lld-macho] Build the export trie by edges, not bytes (NFC)
Emit singleton suffixes directly and scan common prefixes in one pass,
avoiding repeated byte-wise partitioning. Preserve radix traversal,
node allocation order, and terminal encoding.
On a Ryzen 7 7700, a rust-analyzer debug link with 248,607 exports
changes from 2079 to 1948 ms at one thread and 1269 to 1185 ms at
eight threads (median wall times over four interleaved pairs).
nuageinit: fix support on OpenStack
Change added in 90a7728cd8905cd26b90d06f7873df8bad43ae9a contained a
lot of bugs:
- If all network interfaces correctly respond to DHCP, then pwait was
waiting forever.
- If there was more than 1 interface, then "cat
/tmp/ephemeraldhcp.*.pid" joined pid numbers into one long string.
- "for iface in $left; do kill -15 $left; done" is not using $iface.
Tested by: adam.mizerski at ovhcloud.com
Sponsored by: OVHcloud
Pull Request: https://github.com/freebsd/freebsd-src/pull/2436
(cherry picked from commit 13d5f20e5b9ecb42ecf7de4e98d5af0bd5d63c82)
[libc][regex] Add Kleene star and canonical AST normalisation (#233980)
Add ExprKind::Star, ExprPool::make_star, and the Kleene star Brzozowski
derivative rule D_c(R*) = D_c(R) . R* to the internal regular expression
engine. To guarantee that derivative state spaces stabilise into a
finite set of canonical AST nodes during Kleene star evaluation, enforce
right-associative canonical form in ExprPool::make_concat and
right-associated, ascending-ExprId, deduplicated canonical form in
ExprPool::make_alt.
Update parse_ere to fold concatenated atoms right-to-left in fixed
64-atom stack chunks so that right-associative concatenation stays O(1)
per step without creating orphaned intermediate prefix nodes. Wire
trailing '*' quantifiers on repeatable atoms and return REG_BADRPT for
unpreceded, post-anchor, or doubled repetition operators.
External compliance suites: Henry Spencer suite passes 71/456 (+19)
boolean/error cases and 29/456 (+13) full-position cases; AT&T testregex
passes 54/395 (+14) ERE boolean/error cases and 54/465 (+14) overall
[2 lines not shown]
LinuxKPI: Add dma_length field to struct scatterlist
On Linux `dma_length` field of `struct scatterlist` is present on the
arches where DMA mapping code is able to coalesce adjacent segments
of physical address space. It contains total length of coalesced
segments while `length` field contains non-coalesced length of each
segment. On other arches `dma_length` is aliased to `length` field with
`sg_dma_len` macro. As FreeBSD does not merge scatterlist segments it
do not have `dma_length` field. It is appered that at least i915kms
driver depends on existence of `dma_length` field.
Add the field and disable it by default. To enable add to Makefile
.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" || \\
${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "powerpc"
CFLAGS+= -DCONFIG_NEED_SG_DMA_LENGTH
.endif
Reported by: Ryan Fahy
[6 lines not shown]
linuxkpi: Fix cancel_delayed_work_sync() return value
Align behavior between the Linux cancel_delayed_work_sync()
function return value and the LinuxKPI equivalent.
Linux cancel_delayed_work_sync() returns whether delayed
work was pending, even if canceled before executing. This
includes the case where the timer fired and work was queued
but the callback had not yet started.
The LinuxKPI version used the return value from taskqueue_cancel()
as the return value of the public facing API, which inverted the
behavior of two cases, violating the Linux API contract.
Queued work which was removed before running would return false, and
work whose callback was already executing would return true.
Track the taskqueue pending count separately from the
taskqueue_cancel() return value.
Use the pending count for the public return value.
[13 lines not shown]
hid: Add Sony DualSense gamepad driver
Add a driver for the Sony PS5 DualSense controller (054c:0ce6)
providing gamepad input via evdev, lightbar RGB LED control, and
player indicator LEDs through sysctl.
Signed-off-by: Christos Longros <chris.longros at gmail.com>
Reviewed by: ziaee, wulf
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D56345
(cherry picked from commit d8e315ba975163a2050dd3d3e193f2472dbc2478)
SystemZ: Replace AEXT128/ZEXT128/PAIR128 pseudos with patterns (#234297)
These pseudos only existed because GR128 values were untyped, so the
REG_SEQUENCE they expand to could not be written as a pattern. Now that
GR128 holds v2i64, select the extensions with REG_SEQUENCE output
patterns, and build GR128 pairs with a PAIR128 target node instead of a
custom inserter.
---------
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
SystemZ: Make v2i64 legal on subtargets without vector support (#234296)
Without the vector feature, the GR128 even/odd register pairs were
modeled with MVT::Untyped, since no 128-bit type was legal. Use v2i64
instead, which is what the pairs functionally are.
v2i64 values can be built from and split into their halves with
subregister operations. Everything else is expanded. Loads and stores
are split into i64 halves, so they don't tie up a register
pair. Bitcasts to and from f128 use the FPR pair halves.
This takes care to avoid changing the calling convention. Vectors that
would be broken down into v2i64 are still passed as individual i64
elements. Inline assembly operands still use untyped, which is listed
first in the GR128 type list, so i128 operands are not bitcast to
v2i64.
Co-authored-by: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
SystemZ: Add baseline tests for i64 vector handling (#234295)
Make sure nothing changes in future changes. Cover the ABI of other
i64-element vector types and a range of <2 x i64> operations on a
subtarget without the vector facility.
---------
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
py-awscli: updated to 1.46.2
1.46.2
* bugfix:``credentials``: Include the web identity token in the credential cache key to prevent collisions across different tokens for the same role.
py-boto3: updated to 1.43.118
1.43.118
* api-change:``bedrock-agentcore``: [``botocore``] Adds the dimension name to evaluation results and batch evaluation summaries. For multi-dimensional LLM-as-a-Judge evaluators, each result and summary now identifies which dimension it corresponds to.
* api-change:``bedrock-agentcore-control``: [``botocore``] Adds model-based routing and fallback to AgentCore Gateway rules. Rules can match the requested model, route to a specific model, and fall back across inference targets with an optional circuit breaker. Adds multi-dimensional rating scales for AgentCore Evaluations LLM-as-a-Judge evaluators.
* api-change:``connect``: [``botocore``] Adds support for customer queryable replication errors.
* api-change:``continuum``: [``botocore``] Releasing Continuum for Code Vulnerabilities APIs for SDKs
* api-change:``ec2``: [``botocore``] AWS Transit Gateway now provides managed one-to-one NAT directly on its attachments, through integration with Regional Private NAT Gateway. Use ModifyTransitGatewayAttachmentNatConfiguration to enable NAT and configure NAT rules, and GetTransitGatewayAttachmentNatConfiguration to view them.
* api-change:``elementalinference``: [``botocore``] Elemental Inference now supports feed scheduling, letting you apply feed configuration changes at a time you choose instead of building your own automation.
* api-change:``endpoint-rules``: [``botocore``] Update endpoint-rules client to latest version
* api-change:``glue``: [``botocore``] Add support for large worker types in AWS Glue
* api-change:``ivs-realtime``: [``botocore``] Adds RevokeConnectionToken operation for Amazon IVS Real-Time Streaming.
* api-change:``kafkaconnect``: [``botocore``] Amazon MSK Connect now supports pausing and resuming connectors via the asynchronous PauseConnector and ResumeConnector APIs. Paused connectors keep their configuration and committed offsets and resume where they left off. Each call returns an operation ARN to track with DescribeConnectorOperation.
* api-change:``lambda``: [``botocore``] AWS Lambda durable functions now supports payloads up to 1 MB for checkpoints, callback completion, and error details.
* api-change:``networkmanager``: [``botocore``] AWS Cloud WAN now provides managed one-to-one NAT directly on it's core network attachments, through integration with Regional Private NAT Gateway. Use UpdateAttachmentNatConfiguration to enable NAT and configure NAT rules, and ListAttachmentNatConfigurations to view them.
* api-change:``opensearchserverless``: [``botocore``] Adds APIs to create, get, list, and cancel ingestion jobs, and to create, get, list, and delete ingestion streams, for ingesting data from Amazon S3 into OpenSearch Serverless collections.
[34 lines not shown]