APPLIED[F]: [SRU focal:linux, groovy:linux 1/1] UBUNTU: [Packaging] kernelconfig -- only update/edit configurations on architectures we have compiler support
Ian May
ian.may at canonical.com
Fri Oct 2 22:37:13 UTC 2020
Applied to Focal/master-next. Thanks!
Ian
On 2020-08-12 22:28:28 , Andy Whitcroft wrote:
> We can only rebuild, edit, or update a configuration for an architecture
> nativly on that architecture or using a compatible cross-compiler for
> that architecture. Skip architectures for which we do not have an
> apropriate compiler. When we do not perform the requested operation on
> all architectures report those which have been skipped clearly at the
> bottom of the output.
>
> WARNING: configuration operation applied only to a subset of
> architectures (skipped i386 armhf arm64 ppc64el s390x)
>
> [seth.forshee at canonical.com: remove i386 special case.]
> BugLink: https://bugs.launchpad.net/bugs/1863116
> Signed-off-by: Andy Whitcroft <apw at canonical.com>
> ---
> debian/scripts/misc/kernelconfig | 79 +++++++++++++++++++-------------
> 1 file changed, 47 insertions(+), 32 deletions(-)
>
> diff --git a/debian/scripts/misc/kernelconfig b/debian/scripts/misc/kernelconfig
> index fc50c48df3b7..dd45d2f2b085 100755
> --- a/debian/scripts/misc/kernelconfig
> +++ b/debian/scripts/misc/kernelconfig
> @@ -39,6 +39,8 @@ if [ "$mode" = "genconfigs" ]; then
> test -d CONFIGS || mkdir CONFIGS
> fi
>
> +warning_partial=
> +
> for arch in $archs; do
> rm -rf build
> mkdir build
> @@ -64,9 +66,15 @@ for arch in $archs; do
> # Environment variables for 'make *config'. We omit CROSS_COMPILE
> # for i386 since it is no longer supported after 19.04, however
> # we maintain the configs for hwe.
> + modify_config=true
> env="ARCH=$kernarch"
> - if [ "$arch" != "i386" ]; then
> + compiler_path=$(which "${cross_compile}gcc" || true)
> + if [ "$compiler_path" != '' ]; then
> env="$env CROSS_COMPILE=$cross_compile"
> + else
> + echo "WARNING: ${cross_compile}gcc not installed"
> + modify_config=
> + warning_partial="$warning_partial $arch"
> fi
>
> archconfdir=$confdir/$arch
> @@ -100,38 +108,39 @@ for arch in $archs; do
> fullconf="$tmpdir/$arch-$config-full"
> cat "$fullconf" > build/.config
> # Call oldconfig or menuconfig
> - case "$mode" in
> - editconfigs)
> - # Interactively edit config parameters
> - while : ; do
> - echo -n "Do you want to edit config: $arch/$config? [Y/n] "
> - read choice
> -
> - case "$choice" in
> - y* | Y* | "" )
> - make O=`pwd`/build $env menuconfig
> - break ;;
> - n* | N* )
> - # 'syncconfig' prevents
> - # errors for '-' options set
> - # in common config fragments
> - make O=`pwd`/build $env syncconfig
> - break ;;
> - *)
> - echo "Entry not valid"
> - esac
> - done
> - ;;
> - *)
> - echo "* Run $mode (yes=$yes) on $arch/$config ..."
> - if [ "$yes" -eq 1 ]; then
> - yes "" | make O=`pwd`/build $env "$mode"
> - else
> - make O=`pwd`/build $env "$mode"
> - fi ;;
> - esac
> + if [ "$modify_config" ]; then
> + case "$mode" in
> + editconfigs)
> + # Interactively edit config parameters
> + while : ; do
> + echo -n "Do you want to edit config: $arch/$config? [Y/n] "
> + read choice
> + case "$choice" in
> + y* | Y* | "" )
> + make O=`pwd`/build $env menuconfig
> + break ;;
> + n* | N* )
> + # 'syncconfig' prevents
> + # errors for '-' options set
> + # in common config fragments
> + make O=`pwd`/build $env syncconfig
> + break ;;
> + *)
> + echo "Entry not valid"
> + esac
> + done
> + ;;
> + *)
> + echo "* Run $mode (yes=$yes) on $arch/$config ..."
> + if [ "$yes" -eq 1 ]; then
> + yes "" | make O=`pwd`/build $env "$mode"
> + else
> + make O=`pwd`/build $env "$mode"
> + fi ;;
> + esac
> + fi
> cat build/.config > $archconfdir/$config
> - cat build/.config > "$tmpdir/CONFIGS/$arch-$config"
> + [ "$modify_config" ] && cat build/.config >"$tmpdir/CONFIGS/$arch-$config"
> if [ "$keep" = "1" ]; then
> cat build/.config > CONFIGS/$arch-$config
> fi
> @@ -176,6 +185,7 @@ for arch in $archs; do
> flavour="${config##*.}"
> if [ -f $archconfdir/$config ]; then
> fullconf="$tmpdir/CONFIGS/$arch-$config"
> + [ ! -f "$fullconf" ] && continue
> "$bindir/../config-check" "$fullconf" "$arch" "$flavour" "$confdir" "0" "0" || let "fail=$fail+1"
> fi
> done
> @@ -189,3 +199,8 @@ fi
>
> rm -rf build
>
> +if [ "$warning_partial" ]; then
> + echo ""
> + echo "WARNING: configuration operation applied only to a subset of architectures (skipped$warning_partial)" 1>&2
> + echo ""
> +fi
> --
> 2.27.0
>
>
> --
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
More information about the kernel-team
mailing list