Merge #13665: [build] Add risc-v support to gitian

c4aecd1d80 Add risc-v 64-bit to gitian (Chun Kuan Lee)
96dda8b058 [depends] Add riscv qt depends support for cross compiling bitcoin-qt (Chun Kuan Lee)

Pull request description:

  Based on ~#13660~ #13710 ,  add gitian tarball for RISC-V

Tree-SHA512: 8db73545a2ea7fe03fa156598479335ea3c79aa3fb9c5cc44b8563094b1deb7c94d29c1dab47fac129dbfa2e3e774301b526474beeeb59c9b0087d3ea087dbd6
This commit is contained in:
Wladimir J. van der Laan 2018-08-16 20:33:09 +02:00
commit 3c8d1ae153
No known key found for this signature in database
GPG key ID: 1E4AED62986CD25D
12 changed files with 72 additions and 16 deletions

View file

@ -8,15 +8,19 @@ architectures:
packages: packages:
- "curl" - "curl"
- "g++-aarch64-linux-gnu" - "g++-aarch64-linux-gnu"
- "g++-7-aarch64-linux-gnu" - "g++-8-aarch64-linux-gnu"
- "gcc-7-aarch64-linux-gnu" - "gcc-8-aarch64-linux-gnu"
- "binutils-aarch64-linux-gnu" - "binutils-aarch64-linux-gnu"
- "g++-arm-linux-gnueabihf" - "g++-arm-linux-gnueabihf"
- "g++-7-arm-linux-gnueabihf" - "g++-8-arm-linux-gnueabihf"
- "gcc-7-arm-linux-gnueabihf" - "gcc-8-arm-linux-gnueabihf"
- "binutils-arm-linux-gnueabihf" - "binutils-arm-linux-gnueabihf"
- "g++-7-multilib" - "g++-riscv64-linux-gnu"
- "gcc-7-multilib" - "g++-8-riscv64-linux-gnu"
- "gcc-8-riscv64-linux-gnu"
- "binutils-riscv64-linux-gnu"
- "g++-8-multilib"
- "gcc-8-multilib"
- "binutils-gold" - "binutils-gold"
- "git" - "git"
- "pkg-config" - "pkg-config"
@ -34,9 +38,9 @@ files: []
script: | script: |
WRAP_DIR=$HOME/wrapped WRAP_DIR=$HOME/wrapped
HOSTS="i686-pc-linux-gnu x86_64-linux-gnu arm-linux-gnueabihf aarch64-linux-gnu" HOSTS="i686-pc-linux-gnu x86_64-linux-gnu arm-linux-gnueabihf aarch64-linux-gnu riscv64-linux-gnu"
CONFIGFLAGS="--enable-glibc-back-compat --enable-reduce-exports --disable-bench --disable-gui-tests" CONFIGFLAGS="--enable-glibc-back-compat --enable-reduce-exports --disable-bench --disable-gui-tests"
FAKETIME_HOST_PROGS="" FAKETIME_HOST_PROGS="gcc g++"
FAKETIME_PROGS="date ar ranlib nm" FAKETIME_PROGS="date ar ranlib nm"
HOST_CFLAGS="-O2 -g" HOST_CFLAGS="-O2 -g"
HOST_CXXFLAGS="-O2 -g" HOST_CXXFLAGS="-O2 -g"
@ -69,12 +73,15 @@ script: |
function create_per-host_faketime_wrappers { function create_per-host_faketime_wrappers {
for i in $HOSTS; do for i in $HOSTS; do
for prog in ${FAKETIME_HOST_PROGS}; do for prog in ${FAKETIME_HOST_PROGS}; do
echo '#!/usr/bin/env bash' > ${WRAP_DIR}/${i}-${prog} if which ${i}-${prog}-8
echo "REAL=\`which -a ${i}-${prog} | grep -v ${WRAP_DIR}/${i}-${prog} | head -1\`" >> ${WRAP_DIR}/${i}-${prog} then
echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${i}-${prog} echo '#!/usr/bin/env bash' > ${WRAP_DIR}/${i}-${prog}
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${i}-${prog} echo "REAL=\`which -a ${i}-${prog}-8 | grep -v ${WRAP_DIR}/${i}-${prog} | head -1\`" >> ${WRAP_DIR}/${i}-${prog}
echo "\$REAL \$@" >> $WRAP_DIR/${i}-${prog} echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${i}-${prog}
chmod +x ${WRAP_DIR}/${i}-${prog} echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${i}-${prog}
echo "\$REAL \$@" >> $WRAP_DIR/${i}-${prog}
chmod +x ${WRAP_DIR}/${i}-${prog}
fi
done done
done done
} }
@ -100,7 +107,7 @@ script: |
rm -f ${WRAP_DIR}/${prog} rm -f ${WRAP_DIR}/${prog}
cat << EOF > ${WRAP_DIR}/${prog} cat << EOF > ${WRAP_DIR}/${prog}
#!/usr/bin/env bash #!/usr/bin/env bash
REAL="`which -a ${prog} | grep -v ${WRAP_DIR}/${prog} | head -1`" REAL="`which -a ${prog}-8 | grep -v ${WRAP_DIR}/${prog} | head -1`"
for var in "\$@" for var in "\$@"
do do
if [ "\$var" = "-m32" ]; then if [ "\$var" = "-m32" ]; then
@ -174,6 +181,7 @@ script: |
case $i in case $i in
aarch64-*) : ;; aarch64-*) : ;;
arm-*) : ;; arm-*) : ;;
riscv64-*) : ;;
*) make ${MAKEOPTS} -C src check-symbols ;; *) make ${MAKEOPTS} -C src check-symbols ;;
esac esac

