Skip to content

Conversation

fanquake
Copy link
Member

@fanquake fanquake commented Jul 1, 2021

By explicitly setting a C standard version we avoid any potential for issues/differences in libraries that may come about due to C STD version, as well as avoid potentially being opted into newer code / features in libraries when compiler defaults change (i.e as of 11.0.0, Clang now defaults to gnu17 over gnu11).

This should be a no-op for our release builds, because it's just explicitly setting the default that is already being used. However this is relevant for anyone building depends with a newer compiler.

I found one broken __STDC_VERSION__ check in the miniupnpc header.

At the same time, add CXX_STANDARD for setting our C++ standard, and use that over setting -std=c++17 for cxx packages.

Guix builds:

@DrahtBot
Copy link
Contributor

DrahtBot commented Jul 1, 2021

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Conflicts

Reviewers, this pull request conflicts with the following ones:

  • #22552 (build: Improve depends build system robustness by hebasto)

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.

@hebasto
Copy link
Member

hebasto commented Jul 1, 2021

Concept ACK.

This should be a no-op for our release builds...

Could be verified on by-package basis with #21995.

@fanquake fanquake force-pushed the set_std_c_version_depends branch from 1021149 to b52c4ad Compare July 1, 2021 13:23
@laanwj
Copy link
Member

laanwj commented Jul 21, 2021

Concept ACK.

Would it make sense to define a global e.g. EXTRA_CFLAGS variable and use it for every package, instead of repeating this for every single one?

@tryphe
Copy link
Contributor

tryphe commented Aug 1, 2021

Concept ACK

@Zero-1729
Copy link
Contributor

Concept ACK

Would it make sense to define a global e.g. EXTRA_CFLAGS variable and use it for every package, instead of repeating this for every single one?

Is there a reason for not going this route?

@fanquake
Copy link
Member Author

I've reworked this, and based it on top of #22840.

Would it make sense to define a global e.g. EXTRA_CFLAGS variable and use it for every package, instead of repeating this for every single one?

I've added DEFAULT_C_STD and DEFAULT_CXX_STD variables to the depends makefile. Defaulting to c11 and c++17. This means the versions are set in one place, and can also be overriden if someone wants to experiment building with a different version. i.e gmake -C depends DEFAULT_CXX_STD=c++20.

@bitcoin bitcoin deleted a comment from jaysonmald35 Aug 31, 2021
fanquake added a commit that referenced this pull request Sep 2, 2021
76f031b build: fix unoptimized libraries in depends (fanquake)

Pull request description:

  We need to append-to rather than set CXXFLAGS, otherwise we loose `-O2` & `-pipe` from our defaults. Currently this results in zeromq being built without optimizations at all (or whatever the compiler would default too, essentially  always `-O0`).

  Bdb is the same, for the CXX portion of its code. C code has been built with `-O2`. Boost has actually been unaffected because it receives `-O3` from it's own build flags.

  Noticed while reworking #22380. For bdb & zeromq, I assume (haven't checked) this has been the case since #7165.

  You can inspect the effcts in bitcoind comparing a function from a unoptimised library, i.e libzmq.

  Build bitcoind with zeromq from depends (7be143a):
  ```
  gmake -C depends NO_QT=1 NO_UPNP=1 NO_NATPMP=1 NO_WALLET=1 -j9

  ./autogen.sh
  CONFIG_SITE=/path/to/share/config.site ./configure
  gmake -C src bitcoind -j9
  ```

  Find a zeromq function:
  ```bash
  nm -C src/bitcoind | rg zmq
  ...
  000000010053a7e0 T _zmq_ctx_new
  ```

  Disassemble it:
  ```bash
  lldb src/bitcoind
  disassemble -a 000000010053a7e0
  ...
  bitcoind`zmq_ctx_new:
  bitcoind[0x10053a7e0] <+0>:   pushq  %rbp
  bitcoind[0x10053a7e1] <+1>:   movq   %rsp, %rbp
  bitcoind[0x10053a7e4] <+4>:   subq   $0x50, %rsp
  bitcoind[0x10053a7e8] <+8>:   callq  0x1004b2ee0               ; zmq::initialize_network()
  bitcoind[0x10053a7ed] <+13>:  testb  $0x1, %al
  bitcoind[0x10053a7ef] <+15>:  jne    0x10053a802               ; <+34>
  bitcoind[0x10053a7f5] <+21>:  movq   $0x0, -0x8(%rbp)
  bitcoind[0x10053a7fd] <+29>:  jmp    0x10053a8e8               ; <+264>
  bitcoind[0x10053a802] <+34>:  movq   0xadab7(%rip), %rsi       ; (void *)0x0000000000000000
  bitcoind[0x10053a809] <+41>:  movl   $0x2b8, %edi              ; imm = 0x2B8
  bitcoind[0x10053a80e] <+46>:  callq  0x100556c58               ; symbol stub for: operator new(unsigned long, std::nothrow_t const&)
  bitcoind[0x10053a813] <+51>:  xorl   %ecx, %ecx
  bitcoind[0x10053a815] <+53>:  movl   %ecx, %edx
  bitcoind[0x10053a817] <+55>:  movb   $0x0, -0x19(%rbp)
  bitcoind[0x10053a81b] <+59>:  cmpq   $0x0, %rax
  bitcoind[0x10053a81f] <+63>:  movq   %rax, -0x38(%rbp)
  bitcoind[0x10053a823] <+67>:  movq   %rdx, -0x40(%rbp)
  bitcoind[0x10053a827] <+71>:  je     0x10053a858               ; <+120>
  bitcoind[0x10053a82d] <+77>:  movq   -0x38(%rbp), %rax
  bitcoind[0x10053a831] <+81>:  movq   %rax, -0x18(%rbp)
  bitcoind[0x10053a835] <+85>:  movb   $0x1, -0x19(%rbp)
  bitcoind[0x10053a839] <+89>:  movq   -0x38(%rbp), %rdi
  bitcoind[0x10053a83d] <+93>:  movq   %rax, -0x48(%rbp)
  bitcoind[0x10053a841] <+97>:  callq  0x100497aa0               ; zmq::ctx_t::ctx_t()
  bitcoind[0x10053a846] <+102>: jmp    0x10053a84b               ; <+107>
  bitcoind[0x10053a84b] <+107>: movq   -0x48(%rbp), %rax
  bitcoind[0x10053a84f] <+111>: movq   %rax, -0x40(%rbp)
  bitcoind[0x10053a853] <+115>: jmp    0x10053a858               ; <+120>
  bitcoind[0x10053a858] <+120>: movq   -0x40(%rbp), %rax
  bitcoind[0x10053a85c] <+124>: movq   %rax, -0x10(%rbp)
  bitcoind[0x10053a860] <+128>: cmpq   $0x0, -0x10(%rbp)
  bitcoind[0x10053a865] <+133>: je     0x10053a8e0               ; <+256>
  bitcoind[0x10053a86b] <+139>: movq   -0x10(%rbp), %rdi
  bitcoind[0x10053a86f] <+143>: callq  0x100497ee0               ; zmq::ctx_t::valid() const
  bitcoind[0x10053a874] <+148>: testb  $0x1, %al
  bitcoind[0x10053a876] <+150>: jne    0x10053a8db               ; <+251>
  bitcoind[0x10053a87c] <+156>: movq   -0x10(%rbp), %rax
  bitcoind[0x10053a880] <+160>: cmpq   $0x0, %rax
  bitcoind[0x10053a884] <+164>: movq   %rax, -0x50(%rbp)
  bitcoind[0x10053a888] <+168>: je     0x10053a8a3               ; <+195>
  bitcoind[0x10053a88e] <+174>: movq   -0x50(%rbp), %rdi
  bitcoind[0x10053a892] <+178>: callq  0x100497ec0               ; zmq::ctx_t::~ctx_t()
  bitcoind[0x10053a897] <+183>: movq   -0x50(%rbp), %rax
  bitcoind[0x10053a89b] <+187>: movq   %rax, %rdi
  bitcoind[0x10053a89e] <+190>: callq  0x100556c3a               ; symbol stub for: operator delete(void*)
  bitcoind[0x10053a8a3] <+195>: movq   $0x0, -0x8(%rbp)
  bitcoind[0x10053a8ab] <+203>: jmp    0x10053a8e8               ; <+264>
  bitcoind[0x10053a8b0] <+208>: movq   %rax, -0x28(%rbp)
  bitcoind[0x10053a8b4] <+212>: movl   %edx, -0x2c(%rbp)
  bitcoind[0x10053a8b7] <+215>: testb  $0x1, -0x19(%rbp)
  bitcoind[0x10053a8bb] <+219>: jne    0x10053a8c6               ; <+230>
  bitcoind[0x10053a8c1] <+225>: jmp    0x10053a8d6               ; <+246>
  bitcoind[0x10053a8c6] <+230>: movq   0xad9f3(%rip), %rsi       ; (void *)0x0000000000000000
  bitcoind[0x10053a8cd] <+237>: movq   -0x18(%rbp), %rdi
  bitcoind[0x10053a8d1] <+241>: callq  0x100556c40               ; symbol stub for: operator delete(void*, std::nothrow_t const&)
  bitcoind[0x10053a8d6] <+246>: jmp    0x10053a8f2               ; <+274>
  bitcoind[0x10053a8db] <+251>: jmp    0x10053a8e0               ; <+256>
  bitcoind[0x10053a8e0] <+256>: movq   -0x10(%rbp), %rax
  bitcoind[0x10053a8e4] <+260>: movq   %rax, -0x8(%rbp)
  bitcoind[0x10053a8e8] <+264>: movq   -0x8(%rbp), %rax
  bitcoind[0x10053a8ec] <+268>: addq   $0x50, %rsp
  bitcoind[0x10053a8f0] <+272>: popq   %rbp
  bitcoind[0x10053a8f1] <+273>: retq
  bitcoind[0x10053a8f2] <+274>: movq   -0x28(%rbp), %rdi
  bitcoind[0x10053a8f6] <+278>: callq  0x100556856               ; symbol stub for: _Unwind_Resume
  bitcoind[0x10053a8fb] <+283>: ud2
  bitcoind[0x10053a8fd] <+285>: nopl   (%rax)
  ```

  Cleanup and repeat after changing the zeromq cxxflags to be `$(package)_cxxflags+=-std=c++17`:
  ```bash
  gmake clean
  gmake -C depends NO_QT=1 NO_UPNP=1 NO_NATPMP=1 NO_WALLET=1 -j9
  gmake -C src bitcoind -j9

  nm -C src/bitcoind | rg zmq
  ...
  00000001004d5170 T _zmq_ctx_new
  ```

  Disassemble the same function which has now been built with `-O2`:
  ```bash
  lldb src/bitcoind
  disassemble -a 00000001004d5170
  ...
  bitcoind`zmq_ctx_new:
  bitcoind[0x1004d5170] <+0>:   pushq  %rbp
  bitcoind[0x1004d5171] <+1>:   movq   %rsp, %rbp
  bitcoind[0x1004d5174] <+4>:   pushq  %r14
  bitcoind[0x1004d5176] <+6>:   pushq  %rbx
  bitcoind[0x1004d5177] <+7>:   callq  0x10049cbc0               ; zmq::initialize_network()
  bitcoind[0x1004d517c] <+12>:  testb  %al, %al
  bitcoind[0x1004d517e] <+14>:  je     0x1004d51bd               ; <+77>
  bitcoind[0x1004d5180] <+16>:  movq   0xab139(%rip), %rsi       ; (void *)0x0000000000000000
  bitcoind[0x1004d5187] <+23>:  movl   $0x2b8, %edi              ; imm = 0x2B8
  bitcoind[0x1004d518c] <+28>:  callq  0x1004f0e5a               ; symbol stub for: operator new(unsigned long, std::nothrow_t const&)
  bitcoind[0x1004d5191] <+33>:  testq  %rax, %rax
  bitcoind[0x1004d5194] <+36>:  je     0x1004d51bd               ; <+77>
  bitcoind[0x1004d5196] <+38>:  movq   %rax, %rbx
  bitcoind[0x1004d5199] <+41>:  movq   %rax, %rdi
  bitcoind[0x1004d519c] <+44>:  callq  0x100493400               ; zmq::ctx_t::ctx_t()
  bitcoind[0x1004d51a1] <+49>:  movq   %rbx, %rdi
  bitcoind[0x1004d51a4] <+52>:  callq  0x1004936e0               ; zmq::ctx_t::valid() const
  bitcoind[0x1004d51a9] <+57>:  testb  %al, %al
  bitcoind[0x1004d51ab] <+59>:  jne    0x1004d51bf               ; <+79>
  bitcoind[0x1004d51ad] <+61>:  movq   %rbx, %rdi
  bitcoind[0x1004d51b0] <+64>:  callq  0x1004936d0               ; zmq::ctx_t::~ctx_t()
  bitcoind[0x1004d51b5] <+69>:  movq   %rbx, %rdi
  bitcoind[0x1004d51b8] <+72>:  callq  0x1004f0e42               ; symbol stub for: operator delete(void*)
  bitcoind[0x1004d51bd] <+77>:  xorl   %ebx, %ebx
  bitcoind[0x1004d51bf] <+79>:  movq   %rbx, %rax
  bitcoind[0x1004d51c2] <+82>:  popq   %rbx
  bitcoind[0x1004d51c3] <+83>:  popq   %r14
  bitcoind[0x1004d51c5] <+85>:  popq   %rbp
  bitcoind[0x1004d51c6] <+86>:  retq
  bitcoind[0x1004d51c7] <+87>:  movq   %rax, %r14
  bitcoind[0x1004d51ca] <+90>:  movq   0xab0ef(%rip), %rsi       ; (void *)0x0000000000000000
  bitcoind[0x1004d51d1] <+97>:  movq   %rbx, %rdi
  bitcoind[0x1004d51d4] <+100>: callq  0x1004f0e48               ; symbol stub for: operator delete(void*, std::nothrow_t const&)
  bitcoind[0x1004d51d9] <+105>: movq   %r14, %rdi
  bitcoind[0x1004d51dc] <+108>: callq  0x1004f0a6a               ; symbol stub for: _Unwind_Resume
  bitcoind[0x1004d51e1] <+113>: ud2
  bitcoind[0x1004d51e3] <+115>: nopw   %cs:(%rax,%rax)
  bitcoind[0x1004d51ed] <+125>: nopl   (%rax)
  ```

