1
1
---
2
- name : " wagerr-linux-4.0"
2
+ name : " wagerr-linux-4.0.99 "
3
3
enable_cache : true
4
+ distro : " ubuntu"
4
5
suites :
5
6
- " bionic"
6
7
architectures :
7
8
- " amd64"
8
9
packages :
9
10
- " curl"
10
11
- " g++-aarch64-linux-gnu"
11
- - " g++-7 -aarch64-linux-gnu"
12
- - " gcc-7 -aarch64-linux-gnu"
12
+ - " g++-8 -aarch64-linux-gnu"
13
+ - " gcc-8 -aarch64-linux-gnu"
13
14
- " binutils-aarch64-linux-gnu"
14
15
- " g++-arm-linux-gnueabihf"
15
- - " g++-7 -arm-linux-gnueabihf"
16
- - " gcc-7 -arm-linux-gnueabihf"
16
+ - " g++-8 -arm-linux-gnueabihf"
17
+ - " gcc-8 -arm-linux-gnueabihf"
17
18
- " binutils-arm-linux-gnueabihf"
18
- - " g++-7-multilib"
19
- - " gcc-7-multilib"
19
+ - " g++-riscv64-linux-gnu"
20
+ - " g++-8-riscv64-linux-gnu"
21
+ - " gcc-8-riscv64-linux-gnu"
22
+ - " binutils-riscv64-linux-gnu"
23
+ - " g++-powerpc64le-linux-gnu"
24
+ - " g++-8-powerpc64le-linux-gnu"
25
+ - " gcc-8-powerpc64le-linux-gnu"
26
+ - " binutils-powerpc64le-linux-gnu"
27
+ - " g++-i686-linux-gnu"
28
+ - " g++-8-i686-linux-gnu"
29
+ - " gcc-8-i686-linux-gnu"
30
+ - " binutils-i686-linux-gnu"
31
+ - " g++-8-multilib"
32
+ - " gcc-8-multilib"
20
33
- " binutils-gold"
21
34
- " git"
22
35
- " pkg-config"
@@ -26,20 +39,21 @@ packages:
26
39
- " faketime"
27
40
- " bsdmainutils"
28
41
- " ca-certificates"
29
- - " python"
30
42
- " python3"
31
43
- " libxkbcommon0"
32
- - " ccache"
44
+ - " linux-libc-dev"
45
+ - " doxygen"
33
46
remotes :
34
47
- " url " : " https://github.com/wagerr/wagerr.git"
35
48
" dir " : " wagerr"
36
49
files : []
37
50
script : |
51
+ set -e -o pipefail
38
52
39
53
WRAP_DIR=$HOME/wrapped
40
- HOSTS="i686-pc-linux-gnu x86_64-linux-gnu arm-linux-gnueabihf aarch64-linux-gnu"
54
+ HOSTS="i686-pc-linux-gnu x86_64-linux-gnu arm-linux-gnueabihf aarch64-linux-gnu" # powerpc64le-linux-gnu riscv64-linux-gnu s390x-linux-gnu powerpc64-linux-gnu mipsel-linux-gnu mips-linux-gnu
41
55
CONFIGFLAGS="--enable-glibc-back-compat --enable-reduce-exports --disable-bench --disable-gui-tests --enable-crash-hooks"
42
- FAKETIME_HOST_PROGS=""
56
+ FAKETIME_HOST_PROGS="gcc g++ "
43
57
FAKETIME_PROGS="date ar ranlib nm"
44
58
HOST_CFLAGS="-O2 -g"
45
59
HOST_CXXFLAGS="-O2 -g"
@@ -54,54 +68,33 @@ script: |
54
68
mkdir -p ${WRAP_DIR}
55
69
if test -n "$GBUILD_CACHE_ENABLED"; then
56
70
export SOURCES_PATH=${GBUILD_COMMON_CACHE}
57
- export BASE_CACHE=${GBUILD_PACKAGE_CACHE}/depends
71
+ export BASE_CACHE=${GBUILD_PACKAGE_CACHE}
58
72
mkdir -p ${BASE_CACHE} ${SOURCES_PATH}
59
-
60
- # Setup ccache to use correct cache directories and fix the compiler check of ccache
61
- CONFIGFLAGS="${CONFIGFLAGS} --enable-ccache"
62
- export CCACHE_DIR=${GBUILD_PACKAGE_CACHE}/ccache
63
- # As we later wrap the gcc binaries, this is fast
64
- export CCACHE_COMPILERCHECK="content"
65
- if [ -f ${GBUILD_PACKAGE_CACHE}/ccache.tar ]; then
66
- pushd ${GBUILD_PACKAGE_CACHE}
67
- tar xf ccache.tar
68
- rm ccache.tar
69
- popd
70
- fi
71
- # instead of compressing ccache.tar, we let ccache handle it by itself
72
- # Otherwise we end up uncompressing/compressing a lot of cache files which we actually never use
73
- export CCACHE_COMPRESS=1
74
- else
75
- CONFIGFLAGS="${CONFIGFLAGS} --disable-ccache"
76
73
fi
77
74
78
- # We include the GCC version in all wrappers so that ccache can detect compiler upgrades when hashing the wrappers
79
- GCCVERSION=`gcc --version | head -1`
80
-
81
75
function create_global_faketime_wrappers {
82
76
for prog in ${FAKETIME_PROGS}; do
83
77
echo '#!/usr/bin/env bash' > ${WRAP_DIR}/${prog}
84
- echo "# GCCVERSION=${GCCVERSION}" >> ${WRAP_DIR}/${prog}
85
78
echo "REAL=\`which -a ${prog} | grep -v ${WRAP_DIR}/${prog} | head -1\`" >> ${WRAP_DIR}/${prog}
86
79
echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${prog}
87
80
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${prog}
88
81
echo "\$REAL \$@" >> $WRAP_DIR/${prog}
89
82
chmod +x ${WRAP_DIR}/${prog}
90
- touch -d "${REFERENCE_DATETIME}" ${WRAP_DIR}/${prog}
91
83
done
92
84
}
93
85
94
86
function create_per-host_faketime_wrappers {
95
87
for i in $HOSTS; do
96
88
for prog in ${FAKETIME_HOST_PROGS}; do
97
- echo '#!/usr/bin/env bash' > ${WRAP_DIR}/${i}-${prog}
98
- echo "# GCCVERSION=${GCCVERSION}" >> ${WRAP_DIR}/${i}-${prog}
99
- echo "REAL=\`which -a ${i}-${prog} | grep -v ${WRAP_DIR}/${i}-${prog} | head -1\`" >> ${WRAP_DIR}/${i}-${prog}
100
- echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${i}-${prog}
101
- echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${i}-${prog}
102
- echo "\$REAL \$@" >> $WRAP_DIR/${i}-${prog}
103
- chmod +x ${WRAP_DIR}/${i}-${prog}
104
- touch -d "${REFERENCE_DATETIME}" ${WRAP_DIR}/${i}-${prog}
89
+ if which ${i}-${prog}-8
90
+ then
91
+ echo '#!/usr/bin/env bash' > ${WRAP_DIR}/${i}-${prog}
92
+ echo "REAL=\`which -a ${i}-${prog}-8 | grep -v ${WRAP_DIR}/${i}-${prog} | head -1\`" >> ${WRAP_DIR}/${i}-${prog}
93
+ echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${i}-${prog}
94
+ echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${i}-${prog}
95
+ echo "\$REAL \$@" >> $WRAP_DIR/${i}-${prog}
96
+ chmod +x ${WRAP_DIR}/${i}-${prog}
97
+ fi
105
98
done
106
99
done
107
100
}
@@ -127,8 +120,7 @@ script: |
127
120
rm -f ${WRAP_DIR}/${prog}
128
121
cat << EOF > ${WRAP_DIR}/${prog}
129
122
#!/usr/bin/env bash
130
- # GCCVERSION=${GCCVERSION}
131
- REAL="`which -a ${prog} | grep -v ${WRAP_DIR}/${prog} | head -1`"
123
+ REAL="`which -a ${prog}-8 | grep -v ${WRAP_DIR}/${prog} | head -1`"
132
124
for var in "\$@"
133
125
do
134
126
if [ "\$var" = "-m32" ]; then
@@ -140,7 +132,6 @@ script: |
140
132
\$REAL \$@
141
133
EOF
142
134
chmod +x ${WRAP_DIR}/${prog}
143
- touch -d "${REFERENCE_DATETIME}" ${WRAP_DIR}/${prog}
144
135
done
145
136
146
137
cd wagerr
@@ -192,39 +183,26 @@ script: |
192
183
mkdir src/obj
193
184
cp ../src/obj/build.h src/obj/
194
185
195
- CONFIG_SITE=${BASEPREFIX}/${i}/share/config.site ./configure --prefix=/ --disable-maintainer-mode --disable-dependency-tracking ${CONFIGFLAGS} CFLAGS="${HOST_CFLAGS}" CXXFLAGS="${HOST_CXXFLAGS}" LDFLAGS="${HOST_LDFLAGS}"
186
+ 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}"
196
187
make ${MAKEOPTS}
197
188
make ${MAKEOPTS} -C src check-security
198
-
199
- #TODO: This is a quick hack that disables symbol checking for arm.
200
- # Instead, we should investigate why these are popping up.
201
- # For aarch64, we'll need to bump up the min GLIBC version, as the abi
202
- # support wasn't introduced until 2.17.
203
189
case $i in
204
190
aarch64-*) : ;;
205
191
arm-*) : ;;
206
192
*) make ${MAKEOPTS} -C src check-symbols ;;
207
193
esac
208
-
209
194
make install DESTDIR=${INSTALLPATH}
210
195
cd installed
211
196
find . -name "lib*.la" -delete
212
197
find . -name "lib*.a" -delete
213
198
rm -rf ${DISTNAME}/lib/pkgconfig
214
- find ${DISTNAME}/bin -type f -executable -exec ../contrib/devtools/split-debug.sh {} {} {}.dbg \;
215
- find ${DISTNAME}/lib -type f -exec ../contrib/devtools/split-debug.sh {} {} {}.dbg \;
199
+ find ${DISTNAME}/bin -type f -executable -print0 | xargs -0 -n1 -I{} ../contrib/devtools/split-debug.sh {} {} {}.dbg
200
+ #find ${DISTNAME}/lib -type f -print0 | xargs -0 -n1 -I{} ../contrib/devtools/split-debug.sh {} {} {}.dbg
201
+ cp ../doc/README.md ${DISTNAME}/
216
202
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
217
203
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
218
204
cd ../../
219
205
rm -rf distsrc-${i}
220
206
done
221
207
mkdir -p $OUTDIR/src
222
208
mv $SOURCEDIST $OUTDIR/src
223
-
224
- # Compress ccache (otherwise the assert file will get too huge)
225
- if [ "$CCACHE_DIR" != "" ]; then
226
- pushd ${GBUILD_PACKAGE_CACHE}
227
- tar cf ccache.tar ccache
228
- rm -rf ccache
229
- popd
230
- fi
0 commit comments