diff options
-rw-r--r-- | recipes-extended/xen/xen.inc | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/recipes-extended/xen/xen.inc b/recipes-extended/xen/xen.inc index ed6e6a7b..2bbf1e35 100644 --- a/recipes-extended/xen/xen.inc +++ b/recipes-extended/xen/xen.inc | |||
@@ -88,12 +88,13 @@ export CROSS_COMPILE="${TARGET_PREFIX}" | |||
88 | # overide LDFLAGS to allow xen to build without: "x86_64-oe-linux-ld: unrecognized option '-Wl,-O1'" | 88 | # overide LDFLAGS to allow xen to build without: "x86_64-oe-linux-ld: unrecognized option '-Wl,-O1'" |
89 | export LDFLAGS="" | 89 | export LDFLAGS="" |
90 | 90 | ||
91 | # Pass through the Yocto distro compiler flags via the Xen-provided variables. | 91 | # No additional C flags for the main hypervisor build |
92 | # Special handling: | 92 | EXTRA_CFLAGS_XEN_CORE ?= "" |
93 | # - The Yocto distro compiler flags are typically set to be appropriate for | 93 | # Add prefix maps to support buildpaths QA test and reproducibility |
94 | # user-space software rather than for generation of a hypervisor binary, so | 94 | DEBUG_PREFIX_MAP:append = " \ |
95 | # only pass the debug prefix map to the hypervisor build: | 95 | -ffile-prefix-map=${S}=${PN}-source \ |
96 | EXTRA_CFLAGS_XEN_CORE="${DEBUG_PREFIX_MAP}" | 96 | -fdebug-prefix-map=${WORKDIR}=${PN} \ |
97 | " | ||
97 | 98 | ||
98 | # - The Xen tools build for x86 systems with HVM-mode enabled includes hvmloader | 99 | # - The Xen tools build for x86 systems with HVM-mode enabled includes hvmloader |
99 | # which fails to build when "-m64" is included in flags set via the | 100 | # which fails to build when "-m64" is included in flags set via the |
@@ -109,11 +110,11 @@ TUNE_CCARGS:x86-64="" | |||
109 | # It must not be compiled with SSE compiler options enabled and the Xen build | 110 | # It must not be compiled with SSE compiler options enabled and the Xen build |
110 | # explicitly clears CFLAGS to ensure that, so such options must not be passed | 111 | # explicitly clears CFLAGS to ensure that, so such options must not be passed |
111 | # in via the tool variable. hvmloader is required to run HVM-mode guest VMs. | 112 | # in via the tool variable. hvmloader is required to run HVM-mode guest VMs. |
112 | CC="${CCACHE}${HOST_PREFIX}gcc ${TOOLCHAIN_OPTIONS} ${CC_REPRODUCIBLE_OPTIONS}" | 113 | CC="${CCACHE}${HOST_PREFIX}gcc ${TOOLCHAIN_OPTIONS} ${DEBUG_PREFIX_MAP} ${CC_REPRODUCIBLE_OPTIONS}" |
113 | EXTRA_CFLAGS_XEN_TOOLS="${HOST_CC_ARCH} ${CFLAGS}" | 114 | EXTRA_CFLAGS_XEN_TOOLS="${HOST_CC_ARCH} ${CFLAGS}" |
114 | # 32-bit ARM needs the TUNE_CCARGS component of HOST_CC_ARCH to be passed | 115 | # 32-bit ARM needs the TUNE_CCARGS component of HOST_CC_ARCH to be passed |
115 | # in CC to ensure that configure can compile binaries for the right arch. | 116 | # in CC to ensure that configure can compile binaries for the right arch. |
116 | CC:arm="${CCACHE}${HOST_PREFIX}gcc ${TUNE_CCARGS} ${TOOLCHAIN_OPTIONS} ${CC_REPRODUCIBLE_OPTIONS}" | 117 | CC:arm="${CCACHE}${HOST_PREFIX}gcc ${TUNE_CCARGS} ${TOOLCHAIN_OPTIONS} ${DEBUG_PREFIX_MAP} ${CC_REPRODUCIBLE_OPTIONS}" |
117 | 118 | ||
118 | # There are no Xen-provided variables for C++, so append to the tool variables: | 119 | # There are no Xen-provided variables for C++, so append to the tool variables: |
119 | CPP:append = " ${CPPFLAGS}" | 120 | CPP:append = " ${CPPFLAGS}" |
@@ -158,9 +159,7 @@ EXTRA_OEMAKE += "${@['', 'XEN_WHOAMI=${PF} XEN_DOMAIN=${DISTRO} XEN_BUILD_HOST=$ | |||
158 | [d.getVar('BUILD_REPRODUCIBLE_BINARIES') == '1']}${@get_build_time_vars(d)}" | 159 | [d.getVar('BUILD_REPRODUCIBLE_BINARIES') == '1']}${@get_build_time_vars(d)}" |
159 | 160 | ||
160 | # Improve build reproducibility: compiler flags to remove filesystem differences. | 161 | # Improve build reproducibility: compiler flags to remove filesystem differences. |
161 | CC_REPRODUCIBLE_OPTIONS = "${@['', '-gno-record-gcc-switches ' + \ | 162 | CC_REPRODUCIBLE_OPTIONS = "${@['', '-gno-record-gcc-switches'] \ |
162 | '-ffile-prefix-map=${S}=${PN}-source ' + \ | ||
163 | '-fdebug-prefix-map=${WORKDIR}=${PN}'] \ | ||
164 | [d.getVar('BUILD_REPRODUCIBLE_BINARIES') == '1']}" | 163 | [d.getVar('BUILD_REPRODUCIBLE_BINARIES') == '1']}" |
165 | 164 | ||
166 | # check for XSM in package config to allow XSM_ENABLE to be set | 165 | # check for XSM in package config to allow XSM_ENABLE to be set |