ACKs for top commit:
  theuni:
    ACK 76f031b.

Tree-SHA512: 0f71d98387d88f36bd22fd4204f8116efc6d540b45a722281483f1f19f36a26daa197458006af6a35d80a52dd8f13c714c4c816ad6c279d6e52872c948fab987
@fanquake fanquake force-pushed the set_std_c_version_depends branch from 7479db3 to e5e8749 Compare September 2, 2021 02:26
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Sep 2, 2021
76f031b build: fix unoptimized libraries in depends (fanquake)

Pull request description:

  We need to append-to rather than set CXXFLAGS, otherwise we loose `-O2` & `-pipe` from our defaults. Currently this results in zeromq being built without optimizations at all (or whatever the compiler would default too, essentially  always `-O0`).

  Bdb is the same, for the CXX portion of its code. C code has been built with `-O2`. Boost has actually been unaffected because it receives `-O3` from it's own build flags.

  Noticed while reworking bitcoin#22380. For bdb & zeromq, I assume (haven't checked) this has been the case since bitcoin#7165.

  You can inspect the effcts in bitcoind comparing a function from a unoptimised library, i.e libzmq.

  Build bitcoind with zeromq from depends (7be143a):
  ```
  gmake -C depends NO_QT=1 NO_UPNP=1 NO_NATPMP=1 NO_WALLET=1 -j9

  ./autogen.sh
  CONFIG_SITE=/path/to/share/config.site ./configure
  gmake -C src bitcoind -j9
  ```

  Find a zeromq function:
  ```bash
  nm -C src/bitcoind | rg zmq
  ...
  000000010053a7e0 T _zmq_ctx_new
  ```

  Disassemble it:
  ```bash
  lldb src/bitcoind
  disassemble -a 000000010053a7e0
  ...
  bitcoind`zmq_ctx_new:
  bitcoind[0x10053a7e0] <+0>:   pushq  %rbp
  bitcoind[0x10053a7e1] <+1>:   movq   %rsp, %rbp
  bitcoind[0x10053a7e4] <+4>:   subq   $0x50, %rsp
  bitcoind[0x10053a7e8] <+8>:   callq  0x1004b2ee0               ; zmq::initialize_network()
  bitcoind[0x10053a7ed] <+13>:  testb  $0x1, %al
  bitcoind[0x10053a7ef] <+15>:  jne    0x10053a802               ; <+34>
  bitcoind[0x10053a7f5] <+21>:  movq   $0x0, -0x8(%rbp)
  bitcoind[0x10053a7fd] <+29>:  jmp    0x10053a8e8               ; <+264>
  bitcoind[0x10053a802] <+34>:  movq   0xadab7(%rip), %rsi       ; (void *)0x0000000000000000
  bitcoind[0x10053a809] <+41>:  movl   $0x2b8, %edi              ; imm = 0x2B8
  bitcoind[0x10053a80e] <+46>:  callq  0x100556c58               ; symbol stub for: operator new(unsigned long, std::nothrow_t const&)
  bitcoind[0x10053a813] <+51>:  xorl   %ecx, %ecx
  bitcoind[0x10053a815] <+53>:  movl   %ecx, %edx
  bitcoind[0x10053a817] <+55>:  movb   $0x0, -0x19(%rbp)
  bitcoind[0x10053a81b] <+59>:  cmpq   $0x0, %rax
  bitcoind[0x10053a81f] <+63>:  movq   %rax, -0x38(%rbp)
  bitcoind[0x10053a823] <+67>:  movq   %rdx, -0x40(%rbp)
  bitcoind[0x10053a827] <+71>:  je     0x10053a858               ; <+120>
  bitcoind[0x10053a82d] <+77>:  movq   -0x38(%rbp), %rax
  bitcoind[0x10053a831] <+81>:  movq   %rax, -0x18(%rbp)
  bitcoind[0x10053a835] <+85>:  movb   $0x1, -0x19(%rbp)
  bitcoind[0x10053a839] <+89>:  movq   -0x38(%rbp), %rdi
  bitcoind[0x10053a83d] <+93>:  movq   %rax, -0x48(%rbp)
  bitcoind[0x10053a841] <+97>:  callq  0x100497aa0               ; zmq::ctx_t::ctx_t()
  bitcoind[0x10053a846] <+102>: jmp    0x10053a84b               ; <+107>
  bitcoind[0x10053a84b] <+107>: movq   -0x48(%rbp), %rax
  bitcoind[0x10053a84f] <+111>: movq   %rax, -0x40(%rbp)
  bitcoind[0x10053a853] <+115>: jmp    0x10053a858               ; <+120>
  bitcoind[0x10053a858] <+120>: movq   -0x40(%rbp), %rax
  bitcoind[0x10053a85c] <+124>: movq   %rax, -0x10(%rbp)
  bitcoind[0x10053a860] <+128>: cmpq   $0x0, -0x10(%rbp)
  bitcoind[0x10053a865] <+133>: je     0x10053a8e0               ; <+256>
  bitcoind[0x10053a86b] <+139>: movq   -0x10(%rbp), %rdi
  bitcoind[0x10053a86f] <+143>: callq  0x100497ee0               ; zmq::ctx_t::valid() const
  bitcoind[0x10053a874] <+148>: testb  $0x1, %al
  bitcoind[0x10053a876] <+150>: jne    0x10053a8db               ; <+251>
  bitcoind[0x10053a87c] <+156>: movq   -0x10(%rbp), %rax
  bitcoind[0x10053a880] <+160>: cmpq   $0x0, %rax
  bitcoind[0x10053a884] <+164>: movq   %rax, -0x50(%rbp)
  bitcoind[0x10053a888] <+168>: je     0x10053a8a3               ; <+195>
  bitcoind[0x10053a88e] <+174>: movq   -0x50(%rbp), %rdi
  bitcoind[0x10053a892] <+178>: callq  0x100497ec0               ; zmq::ctx_t::~ctx_t()
  bitcoind[0x10053a897] <+183>: movq   -0x50(%rbp), %rax
  bitcoind[0x10053a89b] <+187>: movq   %rax, %rdi
  bitcoind[0x10053a89e] <+190>: callq  0x100556c3a               ; symbol stub for: operator delete(void*)
  bitcoind[0x10053a8a3] <+195>: movq   $0x0, -0x8(%rbp)
  bitcoind[0x10053a8ab] <+203>: jmp    0x10053a8e8               ; <+264>
  bitcoind[0x10053a8b0] <+208>: movq   %rax, -0x28(%rbp)
  bitcoind[0x10053a8b4] <+212>: movl   %edx, -0x2c(%rbp)
  bitcoind[0x10053a8b7] <+215>: testb  $0x1, -0x19(%rbp)
  bitcoind[0x10053a8bb] <+219>: jne    0x10053a8c6               ; <+230>
  bitcoind[0x10053a8c1] <+225>: jmp    0x10053a8d6               ; <+246>
  bitcoind[0x10053a8c6] <+230>: movq   0xad9f3(%rip), %rsi       ; (void *)0x0000000000000000
  bitcoind[0x10053a8cd] <+237>: movq   -0x18(%rbp), %rdi
  bitcoind[0x10053a8d1] <+241>: callq  0x100556c40               ; symbol stub for: operator delete(void*, std::nothrow_t const&)
  bitcoind[0x10053a8d6] <+246>: jmp    0x10053a8f2               ; <+274>
  bitcoind[0x10053a8db] <+251>: jmp    0x10053a8e0               ; <+256>
  bitcoind[0x10053a8e0] <+256>: movq   -0x10(%rbp), %rax
  bitcoind[0x10053a8e4] <+260>: movq   %rax, -0x8(%rbp)
  bitcoind[0x10053a8e8] <+264>: movq   -0x8(%rbp), %rax
  bitcoind[0x10053a8ec] <+268>: addq   $0x50, %rsp
  bitcoind[0x10053a8f0] <+272>: popq   %rbp
  bitcoind[0x10053a8f1] <+273>: retq
  bitcoind[0x10053a8f2] <+274>: movq   -0x28(%rbp), %rdi
  bitcoind[0x10053a8f6] <+278>: callq  0x100556856               ; symbol stub for: _Unwind_Resume
  bitcoind[0x10053a8fb] <+283>: ud2
  bitcoind[0x10053a8fd] <+285>: nopl   (%rax)
  ```

  Cleanup and repeat after changing the zeromq cxxflags to be `$(package)_cxxflags+=-std=c++17`:
  ```bash
  gmake clean
  gmake -C depends NO_QT=1 NO_UPNP=1 NO_NATPMP=1 NO_WALLET=1 -j9
  gmake -C src bitcoind -j9

  nm -C src/bitcoind | rg zmq
  ...
  00000001004d5170 T _zmq_ctx_new
  ```

  Disassemble the same function which has now been built with `-O2`:
  ```bash
  lldb src/bitcoind
  disassemble -a 00000001004d5170
  ...
  bitcoind`zmq_ctx_new:
  bitcoind[0x1004d5170] <+0>:   pushq  %rbp
  bitcoind[0x1004d5171] <+1>:   movq   %rsp, %rbp
  bitcoind[0x1004d5174] <+4>:   pushq  %r14
  bitcoind[0x1004d5176] <+6>:   pushq  %rbx
  bitcoind[0x1004d5177] <+7>:   callq  0x10049cbc0               ; zmq::initialize_network()
  bitcoind[0x1004d517c] <+12>:  testb  %al, %al
  bitcoind[0x1004d517e] <+14>:  je     0x1004d51bd               ; <+77>
  bitcoind[0x1004d5180] <+16>:  movq   0xab139(%rip), %rsi       ; (void *)0x0000000000000000
  bitcoind[0x1004d5187] <+23>:  movl   $0x2b8, %edi              ; imm = 0x2B8
  bitcoind[0x1004d518c] <+28>:  callq  0x1004f0e5a               ; symbol stub for: operator new(unsigned long, std::nothrow_t const&)
  bitcoind[0x1004d5191] <+33>:  testq  %rax, %rax
  bitcoind[0x1004d5194] <+36>:  je     0x1004d51bd               ; <+77>
  bitcoind[0x1004d5196] <+38>:  movq   %rax, %rbx
  bitcoind[0x1004d5199] <+41>:  movq   %rax, %rdi
  bitcoind[0x1004d519c] <+44>:  callq  0x100493400               ; zmq::ctx_t::ctx_t()
  bitcoind[0x1004d51a1] <+49>:  movq   %rbx, %rdi
  bitcoind[0x1004d51a4] <+52>:  callq  0x1004936e0               ; zmq::ctx_t::valid() const
  bitcoind[0x1004d51a9] <+57>:  testb  %al, %al
  bitcoind[0x1004d51ab] <+59>:  jne    0x1004d51bf               ; <+79>
  bitcoind[0x1004d51ad] <+61>:  movq   %rbx, %rdi
  bitcoind[0x1004d51b0] <+64>:  callq  0x1004936d0               ; zmq::ctx_t::~ctx_t()
  bitcoind[0x1004d51b5] <+69>:  movq   %rbx, %rdi
  bitcoind[0x1004d51b8] <+72>:  callq  0x1004f0e42               ; symbol stub for: operator delete(void*)
  bitcoind[0x1004d51bd] <+77>:  xorl   %ebx, %ebx
  bitcoind[0x1004d51bf] <+79>:  movq   %rbx, %rax
  bitcoind[0x1004d51c2] <+82>:  popq   %rbx
  bitcoind[0x1004d51c3] <+83>:  popq   %r14
  bitcoind[0x1004d51c5] <+85>:  popq   %rbp
  bitcoind[0x1004d51c6] <+86>:  retq
  bitcoind[0x1004d51c7] <+87>:  movq   %rax, %r14
  bitcoind[0x1004d51ca] <+90>:  movq   0xab0ef(%rip), %rsi       ; (void *)0x0000000000000000
  bitcoind[0x1004d51d1] <+97>:  movq   %rbx, %rdi
  bitcoind[0x1004d51d4] <+100>: callq  0x1004f0e48               ; symbol stub for: operator delete(void*, std::nothrow_t const&)
  bitcoind[0x1004d51d9] <+105>: movq   %r14, %rdi
  bitcoind[0x1004d51dc] <+108>: callq  0x1004f0a6a               ; symbol stub for: _Unwind_Resume
  bitcoind[0x1004d51e1] <+113>: ud2
  bitcoind[0x1004d51e3] <+115>: nopw   %cs:(%rax,%rax)
  bitcoind[0x1004d51ed] <+125>: nopl   (%rax)
  ```

