In preparation for the deprecation of `stdenv.isX`.
These shorthands are not conducive to cross-compilation because they
hide the platforms.
Darwin might get cross-compilation for which the continued usage of `stdenv.isDarwin` will get in the way
One example of why this is bad and especially affects compiler packages
https://www.github.com/NixOS/nixpkgs/pull/343059
There are too many files to go through manually but a treewide should
get users thinking when they see a `hostPlatform.isX` in a place where it
doesn't make sense.
```
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv.is" "stdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv'.is" "stdenv'.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "clangStdenv.is" "clangStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "gccStdenv.is" "gccStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenvNoCC.is" "stdenvNoCC.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "inherit (stdenv) is" "inherit (stdenv.hostPlatform) is"
fd --type f "\.nix" | xargs sd --fixed-strings "buildStdenv.is" "buildStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "effectiveStdenv.is" "effectiveStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "originalStdenv.is" "originalStdenv.hostPlatform.is"
```
add header stdlib.h so pthread detection doesn't fail do to a missing
function prototype for exit.
```
configure:21863: clang -o conftest -O3 -D_GNU_SOURCE -D_REENTRANT
conftest.c >&5
conftest.c:52:2: error: call to undeclared library function 'exit' with
type 'void (int) __attribute__((noreturn))'; ISO C99 and later do not
support implicit function declarations [-Wimplicit-function-declaration]
52 | exit (
| ^
conftest.c:52:2: note: include the header <stdlib.h> or explicitly
provide a declaration for 'exit'
```
the configure program fails to compile due to using exit without a
function prototype. the fix should be to patch the configure script.
This reverts commit 227afde6d8.
Both `_spin_lock_try` and `_spin_unlock` are private and deprecated
APIs, which are not exported by any headers in the SDK. The build fails
because the configure script does not define the functions before
calling them, which is treated as error by clang 16.
This patch replaces use of those APIs with `os_unfair_lock`, which is
the recommended replacement per the deprecation messages.
The configure scripts frequently use `main` returning an implicit `int`,
which causes spurious failures when CC is clang 16+. This is fixed by
patching the provided macros and regenerating the scripts with
autoreconfHook, though it requires some manual processing (see below).
The upstream `configure.ac` is written in such a way that it requires
fixups and post-processing.
* Fixups are required because the original build process just cats the
macros together into one file. When `aclocal` is run, it does not pick
up all of them. This is worked around by catting the missing macros to
a file that is picked up by autoreconfHook.
* Post-processing is required to populate the version information. This
is done in a subshell to avoid polluting the environment with the
contents of `RELEASE`. Otherwise, the build will fail because the
version C macros it expects will not be defined.
* treewide: http -> https sources
This updates the source urls of all top-level packages from http to
https where possible.
* buildtorrent: fix url and tab -> spaces
* pkgs: refactor needless quoting of homepage meta attribute
A lot of packages are needlessly quoting the homepage meta attribute
(about 1400, 22%), this commit refactors all of those instances.
* pkgs: Fixing some links that were wrongfully unquoted in the previous
commit
* Fixed some instances
The following parameters are now available:
* hardeningDisable
To disable specific hardening flags
* hardeningEnable
To enable specific hardening flags
Only the cc-wrapper supports this right now, but these may be reused by
other wrappers, builders or setup hooks.
cc-wrapper supports the following flags:
* fortify
* stackprotector
* pie (disabled by default)
* pic
* strictoverflow
* format
* relro
* bindnow
Currently, the berkeley databases resuses a lot of the same code for the
expressions of each version. This consolidates all of the build routines
similar to that of the linux kernel.
This patch also adds version 6 of BDB.