It had been neglected for a long time, and the enabled features were
outdated, and plenty of now common crates were missing.
This refresh required ad-hoc, flawed scripts to reach that updated
Cargo.toml. Eventually we'll want this refresh to be automated, but
the existing tools don't quite work for our use case just yet. Rather
than waiting that such a state is reached, go ahead with this manual
update which improves a lot compared to the status quo.
Differential Revision: https://phabricator.services.mozilla.com/D180911
First, instead of using a path, use a version, which is more convenient
(via a patch in the top-level Cargo.toml).
Second, we make the build system itself enforce its presence for any
crate that is hooked to the build system as a program or library.
Finally, for each crate depending on the workspace hack, we add a
feature named after it, and make the build system enforce that the
feature is set. For now, this remains unused, but the end goal is to
have each of those features enable the dependencies each of these
crates need, so that if crate A and B need dependency D, but crate C
doesn't, building crate C doesn't build D.
Differential Revision: https://phabricator.services.mozilla.com/D180910
Allow using NSS for checking MAR signatures also in platforms where
OS-native APIs are used by default, i.e., macOS and Windows.
Differential Revision: https://phabricator.services.mozilla.com/D177743
This makes a few changes to clarify messaging:
* Documentation now mentions cargo vet and says that all vendored crates must be audited.
* A message is printed when vendoring fails, making it clear that no new crates were vendored.
Differential Revision: https://phabricator.services.mozilla.com/D180712
There was a syntax error introduced in bug 1796380 that removed the flag
entirely. In practice, it didn't make a difference for us because clang
now defaults to PIE, but it can make a difference in environments where
the compiler is not using such a default.
However, on both Darwin and WASI, clang complains the flag is unused, so
we have to do something about it.
Differential Revision: https://phabricator.services.mozilla.com/D180279
In practice, the result looks better than with clap's wrap_help
disabled, and, as a matter of personal preference, looks better to
me than when using the actual terminal size.
This will allow to upgrade clap to a more recent version without
pulling in windows-sys.
Differential Revision: https://phabricator.services.mozilla.com/D179748
It's only used by glean in code that is not actually used. It allows to
remove the only use of dashmap, which is a rather complex crate.
Differential Revision: https://phabricator.services.mozilla.com/D179747
Clang 17 made a change that made it an error to undefine _FORTIFY_SOURCE
on mac, because it's defined as a builtin when ASAN is enabled.
Defining it as 0 has the same effect of disabling it, but avoids the
error.
Differential Revision: https://phabricator.services.mozilla.com/D179398
We have less constraints on the minimum supported clang-cl version, and
it would unlock C++17 inline variables (which had a bug on Windows
targets in clang up-to 8.x).
Differential Revision: https://phabricator.services.mozilla.com/D179037
The situation is confusing enough.
Eventually, we'll want to have TARGET_FOO mean the same as target.foo,
but let's start with the easy one.
Differential Revision: https://phabricator.services.mozilla.com/D179178
clang 17 is making void* deref a non-disablable error, and this tests
relies on the deref "error" being disablable. Arranging things to make
it not deref makes not different from test_ref_9, so remove it.
Differential Revision: https://phabricator.services.mozilla.com/D179031