View file

@ -10,6 +10,10 @@ $(package)_config_opts=--disable-xkb --disable-static
$(package)_config_opts_linux=--with-pic $(package)_config_opts_linux=--with-pic
endef endef
define $(package)_preprocess_cmds
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
endef
define $(package)_config_cmds define $(package)_config_cmds
$($(package)_autoconf) $($(package)_autoconf)
endef endef

View file

@ -10,6 +10,10 @@ define $(package)_set_vars
$(package)_config_opts_linux=--with-pic $(package)_config_opts_linux=--with-pic
endef endef
define $(package)_preprocess_cmds
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
endef
define $(package)_config_cmds define $(package)_config_cmds
$($(package)_autoconf) $($(package)_autoconf)
endef endef

View file

@ -9,6 +9,10 @@ define $(package)_set_vars
$(package)_config_opts=--disable-static $(package)_config_opts=--disable-static
endef endef
define $(package)_preprocess_cmds
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
endef
define $(package)_config_cmds define $(package)_config_cmds
$($(package)_autoconf) $($(package)_autoconf)
endef endef

View file

@ -10,6 +10,7 @@ $(package)_config_opts=--disable-static
endef endef
define $(package)_preprocess_cmds define $(package)_preprocess_cmds
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub build-aux &&\
sed "s/pthread-stubs//" -i configure sed "s/pthread-stubs//" -i configure
endef endef

View file

@ -11,6 +11,11 @@ define $(package)_set_vars
$(package)_config_opts_linux=--with-pic $(package)_config_opts_linux=--with-pic
endef endef
define $(package)_preprocess_cmds
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub . &&\
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub gtest/build-aux
endef
define $(package)_config_cmds define $(package)_config_cmds
$($(package)_autoconf) $($(package)_autoconf)
endef endef

View file

@ -9,6 +9,10 @@ $(package)_config_opts=--disable-shared -without-tools --disable-sdltest
$(package)_config_opts_linux=--with-pic $(package)_config_opts_linux=--with-pic
endef endef
define $(package)_preprocess_cmds
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub use
endef
define $(package)_config_cmds define $(package)_config_cmds
$($(package)_autoconf) $($(package)_autoconf)
endef endef

View file

