Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: remove mingw linker workaround from win gitian descriptor #16667

Merged
merged 1 commit into from Oct 14, 2019

Conversation

@fanquake
Copy link
Member

fanquake commented Aug 20, 2019

This workaround was added as part of the switch to gitian building using Ubuntu 14.04 (#6900).
However, it should no longer be required, as we have switched to Bionic (#13171) and that
has a far newer version of binutils.

Original discussion: #6900
binutils patch: https://sourceware.org/bugzilla/show_bug.cgi?id=16192

@MarcoFalke

This comment has been minimized.

Copy link
Member

MarcoFalke commented Aug 21, 2019

Fails with

Options used to compile and link:
  with wallet   = yes
  with gui / qt = yes
    with bip70  = yes
    with qr     = yes
  with zmq      = yes
  with test     = yes
    with prop   = no
    with fuzz   = no
  with bench    = no
  with upnp     = yes
  use asm       = yes
  sanitizers    = 
  debug enabled = no
  gprof enabled = no
  werror        = no

  target os     = windows
  build os      = 

  CC            = x86_64-w64-mingw32-gcc
  CFLAGS        = -pipe -O2 -O2 -g
  CPPFLAGS      =   -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -I/home/ubuntu/build/bitcoin/depends/x86_64-w64-mingw32/share/../include/  -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS -D_MT -DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB -D_WIN32_WINNT=0x0601 -D_FILE_OFFSET_BITS=64
  CXX           = x86_64-w64-mingw32-g++ -std=c++11
  CXXFLAGS      =   -fstack-reuse=none -Wstack-protector -fstack-protector-all     -pipe -O2 -O2 -g -fvisibility=hidden
  LDFLAGS       = -pthread  -Wl,--dynamicbase -Wl,--nxcompat -Wl,--high-entropy-va -pie  -L/home/ubuntu/build/bitcoin/depends/x86_64-w64-mingw32/share/../lib 
  ARFLAGS       = cr

+ make -j1
Making all in src
make[1]: Entering directory '/home/ubuntu/build/bitcoin/distsrc-x86_64-w64-mingw32/src'
make[2]: Entering directory '/home/ubuntu/build/bitcoin/distsrc-x86_64-w64-mingw32/src'
  CXX      support/libbitcoinconsensus_la-cleanse.lo
  CXX      crypto/libbitcoinconsensus_la-aes.lo
  CXX      crypto/libbitcoinconsensus_la-chacha_poly_aead.lo
  CXX      crypto/libbitcoinconsensus_la-chacha20.lo
  CXX      crypto/libbitcoinconsensus_la-hkdf_sha256_32.lo
  CXX      crypto/libbitcoinconsensus_la-hmac_sha256.lo
  CXX      crypto/libbitcoinconsensus_la-hmac_sha512.lo
  CXX      crypto/libbitcoinconsensus_la-poly1305.lo
  CXX      crypto/libbitcoinconsensus_la-ripemd160.lo
  CXX      crypto/libbitcoinconsensus_la-sha1.lo
  CXX      crypto/libbitcoinconsensus_la-sha256.lo
  CXX      crypto/libbitcoinconsensus_la-sha512.lo
  CXX      crypto/libbitcoinconsensus_la-siphash.lo
  CXX      crypto/libbitcoinconsensus_la-sha256_sse4.lo
  CXX      libbitcoinconsensus_la-arith_uint256.lo
  CXX      consensus/libbitcoinconsensus_la-merkle.lo
  CXX      consensus/libbitcoinconsensus_la-tx_check.lo
  CXX      libbitcoinconsensus_la-hash.lo
  CXX      primitives/libbitcoinconsensus_la-block.lo
  CXX      primitives/libbitcoinconsensus_la-transaction.lo
  CXX      libbitcoinconsensus_la-pubkey.lo
  CXX      script/libbitcoinconsensus_la-bitcoinconsensus.lo
  CXX      script/libbitcoinconsensus_la-interpreter.lo
  CXX      script/libbitcoinconsensus_la-script.lo
  CXX      script/libbitcoinconsensus_la-script_error.lo
  CXX      libbitcoinconsensus_la-uint256.lo
  CXX      util/libbitcoinconsensus_la-strencodings.lo
make[3]: Entering directory '/home/ubuntu/build/bitcoin/distsrc-x86_64-w64-mingw32/src/secp256k1'
gcc -I. -g -O2 -Wall -Wextra -Wno-unused-function -c src/gen_context.c -o gen_context.o
gcc -g -O2 -Wall -Wextra -Wno-unused-function  gen_context.o -o gen_context
./gen_context
  CC       src/libsecp256k1_la-secp256k1.lo
  CCLD     libsecp256k1.la
libtool: warning: undefined symbols not allowed in x86_64-w64-mingw32 shared libraries; building static only
/usr/bin/x86_64-w64-mingw32-ar: `u' modifier ignored since `D' is the default (see `U')
make[3]: Leaving directory '/home/ubuntu/build/bitcoin/distsrc-x86_64-w64-mingw32/src/secp256k1'
  CXXLD    libbitcoinconsensus.la
/usr/bin/x86_64-w64-mingw32-ar: `u' modifier ignored since `D' is the default (see `U')
  CXX      bitcoind-bitcoind.o
