[J/linux][L/linux][PATCH] UBUNTU: [Packaging] Copy expoline.o only when the relevant config is enabled

Andrea Righi andrea.righi at canonical.com
Thu Mar 30 07:31:33 UTC 2023


On Wed, Mar 29, 2023 at 03:13:56PM +0100, Andrei Gherzan wrote:
> BugLink: https://bugs.launchpad.net/bugs/2013209
> 
> The Jammy kernel enabled CONFIG_EXPOLINE_EXTERN for s390x. While this
> works as expected on Jammy, it won't work on some derivatives of it: for
> example focal:hwe-5.15. On Focal, this config can't be enabled due to
> the GCC version it comes with. CONFIG_EXPOLINE_EXTERN requires >= 110200
> while Focal comes with 90400.
> 
> This change adds a config check when packaging of the expoline.o.
> 
> Signed-off-by: Andrei Gherzan <andrei.gherzan at canonical.com>
> ---
>  debian/rules.d/2-binary-arch.mk | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/debian/rules.d/2-binary-arch.mk b/debian/rules.d/2-binary-arch.mk
> index 8e053f832b06..4fd528b0d7fd 100644
> --- a/debian/rules.d/2-binary-arch.mk
> +++ b/debian/rules.d/2-binary-arch.mk
> @@ -335,8 +335,10 @@ ifeq ($(build_arch),powerpc)
>  	cp $(builddir)/build-$*/arch/powerpc/lib/*.o $(hdrdir)/arch/powerpc/lib
>  endif
>  ifeq ($(build_arch),s390)
> -	mkdir -p $(hdrdir)/arch/s390/lib/expoline/
> -	cp $(builddir)/build-$*/arch/s390/lib/expoline/*.o $(hdrdir)/arch/s390/lib/expoline/
> +	if grep -q CONFIG_EXPOLINE_EXTERN=y $(builddir)/build-$*/.config; then \
> +		mkdir -p $(hdrdir)/arch/s390/lib/expoline/; \
> +		cp $(builddir)/build-$*/arch/s390/lib/expoline/*.o $(hdrdir)/arch/s390/lib/expoline/; \
> +	fi

We are implicitly assuming that CONFIG_EXPOLINE_EXTERN=y will always
generate the *.o files that want to copy, how about checking for the
presence of these files instead?

In this way everything will continue to work even if the config option
is renamed/removed or if it changes its behavior.

Maybe something like this (untested):

 # If there's at least one *.o file in the expoline build directory, copy
 # it/them to $(hdrdir)/arch/s390/lib/expoline/
 if [ -n "$(find $(builddir)/build-$*/arch/s390/lib/expoline/ -maxdepth 1 -name '*.o' -print -quit)" ]; then
 	mkdir -p $(hdrdir)/arch/s390/lib/expoline/; \
 	cp $(builddir)/build-$*/arch/s390/lib/expoline/*.o $(hdrdir)/arch/s390/lib/expoline/; \
 fi

-Andrea



More information about the kernel-team mailing list