@ -8,7 +8,7 @@ $(package)_dependencies=openssl zlib
$(package)_linux_dependencies=freetype fontconfig libxcb libX11 xproto libXext $(package)_linux_dependencies=freetype fontconfig libxcb libX11 xproto libXext
$(package)_build_subdir=qtbase $(package)_build_subdir=qtbase
$(package)_qt_libs=corelib network widgets gui plugins testlib $(package)_qt_libs=corelib network widgets gui plugins testlib
$(package)_patches=fix_qt_pkgconfig.patch mac-qmake.conf fix_configure_mac.patch fix_no_printer.patch fix_rcc_determinism.patch $(package)_patches=fix_qt_pkgconfig.patch mac-qmake.conf fix_configure_mac.patch fix_no_printer.patch fix_rcc_determinism.patch fix_riscv64_arch.patch
$(package)_qttranslations_file_name=qttranslations-$($(package)_suffix) $(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
$(package)_qttranslations_sha256_hash=9822084f8e2d2939ba39f4af4c0c2320e45d5996762a9423f833055607604ed8 $(package)_qttranslations_sha256_hash=9822084f8e2d2939ba39f4af4c0c2320e45d5996762a9423f833055607604ed8
@ -93,6 +93,7 @@ $(package)_config_opts_arm_linux += -platform linux-g++ -xplatform bitcoin-linux
$(package)_config_opts_i686_linux = -xplatform linux-g++-32 $(package)_config_opts_i686_linux = -xplatform linux-g++-32
$(package)_config_opts_x86_64_linux = -xplatform linux-g++-64 $(package)_config_opts_x86_64_linux = -xplatform linux-g++-64
$(package)_config_opts_aarch64_linux = -xplatform linux-aarch64-gnu-g++ $(package)_config_opts_aarch64_linux = -xplatform linux-aarch64-gnu-g++
$(package)_config_opts_riscv64_linux = -platform linux-g++ -xplatform bitcoin-linux-g++
$(package)_config_opts_mingw32 = -no-opengl -xplatform win32-g++ -device-option CROSS_COMPILE="$(host)-" $(package)_config_opts_mingw32 = -no-opengl -xplatform win32-g++ -device-option CROSS_COMPILE="$(host)-"
$(package)_build_env = QT_RCC_TEST=1 $(package)_build_env = QT_RCC_TEST=1
$(package)_build_env += QT_RCC_SOURCE_DATE_OVERRIDE=1 $(package)_build_env += QT_RCC_SOURCE_DATE_OVERRIDE=1
@ -139,6 +140,7 @@ define $(package)_preprocess_cmds
echo "!host_build: QMAKE_CFLAGS += $($(package)_cflags) $($(package)_cppflags)" >> qtbase/mkspecs/common/gcc-base.conf && \ echo "!host_build: QMAKE_CFLAGS += $($(package)_cflags) $($(package)_cppflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
echo "!host_build: QMAKE_CXXFLAGS += $($(package)_cxxflags) $($(package)_cppflags)" >> qtbase/mkspecs/common/gcc-base.conf && \ echo "!host_build: QMAKE_CXXFLAGS += $($(package)_cxxflags) $($(package)_cppflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
echo "!host_build: QMAKE_LFLAGS += $($(package)_ldflags)" >> qtbase/mkspecs/common/gcc-base.conf && \ echo "!host_build: QMAKE_LFLAGS += $($(package)_ldflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
patch -p1 -i $($(package)_patch_dir)/fix_riscv64_arch.patch &&\
echo "QMAKE_LINK_OBJECT_MAX = 10" >> qtbase/mkspecs/win32-g++/qmake.conf &&\ echo "QMAKE_LINK_OBJECT_MAX = 10" >> qtbase/mkspecs/win32-g++/qmake.conf &&\
echo "QMAKE_LINK_OBJECT_SCRIPT = object_script" >> qtbase/mkspecs/win32-g++/qmake.conf &&\ echo "QMAKE_LINK_OBJECT_SCRIPT = object_script" >> qtbase/mkspecs/win32-g++/qmake.conf &&\
sed -i.old "s|QMAKE_CFLAGS = |!host_build: QMAKE_CFLAGS = $($(package)_cflags) $($(package)_cppflags) |" qtbase/mkspecs/win32-g++/qmake.conf && \ sed -i.old "s|QMAKE_CFLAGS = |!host_build: QMAKE_CFLAGS = $($(package)_cflags) $($(package)_cppflags) |" qtbase/mkspecs/win32-g++/qmake.conf && \

View file

@ -8,6 +8,10 @@ define $(package)_set_vars
$(package)_config_opts=--disable-shared $(package)_config_opts=--disable-shared
endef endef
define $(package)_preprocess_cmds
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
endef
define $(package)_config_cmds define $(package)_config_cmds
$($(package)_autoconf) $($(package)_autoconf)
endef endef

View file

@ -9,6 +9,10 @@ define $(package)_set_vars
$(package)_config_opts_linux=--with-pic --disable-static $(package)_config_opts_linux=--with-pic --disable-static
endef endef
define $(package)_preprocess_cmds
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub .
endef
define $(package)_config_cmds define $(package)_config_cmds
$($(package)_autoconf) $($(package)_autoconf)
endef endef

View file

@ -0,0 +1,14 @@
diff --git a/qtbase/src/3rdparty/double-conversion/include/double-conversion/utils.h b/qtbase/src/3rdparty/double-conversion/include/double-conversion/utils.h
index 20bfd36..93729fa 100644
--- a/qtbase/src/3rdparty/double-conversion/include/double-conversion/utils.h
+++ b/qtbase/src/3rdparty/double-conversion/include/double-conversion/utils.h
@@ -65,7 +65,8 @@
defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
defined(__SH4__) || defined(__alpha__) || \
defined(_MIPS_ARCH_MIPS32R2) || \
- defined(__AARCH64EL__)
+ defined(__AARCH64EL__) || defined(__aarch64__) || \
+ defined(__riscv)
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
#elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
#if defined(_WIN32)

View file

@ -67,6 +67,8 @@ __asm(".symver log2f_old,log2f@GLIBC_2.2.5");
__asm(".symver log2f_old,log2f@GLIBC_2.4"); __asm(".symver log2f_old,log2f@GLIBC_2.4");
#elif defined(__aarch64__) #elif defined(__aarch64__)
__asm(".symver log2f_old,log2f@GLIBC_2.17"); __asm(".symver log2f_old,log2f@GLIBC_2.17");
#elif defined(__riscv)
__asm(".symver log2f_old,log2f@GLIBC_2.27");
#endif #endif
extern "C" float __wrap_log2f(float x) extern "C" float __wrap_log2f(float x)
{ {