Commit graph

16 commits

Author SHA1 Message Date
fanquake
398754e70b
depends: target Windows 10 when building for mingw-w64 2024-11-08 13:32:37 +00:00
laanwj
ae56b3230b depends: For mingw cross compile use -gcc-posix to prevent library conflict
CMake parses some paths from the spec of the C compiler, assuming it
will be the linker, resulting in the link to end up with
`-L/usr/lib/gcc/x86_64-w64-mingw32/12-win32` on debian bookworm if both
-win32 and -posix variants are installed, and -win32 is the default
alternative.

This results in the wrong C++ library being linked, missing
std::threads::hardware_concurrency and other threading functions.

To fix this, use the -posix variant of gcc as well when available. This
fixes a regression compared to autotools, where this scenario worked.
2024-10-01 19:46:27 +02:00
Hennadii Stepanov
91a799247d
depends: Add host-specific cmake_system_version variables 2024-08-16 21:19:10 +01:00
Hennadii Stepanov
9b31209b4c
depends: Rename cmake_system -> cmake_system_name 2024-08-16 21:19:10 +01:00
fanquake
eef51afc6a
depends: add -g to DEBUG=1 flags 2024-04-02 17:12:24 +01:00
fanquake
2d1b1c7dae
build: remove --enable-lto
This has outlived its usefulness, doesn't gel well with
newer compilers & `-flto` related options, i.e thin vs full, or `=auto`,
and having `-flto` as the only option means that sometimes this just
needs to be worked around, i.e in oss-fuzz:
https://github.com/google/oss-fuzz/blob/master/projects/bitcoin-core/build.sh.

While it was convenient when `-flto` was newer, support for `-flto` is now
in all compilers we use, and there's also no-longer any real need
for us to treat `-flto` different to any other optimization option.

Remove it, to remove build complexity, and so there's no need
to port a similar option to CMake.

Note that the LTO option remains in depends, because we still a way to
build packages that have LTO specific patches/options.

If we decide to merge this, I'll follow up downstream in oss-fuzz first,
to make sure we don't break the build.
2024-01-05 15:17:50 +00:00
fanquake
658685af93
depends: default to using GCC tool wrappers (with GCC)
This improves support for LTO by using gcc wrappers for ar, nm, ranlib,
that correctly setup plugin arguments for LTO.

Other HOSTS are using clang.
2022-07-18 17:13:55 +01:00
fanquake
f7595f1354
build: add and use CXX_STANDARD in depends 2022-06-16 17:01:05 +01:00
fanquake
7e7b3e42fa
build: add and use C_STANDARD in depends 2022-06-16 16:59:05 +01:00
fanquake
094772656d
build: support LTO in depends
No Qt for now.
2022-06-14 12:08:27 +01:00
Hennadii Stepanov
ff4a38a327
build: Fix configuring depends with cmake 2022-02-21 16:13:03 +02:00
Hennadii Stepanov
148b33cf72
build: Replace which command with command -v
This change made in a way that is compatible with GNU Make versions
older than 4.3.
2022-01-31 22:30:00 +00:00
Hennadii Stepanov
f09ed92be1
build: Try posix-specific CXX first for mingw32 host 2021-06-02 18:04:24 +03:00
Russell Yanofsky
603fd6a2e7 depends: add MULTIPROCESS depends option
Builds required packages and passes --enable-multiprocess option to bitcoin build
2020-05-12 09:47:06 -04:00
Cory Fields
f397304002 depends: add debug/release flags for linux/osx/win
Linux and mingw enable libstdc++ debugging for extra runtime checks. OSX
doesn't play nice, so don't enable it there.
2014-09-25 14:56:26 -04:00
Cory Fields
1dec09b341 depends: add shared dependency builder
See the README's in depends for documentation
2014-08-08 15:10:46 -04:00