From 5c5bea3d72f23f0488600ab44440f03921c17184 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 16 Jul 2018 12:50:21 +0200 Subject: [PATCH 1/3] Merge #13171: Change gitian-descriptors to use bionic instead c1afe3232fa10e290fb355cf37ea4c7bc1084065 Change gitian-descriptors to use bionic instead (Chun Kuan Lee) Pull request description: I have tested this with Ubuntu Bionic host with lxc 3.0.0, the gitian-build for Windows and MacOSX work fine, but there is an issue about it for Linux. Failed at check-symbol: ``` test/test_bitcoin: symbol __divmoddi4 from unsupported version GCC_7.0.0 test/test_bitcoin: symbol log2f from unsupported version GLIBC_2.27 qt/bitcoin-qt: symbol __divmoddi4 from unsupported version GCC_7.0.0 qt/bitcoin-qt: symbol log2f from unsupported version GLIBC_2.27 ``` I think this should be fixed in `./configure --enable-glibc-back-compat` Should not be merged before #13177 devrandom/gitian-builder#178 Close #12511 Tree-SHA512: 257d75d5b6864e105279f7a7b992fbbd7903cdbe3300b66dacec0a783d267707d9dbbfe0e64a36983ca1eca50a2a5e1cdb222b6d3745ccc3e5fc5636c88b581f --- contrib/gitian-build.sh | 6 +++--- contrib/gitian-descriptors/gitian-linux.yml | 16 ++++++++-------- contrib/gitian-descriptors/gitian-osx-signer.yml | 2 +- contrib/gitian-descriptors/gitian-osx.yml | 4 ++-- contrib/gitian-descriptors/gitian-win-signer.yml | 2 +- contrib/gitian-descriptors/gitian-win.yml | 9 +++++---- 6 files changed, 20 insertions(+), 19 deletions(-) diff --git a/contrib/gitian-build.sh b/contrib/gitian-build.sh index b0d9b5ca485e1..8044fbf57575e 100755 --- a/contrib/gitian-build.sh +++ b/contrib/gitian-build.sh @@ -259,13 +259,13 @@ then if [[ -n "$USE_LXC" ]] then sudo apt-get install lxc - bin/make-base-vm --suite trusty --arch amd64 --lxc + bin/make-base-vm --suite bionic --arch amd64 --lxc elif [[ -n "$USE_DOCKER" ]] then sudo apt-get install docker-ce - bin/make-base-vm --suite trusty --arch amd64 --docker + bin/make-base-vm --suite bionic --arch amd64 --docker else - bin/make-base-vm --suite trusty --arch amd64 + bin/make-base-vm --suite bionic --arch amd64 fi popd fi diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml index f69f7063203ce..f9993948c4d08 100755 --- a/contrib/gitian-descriptors/gitian-linux.yml +++ b/contrib/gitian-descriptors/gitian-linux.yml @@ -2,23 +2,23 @@ name: "dash-linux-0.12" enable_cache: true suites: -- "trusty" +- "bionic" architectures: - "amd64" packages: - "curl" - "g++-aarch64-linux-gnu" -- "g++-4.8-aarch64-linux-gnu" -- "gcc-4.8-aarch64-linux-gnu" +- "g++-7-aarch64-linux-gnu" +- "gcc-7-aarch64-linux-gnu" - "binutils-aarch64-linux-gnu" - "g++-arm-linux-gnueabihf" -- "g++-4.8-arm-linux-gnueabihf" -- "gcc-4.8-arm-linux-gnueabihf" +- "g++-7-arm-linux-gnueabihf" +- "gcc-7-arm-linux-gnueabihf" - "binutils-arm-linux-gnueabihf" -- "g++-4.8-multilib" -- "gcc-4.8-multilib" +- "g++-7-multilib" +- "gcc-7-multilib" - "binutils-gold" -- "git-core" +- "git" - "pkg-config" - "autoconf" - "libtool" diff --git a/contrib/gitian-descriptors/gitian-osx-signer.yml b/contrib/gitian-descriptors/gitian-osx-signer.yml index 8fb6beeda8e22..214c5425ff63b 100644 --- a/contrib/gitian-descriptors/gitian-osx-signer.yml +++ b/contrib/gitian-descriptors/gitian-osx-signer.yml @@ -1,7 +1,7 @@ --- name: "dash-dmg-signer" suites: -- "trusty" +- "bionic" architectures: - "amd64" packages: diff --git a/contrib/gitian-descriptors/gitian-osx.yml b/contrib/gitian-descriptors/gitian-osx.yml index 28097c609a53d..5218e9047dfc6 100644 --- a/contrib/gitian-descriptors/gitian-osx.yml +++ b/contrib/gitian-descriptors/gitian-osx.yml @@ -2,14 +2,14 @@ name: "dash-osx-0.12" enable_cache: true suites: -- "trusty" +- "bionic" architectures: - "amd64" packages: - "ca-certificates" - "curl" - "g++" -- "git-core" +- "git" - "pkg-config" - "autoconf" - "librsvg2-bin" diff --git a/contrib/gitian-descriptors/gitian-win-signer.yml b/contrib/gitian-descriptors/gitian-win-signer.yml index 16750642cb116..feb94ff920c83 100644 --- a/contrib/gitian-descriptors/gitian-win-signer.yml +++ b/contrib/gitian-descriptors/gitian-win-signer.yml @@ -1,7 +1,7 @@ --- name: "dash-win-signer" suites: -- "trusty" +- "bionic" architectures: - "amd64" packages: diff --git a/contrib/gitian-descriptors/gitian-win.yml b/contrib/gitian-descriptors/gitian-win.yml index a19c6bbd0946b..1fc5afa1833dd 100755 --- a/contrib/gitian-descriptors/gitian-win.yml +++ b/contrib/gitian-descriptors/gitian-win.yml @@ -2,13 +2,13 @@ name: "dash-win-0.12" enable_cache: true suites: -- "trusty" +- "bionic" architectures: - "amd64" packages: - "curl" - "g++" -- "git-core" +- "git" - "pkg-config" - "autoconf" - "libtool" @@ -22,6 +22,7 @@ packages: - "ca-certificates" - "python" - "python3" +- "rename" remotes: - "url": "https://github.com/dashpay/dash.git" "dir": "dash" @@ -30,7 +31,7 @@ script: | WRAP_DIR=$HOME/wrapped HOSTS="i686-w64-mingw32 x86_64-w64-mingw32" CONFIGFLAGS="--enable-reduce-exports --disable-bench --disable-gui-tests" - FAKETIME_HOST_PROGS="g++ ar ranlib nm windres strip objcopy" + FAKETIME_HOST_PROGS="ar ranlib nm windres strip objcopy" FAKETIME_PROGS="date makensis zip" HOST_CFLAGS="-O2 -g" HOST_CXXFLAGS="-O2 -g" @@ -109,7 +110,7 @@ script: | for prog in gcc g++; do echo '#!/bin/bash' > ${WRAP_DIR}/${i}-${prog} echo "# GCCVERSION=${GCCVERSION}" >> ${WRAP_DIR}/${i}-${prog} - echo "REAL=\`which -a ${i}-${prog} | grep -v ${WRAP_DIR}/${i}-${prog} | head -1\`" >> ${WRAP_DIR}/${i}-${prog} + echo "REAL=\`which -a ${i}-${prog}-posix | grep -v ${WRAP_DIR}/${i}-${prog} | head -1\`" >> ${WRAP_DIR}/${i}-${prog} echo '# Add the gcc version to the wrapper so that ccache takes this into account (we use CCACHE_COMPILERCHECK=content)' >> ${WRAP_DIR}/${i}-${prog} echo "# `${prog} --version | head -1`" >> ${WRAP_DIR}/${i}-${prog} echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${i}-${prog} From 801366206b1365343c4ee6d7ebbdea434ff237eb Mon Sep 17 00:00:00 2001 From: Chun Kuan Lee Date: Sat, 2 Jun 2018 17:30:16 +0000 Subject: [PATCH 2/3] Add stdin, stdout, stderr to ignored export list --- contrib/devtools/symbol-check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/devtools/symbol-check.py b/contrib/devtools/symbol-check.py index c23ee5624c00d..c945fcbde94d5 100755 --- a/contrib/devtools/symbol-check.py +++ b/contrib/devtools/symbol-check.py @@ -46,7 +46,7 @@ # Ignore symbols that are exported as part of every executable IGNORE_EXPORTS = { -'_edata', '_end', '_init', '__bss_start', '_fini', '_IO_stdin_used' +'_edata', '_end', '_init', '__bss_start', '_fini', '_IO_stdin_used', 'stdin', 'stdout', 'stderr' } READELF_CMD = os.getenv('READELF', '/usr/bin/readelf') CPPFILT_CMD = os.getenv('CPPFILT', '/usr/bin/c++filt') From c1bdf641efdd65fc3d1b88d805ddb72948d3b9f8 Mon Sep 17 00:00:00 2001 From: Alexander Block Date: Mon, 13 Aug 2018 11:46:50 +0200 Subject: [PATCH 3/3] Use IN6ADDR_ANY_INIT instead of in6addr_any This is the same fix as https://github.com/bitcoin/bitcoin/commit/fc6a9f2ab18ca8466d65d14c263c4f78f9ccebbf Couldn't backport the original commit as we are missing some refactorings. --- src/init.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/init.cpp b/src/init.cpp index f88419bf27b8a..1d76188bbe6aa 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -1544,7 +1544,7 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler) if (!mapMultiArgs.count("-bind") && !mapMultiArgs.count("-whitebind")) { struct in_addr inaddr_any; inaddr_any.s_addr = INADDR_ANY; - fBound |= Bind(connman, CService(in6addr_any, GetListenPort()), BF_NONE); + fBound |= Bind(connman, CService((in6_addr)IN6ADDR_ANY_INIT, GetListenPort()), BF_NONE); fBound |= Bind(connman, CService(inaddr_any, GetListenPort()), !fBound ? BF_REPORT_ERROR : BF_NONE); } if (!fBound)