automation: Add xen builds for the ECLAIR analyses

This patch defines an ARM64 and a X86_64 build for the
ECLAIR pipelines.

These files are used by the analyze.sh script in
automation/eclair_analysis: it initially calls prepare.sh,
then runs into an ECLAIR environment build.sh.

Only the toolchain invocations triggered by build.sh
are analyzed; the prepare.sh script is instead intended
to perform all the required operations for building xen
that are not supposed to be analyzed: e.g. dependencies
build.

Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
This commit is contained in:
Simone Ballarin authored and Stefano Stabellini committed 2023-07-26 15:11:50 -07:00
1 parent c4392ec832
commit 5b251cbca0
5 files changed
+391

No files matched your search

@@ -0,0 +1,6 @@
include Makefile
prepare:
$(Q)$(MAKE) $(build)=tools
$(Q)$(MAKE) $(build)=. include/xen/compile.h
$(Q)$(MAKE) $(build)=include all
$(Q)$(MAKE) $(build)=arch/$(SRCARCH) include
+44
View File
@@ -0,0 +1,44 @@
#!/bin/bash
# Stop immediately if any executed command has exit status different from 0.
set -e
script_name="$(basename "$0")"
fatal() {
echo "${script_name}: $*" >&2
exit 1
}
usage() {
fatal "Usage: ${script_name} <ARM64|X86_64>"
}
if [ $# -ne 1 ]; then
usage
fi
if [ "$1" = "X86_64" ]; then
export CROSS_COMPILE=
export XEN_TARGET_ARCH=x86_64
elif [ "$1" = "ARM64" ]; then
export CROSS_COMPILE=aarch64-linux-gnu-
export XEN_TARGET_ARCH=arm64
else
fatal "Unknown configuration: $1"
fi
if [[ -f /proc/cpuinfo ]]; then
PROCESSORS=$(grep -c ^processor /proc/cpuinfo)
else
PROCESSORS=6
fi
(
cd xen
make "-j${PROCESSORS}" "-l${PROCESSORS}.0" \
"CROSS_COMPILE=${CROSS_COMPILE}" \
"CC=${CROSS_COMPILE}gcc-12" \
"CXX=${CROSS_COMPILE}g++-12" \
"XEN_TARGET_ARCH=${XEN_TARGET_ARCH}"
)
+42
View File
@@ -0,0 +1,42 @@
#!/bin/bash
# Stop immediately if any executed command has exit status different from 0.
set -e
script_name="$(basename "$0")"
script_dir="$(
cd "$(dirname "$0")"
echo "${PWD}"
)"
fatal() {
echo "${script_name}: $*" >&2
exit 1
}
usage() {
fatal "Usage: ${script_name}"
}
if [ $# -ne 1 ]; then
usage
exit 1
fi
export XEN_TARGET_ARCH
if [ "$1" = "X86_64" ]; then
CONFIG_FILE="${script_dir}/xen_x86_config"
XEN_TARGET_ARCH=x86_64
elif [ "$1" = "ARM64" ]; then
CONFIG_FILE="${script_dir}/xen_arm_config"
XEN_TARGET_ARCH=arm64
else
fatal "Unknown configuration: $1"
fi
(
cd xen
cp "${CONFIG_FILE}" .config
make clean
make -f ${script_dir}/Makefile.prepare prepare
)
+147
View File
@@ -0,0 +1,147 @@
# File provided in
# Re: Xen MISRA C: Source files in scope and out of scope
# from: Stefano Stabellini <stefano.stabellini@amd.com>
# date: 6 giu 2023, 02:53
#
# Automatically generated file; DO NOT EDIT.
# Xen/arm 4.18-unstable Configuration
#
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=90400
CONFIG_CLANG_VERSION=0
CONFIG_LD_IS_GNU=y
CONFIG_CC_HAS_VISIBILITY_ATTRIBUTE=y
CONFIG_ARM_64=y
CONFIG_ARM=y
CONFIG_ARCH_DEFCONFIG="arch/arm/configs/arm64_defconfig"
# UBSAN
CONFIG_UBSAN=n
#
# Architecture Features
#
CONFIG_ARM64_SVE=n
CONFIG_64BIT=y
CONFIG_NR_CPUS=4
# CONFIG_ACPI is not set
CONFIG_ARM_EFI=y
CONFIG_GICV3=y
CONFIG_HAS_ITS=y
CONFIG_HVM=y
# CONFIG_NEW_VGIC is not set
CONFIG_SBSA_VUART_CONSOLE=y
CONFIG_ARM_SSBD=y
CONFIG_HARDEN_BRANCH_PREDICTOR=y
# CONFIG_TEE is not set
# CONFIG_STATIC_SHM is not set
# end of Architecture Features
#
# ARM errata workaround via the alternative framework
#
CONFIG_ARM64_ERRATUM_827319=y
CONFIG_ARM64_ERRATUM_824069=y
CONFIG_ARM64_ERRATUM_819472=y
CONFIG_ARM64_ERRATUM_843419=y
CONFIG_ARM64_ERRATUM_832075=y
CONFIG_ARM64_ERRATUM_834220=y
CONFIG_ARM_ERRATUM_858921=y
CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y
CONFIG_ARM64_ERRATUM_1286807=y
# end of ARM errata workaround via the alternative framework
CONFIG_ARM64_HARDEN_BRANCH_PREDICTOR=y
# CONFIG_ALL_PLAT is not set
# CONFIG_QEMU is not set
# CONFIG_RCAR3 is not set
CONFIG_MPSOC=y
# CONFIG_NO_PLAT is not set
CONFIG_MPSOC_PLATFORM=y
#
# Common Features
#
CONFIG_GRANT_TABLE=y
CONFIG_HAS_ALTERNATIVE=y
CONFIG_HAS_DEVICE_TREE=y
CONFIG_HAS_FAST_MULTIPLY=y
CONFIG_HAS_PDX=y
CONFIG_HAS_PMAP=y
# CONFIG_MEM_ACCESS is not set
CONFIG_STATIC_MEMORY=y
#
# Speculative hardening
#
CONFIG_SPECULATIVE_HARDEN_ARRAY=y
# end of Speculative hardening
# CONFIG_HYPFS is not set
CONFIG_IOREQ_SERVER=y
# CONFIG_EFI_SET_VIRTUAL_ADDRESS_MAP is not set
# CONFIG_XSM is not set
# CONFIG_ARGO is not set
#
# Schedulers
#
# CONFIG_SCHED_CREDIT is not set
CONFIG_SCHED_CREDIT2=y
# CONFIG_SCHED_RTDS is not set
# CONFIG_SCHED_ARINC653 is not set
CONFIG_SCHED_NULL=y
CONFIG_SCHED_CREDIT2_DEFAULT=y
# CONFIG_SCHED_NULL_DEFAULT is not set
CONFIG_SCHED_DEFAULT="credit2"
# end of Schedulers
CONFIG_BOOT_TIME_CPUPOOLS=y
# CONFIG_LIVEPATCH is not set
# CONFIG_ENFORCE_UNIQUE_SYMBOLS is not set
CONFIG_SUPPRESS_DUPLICATE_SYMBOL_WARNINGS=y
CONFIG_CMDLINE=""
CONFIG_DOM0_MEM=""
CONFIG_DTB_FILE=""
# CONFIG_TRACEBUFFER is not set
# end of Common Features
#
# Device Drivers
#
# CONFIG_HAS_NS16550 is not set
CONFIG_HAS_CADENCE_UART=y
# CONFIG_HAS_IMX_LPUART is not set
# CONFIG_HAS_MVEBU is not set
# CONFIG_HAS_MESON is not set
CONFIG_HAS_PL011=y
# CONFIG_HAS_SCIF is not set
CONFIG_SERIAL_TX_BUFSIZE=16384
CONFIG_HAS_PASSTHROUGH=y
CONFIG_ARM_SMMU=y
CONFIG_ARM_SMMU_V3=y
# CONFIG_IPMMU_VMSA is not set
CONFIG_IOMMU_FORCE_PT_SHARE=y
# end of Device Drivers
CONFIG_EXPERT=y
CONFIG_UNSUPPORTED=y
#
# Debugging Options
#
CONFIG_DEBUG=y
CONFIG_FRAME_POINTER=y
CONFIG_COVERAGE=y
CONFIG_DEBUG_LOCK_PROFILE=y
CONFIG_DEBUG_LOCKS=y
CONFIG_PERF_COUNTERS=y
CONFIG_PERF_ARRAYS=y
CONFIG_VERBOSE_DEBUG=y
CONFIG_DEVICE_TREE_DEBUG=y
CONFIG_SCRUB_DEBUG=y
CONFIG_DEBUG_TRACE=y
CONFIG_XMEM_POOL_POISON=y
CONFIG_DEBUG_INFO=y
# end of Debugging Options
+152
View File
@@ -0,0 +1,152 @@
# File provided in
# Re: Xen MISRA C: Source files in scope and out of scope
# from: Stefano Stabellini <stefano.stabellini@amd.com>
# date: 6 giu 2023, 02:53
#
# Automatically generated file; DO NOT EDIT.
# Xen/x86 4.18-unstable Configuration
#
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=90400
CONFIG_CLANG_VERSION=0
CONFIG_LD_IS_GNU=y
CONFIG_CC_HAS_VISIBILITY_ATTRIBUTE=y
CONFIG_X86_64=y
CONFIG_X86=y
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
CONFIG_CC_HAS_INDIRECT_THUNK=y
CONFIG_HAS_AS_CET_SS=y
CONFIG_HAS_CC_CET_IBT=y
CONFIG_REQUIRE_NX=n
#
# Architecture Features
#
CONFIG_64BIT=y
CONFIG_NR_CPUS=16
CONFIG_NR_NUMA_NODES=2
# CONFIG_PV is not set
CONFIG_HVM=y
# CONFIG_XEN_SHSTK is not set
# CONFIG_XEN_IBT is not set
# CONFIG_SHADOW_PAGING is not set
# CONFIG_BIGMEM is not set
# CONFIG_HVM_FEP is not set
# CONFIG_TBOOT is not set
CONFIG_XEN_ALIGN_DEFAULT=y
# CONFIG_XEN_ALIGN_2M is not set
CONFIG_X2APIC_PHYSICAL=y
# CONFIG_XEN_GUEST is not set
# CONFIG_HYPERV_GUEST is not set
# CONFIG_MEM_PAGING is not set
# CONFIG_MEM_SHARING is not set
# end of Architecture Features
#
# Common Features
#
CONFIG_COMPAT=y
CONFIG_CORE_PARKING=y
CONFIG_GRANT_TABLE=y
CONFIG_ALTERNATIVE_CALL=y
CONFIG_ARCH_MAP_DOMAIN_PAGE=y
CONFIG_GENERIC_BUG_FRAME=y
CONFIG_HAS_ALTERNATIVE=y
CONFIG_HAS_COMPAT=y
CONFIG_HAS_EX_TABLE=y
CONFIG_HAS_FAST_MULTIPLY=y
CONFIG_HAS_IOPORTS=y
CONFIG_HAS_KEXEC=y
CONFIG_HAS_PDX=y
CONFIG_HAS_SCHED_GRANULARITY=y
CONFIG_HAS_UBSAN=y
CONFIG_MEM_ACCESS_ALWAYS_ON=y
CONFIG_MEM_ACCESS=y
CONFIG_NEEDS_LIBELF=y
CONFIG_NUMA=y
#
# Speculative hardening
#
CONFIG_INDIRECT_THUNK=y
CONFIG_SPECULATIVE_HARDEN_ARRAY=y
CONFIG_SPECULATIVE_HARDEN_BRANCH=y
# end of Speculative hardening
# CONFIG_HYPFS is not set
CONFIG_IOREQ_SERVER=y
# CONFIG_KEXEC is not set
# CONFIG_EFI_SET_VIRTUAL_ADDRESS_MAP is not set
# CONFIG_XENOPROF is not set
# CONFIG_XSM is not set
# CONFIG_ARGO is not set
#
# Schedulers
#
# CONFIG_SCHED_CREDIT is not set
CONFIG_SCHED_CREDIT2=y
# CONFIG_SCHED_RTDS is not set
# CONFIG_SCHED_ARINC653 is not set
CONFIG_SCHED_NULL=y
CONFIG_SCHED_CREDIT2_DEFAULT=y
# CONFIG_SCHED_NULL_DEFAULT is not set
CONFIG_SCHED_DEFAULT="credit2"
# end of Schedulers
# CONFIG_LIVEPATCH is not set
# CONFIG_ENFORCE_UNIQUE_SYMBOLS is not set
# CONFIG_SUPPRESS_DUPLICATE_SYMBOL_WARNINGS is not set
CONFIG_CMDLINE=""
CONFIG_DOM0_MEM=""
# CONFIG_TRACEBUFFER is not set
# end of Common Features
#
# Device Drivers
#
CONFIG_ACPI=y
CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
CONFIG_ACPI_NUMA=y
CONFIG_HAS_NS16550=y
CONFIG_HAS_EHCI=y
CONFIG_SERIAL_TX_BUFSIZE=16384
# CONFIG_XHCI is not set
CONFIG_HAS_CPUFREQ=y
CONFIG_HAS_PASSTHROUGH=y
CONFIG_AMD_IOMMU=y
# CONFIG_INTEL_IOMMU is not set
# CONFIG_IOMMU_QUARANTINE_NONE is not set
CONFIG_IOMMU_QUARANTINE_BASIC=y
# CONFIG_IOMMU_QUARANTINE_SCRATCH_PAGE is not set
CONFIG_HAS_PCI=y
CONFIG_HAS_PCI_MSI=y
CONFIG_VIDEO=y
CONFIG_VGA=y
CONFIG_HAS_VPCI=y
# end of Device Drivers
CONFIG_EXPERT=y
CONFIG_UNSUPPORTED=y
CONFIG_ARCH_SUPPORTS_INT128=y
#
# Debugging Options
#
CONFIG_DEBUG=y
# CONFIG_CRASH_DEBUG is not set
CONFIG_GDBSX=y
CONFIG_FRAME_POINTER=y
# CONFIG_COVERAGE is not set
# CONFIG_DEBUG_LOCK_PROFILE is not set
CONFIG_DEBUG_LOCKS=y
# CONFIG_PERF_COUNTERS is not set
CONFIG_VERBOSE_DEBUG=y
CONFIG_SCRUB_DEBUG=y
# CONFIG_UBSAN is not set
# CONFIG_DEBUG_TRACE is not set
CONFIG_XMEM_POOL_POISON=y
CONFIG_DEBUG_INFO=y
# end of Debugging Options
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.