In file included from ./util/system.h:21:0,
                 from ./init.h:11,
                 from bitcoind.cpp:14:
./logging.h:63:22: error: ‘mutex’ in namespace ‘std’ does not name a type
         mutable std::mutex m_cs;                   // Can not use Mutex from sync.h because in debug mode it would cause a deadlock when a potential deadlock was detected
                      ^~~~~
In file included from ./util/system.h:21:0,
                 from ./init.h:11,
                 from bitcoind.cpp:14:
./logging.h: In member function ‘bool BCLog::Logger::Enabled() const’:
./logging.h:97:34: error: ‘mutex’ is not a member of ‘std’
             std::lock_guard<std::mutex> scoped_lock(m_cs);
                                  ^~~~~
./logging.h:97:34: error: ‘mutex’ is not a member of ‘std’
./logging.h:97:39: error: template argument 1 is invalid
             std::lock_guard<std::mutex> scoped_lock(m_cs);
                                       ^
./logging.h:97:53: error: ‘m_cs’ was not declared in this scope
             std::lock_guard<std::mutex> scoped_lock(m_cs);
                                                     ^~~~
In file included from ./util/system.h:22:0,
                 from ./init.h:11,
                 from bitcoind.cpp:14:
./sync.h: At global scope:
./sync.h:107:44: error: ‘recursive_mutex’ is not a member of ‘std’
 using RecursiveMutex = AnnotatedMixin<std::recursive_mutex>;
                                            ^~~~~~~~~~~~~~~
./sync.h:107:44: error: ‘recursive_mutex’ is not a member of ‘std’
./sync.h:107:59: error: template argument 1 is invalid
 using RecursiveMutex = AnnotatedMixin<std::recursive_mutex>;
                                                           ^
./sync.h:108:29: error: ‘recursive_mutex’ is not a member of ‘std’
 typedef AnnotatedMixin<std::recursive_mutex> CCriticalSection;
                             ^~~~~~~~~~~~~~~
./sync.h:108:29: error: ‘recursive_mutex’ is not a member of ‘std’
./sync.h:108:44: error: template argument 1 is invalid
 typedef AnnotatedMixin<std::recursive_mutex> CCriticalSection;
                                            ^
./sync.h:111:29: error: ‘mutex’ is not a member of ‘std’
 typedef AnnotatedMixin<std::mutex> Mutex;
                             ^~~~~
./sync.h:111:29: error: ‘mutex’ is not a member of ‘std’
./sync.h:111:34: error: template argument 1 is invalid
 typedef AnnotatedMixin<std::mutex> Mutex;
                                  ^
./sync.h:214:10: error: ‘condition_variable’ in namespace ‘std’ does not name a type
     std::condition_variable condition;
          ^~~~~~~~~~~~~~~~~~
./sync.h:215:10: error: ‘mutex’ in namespace ‘std’ does not name a type
     std::mutex mutex;
          ^~~~~
./sync.h: In member function ‘void CSemaphore::wait()’:
./sync.h:223:31: error: ‘mutex’ is not a member of ‘std’
         std::unique_lock<std::mutex> lock(mutex);
                               ^~~~~
./sync.h:223:31: error: ‘mutex’ is not a member of ‘std’
./sync.h:223:36: error: template argument 1 is invalid
         std::unique_lock<std::mutex> lock(mutex);
                                    ^
./sync.h:223:43: error: ‘mutex’ was not declared in this scope
         std::unique_lock<std::mutex> lock(mutex);
                                           ^~~~~
./sync.h:223:43: note: suggested alternative: ‘Mutex’
         std::unique_lock<std::mutex> lock(mutex);
                                           ^~~~~
                                           Mutex
