mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 04:22:55 +01:00
gitian: use a wrapped gcc/g++ to avoid the need for a system change
C_INCLUDE_PATH and CPLUS_INCLUDE_PATH work globally as though -isystem was used for each invocation. Since that changes the build results, force a rebuild of x86 depends by adding the value to $HOST_ID_SALT.
This commit is contained in:
parent
91abb77970
commit
099d4b0b65
@ -33,12 +33,6 @@ remotes:
|
|||||||
files: []
|
files: []
|
||||||
script: |
|
script: |
|
||||||
|
|
||||||
#unlock sudo
|
|
||||||
echo "ubuntu" | sudo -S true
|
|
||||||
|
|
||||||
sudo mkdir -p /usr/include/i386-linux-gnu/
|
|
||||||
sudo ln -s /usr/include/x86_64-linux-gnu/asm /usr/include/i386-linux-gnu/asm
|
|
||||||
|
|
||||||
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"
|
||||||
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"
|
||||||
@ -90,11 +84,45 @@ script: |
|
|||||||
create_per-host_faketime_wrappers "2000-01-01 12:00:00"
|
create_per-host_faketime_wrappers "2000-01-01 12:00:00"
|
||||||
export PATH=${WRAP_DIR}:${PATH}
|
export PATH=${WRAP_DIR}:${PATH}
|
||||||
|
|
||||||
|
EXTRA_INCLUDES_BASE=$WRAP_DIR/extra_includes
|
||||||
|
mkdir -p $EXTRA_INCLUDES_BASE
|
||||||
|
|
||||||
|
# x86 needs /usr/include/i386-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 << EOF > ${WRAP_DIR}/${prog}
|
||||||
|
#!/bin/bash
|
||||||
|
REAL="`which -a ${prog} | 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
|
||||||
|
\$REAL \$@
|
||||||
|
EOF
|
||||||
|
chmod +x ${WRAP_DIR}/${prog}
|
||||||
|
done
|
||||||
|
|
||||||
cd bitcoin
|
cd bitcoin
|
||||||
BASEPREFIX=`pwd`/depends
|
BASEPREFIX=`pwd`/depends
|
||||||
# Build dependencies for each host
|
# Build dependencies for each host
|
||||||
for i in $HOSTS; do
|
for i in $HOSTS; do
|
||||||
|
EXTRA_INCLUDES="$EXTRA_INCLUDES_BASE/$i"
|
||||||
|
if [ -d "$EXTRA_INCLUDES" ]; then
|
||||||
|
export HOST_ID_SALT="$EXTRA_INCLUDES"
|
||||||
|
fi
|
||||||
make ${MAKEOPTS} -C ${BASEPREFIX} HOST="${i}"
|
make ${MAKEOPTS} -C ${BASEPREFIX} HOST="${i}"
|
||||||
|
unset HOST_ID_SALT
|
||||||
done
|
done
|
||||||
|
|
||||||
# Faketime for binaries
|
# Faketime for binaries
|
||||||
|
Loading…
Reference in New Issue
Block a user