This allows templates to override do_build and not have to create the
build subdirectory used as TMPDIR in do_install; failure to create this
directory will cause pip to use (and pollute) /tmp in the masterdir.
this introduces a new build-style void-cross, which can be used
to write system crosstoolchain templates; this is to reduce the
amount of maintenance, resolve existing problems with the cross
toolchain templates and remove repeated code
This allows the build system to detect itself whether it should use
certain features, instead of defaulting to (potentially bad) enabled
status.
Features that aren't detected properly, be it because false positives or
negatives, should be explicitly called out in the templates.
meson 0.54 now honors _FOR_BUILD env vars, and we don't have to set CC
and friends to the host system vars. Setting PKG_CONFIG_FOR_BUILD is
needed since otherwise it would pickup our cross wrapper
Reason: https://gitlab.kitware.com/cmake/cmake/issues/19590
Our workaround within cmake is not sufficient as it does not
address the issue fully and things still break sometimes. So
work around this in the build-style for the time being (and
drop the cmake patch).
Once this is fixed upstream (probably needs special casing
for the -pipe flag and strip it during compile tests) we
can drop this.
Without --locked, cargo ignores the Cargo.lock file during install
and rebuilds the crate with updated dependencies.
This wastes time and makes builds unreproducable.
This forces all haskell-stack build-style using templates to use
the system ghc and never download any binary distributions even
if the version does not match. This is usually fine as long as
the stackage used for the template is recent enough. If it's
not, it should probably be bumped anyway.
This also enables stack to work on all platforms, even those for
which stack does not offer any binary ghc downloads, as long as
the system ghc is provided, e.g. for ppc64le.
ppc is the correct name which cmake reports in a native ppc32
environment, therefore the cross toolchain definition is wrong.
Closes: #12061 [via git-merge-pr]
Signed-off-by: Jürgen Buchmüller <pullmoll@t-online.de>
This reverts commit 6638dc5526.
Setting RelWithDebInfo can cause issues since cmake macros often handle
only Release or Debug build but not RelWithDebInf which might cause
issues https://github.com/void-linux/void-packages/pull/10948
It is advised to set -DCMAKE_BUILD_TYPE=RelWithDebInfo manually in
packages that ignore our CFLAGS or patch them to use them
closes#10948
Waf has a utility function ('lib64' in waflib/Utils.py) which
either returns an empty string or '64' depending on if either of
the paths '/usr/lib64' or '/usr/local/lib64' exist. Then, the
build system itself decides its default LIBDIR to be either
/usr/lib or /usr/lib64 depending on the result of that function,
except when libdir is passed explicitly.
We don't allow lib64 in our packages. We do have the /usr/lib64
path as that is a symlink. Therefore, do not ever allow waf to
configure the path that way.
This adds the build profiles for ppc64 targets as well as
modifications in other parts of the infra.
These targets are supported:
- ppc64le (glibc little endian elfv2)
- ppc64le-musl (musl little endian)
- ppc64-musl (musl big endian)
ELFv1 targets are explicitly not supported at this point.
Big endian musl supports ppc 970 or newer, while little endian
targets are set to a generic powerpc64le which effectively means
POWER8 and newer. Tuning is always set for POWER9, which is the
most likely target hardware. We also make sure AltiVec is always
on, because it is supported on all hardware we target.
[ci skip]
Adds support for Go modules by detecting a go.mod file and, if
available, using it. In addition, to continue supporting vendoring (and
avoid the need for git on all module builds), if a package includes
a vendor directory, the module mode will switch to vendor mode if not
already set. This will use vendored source code for dependencies
instead of downloading that code again using the descriptions under
go.mod.
go_mod_mode=vendor also skips the go.sum check because nothing is
downloaded that isn't already verified, so this fixes packages with
vendored code that have checksum mismatches due to Go 1.11.4 module
checksum changes.
[ci skip]
Closes: #6036 [via git-merge-pr]