ACKs for top commit:
  theuni:
    ACK 76f031b.

Tree-SHA512: 0f71d98387d88f36bd22fd4204f8116efc6d540b45a722281483f1f19f36a26daa197458006af6a35d80a52dd8f13c714c4c816ad6c279d6e52872c948fab987
@fanquake
Copy link
Member Author

fanquake commented Sep 2, 2021

Rebased now that #22840 is in. Would be good to get feedback on the new approach.

@theuni
Copy link
Member

theuni commented Sep 3, 2021

Concept ACK. Definitely better to be explicit.

Nit: DEFAULT_FOO implies that it's the fallback unless something specific was requested, which is not the case here as the value can be overridden. Would prefer to drop/replace the DEFAULT_ prefix.

@dongcarl
Copy link
Contributor

dongcarl commented Sep 3, 2021

Concept ACK!

Wondering: instead of setting it for every package, could we do it in hosts/*.mk?

@DrahtBot
Copy link
Contributor

DrahtBot commented Sep 4, 2021

Guix builds

File commit dd097c4
(master)
commit be0afcb
(master and this pull)
SHA256SUMS.part bd03f15bef7e8032... 3c43ce4959a560af...
*-aarch64-linux-gnu-debug.tar.gz 3c005baf7ecd04bd... da0f902679fd5c51...
*-aarch64-linux-gnu.tar.gz bd6b69f9ab44abae... 474eca2f27bec458...
*-arm-linux-gnueabihf-debug.tar.gz 5254853eda61abe2... 221d85dbdb4b8876...
*-arm-linux-gnueabihf.tar.gz 4b97fb264f4072cf... 5275087d499bcfac...
*-osx-unsigned.dmg 7ddf925af7278c7b... 4fc7a5c2b2ab81b1...
*-osx-unsigned.tar.gz f2d5de5ae2884c4a... 2db8c62789888354...
*-osx64.tar.gz be13ac7f3c95599c... 0b174c92c71011eb...
*-powerpc64-linux-gnu-debug.tar.gz 56f83a417477190b... 51273002e428648f...
*-powerpc64-linux-gnu.tar.gz e80ed9bf76c05090... 688050f7b4570d26...
*-powerpc64le-linux-gnu-debug.tar.gz 30cda7a4d8bb29d2... 517e2f162b23d3ee...
*-powerpc64le-linux-gnu.tar.gz 58ec7e9994ec39b9... 1f440165fe5426de...
*-riscv64-linux-gnu-debug.tar.gz 55ed362a4de546be... e22cd95472418050...
*-riscv64-linux-gnu.tar.gz 4579e3ab4d58c7bb... bec8dc730ab3ebc4...
*-win-unsigned.tar.gz 00ab11872812ef6f... a8b3ceb993cc2ae7...
*-win64-debug.zip 03bad628634cabea... 2f8aa503362dbc0b...
*-win64-setup-unsigned.exe c8afc8e17eee28c0... 78d2f5ec1c3731e4...
*-win64.zip 503d63813437f09e... 3ffdb852cf43e490...
*-x86_64-linux-gnu-debug.tar.gz b0d3ae77ac844f42... 8320c373774f4f12...
*-x86_64-linux-gnu.tar.gz c0529d7134912cdc... aba37dcb657a7bdc...
*.tar.gz 16526c063ba0d708... 2763f5b94330c848...
guix_build.log 60f25302213294cd... b6a003eb68bd5262...
guix_build.log.diff 7914d08b35ff031a...

@practicalswift
Copy link
Contributor

Concept ACK

@fanquake fanquake changed the title build: Set -std=c11 for C dependencies in depends build: add and use C_STANDARD and CXX_STANDARD in depends Sep 9, 2021
@fanquake fanquake force-pushed the set_std_c_version_depends branch from e5e8749 to 7127c1f Compare September 9, 2021 07:38
@fanquake
Copy link
Member Author

fanquake commented Sep 9, 2021

Nit: DEFAULT_FOO implies that it's the fallback unless something specific was requested, which is not the case here as the value can be overridden. Would prefer to drop/replace the DEFAULT_ prefix.

Dropped the DEFAULT prefix.

Wondering: instead of setting it for every package, could we do it in hosts/*.mk?

Reworked to set both in hosts/*.mk. Is this what you had in mind?

@fanquake
Copy link
Member Author

fanquake commented Sep 9, 2021

Android build failure here looks unrelated, however the macOS one seems to be an issue. Doesn't happen when building natively, only when cross-compiling qt:

Configuring qt...
Creating qmake...
make[1]: Entering directory '/tmp/cirrus-ci-build/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-07ec867c621/qtbase/qmake'
make[1]: Leaving directory '/tmp/cirrus-ci-build/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-07ec867c621/qtbase/qmake'
Info: creating super cache file /tmp/cirrus-ci-build/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-07ec867c621/.qmake.super
Info: creating cache file /tmp/cirrus-ci-build/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-07ec867c621/.qmake.cache
Info: creating stash file /tmp/cirrus-ci-build/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-07ec867c621/.qmake.stash
Command line: -bindir /tmp/cirrus-ci-build/depends/x86_64-apple-darwin18/native/bin -c++std c++1z -confirm-license -hostprefix /tmp/cirrus-ci-build/depends/x86_64-apple-darwin18/native -no-compile-examples -no-cups -no-egl -no-eglfs -no-freetype -no-gif -no-glib -no-icu -no-ico -no-iconv -no-kms -no-linuxfb -no-libjpeg -no-libproxy -no-libudev -no-mtdev -no-openssl -no-openvg -no-reduce-relocations -no-sctp -no-securetransport -no-sql-db2 -no-sql-ibase -no-sql-oci -no-sql-tds -no-sql-mysql -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-system-proxies -no-use-gold-linker -nomake examples -nomake tests -nomake tools -opensource -pkg-config -prefix /tmp/cirrus-ci-build/depends/x86_64-apple-darwin18 -qt-libpng -qt-pcre -qt-harfbuzz -qt-zlib -static -v -no-feature-bearermanagement -no-feature-colordialog -no-feature-commandlineparser -no-feature-concurrent -no-feature-dial -no-feature-fontcombobox -no-feature-ftp -no-feature-http -no-feature-image_heuristic_mask -no-feature-keysequenceedit -no-feature-lcdnumber -no-feature-networkdiskcache -no-feature-networkproxy -no-feature-pdf -no-feature-printdialog -no-feature-printer -no-feature-printpreviewdialog -no-feature-printpreviewwidget -no-feature-sessionmanager -no-feature-socks5 -no-feature-sql -no-feature-sqlmodel -no-feature-statemachine -no-feature-syntaxhighlighter -no-feature-textbrowser -no-feature-textodfwriter -no-feature-topleveldomain -no-feature-udpsocket -no-feature-undocommand -no-feature-undogroup -no-feature-undostack -no-feature-undoview -no-feature-vnc -no-feature-wizard -no-feature-xml -release -silent -no-dbus -no-opengl -pch -no-feature-corewlan QMAKE_MACOSX_DEPLOYMENT_TARGET=10.14 -xplatform macx-clang-linux -device-option MAC_SDK_PATH=/tmp/cirrus-ci-build/depends/SDKs/Xcode-12.1-12A7403-extracted-SDK-with-libcxx-headers -device-option MAC_SDK_VERSION=10.15.6 -device-option CROSS_COMPILE=x86_64-apple-darwin18- -device-option MAC_TARGET=x86_64-apple-darwin18 -device-option XCODE_VERSION=12.1
Project ERROR: Cannot run target compiler 'env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH -u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH -u LIBRARY_PATH /tmp/cirrus-ci-build/depends/x86_64-apple-darwin18/native/bin/clang++ --target=x86_64-apple-darwin18 -mmacosx-version-min=10.14 -B/tmp/cirrus-ci-build/depends/x86_64-apple-darwin18/native/bin -mlinker-version=609 -isysroot/tmp/cirrus-ci-build/depends/SDKs/Xcode-12.1-12A7403-extracted-SDK-with-libcxx-headers -stdlib=libc++ -stdlib++-isystem/tmp/cirrus-ci-build/depends/SDKs/Xcode-12.1-12A7403-extracted-SDK-with-libcxx-headers/usr/include/c++/v1 -Xclang -internal-externc-isystem/tmp/cirrus-ci-build/depends/x86_64-apple-darwin18/native/lib/clang/10.0.1/include -Xclang -internal-externc-isystem/tmp/cirrus-ci-build/depends/SDKs/Xcode-12.1-12A7403-extracted-SDK-with-libcxx-headers/usr/include'. Output:
===================
clang version 10.0.1 
Target: x86_64-apple-darwin18
Thread model: posix
InstalledDir: /tmp/cirrus-ci-build/depends/x86_64-apple-darwin18/native/bin
 "/tmp/cirrus-ci-build/depends/x86_64-apple-darwin18/native/bin/clang" -cc1 -triple x86_64-apple-macosx10.14.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -emit-obj -disable-free -disable-llvm-verifier -discard-value-names -main-file-name - -mrelocation-model pic -pic-level 2 -mthread-model posix -mframe-pointer=all -fno-rounding-math -masm-verbose -munwind-tables -target-sdk-version=10.15.6 -target-cpu penryn -dwarf-column-info -debugger-tuning=lldb -target-linker-version 609 -v -resource-dir /tmp/cirrus-ci-build/depends/x86_64-apple-darwin18/native/lib/clang/10.0.1 -isysroot /tmp/cirrus-ci-build/depends/SDKs/Xcode-12.1-12A7403-extracted-SDK-with-libcxx-headers -isysroot /tmp/cirrus-ci-build/depends/SDKs/Xcode-12.1-12A7403-extracted-SDK-with-libcxx-headers -I /tmp/cirrus-ci-build/depends/x86_64-apple-darwin18/include -I /tmp/cirrus-ci-build/depends/x86_64-apple-darwin18/include -internal-isystem /tmp/cirrus-ci-build/depends/SDKs/Xcode-12.1-12A7403-extracted-SDK-with-libcxx-headers/usr/include/c++/v1 -internal-isystem /tmp/cirrus-ci-build/depends/SDKs/Xcode-12.1-12A7403-extracted-SDK-with-libcxx-headers/usr/local/include -internal-isystem /tmp/cirrus-ci-build/depends/x86_64-apple-darwin18/native/lib/clang/10.0.1/include -internal-externc-isystem /tmp/cirrus-ci-build/depends/SDKs/Xcode-12.1-12A7403-extracted-SDK-with-libcxx-headers/usr/include -O2 -std=c11 -fdeprecated-macro -fdebug-compilation-dir /tmp/cirrus-ci-build/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-07ec867c621/qtbase/mkspecs/features -ferror-limit 19 -fmessage-length 0 -stack-protector 1 -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fgnuc-version=4.2.1 -fobjc-runtime=macosx-10.14.0 -fcxx-exceptions -fexceptions -fmax-type-align=16 -fdiagnostics-show-option -vectorize-loops -vectorize-slp -internal-externc-isystem/tmp/cirrus-ci-build/depends/x86_64-apple-darwin18/native/lib/clang/10.0.1/include -internal-externc-isystem/tmp/cirrus-ci-build/depends/SDKs/Xcode-12.1-12A7403-extracted-SDK-with-libcxx-headers/usr/include -o /tmp/--eaf147.o -x c++ -
error: invalid argument '-std=c11' not allowed with 'C++'
===================
Maybe you forgot to setup the environment?

Looks like clang is invoked, and our cflags are added -O2 -std=c11, however we end up with -x c++ on the end of our invocation when running some qt feature tests? Which results in Clang barfing. Will investigate.

Additional verbose output:

g++ -c -o qlocale_unix.o   -std=c++11 -ffunction-sections -fdata-sections -O2 -g  -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/qmake -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/qmake/library -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/qmake/generators -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/qmake/generators/unix -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/qmake/generators/win32 -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/qmake/generators/mac -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/include -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/include/QtCore -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/include/QtCore/5.12.11 -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/include/QtCore/5.12.11/QtCore -I../src/corelib/global -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/mkspecs/linux-g++ -DQT_VERSION_STR=\"5.12.11\" -DQT_VERSION_MAJOR=5 -DQT_VERSION_MINOR=12 -DQT_VERSION_PATCH=11 -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DPROEVALUATOR_FULL -DQT_NO_FOREACH /home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/src/corelib/tools/qlocale_unix.cpp
g++ -c -o qlibraryinfo.o   -std=c++11 -ffunction-sections -fdata-sections -O2 -g  -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/qmake -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/qmake/library -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/qmake/generators -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/qmake/generators/unix -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/qmake/generators/win32 -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/qmake/generators/mac -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/include -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/include/QtCore -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/include/QtCore/5.12.11 -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/include/QtCore/5.12.11/QtCore -I../src/corelib/global -I/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/mkspecs/linux-g++ -DQT_VERSION_STR=\"5.12.11\" -DQT_VERSION_MAJOR=5 -DQT_VERSION_MINOR=12 -DQT_VERSION_PATCH=11 -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DPROEVALUATOR_FULL -DQT_NO_FOREACH -DQT_BUILD_QMAKE_BOOTSTRAP /home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/src/corelib/global/qlibraryinfo.cpp
g++ -o "../bin/qmake" main.o meta.o option.o project.o property.o ioutils.o proitems.o qmakebuiltins.o qmakeevaluator.o qmakeglobals.o qmakeparser.o qmakevfs.o pbuilder_pbx.o makefile.o makefiledeps.o metamakefile.o projectgenerator.o unixmake2.o unixmake.o mingw_make.o msbuild_objectmodel.o msvc_nmake.o msvc_objectmodel.o msvc_vcproj.o msvc_vcxproj.o winmakefile.o xmloutput.o qutfcodec.o qendian.o qglobal.o qlogging.o qmalloc.o qnumeric.o qoperatingsystemversion.o qrandom.o qabstractfileengine.o qbuffer.o qdatastream.o qdebug.o qdir.o qdiriterator.o qfile.o qfiledevice.o qfileinfo.o qfilesystemengine.o qfilesystementry.o qfsfileengine.o qfsfileengine_iterator.o qiodevice.o qsettings.o qtemporaryfile.o qtextstream.o qjsonarray.o qjson.o qjsondocument.o qjsonobject.o qjsonparser.o qjsonvalue.o qmetatype.o qsystemerror.o qvariant.o quuid.o qarraydata.o qbitarray.o qbytearray.o qbytearraylist.o qbytearraymatcher.o qcryptographichash.o qdatetime.o qhash.o qlinkedlist.o qlist.o qlocale.o qlocale_tools.o qmap.o qregexp.o qringbuffer.o qstringbuilder.o qstring_compat.o qstring.o qstringlist.o qversionnumber.o qvsnprintf.o qxmlstream.o qxmlutils.o qcore_unix.o qfilesystemengine_unix.o qfilesystemiterator_unix.o qfsfileengine_unix.o qlocale_unix.o  qlibraryinfo.o   -Wl,--gc-sections
make[1]: Leaving directory '/home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/qmake'
Info: creating super cache file /home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/.qmake.super
Info: creating cache file /home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/.qmake.cache
Info: creating stash file /home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/.qmake.stash
Command line: -bindir /home/ubuntu/bitcoin/depends/x86_64-apple-darwin18/native/bin -c++std c++1z -confirm-license -hostprefix /home/ubuntu/bitcoin/depends/x86_64-apple-darwin18/native -no-compile-examples -no-cups -no-egl -no-eglfs -no-freetype -no-gif -no-glib -no-icu -no-ico -no-iconv -no-kms -no-linuxfb -no-libjpeg -no-libproxy -no-libudev -no-mtdev -no-openssl -no-openvg -no-reduce-relocations -no-sctp -no-securetransport -no-sql-db2 -no-sql-ibase -no-sql-oci -no-sql-tds -no-sql-mysql -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-system-proxies -no-use-gold-linker -nomake examples -nomake tests -nomake tools -opensource -pkg-config -prefix /home/ubuntu/bitcoin/depends/x86_64-apple-darwin18 -qt-libpng -qt-pcre -qt-harfbuzz -qt-zlib -static -v -no-feature-bearermanagement -no-feature-colordialog -no-feature-commandlineparser -no-feature-concurrent -no-feature-dial -no-feature-fontcombobox -no-feature-ftp -no-feature-http -no-feature-image_heuristic_mask -no-feature-keysequenceedit -no-feature-lcdnumber -no-feature-networkdiskcache -no-feature-networkproxy -no-feature-pdf -no-feature-printdialog -no-feature-printer -no-feature-printpreviewdialog -no-feature-printpreviewwidget -no-feature-sessionmanager -no-feature-socks5 -no-feature-sql -no-feature-sqlmodel -no-feature-statemachine -no-feature-syntaxhighlighter -no-feature-textbrowser -no-feature-textodfwriter -no-feature-topleveldomain -no-feature-udpsocket -no-feature-undocommand -no-feature-undogroup -no-feature-undostack -no-feature-undoview -no-feature-vnc -no-feature-wizard -no-feature-xml -debug -optimized-tools -no-dbus -no-opengl -pch -no-feature-corewlan QMAKE_MACOSX_DEPLOYMENT_TARGET=10.14 -xplatform macx-clang-linux -device-option MAC_SDK_PATH=/home/ubuntu/bitcoin/depends/SDKs/Xcode-12.1-12A7403-extracted-SDK-with-libcxx-headers -device-option MAC_SDK_VERSION=10.15.6 -device-option CROSS_COMPILE=x86_64-apple-darwin18- -device-option MAC_TARGET=x86_64-apple-darwin18 -device-option XCODE_VERSION=12.1
Project ERROR: Cannot run target compiler 'env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH -u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH -u LIBRARY_PATH /home/ubuntu/bitcoin/depends/x86_64-apple-darwin18/native/bin/clang++ --target=x86_64-apple-darwin18 -mmacosx-version-min=10.14 -B/home/ubuntu/bitcoin/depends/x86_64-apple-darwin18/native/bin -mlinker-version=609 -isysroot/home/ubuntu/bitcoin/depends/SDKs/Xcode-12.1-12A7403-extracted-SDK-with-libcxx-headers -stdlib=libc++ -stdlib++-isystem/home/ubuntu/bitcoin/depends/SDKs/Xcode-12.1-12A7403-extracted-SDK-with-libcxx-headers/usr/include/c++/v1 -Xclang -internal-externc-isystem/home/ubuntu/bitcoin/depends/x86_64-apple-darwin18/native/lib/clang/10.0.1/include -Xclang -internal-externc-isystem/home/ubuntu/bitcoin/depends/SDKs/Xcode-12.1-12A7403-extracted-SDK-with-libcxx-headers/usr/include'. Output:
===================
clang version 10.0.1 
Target: x86_64-apple-darwin18
Thread model: posix
InstalledDir: /home/ubuntu/bitcoin/depends/x86_64-apple-darwin18/native/bin
clang: warning: no such sysroot directory: '/home/ubuntu/bitcoin/depends/SDKs/Xcode-12.1-12A7403-extracted-SDK-with-libcxx-headers' [-Wmissing-sysroot]
 "/home/ubuntu/bitcoin/depends/x86_64-apple-darwin18/native/bin/clang" -cc1 -triple x86_64-apple-macosx10.14.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -emit-obj -disable-free -disable-llvm-verifier -discard-value-names -main-file-name - -mrelocation-model pic -pic-level 2 -mthread-model posix -mframe-pointer=all -fno-rounding-math -masm-verbose -munwind-tables -target-cpu penryn -dwarf-column-info -debugger-tuning=lldb -target-linker-version 609 -v -resource-dir /home/ubuntu/bitcoin/depends/x86_64-apple-darwin18/native/lib/clang/10.0.1 -isysroot /home/ubuntu/bitcoin/depends/SDKs/Xcode-12.1-12A7403-extracted-SDK-with-libcxx-headers -isysroot /home/ubuntu/bitcoin/depends/SDKs/Xcode-12.1-12A7403-extracted-SDK-with-libcxx-headers -I /home/ubuntu/bitcoin/depends/x86_64-apple-darwin18/include -I /home/ubuntu/bitcoin/depends/x86_64-apple-darwin18/include -internal-isystem /home/ubuntu/bitcoin/depends/SDKs/Xcode-12.1-12A7403-extracted-SDK-with-libcxx-headers/usr/include/c++/v1 -internal-isystem /home/ubuntu/bitcoin/depends/SDKs/Xcode-12.1-12A7403-extracted-SDK-with-libcxx-headers/usr/local/include -internal-isystem /home/ubuntu/bitcoin/depends/x86_64-apple-darwin18/native/lib/clang/10.0.1/include -internal-externc-isystem /home/ubuntu/bitcoin/depends/SDKs/Xcode-12.1-12A7403-extracted-SDK-with-libcxx-headers/usr/include -O1 -std=c11 -fdeprecated-macro -fdebug-compilation-dir /home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/qtbase/mkspecs/features -ferror-limit 19 -fmessage-length 0 -stack-protector 1 -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fgnuc-version=4.2.1 -fobjc-runtime=macosx-10.14.0 -fcxx-exceptions -fexceptions -fmax-type-align=16 -fdiagnostics-show-option -internal-externc-isystem/home/ubuntu/bitcoin/depends/x86_64-apple-darwin18/native/lib/clang/10.0.1/include -internal-externc-isystem/home/ubuntu/bitcoin/depends/SDKs/Xcode-12.1-12A7403-extracted-SDK-with-libcxx-headers/usr/include -o /tmp/--b15c28.o -x c++ -
error: invalid argument '-std=c11' not allowed with 'C++'
===================
Maybe you forgot to setup the environment?
make: *** [funcs.mk:282: /home/ubuntu/bitcoin/depends/work/build/x86_64-apple-darwin18/qt/5.12.11-5bb48e1827c/./.stamp_configured] Error 3
make: Leaving directory '/home/ubuntu/bitcoin/depends'

Copy link
Contributor

@dongcarl dongcarl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we added a few more hosts between my last review and this one. I'm also wondering if there's a good way to have this in hosts/default.mk somehow to stop worrying about new hosts, though hosts/default.mk does give me the scaries whenever I think about changing it.

@fanquake fanquake force-pushed the set_std_c_version_depends branch from ab58ac4 to 8fbad74 Compare April 20, 2022 16:17
@fanquake fanquake force-pushed the set_std_c_version_depends branch from 8fbad74 to db0f332 Compare June 14, 2022 19:46
@fanquake fanquake force-pushed the set_std_c_version_depends branch from db0f332 to f7595f1 Compare June 16, 2022 16:06
@fanquake
Copy link
Member Author

Updated this for the addition of new HOSTS and the LTO merge.

I'm also wondering if there's a good way to have this in hosts/default.mk somehow to stop worrying about new hosts,

Now that we've also got a "global" LTO option, it could make sense to consolidate that, plus these two options into default.mk. Maybe we could just adjust C and CXX flags when using either of the 3 options? Not sure if we want to do that here, or a follow up after further discussion.

@dongcarl
Copy link
Contributor

@fanquake

Not sure if we want to do that here, or a follow up after further discussion.

I don't mind at all what route we take. Let me know what you'd like to do!

@fanquake
Copy link
Member Author

@dongcarl I'd probably rather consolidate in a follow up, after more discussion, if you're happy to review here.

@dongcarl
Copy link
Contributor

Code Review ACK f7595f1

Quite a simple change, good consistency improvement can be seen in the non-depends/hosts file diffs

@laanwj
Copy link
Member

laanwj commented Jun 16, 2022

Code review ACK f7595f1
Changes look correct to me. I have run a succesful build, but was unable to conclude from the logging whether every package passes the correct flag to gcc/g++ (as a lot do not show the verbose build commands).

@laanwj laanwj merged commit 8745296 into bitcoin:master Jun 16, 2022
@fanquake fanquake deleted the set_std_c_version_depends branch June 16, 2022 22:18
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Jun 17, 2022
…n depends

f7595f1 build: add and use CXX_STANDARD in depends (fanquake)
7e7b3e4 build: add and use C_STANDARD in depends (fanquake)

Pull request description:

  By explicitly setting a C standard version we avoid any potential for issues/differences in libraries that may come about due to C STD version, as well as avoid potentially being opted into newer code / features in libraries when compiler defaults change (i.e as of 11.0.0, Clang now defaults to gnu17 over gnu11).

  This should be a no-op for our release builds, because it's just explicitly setting the default that is [already being used](https://github.com/fanquake/core-review/blob/master/compiler-defaults.md). However this is relevant for anyone building depends with a newer compiler.

  I found [one broken `__STDC_VERSION__` check in the](miniupnp/miniupnp#552) miniupnpc header.

  At the same time, add `CXX_STANDARD` for setting our C++ standard, and use that over setting `-std=c++17` for cxx packages.

  Guix builds:
  ```bash
  ```

ACKs for top commit:
  dongcarl:
    Code Review ACK f7595f1
  laanwj:
    Code review ACK f7595f1

Tree-SHA512: 9255190d91ba3de20762b1d6af35c59d64f3d77a52bbe9a3f1dfb6bcf16daef66054ebef96b58e7285cd01bf613e69a78bd5e8681c21293e254f23d1fa7b0f71
fanquake added a commit to fanquake/bitcoin that referenced this pull request Jun 17, 2022
Followup to bitcoin#22380. We need to have these in the id so that we rebuild
if we change / unset a *_STANDARD.
fanquake added a commit to fanquake/bitcoin that referenced this pull request Jun 17, 2022
Followup to bitcoin#22380. We need to have these in the id so that we rebuild
if we change / unset a *_STANDARD.
fanquake added a commit that referenced this pull request Jun 21, 2022
f862f4a build: add *_STANDARD vars to depends gen_id (fanquake)

Pull request description:

  Followup to #22380 😅. We need to have these in `gen_id` so that we rebuild if we change / unset a *_STANDARD.

  Guix Build (x86_64):
  ```bash
  afc2a24bae06f87b7f14f0958b2ca497c050f6069e68958e45120215bab4507e  guix-build-f862f4a74ec6/output/aarch64-linux-gnu/SHA256SUMS.part
  547266e64002dc1124adedc1679f4c526088212b6ba31fb3457523adeb80be50  guix-build-f862f4a74ec6/output/aarch64-linux-gnu/bitcoin-f862f4a74ec6-aarch64-linux-gnu-debug.tar.gz
  af73193740f93d9ff13ed4eb459aabaf942e7075ac53967f5505bbebfea1eb9f  guix-build-f862f4a74ec6/output/aarch64-linux-gnu/bitcoin-f862f4a74ec6-aarch64-linux-gnu.tar.gz
  b36f58a4e37ed30ac8463716b5ed715f427e419d80d7e90381341fcab2712427  guix-build-f862f4a74ec6/output/arm-linux-gnueabihf/SHA256SUMS.part
  1ed49ea3efd7d9f5eba53d8e73356e82dfb5da2050f91a284dd38f157fa790b4  guix-build-f862f4a74ec6/output/arm-linux-gnueabihf/bitcoin-f862f4a74ec6-arm-linux-gnueabihf-debug.tar.gz
  dfaf6359511fa82a36448e16722179bd49d1d04e366cf140aaa0dfaa1be75b12  guix-build-f862f4a74ec6/output/arm-linux-gnueabihf/bitcoin-f862f4a74ec6-arm-linux-gnueabihf.tar.gz
  41dbc79a8372c2dd2eccc1af282e160f749faacd51c5d2594e8d48afaa6df5bc  guix-build-f862f4a74ec6/output/arm64-apple-darwin/SHA256SUMS.part
  abe6a3506441faeebdc08682c92d51ba3a0e5fc6af3a2b28f054d0ea1f2b5781  guix-build-f862f4a74ec6/output/arm64-apple-darwin/bitcoin-f862f4a74ec6-arm64-apple-darwin-unsigned.dmg
  01be81fd0c99a384afd06806441fb1775fc4a875153a3e699417a2c74547ad3a  guix-build-f862f4a74ec6/output/arm64-apple-darwin/bitcoin-f862f4a74ec6-arm64-apple-darwin-unsigned.tar.gz
  7e1b5547d5deb5944b6b3552634e3dd737da144c87ce75a5e9029e4edfe126a4  guix-build-f862f4a74ec6/output/arm64-apple-darwin/bitcoin-f862f4a74ec6-arm64-apple-darwin.tar.gz
  c4387c1d98f7146aa8926d827129063d502cd9b098a2674c487e550036df36fb  guix-build-f862f4a74ec6/output/dist-archive/bitcoin-f862f4a74ec6.tar.gz
  084912a415d3c8eedf47a60684abc7c753977ecf8990bd72c67158371cf39e2c  guix-build-f862f4a74ec6/output/powerpc64-linux-gnu/SHA256SUMS.part
  17f3aba98063f51af29b8b3ad2d9edd9a34b39aee09c82d28e8f49e765395de8  guix-build-f862f4a74ec6/output/powerpc64-linux-gnu/bitcoin-f862f4a74ec6-powerpc64-linux-gnu-debug.tar.gz
  12ebd244f31597a54c0b93d23dc6d2a7b375d47edf9576e205d23c7ca7c2cac8  guix-build-f862f4a74ec6/output/powerpc64-linux-gnu/bitcoin-f862f4a74ec6-powerpc64-linux-gnu.tar.gz
  c28467af85a6a043cc5c80234680eabc3cbb2857b778b412a128c039c85c419a  guix-build-f862f4a74ec6/output/powerpc64le-linux-gnu/SHA256SUMS.part
  69ae9c40f0d413e0cfdff58dab0e6938c58a72f8cf3c7b6259e2da67dae61b1a  guix-build-f862f4a74ec6/output/powerpc64le-linux-gnu/bitcoin-f862f4a74ec6-powerpc64le-linux-gnu-debug.tar.gz
  c75065dcab7260d6072dcb753cf43976a7ad6b0c2be1ab2f96d65b99083c0628  guix-build-f862f4a74ec6/output/powerpc64le-linux-gnu/bitcoin-f862f4a74ec6-powerpc64le-linux-gnu.tar.gz
  63fdefb6c04fc61fc4354d4f6bc1b1530595e21ecbd9e8dfc7a459e9daaaad32  guix-build-f862f4a74ec6/output/riscv64-linux-gnu/SHA256SUMS.part
  9e5c7a8d459befce46742c254f74771c95d91496a350f396878c204003375f28  guix-build-f862f4a74ec6/output/riscv64-linux-gnu/bitcoin-f862f4a74ec6-riscv64-linux-gnu-debug.tar.gz
  884a789984eda3e3c68f69e975cf664a2bb4e6986b649ab6f09f529995c84702  guix-build-f862f4a74ec6/output/riscv64-linux-gnu/bitcoin-f862f4a74ec6-riscv64-linux-gnu.tar.gz
  59821609cd76efdc8efb1deacaf9f1bc6af754a764ebfbdad47df392152e19ac  guix-build-f862f4a74ec6/output/x86_64-apple-darwin/SHA256SUMS.part
  5f48f56c2efe5ccf9bb22c6ba78af6c019f2df86eacada8241a7a351e0b81f83  guix-build-f862f4a74ec6/output/x86_64-apple-darwin/bitcoin-f862f4a74ec6-x86_64-apple-darwin-unsigned.dmg
  73d0885ac4208345ff8a762a8a421e4812af621b441cfb6ddf4430a0ce657620  guix-build-f862f4a74ec6/output/x86_64-apple-darwin/bitcoin-f862f4a74ec6-x86_64-apple-darwin-unsigned.tar.gz
  9b001f66b969e80c3d22d0eadceaa53d16440e2c1550d181e4e63747de8779f5  guix-build-f862f4a74ec6/output/x86_64-apple-darwin/bitcoin-f862f4a74ec6-x86_64-apple-darwin.tar.gz
  0ace0d29576c6bf110ad7a067399eca649960a7dd6a33b03e82a4eadcfec0fa1  guix-build-f862f4a74ec6/output/x86_64-linux-gnu/SHA256SUMS.part
  3efea8a971c36d642cbfa7fd5d95044f895c81e4729281588726689c4cc4688e  guix-build-f862f4a74ec6/output/x86_64-linux-gnu/bitcoin-f862f4a74ec6-x86_64-linux-gnu-debug.tar.gz
  afa95414ab703a0cdb632b963ef28ba93bb8f136590c5169c90b3906858282d5  guix-build-f862f4a74ec6/output/x86_64-linux-gnu/bitcoin-f862f4a74ec6-x86_64-linux-gnu.tar.gz
  7993b7ed1592f440c498f7643c2a8cc36d0e4c887b77d6fc7e5bef2cc85afb7a  guix-build-f862f4a74ec6/output/x86_64-w64-mingw32/SHA256SUMS.part
  54ab6be514f0f865858d278997c409d96572a1f33aa85fd819f395d57aa4a388  guix-build-f862f4a74ec6/output/x86_64-w64-mingw32/bitcoin-f862f4a74ec6-win64-debug.zip
  90a04f298826699c808519846cb1cec50047ff2959471a684b26c20a2e504c47  guix-build-f862f4a74ec6/output/x86_64-w64-mingw32/bitcoin-f862f4a74ec6-win64-setup-unsigned.exe
  f487dd6a8d1eb7566df85c1b2fe536352e4e0c3e50c911766f1daccdbdf5706d  guix-build-f862f4a74ec6/output/x86_64-w64-mingw32/bitcoin-f862f4a74ec6-win64-unsigned.tar.gz
  82be7831089e8245c17ed3d61cd56606b36554c15978c1a64181df02df918a14  guix-build-f862f4a74ec6/output/x86_64-w64-mingw32/bitcoin-f862f4a74ec6-win64.zip

  ```

  Guix Build (arm64):
  ```bash
  b465ed412b625a0980473d359e0b34ec646d90d844d1055ad61f99d5a4e08e47  guix-build-f862f4a74ec6/output/arm-linux-gnueabihf/SHA256SUMS.part
  0391c59642724c205f466844995c8dc702a581278295189c4ef39c1dd53c915a  guix-build-f862f4a74ec6/output/arm-linux-gnueabihf/bitcoin-f862f4a74ec6-arm-linux-gnueabihf-debug.tar.gz
  42ff69794e2c61b205e6f9e8060aa4b5c382c6ba53c1a91dfd46069619ac589a  guix-build-f862f4a74ec6/output/arm-linux-gnueabihf/bitcoin-f862f4a74ec6-arm-linux-gnueabihf.tar.gz
  b26d85b2beb0e8812d71833f493d623ac9419d2f791f34d3726bff387541d096  guix-build-f862f4a74ec6/output/arm64-apple-darwin/SHA256SUMS.part
  0e2a81f2a4ea64b2a7407b52499af41e9a8448d56ebcc65befda42bac964f94e  guix-build-f862f4a74ec6/output/arm64-apple-darwin/bitcoin-f862f4a74ec6-arm64-apple-darwin-unsigned.dmg
  f896df86baab84c737a5e2082b184e77a6b983a1a8dfbc1282ed22d7cea5aa0b  guix-build-f862f4a74ec6/output/arm64-apple-darwin/bitcoin-f862f4a74ec6-arm64-apple-darwin-unsigned.tar.gz
  3c3be5e7fc97950c612c00f36970e498f356147fee4c0f590298f5ad94fbc7a6  guix-build-f862f4a74ec6/output/arm64-apple-darwin/bitcoin-f862f4a74ec6-arm64-apple-darwin.tar.gz
  c4387c1d98f7146aa8926d827129063d502cd9b098a2674c487e550036df36fb  guix-build-f862f4a74ec6/output/dist-archive/bitcoin-f862f4a74ec6.tar.gz
  792e2ae8c991203765aaa080c58111c57bd59cf217cbf0b461e50cde10754d5b  guix-build-f862f4a74ec6/output/powerpc64-linux-gnu/SHA256SUMS.part
  ff68b5693861bc5d9e016ea23e976367f8d4b7655bdbe16c71a02704dc7f602c  guix-build-f862f4a74ec6/output/powerpc64-linux-gnu/bitcoin-f862f4a74ec6-powerpc64-linux-gnu-debug.tar.gz
  d6385cfce11872d7008e345cfe6396e24dc37b2367139ce95841a16a91853c0b  guix-build-f862f4a74ec6/output/powerpc64-linux-gnu/bitcoin-f862f4a74ec6-powerpc64-linux-gnu.tar.gz
  9c14549a899c7ac550d4d6e51ebd0416bb62ad31351bc18dac9eada5a2b41d1b  guix-build-f862f4a74ec6/output/powerpc64le-linux-gnu/SHA256SUMS.part
  e7557409ee809483be422c1f046f3de4994538e3dc840f9683dc341f35897006  guix-build-f862f4a74ec6/output/powerpc64le-linux-gnu/bitcoin-f862f4a74ec6-powerpc64le-linux-gnu-debug.tar.gz
  a2b9e75edccfadb7b54b7e01cd3ea602aa1d6907037bf8c1517637558e08beb6  guix-build-f862f4a74ec6/output/powerpc64le-linux-gnu/bitcoin-f862f4a74ec6-powerpc64le-linux-gnu.tar.gz
  099b822c656c738b2f4119dffc9630af7c398acd9039d65520653158c05eaff9  guix-build-f862f4a74ec6/output/riscv64-linux-gnu/SHA256SUMS.part
  6bcff8b4b4d68e18fd19d7407be3ba2768894a46e53a10e7a1ea5e730bddf216  guix-build-f862f4a74ec6/output/riscv64-linux-gnu/bitcoin-f862f4a74ec6-riscv64-linux-gnu-debug.tar.gz
  58c3e536e0f199f85d3a71aa5ae41bcebc4bba94fe8b93062a01952f80e3fd49  guix-build-f862f4a74ec6/output/riscv64-linux-gnu/bitcoin-f862f4a74ec6-riscv64-linux-gnu.tar.gz
  59821609cd76efdc8efb1deacaf9f1bc6af754a764ebfbdad47df392152e19ac  guix-build-f862f4a74ec6/output/x86_64-apple-darwin/SHA256SUMS.part
  5f48f56c2efe5ccf9bb22c6ba78af6c019f2df86eacada8241a7a351e0b81f83  guix-build-f862f4a74ec6/output/x86_64-apple-darwin/bitcoin-f862f4a74ec6-x86_64-apple-darwin-unsigned.dmg
  73d0885ac4208345ff8a762a8a421e4812af621b441cfb6ddf4430a0ce657620  guix-build-f862f4a74ec6/output/x86_64-apple-darwin/bitcoin-f862f4a74ec6-x86_64-apple-darwin-unsigned.tar.gz
  9b001f66b969e80c3d22d0eadceaa53d16440e2c1550d181e4e63747de8779f5  guix-build-f862f4a74ec6/output/x86_64-apple-darwin/bitcoin-f862f4a74ec6-x86_64-apple-darwin.tar.gz
  6181e4941f836084d33eec2131b88fa793da168f79a887a7688ded690a3172db  guix-build-f862f4a74ec6/output/x86_64-linux-gnu/SHA256SUMS.part
  c561ac1f2466fc4a685a23a89b325cf76e200b2016daa2692950af7901995149  guix-build-f862f4a74ec6/output/x86_64-linux-gnu/bitcoin-f862f4a74ec6-x86_64-linux-gnu-debug.tar.gz
  c89c49ff45ab9a71c2b3f0e656fdca18be815f2474beb1c4dd663d466e077e8a  guix-build-f862f4a74ec6/output/x86_64-linux-gnu/bitcoin-f862f4a74ec6-x86_64-linux-gnu.tar.gz
  461d8a96c28854eb131544205978849a192ef7a1db14f85f1ae4791a90da96c5  guix-build-f862f4a74ec6/output/x86_64-w64-mingw32/SHA256SUMS.part
  9e77f1aa937c3d690160ad362eac92ffc20e5a8d2272243ba10099239521aa70  guix-build-f862f4a74ec6/output/x86_64-w64-mingw32/bitcoin-f862f4a74ec6-win64-debug.zip
  90a04f298826699c808519846cb1cec50047ff2959471a684b26c20a2e504c47  guix-build-f862f4a74ec6/output/x86_64-w64-mingw32/bitcoin-f862f4a74ec6-win64-setup-unsigned.exe
  f487dd6a8d1eb7566df85c1b2fe536352e4e0c3e50c911766f1daccdbdf5706d  guix-build-f862f4a74ec6/output/x86_64-w64-mingw32/bitcoin-f862f4a74ec6-win64-unsigned.tar.gz
  5f120f1af427ee1c7bd3129a67297b6bc34693e963e90004aee2558c9c5622d5  guix-build-f862f4a74ec6/output/x86_64-w64-mingw32/bitcoin-f862f4a74ec6-win64.zip
  ```

ACKs for top commit:
  laanwj:
    Code review ACK f862f4a

Tree-SHA512: df52d0165eb1ca1db1c50bfc06e0f647ef976bd133daf2fd310f25455ee6b69b26a1e5cb48f2d8873aac78660465bfedcd2acdec67e67bf76bb44257d28912a3
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Jun 21, 2022
f862f4a build: add *_STANDARD vars to depends gen_id (fanquake)

Pull request description:

  Followup to bitcoin#22380 😅. We need to have these in `gen_id` so that we rebuild if we change / unset a *_STANDARD.

  Guix Build (x86_64):
  ```bash
  afc2a24bae06f87b7f14f0958b2ca497c050f6069e68958e45120215bab4507e  guix-build-f862f4a74ec6/output/aarch64-linux-gnu/SHA256SUMS.part
  547266e64002dc1124adedc1679f4c526088212b6ba31fb3457523adeb80be50  guix-build-f862f4a74ec6/output/aarch64-linux-gnu/bitcoin-f862f4a74ec6-aarch64-linux-gnu-debug.tar.gz
  af73193740f93d9ff13ed4eb459aabaf942e7075ac53967f5505bbebfea1eb9f  guix-build-f862f4a74ec6/output/aarch64-linux-gnu/bitcoin-f862f4a74ec6-aarch64-linux-gnu.tar.gz
  b36f58a4e37ed30ac8463716b5ed715f427e419d80d7e90381341fcab2712427  guix-build-f862f4a74ec6/output/arm-linux-gnueabihf/SHA256SUMS.part
  1ed49ea3efd7d9f5eba53d8e73356e82dfb5da2050f91a284dd38f157fa790b4  guix-build-f862f4a74ec6/output/arm-linux-gnueabihf/bitcoin-f862f4a74ec6-arm-linux-gnueabihf-debug.tar.gz
  dfaf6359511fa82a36448e16722179bd49d1d04e366cf140aaa0dfaa1be75b12  guix-build-f862f4a74ec6/output/arm-linux-gnueabihf/bitcoin-f862f4a74ec6-arm-linux-gnueabihf.tar.gz
  41dbc79a8372c2dd2eccc1af282e160f749faacd51c5d2594e8d48afaa6df5bc  guix-build-f862f4a74ec6/output/arm64-apple-darwin/SHA256SUMS.part
  abe6a3506441faeebdc08682c92d51ba3a0e5fc6af3a2b28f054d0ea1f2b5781  guix-build-f862f4a74ec6/output/arm64-apple-darwin/bitcoin-f862f4a74ec6-arm64-apple-darwin-unsigned.dmg
  01be81fd0c99a384afd06806441fb1775fc4a875153a3e699417a2c74547ad3a  guix-build-f862f4a74ec6/output/arm64-apple-darwin/bitcoin-f862f4a74ec6-arm64-apple-darwin-unsigned.tar.gz
  7e1b5547d5deb5944b6b3552634e3dd737da144c87ce75a5e9029e4edfe126a4  guix-build-f862f4a74ec6/output/arm64-apple-darwin/bitcoin-f862f4a74ec6-arm64-apple-darwin.tar.gz
  c4387c1d98f7146aa8926d827129063d502cd9b098a2674c487e550036df36fb  guix-build-f862f4a74ec6/output/dist-archive/bitcoin-f862f4a74ec6.tar.gz
  084912a415d3c8eedf47a60684abc7c753977ecf8990bd72c67158371cf39e2c  guix-build-f862f4a74ec6/output/powerpc64-linux-gnu/SHA256SUMS.part
  17f3aba98063f51af29b8b3ad2d9edd9a34b39aee09c82d28e8f49e765395de8  guix-build-f862f4a74ec6/output/powerpc64-linux-gnu/bitcoin-f862f4a74ec6-powerpc64-linux-gnu-debug.tar.gz
  12ebd244f31597a54c0b93d23dc6d2a7b375d47edf9576e205d23c7ca7c2cac8  guix-build-f862f4a74ec6/output/powerpc64-linux-gnu/bitcoin-f862f4a74ec6-powerpc64-linux-gnu.tar.gz
  c28467af85a6a043cc5c80234680eabc3cbb2857b778b412a128c039c85c419a  guix-build-f862f4a74ec6/output/powerpc64le-linux-gnu/SHA256SUMS.part
  69ae9c40f0d413e0cfdff58dab0e6938c58a72f8cf3c7b6259e2da67dae61b1a  guix-build-f862f4a74ec6/output/powerpc64le-linux-gnu/bitcoin-f862f4a74ec6-powerpc64le-linux-gnu-debug.tar.gz
  c75065dcab7260d6072dcb753cf43976a7ad6b0c2be1ab2f96d65b99083c0628  guix-build-f862f4a74ec6/output/powerpc64le-linux-gnu/bitcoin-f862f4a74ec6-powerpc64le-linux-gnu.tar.gz
  63fdefb6c04fc61fc4354d4f6bc1b1530595e21ecbd9e8dfc7a459e9daaaad32  guix-build-f862f4a74ec6/output/riscv64-linux-gnu/SHA256SUMS.part
  9e5c7a8d459befce46742c254f74771c95d91496a350f396878c204003375f28  guix-build-f862f4a74ec6/output/riscv64-linux-gnu/bitcoin-f862f4a74ec6-riscv64-linux-gnu-debug.tar.gz
  884a789984eda3e3c68f69e975cf664a2bb4e6986b649ab6f09f529995c84702  guix-build-f862f4a74ec6/output/riscv64-linux-gnu/bitcoin-f862f4a74ec6-riscv64-linux-gnu.tar.gz
  59821609cd76efdc8efb1deacaf9f1bc6af754a764ebfbdad47df392152e19ac  guix-build-f862f4a74ec6/output/x86_64-apple-darwin/SHA256SUMS.part
  5f48f56c2efe5ccf9bb22c6ba78af6c019f2df86eacada8241a7a351e0b81f83  guix-build-f862f4a74ec6/output/x86_64-apple-darwin/bitcoin-f862f4a74ec6-x86_64-apple-darwin-unsigned.dmg
  73d0885ac4208345ff8a762a8a421e4812af621b441cfb6ddf4430a0ce657620  guix-build-f862f4a74ec6/output/x86_64-apple-darwin/bitcoin-f862f4a74ec6-x86_64-apple-darwin-unsigned.tar.gz
  9b001f66b969e80c3d22d0eadceaa53d16440e2c1550d181e4e63747de8779f5  guix-build-f862f4a74ec6/output/x86_64-apple-darwin/bitcoin-f862f4a74ec6-x86_64-apple-darwin.tar.gz
  0ace0d29576c6bf110ad7a067399eca649960a7dd6a33b03e82a4eadcfec0fa1  guix-build-f862f4a74ec6/output/x86_64-linux-gnu/SHA256SUMS.part
  3efea8a971c36d642cbfa7fd5d95044f895c81e4729281588726689c4cc4688e  guix-build-f862f4a74ec6/output/x86_64-linux-gnu/bitcoin-f862f4a74ec6-x86_64-linux-gnu-debug.tar.gz
  afa95414ab703a0cdb632b963ef28ba93bb8f136590c5169c90b3906858282d5  guix-build-f862f4a74ec6/output/x86_64-linux-gnu/bitcoin-f862f4a74ec6-x86_64-linux-gnu.tar.gz
  7993b7ed1592f440c498f7643c2a8cc36d0e4c887b77d6fc7e5bef2cc85afb7a  guix-build-f862f4a74ec6/output/x86_64-w64-mingw32/SHA256SUMS.part
  54ab6be514f0f865858d278997c409d96572a1f33aa85fd819f395d57aa4a388  guix-build-f862f4a74ec6/output/x86_64-w64-mingw32/bitcoin-f862f4a74ec6-win64-debug.zip
  90a04f298826699c808519846cb1cec50047ff2959471a684b26c20a2e504c47  guix-build-f862f4a74ec6/output/x86_64-w64-mingw32/bitcoin-f862f4a74ec6-win64-setup-unsigned.exe
  f487dd6a8d1eb7566df85c1b2fe536352e4e0c3e50c911766f1daccdbdf5706d  guix-build-f862f4a74ec6/output/x86_64-w64-mingw32/bitcoin-f862f4a74ec6-win64-unsigned.tar.gz
  82be7831089e8245c17ed3d61cd56606b36554c15978c1a64181df02df918a14  guix-build-f862f4a74ec6/output/x86_64-w64-mingw32/bitcoin-f862f4a74ec6-win64.zip

  ```

  Guix Build (arm64):
  ```bash
  b465ed412b625a0980473d359e0b34ec646d90d844d1055ad61f99d5a4e08e47  guix-build-f862f4a74ec6/output/arm-linux-gnueabihf/SHA256SUMS.part
  0391c59642724c205f466844995c8dc702a581278295189c4ef39c1dd53c915a  guix-build-f862f4a74ec6/output/arm-linux-gnueabihf/bitcoin-f862f4a74ec6-arm-linux-gnueabihf-debug.tar.gz
  42ff69794e2c61b205e6f9e8060aa4b5c382c6ba53c1a91dfd46069619ac589a  guix-build-f862f4a74ec6/output/arm-linux-gnueabihf/bitcoin-f862f4a74ec6-arm-linux-gnueabihf.tar.gz
  b26d85b2beb0e8812d71833f493d623ac9419d2f791f34d3726bff387541d096  guix-build-f862f4a74ec6/output/arm64-apple-darwin/SHA256SUMS.part
  0e2a81f2a4ea64b2a7407b52499af41e9a8448d56ebcc65befda42bac964f94e  guix-build-f862f4a74ec6/output/arm64-apple-darwin/bitcoin-f862f4a74ec6-arm64-apple-darwin-unsigned.dmg
  f896df86baab84c737a5e2082b184e77a6b983a1a8dfbc1282ed22d7cea5aa0b  guix-build-f862f4a74ec6/output/arm64-apple-darwin/bitcoin-f862f4a74ec6-arm64-apple-darwin-unsigned.tar.gz
  3c3be5e7fc97950c612c00f36970e498f356147fee4c0f590298f5ad94fbc7a6  guix-build-f862f4a74ec6/output/arm64-apple-darwin/bitcoin-f862f4a74ec6-arm64-apple-darwin.tar.gz
  c4387c1d98f7146aa8926d827129063d502cd9b098a2674c487e550036df36fb  guix-build-f862f4a74ec6/output/dist-archive/bitcoin-f862f4a74ec6.tar.gz
  792e2ae8c991203765aaa080c58111c57bd59cf217cbf0b461e50cde10754d5b  guix-build-f862f4a74ec6/output/powerpc64-linux-gnu/SHA256SUMS.part
  ff68b5693861bc5d9e016ea23e976367f8d4b7655bdbe16c71a02704dc7f602c  guix-build-f862f4a74ec6/output/powerpc64-linux-gnu/bitcoin-f862f4a74ec6-powerpc64-linux-gnu-debug.tar.gz
  d6385cfce11872d7008e345cfe6396e24dc37b2367139ce95841a16a91853c0b  guix-build-f862f4a74ec6/output/powerpc64-linux-gnu/bitcoin-f862f4a74ec6-powerpc64-linux-gnu.tar.gz
  9c14549a899c7ac550d4d6e51ebd0416bb62ad31351bc18dac9eada5a2b41d1b  guix-build-f862f4a74ec6/output/powerpc64le-linux-gnu/SHA256SUMS.part
  e7557409ee809483be422c1f046f3de4994538e3dc840f9683dc341f35897006  guix-build-f862f4a74ec6/output/powerpc64le-linux-gnu/bitcoin-f862f4a74ec6-powerpc64le-linux-gnu-debug.tar.gz
  a2b9e75edccfadb7b54b7e01cd3ea602aa1d6907037bf8c1517637558e08beb6  guix-build-f862f4a74ec6/output/powerpc64le-linux-gnu/bitcoin-f862f4a74ec6-powerpc64le-linux-gnu.tar.gz
  099b822c656c738b2f4119dffc9630af7c398acd9039d65520653158c05eaff9  guix-build-f862f4a74ec6/output/riscv64-linux-gnu/SHA256SUMS.part
  6bcff8b4b4d68e18fd19d7407be3ba2768894a46e53a10e7a1ea5e730bddf216  guix-build-f862f4a74ec6/output/riscv64-linux-gnu/bitcoin-f862f4a74ec6-riscv64-linux-gnu-debug.tar.gz
  58c3e536e0f199f85d3a71aa5ae41bcebc4bba94fe8b93062a01952f80e3fd49  guix-build-f862f4a74ec6/output/riscv64-linux-gnu/bitcoin-f862f4a74ec6-riscv64-linux-gnu.tar.gz
  59821609cd76efdc8efb1deacaf9f1bc6af754a764ebfbdad47df392152e19ac  guix-build-f862f4a74ec6/output/x86_64-apple-darwin/SHA256SUMS.part
  5f48f56c2efe5ccf9bb22c6ba78af6c019f2df86eacada8241a7a351e0b81f83  guix-build-f862f4a74ec6/output/x86_64-apple-darwin/bitcoin-f862f4a74ec6-x86_64-apple-darwin-unsigned.dmg
  73d0885ac4208345ff8a762a8a421e4812af621b441cfb6ddf4430a0ce657620  guix-build-f862f4a74ec6/output/x86_64-apple-darwin/bitcoin-f862f4a74ec6-x86_64-apple-darwin-unsigned.tar.gz
  9b001f66b969e80c3d22d0eadceaa53d16440e2c1550d181e4e63747de8779f5  guix-build-f862f4a74ec6/output/x86_64-apple-darwin/bitcoin-f862f4a74ec6-x86_64-apple-darwin.tar.gz
  6181e4941f836084d33eec2131b88fa793da168f79a887a7688ded690a3172db  guix-build-f862f4a74ec6/output/x86_64-linux-gnu/SHA256SUMS.part
  c561ac1f2466fc4a685a23a89b325cf76e200b2016daa2692950af7901995149  guix-build-f862f4a74ec6/output/x86_64-linux-gnu/bitcoin-f862f4a74ec6-x86_64-linux-gnu-debug.tar.gz
  c89c49ff45ab9a71c2b3f0e656fdca18be815f2474beb1c4dd663d466e077e8a  guix-build-f862f4a74ec6/output/x86_64-linux-gnu/bitcoin-f862f4a74ec6-x86_64-linux-gnu.tar.gz
  461d8a96c28854eb131544205978849a192ef7a1db14f85f1ae4791a90da96c5  guix-build-f862f4a74ec6/output/x86_64-w64-mingw32/SHA256SUMS.part
  9e77f1aa937c3d690160ad362eac92ffc20e5a8d2272243ba10099239521aa70  guix-build-f862f4a74ec6/output/x86_64-w64-mingw32/bitcoin-f862f4a74ec6-win64-debug.zip
  90a04f298826699c808519846cb1cec50047ff2959471a684b26c20a2e504c47  guix-build-f862f4a74ec6/output/x86_64-w64-mingw32/bitcoin-f862f4a74ec6-win64-setup-unsigned.exe
  f487dd6a8d1eb7566df85c1b2fe536352e4e0c3e50c911766f1daccdbdf5706d  guix-build-f862f4a74ec6/output/x86_64-w64-mingw32/bitcoin-f862f4a74ec6-win64-unsigned.tar.gz
  5f120f1af427ee1c7bd3129a67297b6bc34693e963e90004aee2558c9c5622d5  guix-build-f862f4a74ec6/output/x86_64-w64-mingw32/bitcoin-f862f4a74ec6-win64.zip
  ```

ACKs for top commit:
  laanwj:
    Code review ACK f862f4a

Tree-SHA512: df52d0165eb1ca1db1c50bfc06e0f647ef976bd133daf2fd310f25455ee6b69b26a1e5cb48f2d8873aac78660465bfedcd2acdec67e67bf76bb44257d28912a3
@bitcoin bitcoin locked and limited conversation to collaborators Jun 16, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants