Skip to content

Commit

Permalink
upgrade to ndk r19b and latest debian stretch
Browse files Browse the repository at this point in the history
  • Loading branch information
greenaddress committed Mar 3, 2019
1 parent 98560d3 commit 59ba14e
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 46 deletions.
17 changes: 8 additions & 9 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,20 @@ services:
env:
global:
- DOCKERBUILDER=greenaddress/core_builder_for_android
- DOCKERHASH=8be296601b9f2dbb2b0572c96ad8815f16ce52b814b1724023e762be2ab7ef89
- DOCKERHASH=2a9b12f11368b117891e2dc7b57dfc2ba52831bc522508906014c3d1cde4bbfa
- REPO=https://github.com/bitcoin/bitcoin.git
- COMMIT=ef70f9b52b851c7997a9f1a0834714e3eebc1fd8
- TOOLCHAIN=aarch64-linux-android-clang
- TARGETHOST=aarch64-linux-android
- BITS=64
matrix:
- UNUSED=true
- TOOLCHAIN=arm-linux-androideabi-clang TARGETHOST=arm-linux-androideabi BITS=32
- TOOLCHAIN=x86_64-clang TARGETHOST=x86_64-linux-android
- TOOLCHAIN=x86-clang TARGETHOST=i686-linux-android BITS=32
- TARGETHOST=armv7a-linux-androideabi BITS=32
- TARGETHOST=x86_64-linux-android
- TARGETHOST=i686-linux-android BITS=32
- REPO=https://github.com/bitcoinknots/bitcoin.git COMMIT=ab05daa871db7c5772e6477c0bdddaa6f3808afd
- REPO=https://github.com/bitcoinknots/bitcoin.git COMMIT=ab05daa871db7c5772e6477c0bdddaa6f3808afd TOOLCHAIN=x86_64-clang TARGETHOST=x86_64-linux-android
- REPO=https://github.com/bitcoinknots/bitcoin.git COMMIT=ab05daa871db7c5772e6477c0bdddaa6f3808afd TOOLCHAIN=x86-clang TARGETHOST=i686-linux-android BITS=32
- REPO=https://github.com/bitcoinknots/bitcoin.git COMMIT=ab05daa871db7c5772e6477c0bdddaa6f3808afd TOOLCHAIN=arm-linux-androideabi-clang TARGETHOST=arm-linux-androideabi BITS=32
- REPO=https://github.com/bitcoinknots/bitcoin.git COMMIT=ab05daa871db7c5772e6477c0bdddaa6f3808afd TARGETHOST=x86_64-linux-android
- REPO=https://github.com/bitcoinknots/bitcoin.git COMMIT=ab05daa871db7c5772e6477c0bdddaa6f3808afd TARGETHOST=i686-linux-android BITS=32
- REPO=https://github.com/bitcoinknots/bitcoin.git COMMIT=ab05daa871db7c5772e6477c0bdddaa6f3808afd TARGETHOST=armv7a-linux-androideabi BITS=32

script:
- docker run -v $PWD:/repo $DOCKERBUILDER@sha256:$DOCKERHASH /bin/bash -c "/repo/fetchbuild.sh $REPO $COMMIT $TOOLCHAIN $TARGETHOST $BITS"
- docker run -v $PWD:/repo $DOCKERBUILDER@sha256:$DOCKERHASH /bin/bash -c "/repo/fetchbuild.sh $REPO $COMMIT $TARGETHOST $BITS"
4 changes: 2 additions & 2 deletions 0001-android-patches.patch
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ index 144e5f88b..4d444df7d 100644

-default_host_CC = $(host_toolchain)gcc
-default_host_CXX = $(host_toolchain)g++
+default_host_CC = $(host_toolchain)clang
+default_host_CXX = $(host_toolchain)clang++
+default_host_CC = $(CC)
+default_host_CXX = $(CXX)
default_host_AR = $(host_toolchain)ar
default_host_RANLIB = $(host_toolchain)ranlib
default_host_STRIP = $(host_toolchain)strip
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
FROM debian:stretch@sha256:58a80e0b6aa4d960ee2a5452b0230c406c47ed30a66555ba753c8e1710a434f5
FROM debian:stretch@sha256:066051f6674f6a3293bbd5a190081b1ae7fcae655a3884db59ebb3a2831da623
COPY /stretch_deps.sh /
RUN /stretch_deps.sh
28 changes: 13 additions & 15 deletions fetchbuild.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,43 +3,41 @@ set -e

