forked from PIVX-Project/PIVX
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Gitian] Add dedicated aarch64 descriptor
The gcc4.8 aarch64 cross toolchain for Trusty has a bug preventing cross builds of Qt. This descriptor uses the newer Xenial target with the 4.9 version of the cross toolchain. Also remove the ancient rpi2 descriptor
- Loading branch information
Showing
3 changed files
with
172 additions
and
115 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,171 @@ | ||
--- | ||
name: "pivx-aarch64-2.3" | ||
enable_cache: true | ||
suites: | ||
- "xenial" | ||
architectures: | ||
- "amd64" | ||
packages: | ||
- "curl" | ||
- "g++-aarch64-linux-gnu" | ||
- "g++-4.9-aarch64-linux-gnu" | ||
- "gcc-4.9-aarch64-linux-gnu" | ||
- "binutils-aarch64-linux-gnu" | ||
- "g++-4.9-multilib" | ||
- "gcc-4.9-multilib" | ||
- "binutils-gold" | ||
- "git-core" | ||
- "pkg-config" | ||
- "autoconf" | ||
- "libtool" | ||
- "automake" | ||
- "faketime" | ||
- "bsdmainutils" | ||
- "ca-certificates" | ||
- "python" | ||
reference_datetime: "2015-06-01 00:00:00" | ||
remotes: | ||
- "url": "https://github.com/pivx-project/pivx.git" | ||
"dir": "pivx" | ||
files: [] | ||
script: | | ||
WRAP_DIR=$HOME/wrapped | ||
HOSTS="aarch64-linux-gnu" | ||
CONFIGFLAGS="--enable-glibc-back-compat --enable-reduce-exports --disable-bench --disable-gui-tests" | ||
FAKETIME_HOST_PROGS="" | ||
FAKETIME_PROGS="date ar ranlib nm" | ||
HOST_CFLAGS="-O2 -g" | ||
HOST_CXXFLAGS="-O2 -g" | ||
HOST_LDFLAGS=-static-libstdc++ | ||
export QT_RCC_TEST=1 | ||
export GZIP="-9n" | ||
export TAR_OPTIONS="--mtime="$REFERENCE_DATE\\\ $REFERENCE_TIME"" | ||
export TZ="UTC" | ||
export BUILD_DIR=`pwd` | ||
mkdir -p ${WRAP_DIR} | ||
if test -n "$GBUILD_CACHE_ENABLED"; then | ||
export SOURCES_PATH=${GBUILD_COMMON_CACHE} | ||
export BASE_CACHE=${GBUILD_PACKAGE_CACHE} | ||
mkdir -p ${BASE_CACHE} ${SOURCES_PATH} | ||
fi | ||
function create_global_faketime_wrappers { | ||
for prog in ${FAKETIME_PROGS}; do | ||
echo '#!/bin/bash' > ${WRAP_DIR}/${prog} | ||
echo "REAL=\`which -a ${prog} | grep -v ${WRAP_DIR}/${prog} | head -1\`" >> ${WRAP_DIR}/${prog} | ||
echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${prog} | ||
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${prog} | ||
echo "\$REAL \$@" >> $WRAP_DIR/${prog} | ||
chmod +x ${WRAP_DIR}/${prog} | ||
done | ||
} | ||
function create_per-host_faketime_wrappers { | ||
for i in $HOSTS; do | ||
for prog in ${FAKETIME_HOST_PROGS}; do | ||
echo '#!/bin/bash' > ${WRAP_DIR}/${i}-${prog} | ||
echo "REAL=\`which -a ${i}-${prog} | grep -v ${WRAP_DIR}/${i}-${prog} | head -1\`" >> ${WRAP_DIR}/${i}-${prog} | ||
echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${i}-${prog} | ||
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${i}-${prog} | ||
echo "\$REAL \$@" >> $WRAP_DIR/${i}-${prog} | ||
chmod +x ${WRAP_DIR}/${i}-${prog} | ||
done | ||
done | ||
} | ||
# Faketime for depends so intermediate results are comparable | ||
export PATH_orig=${PATH} | ||
create_global_faketime_wrappers "2000-01-01 12:00:00" | ||
create_per-host_faketime_wrappers "2000-01-01 12:00:00" | ||
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 pivx | ||
BASEPREFIX=`pwd`/depends | ||
# Build dependencies for each host | ||
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}" | ||
unset HOST_ID_SALT | ||
done | ||
# Faketime for binaries | ||
export PATH=${PATH_orig} | ||
create_global_faketime_wrappers "${REFERENCE_DATETIME}" | ||
create_per-host_faketime_wrappers "${REFERENCE_DATETIME}" | ||
export PATH=${WRAP_DIR}:${PATH} | ||
# Create the release tarball using (arbitrarily) the first host | ||
./autogen.sh | ||
CONFIG_SITE=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'`/share/config.site ./configure --prefix=/ | ||
make dist | ||
SOURCEDIST=`echo pivx-*.tar.gz` | ||
DISTNAME=`echo ${SOURCEDIST} | sed 's/.tar.*//'` | ||
# Correct tar file order | ||
mkdir -p temp | ||
pushd temp | ||
tar xf ../$SOURCEDIST | ||
find pivx-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST | ||
popd | ||
ORIGPATH="$PATH" | ||
# Extract the release tarball into a dir for each host and build | ||
for i in ${HOSTS}; do | ||
export PATH=${BASEPREFIX}/${i}/native/bin:${ORIGPATH} | ||
mkdir -p distsrc-${i} | ||
cd distsrc-${i} | ||
INSTALLPATH=`pwd`/installed/${DISTNAME} | ||
mkdir -p ${INSTALLPATH} | ||
tar --strip-components=1 -xf ../$SOURCEDIST | ||
CONFIG_SITE=${BASEPREFIX}/${i}/share/config.site ./configure --prefix=/ --disable-ccache --disable-maintainer-mode --disable-dependency-tracking ${CONFIGFLAGS} CFLAGS="${HOST_CFLAGS}" CXXFLAGS="${HOST_CXXFLAGS}" LDFLAGS="${HOST_LDFLAGS}" | ||
make ${MAKEOPTS} | ||
make install DESTDIR=${INSTALLPATH} | ||
cd installed | ||
find . -name "lib*.la" -delete | ||
find . -name "lib*.a" -delete | ||
rm -rf ${DISTNAME}/lib/pkgconfig | ||
find ${DISTNAME}/bin -type f -executable -exec ../contrib/devtools/split-debug.sh {} {} {}.dbg \; | ||
find ${DISTNAME}/lib -type f -exec ../contrib/devtools/split-debug.sh {} {} {}.dbg \; | ||
find ${DISTNAME} -not -name "*.dbg" | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-${i}.tar.gz | ||
find ${DISTNAME} -name "*.dbg" | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-${i}-debug.tar.gz | ||
cd ../../ | ||
rm -rf distsrc-${i} | ||
done | ||
mkdir -p $OUTDIR/src | ||
mkdir -p $OUTDIR/src | ||
mv $SOURCEDIST $OUTDIR/src |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters