Skip to content

Commit

Permalink
Update gitian build, glibc back compat, cleanup
Browse files Browse the repository at this point in the history
Implemented a version of these pull requests
from upstream:
bitcoin/bitcoin#13177
bitcoin/bitcoin#13171
  • Loading branch information
CryptAxe committed Jun 10, 2019
1 parent 96460dd commit 240b580
Show file tree
Hide file tree
Showing 7 changed files with 66 additions and 36 deletions.
3 changes: 3 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -549,6 +549,8 @@ if test x$use_glibc_compat != xno; then
[ fdelt_type="long int"])
AC_MSG_RESULT($fdelt_type)
AC_DEFINE_UNQUOTED(FDELT_TYPE, $fdelt_type,[parameter and return value type for __fdelt_chk])
AX_CHECK_LINK_FLAG([[-Wl,--wrap=__divmoddi4]], [COMPAT_LDFLAGS="$COMPAT_LDFLAGS -Wl,--wrap=__divmoddi4"])
AX_CHECK_LINK_FLAG([[-Wl,--wrap=log2f]], [COMPAT_LDFLAGS="$COMPAT_LDFLAGS -Wl,--wrap=log2f"])
else
AC_SEARCH_LIBS([clock_gettime],[rt])
fi
Expand Down Expand Up @@ -1236,6 +1238,7 @@ AC_SUBST(DRIVENET_CLI_NAME)
AC_SUBST(DRIVENET_TX_NAME)

AC_SUBST(RELDFLAGS)
AC_SUBST(COMPAT_LDFLAGS)
AC_SUBST(ERROR_CXXFLAGS)
AC_SUBST(HARDENED_CXXFLAGS)
AC_SUBST(HARDENED_CPPFLAGS)
Expand Down
2 changes: 1 addition & 1 deletion contrib/devtools/symbol-check.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@

# Ignore symbols that are exported as part of every executable
IGNORE_EXPORTS = {
b'_edata', b'_end', b'_init', b'__bss_start', b'_fini', b'_IO_stdin_used'
b'_edata', b'_end', b'_init', b'__bss_start', b'_fini', b'_IO_stdin_used', 'stdin', 'stdout', 'stderr'
}
READELF_CMD = os.getenv('READELF', '/usr/bin/readelf')
CPPFILT_CMD = os.getenv('CPPFILT', '/usr/bin/c++filt')
Expand Down
16 changes: 8 additions & 8 deletions contrib/gitian-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -236,9 +236,9 @@ 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
else
bin/make-base-vm --suite trusty --arch amd64
bin/make-base-vm --suite bionic --arch amd64
fi
popd
fi
Expand All @@ -254,12 +254,12 @@ if [[ $build = true ]]
then
# Make output folder
mkdir -p ./bitcoin-binaries/${VERSION}

# Build Dependencies
echo ""
echo "Building Dependencies"
echo ""
pushd ./gitian-builder
pushd ./gitian-builder
mkdir -p inputs
wget -N -P inputs $osslPatchUrl
wget -N -P inputs $osslTarUrl
Expand Down Expand Up @@ -328,10 +328,10 @@ then
echo "Verifying v${VERSION} Windows"
echo ""
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-win-unsigned ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
# Mac OSX
# Mac OSX
echo ""
echo "Verifying v${VERSION} Mac OSX"
echo ""
echo ""
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-unsigned ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
# Signed Windows
echo ""
Expand All @@ -342,14 +342,14 @@ then
echo ""
echo "Verifying v${VERSION} Signed Mac OSX"
echo ""
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-signed ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-signed ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml
popd
fi

# Sign binaries
if [[ $sign = true ]]
then

pushd ./gitian-builder
# Sign Windows
if [[ $windows = true ]]
Expand Down
16 changes: 8 additions & 8 deletions contrib/gitian-descriptors/gitian-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,23 @@
name: "DriveNet-linux-0.21"
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++-8-aarch64-linux-gnu"
- "gcc-8-aarch64-linux-gnu"
- "binutils-aarch64-linux-gnu"
- "g++-arm-linux-gnueabihf"
- "g++-4.8-arm-linux-gnueabihf"
- "gcc-4.8-arm-linux-gnueabihf"
- "g++-8-arm-linux-gnueabihf"
- "gcc-8-arm-linux-gnueabihf"
- "binutils-arm-linux-gnueabihf"
- "g++-4.8-multilib"
- "gcc-4.8-multilib"
- "g++-8-multilib"
- "gcc-8-multilib"
- "binutils-gold"
- "git-core"
- "git"
- "pkg-config"
- "autoconf"
- "libtool"
Expand Down
1 change: 1 addition & 0 deletions src/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,7 @@ libdrivenet_util_a_SOURCES = \