repo=$1
commit=$2
toolchain=$3
target_host=$4
bits=$5
target_host=$3
bits=$4

git clone $repo bitcoin
cd bitcoin
git checkout $commit

patch -p1 < /repo/0001-android-patches.patch


export PATH=/opt/$toolchain/bin:${PATH}
export AR=$target_host-ar
export AS=$target_host-clang
export CC=$target_host-clang
export CXX=$target_host-clang++
export LD=$target_host-ld
export STRIP=$target_host-strip
export PATH=/opt/android-ndk-r19b/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}
export AR=${target_host/v7a/}-ar
export AS=${target_host}21-clang
export CC=${target_host}21-clang
export CXX=${target_host}21-clang++
export LD=${target_host/v7a/}-ld
export STRIP=${target_host/v7a}-strip
export LDFLAGS="-pie -static-libstdc++"

num_jobs=4
if [ -f /proc/cpuinfo ]; then
num_jobs=$(grep ^processor /proc/cpuinfo | wc -l)
fi
cd depends
make HOST=$target_host NO_QT=1 -j $num_jobs
make HOST=${target_host/v7a/} NO_QT=1 -j $num_jobs

cd ..

./autogen.sh
./configure --prefix=$PWD/depends/$target_host ac_cv_c_bigendian=no ac_cv_sys_file_offset_bits=$bits --disable-bench --enable-experimental-asm --disable-tests --disable-man --without-utils --without-libs --with-daemon
./configure --prefix=$PWD/depends/${target_host/v7a/} ac_cv_c_bigendian=no ac_cv_sys_file_offset_bits=$bits --disable-bench --enable-experimental-asm --disable-tests --disable-man --without-utils --without-libs --with-daemon

make -j $num_jobs
make install

$STRIP depends/$target_host/bin/bitcoind
$STRIP depends/${target_host/v7a/}/bin/bitcoind

repo_name=$(basename $(dirname ${repo}))

tar -zcf /repo/${target_host}_${repo_name}.tar.gz -C depends/$target_host/bin bitcoind
tar -zcf /repo/${target_host/v7a/}_${repo_name}.tar.gz -C depends/${target_host/v7a/}/bin bitcoind
16 changes: 6 additions & 10 deletions run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ DOCKERBUILDER=greenaddress/core_builder_for_android

REPO_CORE=https://github.com/bitcoin/bitcoin.git

DOCKERHASH=8be296601b9f2dbb2b0572c96ad8815f16ce52b814b1724023e762be2ab7ef89
DOCKERHASH=2a9b12f11368b117891e2dc7b57dfc2ba52831bc522508906014c3d1cde4bbfa
COMMIT_CORE=ef70f9b52b851c7997a9f1a0834714e3eebc1fd8

REPO_KNOTS=https://github.com/bitcoinknots/bitcoin.git
Expand All @@ -14,18 +14,14 @@ COMMIT_KNOTS=ab05daa871db7c5772e6477c0bdddaa6f3808afd

