NAS-143453 / 26.0.0 / Give S3 object ownership its own key (by anodos325) (#19660)
Initially, `permissions_model` determined whether the permissions should
attempt to be compatible with other processes and the S3 ownership model
(AWS-style per-bucket Object Ownership). This commit moves the object
ownership question into its own API field for bckets. It becomes
object_ownership, defaulting to BUCKET_OWNER_ENFORCED, and the model
keeps S3 and MULTIPROTOCOL alone. A MULTIPROTOCOL row folds to
OBJECT_WRITER, as the S3 service does with it.
S3_BUCKET_OWNER_ENFORCED stays spellable and stores as the pair it
always meant. It is undocumented and goes with its last consumer.
test_boto3_roundtrip no longer expects a POSIX refusal on an S3 bucket:
that model ignores the filesystem permissions entirely.
Original PR: https://github.com/truenas/middleware/pull/19658
---------
Co-authored-by: Andrew Walker <andrew.walker at truenas.com>
[AMDGPU] Update REV Opcode DPP Combine test to not use True16
DPP is not implemented for VGPR16 operands, so it should be disabled to allow verifying opcodes that would use the still work
[AMDGPU] Fix invalid 64-bit DPP formed from folding a 32-bit DPP mov
GCNDPPCombine already rejects 64-bit DPP when the DPP move itself is
64-bit, but a 32-bit move folded into a source of a 64-bit instruction
was not checked. On targets without FeatureDPALU_DPP this formed
V_LSHLREV_B64_e64_dpp, whose tied old operand got the move's 32-bit
register class instead of the 64-bit destination class.
[IR][DirectX] Drop IsTokenLike from `dx.*` target types (#222130)
We made the DirectX resource types "token-like" a while ago in order to
prevent transforms from moving them into PHIs and the like in ways that
made determining their provenance more difficult. However, there are
patterns in HLSL that can generate the problematic IR directly and we've
since implemented logic in `DXILResourceAccess` to handle such cases
anyway. Because of this, we aren't really getting any benefit from the
types being `IsTokenLike`, and in some cases we're working with
intermediate IR that doesn't actually pass the verifier.
Drop `IsTokenLike` from the `dx.*` types since it's no longer correct or
useful. I've updated the tests to use `amdgpu.stridemark` instead, and
slightly abused `llvm.ssa.copy` in order to manufacture SSA values of
that type. I had to drop the test that actually needed a load from a
value depending on the token-like type, as there just isn't really a way
for that to come up without the resource types.
Give S3 object ownership its own key
permissions_model carried two questions; the second was AWS's
per-bucket S3 Object Ownership setting. It becomes object_ownership,
defaulting to BUCKET_OWNER_ENFORCED, and the model keeps S3 and
MULTIPROTOCOL alone. A MULTIPROTOCOL row folds to OBJECT_WRITER, as
the S3 service does with it.
S3_BUCKET_OWNER_ENFORCED stays spellable and stores as the pair it
always meant. It is undocumented and goes with its last consumer.
test_boto3_roundtrip no longer expects a POSIX refusal on an S3
bucket: that model ignores the filesystem permissions entirely.
(cherry picked from commit c38b809a7f97061c578ddc738e58b578be568bdb)
Fold object_ownership into the S3 service migration
The column is added where the table is created rather than altered
onto it a revision later: neither has shipped, so the pair of
migrations only asks a fresh install to make and then rewrite a
column it has no rows in.
(cherry picked from commit 6ed2575bea8296c4c8fe07c91cca95c75f15ad36)
NAS-143453 / 26.0.0-RC.1 / Give S3 object ownership its own key (#19658)
Initially, `permissions_model` determined whether the permissions should
attempt to be compatible with other processes and the S3 ownership model
(AWS-style per-bucket Object Ownership). This commit moves the object
ownership question into its own API field for bckets. It becomes
object_ownership, defaulting to BUCKET_OWNER_ENFORCED, and the model
keeps S3 and MULTIPROTOCOL alone. A MULTIPROTOCOL row folds to
OBJECT_WRITER, as the S3 service does with it.
S3_BUCKET_OWNER_ENFORCED stays spellable and stores as the pair it
always meant. It is undocumented and goes with its last consumer.
test_boto3_roundtrip no longer expects a POSIX refusal on an S3 bucket:
that model ignores the filesystem permissions entirely.
[clang][Driver][test] Specify output path in modules-driver-depscan-log.cpp (#222209)
In `clang/test/Driver/modules-driver-depscan-log.cpp`, `%clang -c` is
invoked on `%t/A.cppm` without an explicit output file (`-o`). By
default, Clang writes the resulting object file (`A.o`) to the current
working directory.
In sandboxed or hermetic test environments where the test runner
executes with a read-only working directory (e.g., Bazel, Nix, or remote
build executors), the test fails with:
```text
error: unable to open output file 'A.o': 'Permission denied'
1 error generated.
[BOLT][AArch64] Fix relocation type for `LDRSW` (#221939)
Fix the incorrect relocation type for `LDRSW`. It should be
`ELF::R_AARCH64_LDST32_ABS_LO12_NC`, but it was mistakenly set to
`ELF::R_AARCH64_LDST64_ABS_LO12_NC` in PR #196051.
[clang][flang][docs] Re-land Markdown CLI ref generator (#222147)
Reverts llvm/llvm-project#221937
Relands llvm/llvm-project#220385
This time, the migration includes flang command line reference
documentation, so the change passes `ninja docs-flang-html/man`.
Tracking issue: #201242
Assisted-By: Codex
fix: Supply the HIP SPIR-V version only for metadata emission
Fix the assertion exposed by PR #214246 under the version invariant from PR #219687. Supply OpenCL 2.0 in classic CodeGen and CIRGen without changing HIP language options or enabling OpenCL-only Sema restrictions.
Assisted-by: Codex / GPT-6
[CIR][OpenCL] Lower OpenCL language version metadata to LLVM dialect
Propagate CIR OpenCL language version module attributes as LLVM dialect named metadata before LLVM IR translation.
Assisted-by: Codex / GPT-5.6 Sol
[CIR][OpenCL] Emit OpenCL language version metadata in CIR
Emit OpenCL and C++ for OpenCL language version attributes from CIRGen. Preserve the compatible OpenCL version and the C++ for OpenCL version separately so later lowering does not infer one from the other.
Assisted-by: Codex / GPT-5.6 Sol
[AMDGPU] Do not freeze reserved registers in AMDGPUReserveWWMRegs (#222193)
Refreshing the shared RegisterClassInfo needs an up-to-date reserved set, but
freezing it into MachineRegisterInfo, as #221849 did, publishes it too early:
clearing the per-lane VGPR mask unreserves those registers, and LiveIntervals
does not extend a reserved register's unit ranges to its uses, so those uses
fail verification.
Take the set from TargetRegisterInfo instead. It is the same set, and the
register allocator still freezes it into MachineRegisterInfo itself.
AI-assisted.
[OpenMP] Reserve the main thread's warp for generic mode kernels (#218790)
In generic mode one warp of the block runs the main thread and the rest
run the
user's threads, so everything needing the team size computes
`BlockSize - WarpSize`: the device runtime's `getMaxTeamThreads`, and
the state
machine OpenMPOpt builds. The bound written into the kernel was the
program's
`thread_limit` exactly, so on gfx90a `thread_limit(4)` launched a block
of 4
threads and the team size came out as `4 - 64`. That subtraction is
unsigned, so
the runtime saw four billion workers rather than none: the parallel
region never
ran, and on current trunk the launch dies with a memory access fault.
Any
`thread_limit` below one warp was affected, so anything under 64 on a
wave64
[41 lines not shown]
Use getexecpath(3) to find the binary, and then transform the paths
to execute the other privsep processes at relative paths in libexec
with millert, ok gilles