./sync.h:224:9: error: ‘condition’ was not declared in this scope
         condition.wait(lock, [&]() { return value >= 1; });
         ^~~~~~~~~
./sync.h: In member function ‘bool CSemaphore::try_wait()’:
./sync.h:230:30: error: ‘mutex’ is not a member of ‘std’
         std::lock_guard<std::mutex> lock(mutex);
                              ^~~~~
./sync.h:230:30: error: ‘mutex’ is not a member of ‘std’
./sync.h:230:35: error: template argument 1 is invalid
         std::lock_guard<std::mutex> lock(mutex);
                                   ^
./sync.h:230:42: error: ‘mutex’ was not declared in this scope
         std::lock_guard<std::mutex> lock(mutex);
                                          ^~~~~
./sync.h:230:42: note: suggested alternative: ‘Mutex’
         std::lock_guard<std::mutex> lock(mutex);
                                          ^~~~~
                                          Mutex
./sync.h: In member function ‘void CSemaphore::post()’:
./sync.h:240:34: error: ‘mutex’ is not a member of ‘std’
             std::lock_guard<std::mutex> lock(mutex);
                                  ^~~~~
./sync.h:240:34: error: ‘mutex’ is not a member of ‘std’
./sync.h:240:39: error: template argument 1 is invalid
             std::lock_guard<std::mutex> lock(mutex);
                                       ^
./sync.h:240:46: error: ‘mutex’ was not declared in this scope
             std::lock_guard<std::mutex> lock(mutex);
                                              ^~~~~
./sync.h:240:46: note: suggested alternative: ‘Mutex’
             std::lock_guard<std::mutex> lock(mutex);
                                              ^~~~~
                                              Mutex
./sync.h:243:9: error: ‘condition’ was not declared in this scope
         condition.notify_one();
         ^~~~~~~~~
./sync.h: In substitution of ‘template<class MutexArg> using DebugLock = UniqueLock<typename std::remove_reference<typename std::remove_pointer<_Tp>::type>::type> [with MutexArg = int]’:
./util/system.h:287:9:   required from here
./sync.h:177:113: error: ‘std::remove_reference<int>::type {aka int}’ is not a class, struct, or union type
 using DebugLock = UniqueLock<typename std::remove_reference<typename std::remove_pointer<MutexArg>::type>::type>;
                                                                                                                 ^
./util/system.h: In member function ‘void ArgsManager::ClearArgs()’:
./sync.h:182:104: error: expression list treated as compound expression in initializer [-fpermissive]
 #define LOCK(cs) DebugLock<decltype(cs)> PASTE2(criticalblock, __COUNTER__)(cs, #cs, __FILE__, __LINE__)
                                                                                                        ^
./util/system.h:287:9: note: in expansion of macro ‘LOCK’
         LOCK(cs_args);
         ^
Makefile:10694: recipe for target 'bitcoind-bitcoind.o' failed
make[2]: *** [bitcoind-bitcoind.o] Error 1
make[2]: Leaving directory '/home/ubuntu/build/bitcoin/distsrc-x86_64-w64-mingw32/src'
Makefile:13149: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/ubuntu/build/bitcoin/distsrc-x86_64-w64-mingw32/src'
Makefile:774: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
Copy link
Member

theuni left a comment

Concept ACK.

@DrahtBot

This comment has been minimized.

Copy link
Contributor

DrahtBot commented Aug 24, 2019

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

Conflicts

No conflicts as of last run.