repos="${REPO_CORE}_${COMMIT_CORE} ${REPO_KNOTS}_${COMMIT_KNOTS}"
for repo in ${repos}; do
TOOLCHAIN=arm-linux-androideabi-clang
TARGETHOST=arm-linux-androideabi
docker run -v $PWD:/repo $DOCKERBUILDER@sha256:$DOCKERHASH /bin/bash -c "/repo/fetchbuild.sh ${repo/_/ } $TOOLCHAIN $TARGETHOST 32" &
TOOLCHAIN=aarch64-linux-android-clang
TARGETHOST=armv7a-linux-androideabi
docker run -v $PWD:/repo $DOCKERBUILDER@sha256:$DOCKERHASH /bin/bash -c "/repo/fetchbuild.sh ${repo/_/ } $TARGETHOST 32" &
TARGETHOST=aarch64-linux-android
docker run -v $PWD:/repo $DOCKERBUILDER@sha256:$DOCKERHASH /bin/bash -c "/repo/fetchbuild.sh ${repo/_/ } $TOOLCHAIN $TARGETHOST 64" &
TOOLCHAIN=x86_64-clang
docker run -v $PWD:/repo $DOCKERBUILDER@sha256:$DOCKERHASH /bin/bash -c "/repo/fetchbuild.sh ${repo/_/ } $TARGETHOST 64" &
TARGETHOST=x86_64-linux-android
docker run -v $PWD:/repo $DOCKERBUILDER@sha256:$DOCKERHASH /bin/bash -c "/repo/fetchbuild.sh ${repo/_/ } $TOOLCHAIN $TARGETHOST 64" &
TOOLCHAIN=x86-clang
docker run -v $PWD:/repo $DOCKERBUILDER@sha256:$DOCKERHASH /bin/bash -c "/repo/fetchbuild.sh ${repo/_/ } $TARGETHOST 64" &
TARGETHOST=i686-linux-android
docker run -v $PWD:/repo $DOCKERBUILDER@sha256:$DOCKERHASH /bin/bash -c "/repo/fetchbuild.sh ${repo/_/ } $TOOLCHAIN $TARGETHOST 32" &
docker run -v $PWD:/repo $DOCKERBUILDER@sha256:$DOCKERHASH /bin/bash -c "/repo/fetchbuild.sh ${repo/_/ } $TARGETHOST 32" &
done


Expand Down
12 changes: 3 additions & 9 deletions stretch_deps.sh
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#!/bin/bash
set -e
export NDK_VERSION=android-ndk-r18b
export NDK_VERSION=android-ndk-r19b
export NDK_FILENAME=${NDK_VERSION}-linux-x86_64.zip

sha256_file=4f61cbe4bbf6406aa5ef2ae871def78010eed6271af72de83f8bd0b07a9fd3fd
sha256_file=0fbb1645d0f1de4dde90a4ff79ca5ec4899c835e729d692f433fda501623257a

apt-get -yqq update &> /dev/null
apt-get -yqq upgrade &> /dev/null
Expand All @@ -16,14 +16,8 @@ echo "${sha256_file} ${NDK_FILENAME}" | shasum -a 256 --check
unzip -qq ${NDK_FILENAME} &> /dev/null
rm ${NDK_FILENAME}

/opt/${NDK_VERSION}/build/tools/make-standalone-toolchain.sh --use-llvm --stl=libc++ --platform=21 --toolchain=arm-linux-androideabi-clang --install-dir=/opt/arm-linux-androideabi-clang
/opt/${NDK_VERSION}/build/tools/make-standalone-toolchain.sh --use-llvm --stl=libc++ --platform=21 --toolchain=x86-clang --install-dir=/opt/x86-clang
/opt/${NDK_VERSION}/build/tools/make-standalone-toolchain.sh --use-llvm --stl=libc++ --platform=21 --toolchain=x86_64-clang --install-dir=/opt/x86_64-clang
/opt/${NDK_VERSION}/build/tools/make-standalone-toolchain.sh --use-llvm --stl=libc++ --platform=21 --toolchain=aarch64-linux-android-clang --install-dir=/opt/aarch64-linux-android-clang


if [ -f /.dockerenv ]; then
apt-get -yqq --purge autoremove unzip
apt-get -yqq clean
rm -rf /var/lib/apt/lists/* /var/cache/* /tmp/* /usr/share/locale/* /usr/share/man /usr/share/doc /lib/xtables/libip6* /opt/${NDK_VERSION}
rm -rf /var/lib/apt/lists/* /var/cache/* /tmp/* /usr/share/locale/* /usr/share/man /usr/share/doc /lib/xtables/libip6*
fi

0 comments on commit 59ba14e

Please sign in to comment.