Re: [FIX] 2.2.15pre16 build failure due to make menuconfig/xconfig bugs

From: Andrzej Krzysztofowicz (kufel!ankry@green.mif.pg.gda.pl)
Date: Thu Mar 30 2000 - 15:50:21 EST


> Hi,
>
> some observations in 2.2.15pre16:
>
> 1) A serious bug/incompatiblitiy in make menuconfig and make xconfig
> allows MSP3400 to be linked against the kernel while CONFIG_SOUND is
> m. make config gets it right. My .config is attached.
>
> Fix for Menuconfig is attached. I am not deep enough into make
> xconfig to fix that as well, so this will need to be done before
> 2.2.15 by somebody else.
>
> 2) after changing CONFIG_VIDEO_MSP3400 from y to m required rebuilding
> the entire kernel. This sucks. I don't think this is actually
> needed.

IMHO, much better solution is to use Menuconfig/Xconfig directly from the
newest 2.3. They are fully backward-compatible and have much more bugs
fixed (including eg. multiple dependencies for dep_tristate()) ...

Andrzej

> --- linux-2.2.15pre16/scripts/Menuconfig.orig Thu Mar 30 12:28:26 2000
> +++ linux-2.2.15pre16/scripts/Menuconfig Thu Mar 30 12:48:11 2000
> @@ -68,6 +68,10 @@
> #
> # 24 January 1999, Michael Elizabeth Chastain, <mec@shout.net>
> # - Improve the exit message (Jeff Ronne).
> +#
> +# 30 March 2000, Matthias Andree <matthias.andree@gmx.de>
> +# - allow dep_tristate to accept more than one dependency as
> +# Configure (make config) does
>
>
> #
> @@ -188,13 +192,31 @@
> # else in the kernel.
> #
> function dep_tristate () {
> - if [ "$3" = "y" ]; then
> - tristate "$1" "$2"
> - else if [ "$3" = "m" ]; then
> - mod_bool "$1" "$2"
> - else
> - define_bool "$2" n
> - fi; fi
> + local label=$1
> + local name=$2
> + shift 2
> + local need_module=0
> +
> + while [ $# -gt 0 ]; do
> + case "$1" in
> + n)
> + define_bool "$name" "n"
> + return
> + ;;
> + m)
> + need_module=1
> + ;;
> + esac
> + shift
> + done
> +
> + if [ need_module -eq 0 ]; then
> + tristate "$label" "$name"
> + else
> + mod_bool "$label" "$name"
> + fi
> + # note that the while loop above already defined the variable
> + # to "n" if the dependencies are not met.
> }
>
> #
> @@ -992,9 +1014,16 @@
> }
>
> function dep_tristate () {
> - set_x_info "$2" "n"
> - if [ "$3" = "m" -a "$x" = "y" ]; then x="m"; fi
> - define_bool "$2" "$x"
> + local opt=$2
> + shift 2
> + set_x_info "$opt" "n"
> + if [ "$x" = "y" ] ; then
> + while [ $# -gt 0 ]; do
> + if [ "$1" = "m" ]; then x="m" ; fi
> + shift
> + done
> + fi
> + define_bool "$opt" "$x"
> }
>
> function int () {

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Mar 31 2000 - 21:00:27 EST