mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
Currently randconfig tests are more likely to fail than to succeed because of a bug in xen's build system: symbols-dummy.o's dependency is wrong, which causes it to not get rebuild between runs, which eventually causes linking to fail. There may also be other corner cases we haven't discovered. The fix is not straightforward. For now, make sure the tree is cleaned properly between builds so we don't see random failures in Gitlab CI. Signed-off-by: Wei Liu <wei.liu2@citrix.com> Acked-by: Doug Goldstein <cardoe@cardoe.com>
50 lines
1.3 KiB
Python
Executable File
50 lines
1.3 KiB
Python
Executable File
#!/bin/bash -ex
|
|
|
|
$CC --version
|
|
|
|
# random config or default config
|
|
if [[ "${RANDCONFIG}" == "y" ]]; then
|
|
make -C xen KCONFIG_ALLCONFIG=tools/kconfig/allrandom.config randconfig
|
|
else
|
|
make -C xen defconfig
|
|
fi
|
|
|
|
# build up our configure options
|
|
cfgargs=()
|
|
cfgargs+=("--enable-docs")
|
|
|
|
if [[ "${CC}" == "clang" ]]; then
|
|
# SeaBIOS cannot be built with clang
|
|
cfgargs+=("--with-system-seabios=/usr/share/seabios/bios.bin")
|
|
# iPXE cannot be built with clang so we cannot build rombios
|
|
cfgargs+=("--disable-rombios")
|
|
# newlib cannot be built with clang so we cannot build stubdoms
|
|
cfgargs+=("--disable-stubdom")
|
|
fi
|
|
|
|
./configure "${cfgargs[@]}"
|
|
|
|
make -j$(nproc) dist
|
|
|
|
# Extract artifacts to avoid getting rewritten by customised builds
|
|
cp xen/.config xen-config
|
|
mkdir binaries
|
|
if [[ "${XEN_TARGET_ARCH}" == "x86_64" ]]; then
|
|
cp xen/xen binaries/xen
|
|
fi
|
|
|
|
# Build all the configs we care about
|
|
case ${XEN_TARGET_ARCH} in
|
|
x86_64) arch=x86 ;;
|
|
*) exit 0 ;;
|
|
esac
|
|
|
|
cfg_dir="automation/configs/${arch}"
|
|
for cfg in `ls ${cfg_dir}`; do
|
|
echo "Building $cfg"
|
|
make -j$(nproc) -C xen clean
|
|
rm -f xen/.config
|
|
make -C xen KBUILD_DEFCONFIG=../../../../${cfg_dir}/${cfg} XEN_CONFIG_EXPERT=y defconfig
|
|
make -j$(nproc) -C xen XEN_CONFIG_EXPERT=y
|
|
done
|