This workaround was added as part of the switch to gitian building using Ubuntu 14.04 (#6900).
However, it should no longer be required, as we have switched to Bionic (#13171), and that
has a far newer version of binutils.

binutils patch: https://sourceware.org/bugzilla/show_bug.cgi?id=16192
@fanquake fanquake force-pushed the fanquake:remove_mingw_linker_workaround branch from ac85e81 to bd3f5a9 Sep 23, 2019
@DrahtBot

This comment has been minimized.

Copy link
Contributor

DrahtBot commented Sep 23, 2019

Gitian builds for commit 13377b7 (master):

Gitian builds for commit 2cfaf8b (master and this pull):

@bitcoin bitcoin deleted a comment from DrahtBot Sep 23, 2019
@dongcarl

This comment has been minimized.

Copy link
Contributor

dongcarl commented Sep 23, 2019

Performing a Gitian build on bd3f5a9 right now if anyone wants to compare.

@MarcoFalke

This comment has been minimized.

Copy link
Member

MarcoFalke commented Sep 23, 2019

Eh? DrahtBot did a build on 2cfaf8b and it didn't even start. (Or for some other reason didn't produce a win-build.log)

@MarcoFalke

This comment has been minimized.

Copy link
Member

MarcoFalke commented Sep 24, 2019

Aw sorry 🤦‍♂. Looks like this time it worked.

@laanwj

This comment has been minimized.

Copy link
Member

laanwj commented Sep 25, 2019

What is the status of this?

@MarcoFalke

This comment has been minimized.

Copy link
Member

MarcoFalke commented Sep 25, 2019

ACK bd3f5a9

Show signature and timestamp

Signature:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

ACK bd3f5a90ecd6de40516141b23b0861dbba0b31b6
-----BEGIN PGP SIGNATURE-----

iQGzBAEBCgAdFiEE+rVPoUahrI9sLGYTzit1aX5ppUgFAlwqrYAACgkQzit1aX5p
pUjb6Qv+Jda+FAxquHn1EbKNQAjfQw203BOxP7LiHD+Ot/x3yJD6OVpH6kaK25yZ
OPqIJnkypvXJKRxjFVsQJ+vX46scSds2XMh5newn+at4tNxxm1dsWcbnCiLbP2vw
7TCLY51yu84/qGH45vAT4oq9VIninEm2joB2AyklkFqmbSeFutbdII6KNCQ2flzV
kcVubISckkfH0YVWuPn226AM7/n0ngeP8jE9c5CB25ISkEOVatGDLngj9CeARH8Q
LUjuCK0hbx0/vG9Xm6I4fDWNs5TGl0NH2jYjZUpjLoVUsm9L4s0xej8WB13QU642
VvRX6ZSsuf1im+2FSbtgbN+h6jlXN0rEodxXZqJ0i6FB1mGtajwgH+pW6/68bEXH
5ODcGrCvcNfmjQvvGAo411cwlT2NfFOJVNpBoegmx8zPjoaf9BKW3xJXNihP0bMe
5uwm3HpZfpKrJdK7MXALfZ/HLNKdItz2JKjCi5x6uPhi0wHtjjAOThpeloPnc7o8
zgnRDWSy
=rcs4
-----END PGP SIGNATURE-----

Timestamp of file with hash 90e31459a25983012aabe70c185b6812d7ef8b09395071eab003f7376b37a810 -

@MarcoFalke

This comment has been minimized.

Copy link
Member

MarcoFalke commented Sep 25, 2019

Ok, I am confused.

For commit 7b2a788 (master+this pull) it failed:

scratch/gitian/bitcoin-binaries/7b2a788d911e5c3f5aeb36dba5a03827428e800b/win-build.log

@MarcoFalke

This comment has been minimized.

Copy link
Member

MarcoFalke commented Sep 25, 2019

Does anyone have any results (apart from @DrahtBot, whose results were inconclusive)

@dongcarl @fanquake

@MarcoFalke

This comment has been minimized.

Copy link
Member

MarcoFalke commented Sep 25, 2019

Also fails for commit bd3f5a9

@dongcarl

This comment has been minimized.

Copy link
Contributor

dongcarl commented Sep 25, 2019

@MarcoFalke Here are my results for bd3f5a9

ef63c5ce021cf4d16b6ee148f7886ab2af50d415560dd1f7117e5f56743b72a4  bitcoin-0.18.99-win-unsigned.tar.gz
919038118da38a28a0a4d391c0c56cd53d32d5470bed1d6984134d514cb2ae13  bitcoin-0.18.99-win64-debug.zip
4f525a8cc5852b1db4c5d98d218117f153eccc722f1bc69394dc9412c7ac417c  bitcoin-0.18.99-win64-setup-unsigned.exe
4aa2e0c4f32fcca6c557f2581aaf7578f271fe329264e090305d504223e62dcf  bitcoin-0.18.99-win64.zip
c7d72ac57753ffda64d88760d3e4c9bba1904faec342bf64150eb992dc9a003b  src/bitcoin-0.18.99.tar.gz
04ea46d6543ac225ebbf3e5896a2779f4389d9472ec30ec785e437e88a1da548  bitcoin-core-win-0.19-res.yml
@MarcoFalke

This comment has been minimized.

Copy link
Member

MarcoFalke commented Sep 25, 2019

Which virtualization are you using (lxc, kvm, podman, docker, bare metal, ...)?

@MarcoFalke

This comment has been minimized.

Copy link
Member

MarcoFalke commented Sep 25, 2019

Also, how many compile threads and is the result stable for you?

@dongcarl

This comment has been minimized.

Copy link
Contributor

dongcarl commented Sep 25, 2019

Here's what I used:

env USE_DOCKER=1 ./bin/gbuild -j48 -m 32768 --commit bitcoin=bd3f5a90ecd6de40516141b23b0861dbba0b31b6 --url bitcoin=https://github.com/fanquake/bitcoin.git ~/src/bitcoin/fanquake/remove_mingw_linker_workaround/contrib/gitian-descriptors/gitian-win.yml

I'll try it again to see if result is stable!

@dongcarl

This comment has been minimized.

Copy link
Contributor

dongcarl commented Sep 25, 2019

Everything important seems to match except the res.yml:

ef63c5ce021cf4d16b6ee148f7886ab2af50d415560dd1f7117e5f56743b72a4  bitcoin-0.18.99-win-unsigned.tar.gz
919038118da38a28a0a4d391c0c56cd53d32d5470bed1d6984134d514cb2ae13  bitcoin-0.18.99-win64-debug.zip
4f525a8cc5852b1db4c5d98d218117f153eccc722f1bc69394dc9412c7ac417c  bitcoin-0.18.99-win64-setup-unsigned.exe
4aa2e0c4f32fcca6c557f2581aaf7578f271fe329264e090305d504223e62dcf  bitcoin-0.18.99-win64.zip
c7d72ac57753ffda64d88760d3e4c9bba1904faec342bf64150eb992dc9a003b  src/bitcoin-0.18.99.tar.gz
5fb863503148b130fe4e7b217b588840aa67f1701588068eeb76b6837b4ea545  bitcoin-core-win-0.19-res.yml
@MarcoFalke

This comment has been minimized.

Copy link
Member

MarcoFalke commented Sep 25, 2019

Thanks, I'll debug some more maybe tomorrow

@fanquake

This comment has been minimized.

Copy link
Member Author

fanquake commented Sep 26, 2019

I just ran a build using:

env USE_DOCKER=1 ./bin/gbuild -j6 -m 6000 --commit bitcoin=bd3f5a90ecd6de40516141b23b0861dbba0b31b6 --url bitcoin=https://github.com/fanquake/bitcoin.git /Users/michael/github/bitcoin/contrib/gitian-descriptors/gitian-win.yml

Results match @dongcarl except for res.yml. Can run another one this arvo to confirm.

Generating report
ef63c5ce021cf4d16b6ee148f7886ab2af50d415560dd1f7117e5f56743b72a4  bitcoin-0.18.99-win-unsigned.tar.gz
919038118da38a28a0a4d391c0c56cd53d32d5470bed1d6984134d514cb2ae13  bitcoin-0.18.99-win64-debug.zip
4f525a8cc5852b1db4c5d98d218117f153eccc722f1bc69394dc9412c7ac417c  bitcoin-0.18.99-win64-setup-unsigned.exe
4aa2e0c4f32fcca6c557f2581aaf7578f271fe329264e090305d504223e62dcf  bitcoin-0.18.99-win64.zip
c7d72ac57753ffda64d88760d3e4c9bba1904faec342bf64150eb992dc9a003b  src/bitcoin-0.18.99.tar.gz
f3ba7af8c756a8cb87d71ffbde2b91654eda803d7fdcbd843ff910b85ce826bd  bitcoin-core-win-0.19-res.yml
Done.
@fanquake

This comment has been minimized.

Copy link
Member Author

fanquake commented Sep 26, 2019

Did another build with less cores and memory. @dongcarl looks like my res.yml isn't changing between builds:

time env USE_DOCKER=1 ./bin/gbuild -j4 -m 4000 --commit bitcoin=bd3f5a90ecd6de40516141b23b0861dbba0b31b6 --url bitcoin=https://github.com/fanquake/bitcoin.git /Users/michael/github/bitcoin/contrib/gitian-descriptors/gitian-win.yml 
Running build script (log in var/build.log)
Grabbing results from target
Grabbing cache from target
Generating report
ef63c5ce021cf4d16b6ee148f7886ab2af50d415560dd1f7117e5f56743b72a4  bitcoin-0.18.99-win-unsigned.tar.gz
919038118da38a28a0a4d391c0c56cd53d32d5470bed1d6984134d514cb2ae13  bitcoin-0.18.99-win64-debug.zip
4f525a8cc5852b1db4c5d98d218117f153eccc722f1bc69394dc9412c7ac417c  bitcoin-0.18.99-win64-setup-unsigned.exe
4aa2e0c4f32fcca6c557f2581aaf7578f271fe329264e090305d504223e62dcf  bitcoin-0.18.99-win64.zip
c7d72ac57753ffda64d88760d3e4c9bba1904faec342bf64150eb992dc9a003b  src/bitcoin-0.18.99.tar.gz
f3ba7af8c756a8cb87d71ffbde2b91654eda803d7fdcbd843ff910b85ce826bd  bitcoin-core-win-0.19-res.yml
Done.

real	51m3.421s
user	0m10.100s
sys	0m10.820s
@theuni
theuni approved these changes Oct 11, 2019
Copy link
Member

theuni left a comment

ACK bd3f5a9

Edit: Maybe I ACKed too soon? Changes look good to me, I don't see why this should affect the build in any weird way.

@DrahtBot

This comment has been minimized.

Copy link
Contributor

DrahtBot commented Oct 13, 2019

Gitian builds for commit f4d9307 (master):

Gitian builds for commit 9a78ea0 (master and this pull):

@bitcoin bitcoin deleted a comment from DrahtBot Oct 13, 2019
@bitcoin bitcoin deleted a comment from DrahtBot Oct 13, 2019
@bitcoin bitcoin deleted a comment from DrahtBot Oct 13, 2019
@laanwj
laanwj approved these changes Oct 14, 2019
Copy link
Member

laanwj left a comment

ACK bd3f5a9

Thanks for removing this horrible workaround. I do not understand how this change can cause random build issues, if anything, not setting a malloc-specific debug environment variable to clear all memory in advance should make the build more performant.

@DrahtBot

This comment has been minimized.

Copy link
Contributor

DrahtBot commented Oct 14, 2019

Gitian builds for commit 561a7d3 (master):

Gitian builds for commit 337095c (master and this pull):

@MarcoFalke

This comment has been minimized.

Copy link
Member

MarcoFalke commented Oct 14, 2019

I have no idea why this was failing to build locally and I haven't debugged. DrahtBot seems to pass now (The bot had some hard drive issues in the past and I fixed them).

3 ACKs and two successful builds by DrahtBot, going to merge now.

MarcoFalke added a commit that referenced this pull request Oct 14, 2019
…escriptor

bd3f5a9 build: remove mingw linker workaround from win gitian descriptor (fanquake)

Pull request description:

  This workaround was added as part of the switch to gitian building using Ubuntu 14.04 (#6900).
  However, it should no longer be required, as we have switched to Bionic (#13171) and that
  has a far newer version of binutils.

  Original discussion: #6900
  binutils patch: https://sourceware.org/bugzilla/show_bug.cgi?id=16192

ACKs for top commit:
  MarcoFalke:
    ACK bd3f5a9
  theuni:
    ACK bd3f5a9
  laanwj:
    ACK bd3f5a9

Tree-SHA512: 01a5789994decf8cdedf7aaa0a449d2100a77e2e6b422d6b9dd5a4ac3e2e0b538c3d43aae4a1c3713614782f3c6b09d8d8bb21c20e86ce3c1734183dedd02d0c
@MarcoFalke MarcoFalke merged commit bd3f5a9 into bitcoin:master Oct 14, 2019
2 checks passed
2 checks passed
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
@fanquake fanquake deleted the fanquake:remove_mingw_linker_workaround branch Oct 14, 2019
sidhujag added a commit to syscoin/syscoin that referenced this pull request Oct 15, 2019
…itian descriptor

bd3f5a9 build: remove mingw linker workaround from win gitian descriptor (fanquake)

Pull request description:

  This workaround was added as part of the switch to gitian building using Ubuntu 14.04 (bitcoin#6900).
  However, it should no longer be required, as we have switched to Bionic (bitcoin#13171) and that
  has a far newer version of binutils.

  Original discussion: bitcoin#6900
  binutils patch: https://sourceware.org/bugzilla/show_bug.cgi?id=16192

ACKs for top commit:
  MarcoFalke:
    ACK bd3f5a9
  theuni:
    ACK bd3f5a9
  laanwj:
    ACK bd3f5a9

Tree-SHA512: 01a5789994decf8cdedf7aaa0a449d2100a77e2e6b422d6b9dd5a4ac3e2e0b538c3d43aae4a1c3713614782f3c6b09d8d8bb21c20e86ce3c1734183dedd02d0c
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
7 participants
You can’t perform that action at this time.