|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2] livepatch-build-tools: allow livepatching version.c
On Thu, Dec 14, 2023 at 8:54 AM Roger Pau Monne <roger.pau@xxxxxxxxxx> wrote:
>
> Currently version.o is explicitly ignored as the file would change as a result
> of the orignal and the patched build having possibly different dates, times or
> changeset strings (by the patched build appending -dirty).
>
> Fix such difference by exporting the date and time from the build script, so
> that both builds share the same build time. The changeset string gets set in
> .scmversion, and is cleaned on script exit if it wasn't present initially.
> This
> allows checking for changes in version.c, since the rest of fields need to be
> manually changed in order to produce different output.
>
> Setting XEN_BUILD_{DATE,TIME} as an environment variable and .scmversion has
> been supported since before livepatch support was added to Xen, so it's safe
> to
> export those variables unconditionally.
>
> Reported-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
> ---
> Changes since v1:
> - Also ensure consistent changeset version.
> ---
> livepatch-build | 14 ++++++++++++++
> livepatch-gcc | 2 --
> 2 files changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/livepatch-build b/livepatch-build
> index e2ccce4f7fd7..332d26f5c6b6 100755
> --- a/livepatch-build
> +++ b/livepatch-build
> @@ -392,6 +392,10 @@ echo "Output directory: $outputarg"
> echo "================================================"
> echo
>
> +cleanup_version() {
> + rm -rf "${SRCDIR}/xen/.scmversion"
> +}
> +
> if [ "${SKIP}" != "build" ]; then
> # Make sure output directory doesn't exist, and create it.
> [ -e "$outputarg" ] && die "Output directory exists"
> @@ -417,6 +421,16 @@ if [ "${SKIP}" != "build" ]; then
>
> export CROSS_COMPILE="${TOOLSDIR}/livepatch-gcc "
>
> + # Force same date and time to prevent unwanted changes in version.c
> + export XEN_BUILD_DATE=`LC_ALL=C date`
> + export XEN_BUILD_TIME=`LC_ALL=C date +%T`
> +
> + # Ensure uniform changeset between builds
> + if [ ! -e "${SRCDIR}/xen/.scmversion" ]; then
> + trap cleanup_version EXIT
> + echo "unavailable" > "${SRCDIR}/xen/.scmversion"
Shouldn't this be "${SRCDIR}/.scmversion" since Xen runs
"$(srctree)/tools/scmversion $(XEN_ROOT)"?
Otherwise I still get spurious version.o changes...
With the 3 uses of that changed (can change during commit),
Reviewed-by: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |