Revert "[libc++] Build GoogleBenchmark directly from Lit" (#225620)
Reverts llvm/llvm-project#224192
The original PR introduce implict dependency on cmake from path. Further
more, the cmake invocation from googlebenchmark.py didn't inherit
CMAKE_MAKE_PROGRAM and cmake generator flags from the parent LLVM build,
causing implicit dependency on make. It causes test failures on systems
that do not have these installed or config in their default path.
[clang][bytecode] Add test for variadic inherited constructor calls (#225611)
Fixes #158529
Calling a variadic constructor through a `using` declaration used to hit
`assert(false && "Can't get arguments from that expression type")` in
`cleanupAfterFunctionCall`. The call site is a
`CXXInheritedCtorInitExpr`, and the cleanup only knew how to count
variadic arguments from a `CallExpr` or `CXXConstructExpr`. A single
level of `using` crashed the same way, the second level in the
reproducer just adds a frame.
This was fixed as a side effect of #207393, which now takes the variadic
size from the frame instead of the call expression. Adding the
reproducer plus a few value checks (single and double level, mixed
vararg types, inside a constexpr function) so it stays fixed.
[libc] Remove cross-entrypoint dependencies from pthread_create (#225383)
pthread_create was previously calling public entrypoints
(pthread_attr_init, pthread_attr_destroy, pthread_attr_getstack,
pthread_attr_getguardsize, pthread_attr_getdetachstate), which violates
the rule against internal cross-entrypoint dependencies.
To fix this, I create an internal header (src/pthread/pthread_attr.h)
defining DEFAULT_PTHREAD_ATTR, modeled after DEFAULT_MUTEXATTR in the
mutex code.
pthread_create now defaults to &DEFAULT_PTHREAD_ATTR when the attr
pointer is null, and accesses the struct members directly instead of
going through getter functions. This also makes it clear that getting
the values cannot fail. I also update pthread_attr_init to reuse
DEFAULT_PTHREAD_ATTR to avoid duplicating the default values.
While in there, update the includes to use proxy headers instead of
including <pthread.h> directly, and drop the dependency on errno since
[2 lines not shown]
net/firewall-legacy: also add ACLs where possible
Menu registrations remain in core and can be deleted when the
plugin goes away. Same is true for the ACL pattern for the
page firewall_rules.php which is anchored in core because it
is being shared with the MVC framework.
[VPlan] Inline VPInsertPoint::insert. NFC (#225468)
Split off from https://github.com/llvm/llvm-project/pull/213900
This avoids the templating since the return value of wasn't used.
I've also taken the liberty of renaming Point->Iterator since
VPInsertPoint::getPoint is a bit confusing
firewall: outbound NAT moves to legacy plugin
Rules still work, but not visible from DNAT. Migration assistant
will know that these still exist. Will be documented a bit but
low risk move in general.
NAS-144024 / 27.0.0-BETA.1 / Fix zettarepl crash (#19837)
`die_with_parent` makes the `fork`ed process die with the parent
_thread_. Sometimes, when under load, zettarepl was started from a
temporary IO thread pool thread, and was killed when that thread was
disposed.
[CGVTT] Fix indentation (NFC) (#225621)
The indentation in this entire code block was off-by-one, which
incremental clang-format can't handle, so reformat the whole
section.
[X86] Fold FMSUBADD into VFCMULC for fp16 complex conjugate multiply (#224533)
We reuse isCFMulFromFMSUBADD from #222896 to fold vfmsubadd into vfcmulc.
As a result using this pattern-match in combineFaddCFmul becomes
redundant as it (c += a * ~b) still becomes vfcmaddcph through the
existing fadd + vfcmulc combine.
[TableGen] Avoid deprecated-enum-enum-conversion C++20 warnings; NFC (#218909)
The bitwise OR of different enum types resulted in many C++20
deprecation warnings in the generated option tables:
warning: bitwise operation between different enumeration types
‘llvm::opt::DriverVisibility’ and
‘clang::options::ClangVisibility’ is deprecated
[-Wdeprecated-enum-enum-conversion]
Fix by emitting casts to `unsigned`, matching the types of the
corresponding fields in `OptTable::Info`.
Require a matching password secret seed to upload a configuration
## Context
Support asked that we stop accepting a configuration that arrives without its password secret seed. Such a restore cannot decrypt anything it contains, so middleware generates a fresh (wrong) seed and wipes everything that then fails validation — UPS and email credentials, directory services config, cloud and keychain credentials, VM and container device attributes, SMB user flags. That partial restore is never what anyone actually wants.
## Solution
- **Export the seed by default.** `secretseed` defaults to true in the current API version only; older versions keep the default they shipped with. An archive is the only way to carry two files, so the default `config.save` now returns one rather than a bare database.
- **Refuse an upload that cannot decrypt its own database.** The seed has to be present, `stg_pwenc_check` has to be readable, and the seed has to decrypt it, all before anything on this system is replaced. There is deliberately no tolerant path: that field has been present and non-null since 9.3, older than anything alembic can still migrate.
- **Send the uploaded database to the standby last.** The file list was built in directory iteration order, so a transfer that failed part way through could leave the peer holding a database with no seed beside it, which it would apply at its next boot.
`handle_db_upload_path` still copes with a seedless database on purpose: the supported route into it is gone, but out-of-band staging into /data/uploaded.db is not.
[orc-rt] Fix missing #include <deque> in Socket CA. (#225608)
Add missing #include <deque> to SimpleRemoteCAOverSocket.cpp to fix
compile errors on Linux.