On 10 Jul 2022, at 06:42, Christopher Clark <christopher.w.clark@...> wrote:
To fix warnings when the buildpaths QA test is enabled, pass the file and debug prefix map options that were previously supplied only for reproducible builds, adding them to the DEBUG_PREFIX_MAP variable and supplying that to CC.
Testing indicates that passing the prefix maps needs to be via CC rather than the EXTRA_CFLAGS_XEN_CORE/TOOLS variables.
Signed-off-by: Christopher Clark <christopher.w.clark@...>
-# Pass through the Yocto distro compiler flags via the Xen-provided variables. -# Special handling: -# - The Yocto distro compiler flags are typically set to be appropriate for -# user-space software rather than for generation of a hypervisor binary, so -# only pass the debug prefix map to the hypervisor build: -EXTRA_CFLAGS_XEN_CORE="${DEBUG_PREFIX_MAP}" +# No additional C flags for the main hypervisor build +EXTRA_CFLAGS_XEN_CORE ?= "" +# Add prefix maps to support buildpaths QA test and reproducibility +DEBUG_PREFIX_MAP:append = " \ + -ffile-prefix-map=${S}=${PN}-source \ + -fdebug-prefix-map=${WORKDIR}=${PN} \ + "
# - The Xen tools build for x86 systems with HVM-mode enabled includes hvmloader # which fails to build when "-m64" is included in flags set via the @@ -109,11 +110,11 @@ TUNE_CCARGS:x86-64="" # It must not be compiled with SSE compiler options enabled and the Xen build # explicitly clears CFLAGS to ensure that, so such options must not be passed # in via the tool variable. hvmloader is required to run HVM-mode guest VMs. -CC="${CCACHE}${HOST_PREFIX}gcc ${TOOLCHAIN_OPTIONS} ${CC_REPRODUCIBLE_OPTIONS}" +CC="${CCACHE}${HOST_PREFIX}gcc ${TOOLCHAIN_OPTIONS} ${DEBUG_PREFIX_MAP} ${CC_REPRODUCIBLE_OPTIONS}" EXTRA_CFLAGS_XEN_TOOLS="${HOST_CC_ARCH} ${CFLAGS}" # 32-bit ARM needs the TUNE_CCARGS component of HOST_CC_ARCH to be passed # in CC to ensure that configure can compile binaries for the right arch. -CC:arm="${CCACHE}${HOST_PREFIX}gcc ${TUNE_CCARGS} ${TOOLCHAIN_OPTIONS} ${CC_REPRODUCIBLE_OPTIONS}" +CC:arm="${CCACHE}${HOST_PREFIX}gcc ${TUNE_CCARGS} ${TOOLCHAIN_OPTIONS} ${DEBUG_PREFIX_MAP} ${CC_REPRODUCIBLE_OPTIONS}"
# There are no Xen-provided variables for C++, so append to the tool variables: CPP:append = " ${CPPFLAGS}" @@ -158,9 +159,7 @@ EXTRA_OEMAKE += "${@['', 'XEN_WHOAMI=${PF} XEN_DOMAIN=${DISTRO} XEN_BUILD_HOST=$ [d.getVar('BUILD_REPRODUCIBLE_BINARIES') == '1']}${@get_build_time_vars(d)}"