This PR gets rid of the all patches for ZeroMQ:
- the Mingw-w64 5.0 (Ubuntu 18.04 bionic) is used to build the Windows binaries
- it is safe to use
pthread_setname_npsince #17538 when the minimalglibcversion is set to 2.17; see: #11986 (comment)
This PR gets rid of the all patches for ZeroMQ:
pthread_setname_np since #17538 when the minimal glibc version is set to 2.17; see: #11986 (comment)
The Mingw-w64 5.0 (Ubuntu 18.04 Bionic) is used to build the Windows
binaries now.
It is safe to use pthread_setname_np since #17538 when the minimal glibc
version is set to 2.17.
Concept ACK.
Concept ACK: less is more
Concept ACK
+ make -j1 -C /home/ubuntu/build/bitcoin/depends HOST=x86_64-linux-gnu
make: Entering directory '/home/ubuntu/build/bitcoin/depends'
sha256sum: /home/ubuntu/build/bitcoin/depends/patches/zeromq/0001-fix-build-with-older-mingw64.patch: No such file or directory
sha256sum: /home/ubuntu/build/bitcoin/depends/patches/zeromq/0002-disable-pthread_set_name_np.patch: No such file or directory
Extracting zeromq...
/home/ubuntu/cache/common/zeromq-4.3.1.tar.gz: OK
Preprocessing zeromq...
/bin/sh: 1: cd: can't cd to /home/ubuntu/build/bitcoin/depends/patches/zeromq
cp: cannot stat '0001-fix-build-with-older-mingw64.patch': No such file or directory
/bin/sh: 1: cd: can't cd to /home/ubuntu/build/bitcoin/depends/patches/zeromq
cp: cannot stat '0002-disable-pthread_set_name_np.patch': No such file or directory
funcs.mk:251: recipe for target '/home/ubuntu/build/bitcoin/depends/work/build/x86_64-linux-gnu/zeromq/4.3.1-726059c460b/.stamp_preprocessed' failed
make: *** [/home/ubuntu/build/bitcoin/depends/work/build/x86_64-linux-gnu/zeromq/4.3.1-726059c460b/.stamp_preprocessed] Error 1
make: Leaving directory '/home/ubuntu/build/bitcoin/depends'
@MarcoFalke gitian builds were maid against 763b839fad1125320f32d69621995277aa59dd0a The current top commit is f642b49af73fedc6dc9af4ac299e4cfa80755583 Sorry.
Mind re-assigning "Needs gitian build"?
Looks like most "stable" releases of distributions have mingw-w64 > 4 as well: https://repology.org/project/mingw-w64/versions
<!--a722867cd34abeea1fadc8d60700f111-->
| File | commit 97b0687501cee77a9170f9e288755a5d268e9bd4<br>(master) | commit abea5e005a00439555a565e935b8bb759bf4c892<br>(master and this pull) |
|---|---|---|
| bitcoin-0.19.99-aarch64-linux-gnu-debug.tar.gz | 7260c91322d82300... |
96eeee3197b2a802... |
| bitcoin-0.19.99-aarch64-linux-gnu.tar.gz | be65012c3a53b578... |
89ed9a73e59ae509... |
| bitcoin-0.19.99-arm-linux-gnueabihf-debug.tar.gz | 9bac4388162dc0a8... |
d1cba91d1de7de7e... |
| bitcoin-0.19.99-arm-linux-gnueabihf.tar.gz | 9e410f69d407a61d... |
d2de09008162646d... |
| bitcoin-0.19.99-osx-unsigned.dmg | 27f65bd66efda624... |
01ea267a15c089ce... |
| bitcoin-0.19.99-osx64.tar.gz | 6a195fe8a00dbde9... |
58ca51a50fb05b77... |
| bitcoin-0.19.99-riscv64-linux-gnu-debug.tar.gz | ee932eb82f08241d... |
93ffa5223b142714... |
| bitcoin-0.19.99-riscv64-linux-gnu.tar.gz | a0d5446f6f754b99... |
e9ab91cf72f43d9a... |
| bitcoin-0.19.99-win64-debug.zip | dd039834c140ec2e... |
9b2fc3fbb51182cd... |
| bitcoin-0.19.99-win64-setup-unsigned.exe | 84de0daceca0cceb... |
e2652b38ba38d54e... |
| bitcoin-0.19.99-win64.zip | f49e4aeba287379b... |
17ab754152739284... |
| bitcoin-0.19.99-x86_64-linux-gnu-debug.tar.gz | b0516e1c6d427605... |
aa22353bde4c6ef3... |
| bitcoin-0.19.99-x86_64-linux-gnu.tar.gz | 971606878e2a293e... |
3a9f7820a8402b04... |
| bitcoin-0.19.99.tar.gz | c7400029d295c415... |
2b3d2790fef1d7b7... |
| bitcoin-core-linux-0.20-res.yml | 5ea8b7b5ad29e51c... |
61f80f344dad9349... |
| bitcoin-core-osx-0.20-res.yml | 8f4eb71802425782... |
f3a729021fb9e93d... |
| bitcoin-core-win-0.20-res.yml | 2ddb9e211fda4101... |
d06efed0b6bd0da5... |
| linux-build.log | 8b32031c6542efaa... |
77d301343b37d5a8... |
| osx-build.log | 759793b56c7053bb... |
2940d6fda70dc3c4... |
| win-build.log | 026fbb8f65312bf4... |
cdeae42f46ba7e77... |
| bitcoin-core-linux-0.20-res.yml.diff | 1d8f90ee2c13633a... |
|
| bitcoin-core-osx-0.20-res.yml.diff | 9e26de8d3df2e9d2... |
|
| bitcoin-core-win-0.20-res.yml.diff | baded43cc30bbfa0... |
|
| linux-build.log.diff | 04480144b7ad2a2e... |
|
| osx-build.log.diff | 680fe474b44745ba... |
|
| win-build.log.diff | 82d4ae24eb9a1715... |
<!--e57a25ab6845829454e8d69fc972939a-->
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
<!--174a7506f384e20aa4161008e828411d-->
Reviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.
ACK f642b49af73fedc6dc9af4ac299e4cfa80755583.
079df9609e6ed2a09949ebe5e98a179f61709801 - This is ok. As noted most distros have a much more recent version of mingw-w64 available. Also if someone is using mingw-w64 < 4 (i.e Ubuntu 14.04), at least the failure will be obvious, as zmq in depends will fail to build:
In file included from src/windows.hpp:61:0,
from src/precompiled.hpp:49,
from src/address.cpp:30:
/usr/share/mingw-w64/include/iphlpapi.h:147:5: error: 'SOCKADDR_IN6' does not name a type
SOCKADDR_IN6 Ipv6Address;
^
cc1plus: warning: unrecognized command line option "-Wno-tautological-constant-compare" [enabled by default]
cc1plus: warning: unrecognized command line option "-Wno-atomic-alignment" [enabled by default]
make[1]: *** [src/src_libzmq_la-address.lo] Error 1
However, if they are cross-compiling for Windows using 14.04, they've already got other issues to deal with. Qt doesn't build:
compiling qwindowsnativeinterface.cpp
compiling qwindowsopengltester.cpp
compiling qwin10helpers.cpp
qwin10helpers.cpp:60:37: fatal error: uiviewsettingsinterop.h: No such file or directory
# include <uiviewsettingsinterop.h>
^
compilation terminated.
compiling qwindowsclipboard.cpp
compiling qwindowsdrag.cpp
compiling qwindowstabletsupport.cpp
make[5]: *** [.obj/release/qwin10helpers.o] Error 1
and even if you build depends, skipping QT and zeromq, bitcoind doesn't compile, due to the inclusion of the <codecvt> header:
CXX libbitcoin_common_a-netbase.o
CXX libbitcoin_common_a-net_permissions.o
netbase.cpp:19:19: fatal error: codecvt: No such file or directory
#include <codecvt>
^
compilation terminated.
CXX libbitcoin_common_a-outputtype.o
CXX policy/libbitcoin_common_a-feerate.o
make[2]: *** [libbitcoin_common_a-netbase.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/bitcoin/src'
f642b49af73fedc6dc9af4ac299e4cfa80755583 - as mentioned, pthread_setname_np has been available since glibc 2.12. We now require 2.17+.
the Mingw-w64 5.0 (Ubuntu 18.04 bionic) is used to build the Windows binaries
I do want to mention that this by itself isn't sufficient justification for dropping patches, as the version of Ubuntu we use to build releases (which can be quite recent) isn't the only OS we have to worry about supporting.