if GLIBC_BACK_COMPAT
libdrivenet_util_a_SOURCES += compat/glibc_compat.cpp
AM_LDFLAGS += $(COMPAT_LDFLAGS)
endif

# cli: shared between drivenet-cli and drivenet-qt
Expand Down
45 changes: 45 additions & 0 deletions src/compat/glibc_compat.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
#endif

#include <cstddef>
#include <cstdint>

#if defined(HAVE_SYS_SELECT_H)
#include <sys/select.h>
Expand All @@ -27,3 +28,47 @@ extern "C" FDELT_TYPE __fdelt_warn(FDELT_TYPE a)
return a / __NFDBITS;
}
extern "C" FDELT_TYPE __fdelt_chk(FDELT_TYPE) __attribute__((weak, alias("__fdelt_warn")));

#if defined(__i386__) || defined(__arm__)

extern "C" int64_t __udivmoddi4(uint64_t u, uint64_t v, uint64_t* rp);

extern "C" int64_t __wrap___divmoddi4(int64_t u, int64_t v, int64_t* rp)
{
int32_t c1 = 0, c2 = 0;
int64_t uu = u, vv = v;
int64_t w;
int64_t r;

if (uu < 0) {
c1 = ~c1, c2 = ~c2, uu = -uu;
}
if (vv < 0) {
c1 = ~c1, vv = -vv;
}

w = __udivmoddi4(uu, vv, (uint64_t*)&r);
if (c1)
w = -w;
if (c2)
r = -r;

*rp = r;
return w;
}
#endif

extern "C" float log2f_old(float x);
#ifdef __i386__
__asm(".symver log2f_old,log2f@GLIBC_2.1");
#elif defined(__amd64__)
__asm(".symver log2f_old,log2f@GLIBC_2.2.5");
#elif defined(__arm__)
__asm(".symver log2f_old,log2f@GLIBC_2.4");
#elif defined(__aarch64__)
__asm(".symver log2f_old,log2f@GLIBC_2.17");
#endif
extern "C" float __wrap_log2f(float x)
{
return log2f_old(x);
}
19 changes: 0 additions & 19 deletions src/validation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5263,9 +5263,6 @@ bool LoadDepositCache()
return false;
}

// TODO log this
uint64_t fileSize = fs::file_size(path);

std::vector<SidechainDeposit> vDeposit;
try {
int nVersionRequired, nVersionThatWrote;
Expand Down Expand Up @@ -5341,9 +5338,6 @@ bool LoadWTPrimeCache()
return false;
}

// TODO log this
uint64_t fileSize = fs::file_size(path);

std::vector<CTransactionRef> vWTPrime;
try {
int nVersionRequired, nVersionThatWrote;
Expand Down Expand Up @@ -5412,9 +5406,6 @@ bool LoadSidechainActivationStatusCache()
return false;
}

// TODO log this
uint64_t fileSize = fs::file_size(path);

std::vector<SidechainActivationStatus> vActivationStatus;
try {
int nVersionRequired, nVersionThatWrote;
Expand Down Expand Up @@ -5480,9 +5471,6 @@ bool LoadActiveSidechainCache()
return false;
}

// TODO log this
uint64_t fileSize = fs::file_size(path);

std::vector<Sidechain> vSidechain;
try {
int nVersionRequired, nVersionThatWrote;
Expand Down Expand Up @@ -5547,9 +5535,6 @@ bool LoadSidechainProposalCache()
return false;
}

// TODO log this
uint64_t fileSize = fs::file_size(path);

std::vector<SidechainProposal> vProposal;
try {
int nVersionRequired, nVersionThatWrote;
Expand Down Expand Up @@ -5614,9 +5599,6 @@ bool LoadSidechainActivationHashCache()
return false;
}

// TODO log this
uint64_t fileSize = fs::file_size(path);

std::vector<uint256> vHash;
try {
int nVersionRequired, nVersionThatWrote;
Expand All @@ -5635,7 +5617,6 @@ bool LoadSidechainActivationHashCache()
}
}
catch (const std::exception& e) {
// TODO log this
LogPrintf("%s: Exception: %s\n", __func__, e.what());
return false;
}
Expand Down

0 comments on commit 240b580

Please sign in to comment.