From 47f77b251f8ebb6feb09e8422bac5f551b86aa5b Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Wed, 25 Mar 2020 03:36:42 +0000 Subject: [PATCH 1/2] Partially revert #18104 "build: Skip i686 build by default in guix and gitian" This partially reverts commit fae9084ac5b10f94bdee54853d307838c4254e9c. --- contrib/gitian-descriptors/gitian-linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml index aff59cced2ae4..d1aad25258f9d 100644 --- a/contrib/gitian-descriptors/gitian-linux.yml +++ b/contrib/gitian-descriptors/gitian-linux.yml @@ -48,7 +48,7 @@ script: | set -e -o pipefail WRAP_DIR=$HOME/wrapped - HOSTS="x86_64-linux-gnu arm-linux-gnueabihf aarch64-linux-gnu powerpc64-linux-gnu powerpc64le-linux-gnu riscv64-linux-gnu" + HOSTS="i686-pc-linux-gnu x86_64-linux-gnu arm-linux-gnueabihf aarch64-linux-gnu powerpc64-linux-gnu powerpc64le-linux-gnu riscv64-linux-gnu" CONFIGFLAGS="--enable-glibc-back-compat --enable-reduce-exports --disable-bench --disable-gui-tests --disable-fuzz-binary" FAKETIME_HOST_PROGS="gcc g++" FAKETIME_PROGS="date ar ranlib nm" From eeea5b787d439d909158e4d6be39b099efda8efa Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Sat, 30 Jan 2021 23:51:01 +0000 Subject: [PATCH 2/2] Revert "build: Drop old hack which is unneeded now" This reverts commit 95051682bedc2ef1076af5ede5bd56ca243279e3. --- contrib/gitian-descriptors/gitian-linux.yml | 38 +++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml index d1aad25258f9d..2815e7e2d2554 100644 --- a/contrib/gitian-descriptors/gitian-linux.yml +++ b/contrib/gitian-descriptors/gitian-linux.yml @@ -25,6 +25,9 @@ packages: - "python3" - "python3-pip" # Cross compilation HOSTS: +# - i686-pc-linux-gnu +- "gcc-8-multilib" +- "g++-8-multilib" # - arm-linux-gnueabihf - "binutils-arm-linux-gnueabihf" - "g++-8-arm-linux-gnueabihf" @@ -97,6 +100,41 @@ script: | fi done done + + EXTRA_INCLUDES_BASE="${WRAP_DIR}/extra_includes" + mkdir -p "${EXTRA_INCLUDES_BASE}" + + # x86 needs /usr/include/i386-pc-linux-gnu/asm pointed to /usr/include/x86_64-linux-gnu/asm, + # but we can't write there. Instead, create a link here and force it to be included in the + # search paths by wrapping gcc/g++. + + mkdir -p "${EXTRA_INCLUDES_BASE}/i686-pc-linux-gnu" + rm -f "${WRAP_DIR}/extra_includes/i686-pc-linux-gnu/asm" + ln -s /usr/include/x86_64-linux-gnu/asm "${EXTRA_INCLUDES_BASE}/i686-pc-linux-gnu/asm" + + for prog in gcc g++; do + rm -f "${WRAP_DIR}/${prog}" + cat < "${WRAP_DIR}/${prog}" + #!/usr/bin/env bash + REAL="\$(which -a ${prog}-8 | grep -v ${WRAP_DIR}/${prog} | head -1)" + for var in "\$@" + do + if [ "\$var" = "-m32" ]; then + export C_INCLUDE_PATH="$EXTRA_INCLUDES_BASE/i686-pc-linux-gnu" + export CPLUS_INCLUDE_PATH="$EXTRA_INCLUDES_BASE/i686-pc-linux-gnu" + break + fi + done + export LD_PRELOAD='/usr/\$LIB/faketime/libfaketime.so.1' + export FAKETIME="$1" + exec "\$REAL" "\$@" + EOF + cat < "${WRAP_DIR}/i686-pc-linux-gnu-${prog}" + #!/usr/bin/env bash + exec "${WRAP_DIR}/${prog}" -m32 "\$@" + EOF + chmod +x "${WRAP_DIR}/${prog}" "${WRAP_DIR}/i686-pc-linux-gnu-${prog}" + done } pip3 install lief==0.11.5