Hi Linus,
Two patches for 2.4.0test9 configuration follow.
1. I found two bugs in configuration utilities:
- Menuconfig doesn't ignore commented out "endmenu" commands (while
commented out "mainmenu_option" it does). I don't think it is
intentional... Especially as it breaks s390 architecture configuration
(commented "endmenu" -> missing uncommented one -> xconfig has problems;
this is fixead in the second patch, but requires this one)
- Both Menuconfig and xconfig has problem with shortened default values for
choice lists, eg.:
choice 'Processor family' \
[...]
PPro/6x86MX CONFIG_M686" PPro
^^^^^^^^^^^ ^^^^
In effect, if one hits this value usage case it not properly recognized.
And no choice variable is set (all are unset) unless he entered the choice
menu and rechoose. In fact, the default value is rarely used.
2. Fixed some obvious bugs in configuration scripts:
- fixed CONFIG_PCI setting in ppc/arm by introducing
separate variables for "bool" statements (help entries
cloned; somebody may want to fix them), [arch/ppc,arch/arm]
- removed bogus initial values for "bool", [arch/ppc,arch/sparc64]
- missing "endmenu" (effect of Menuconfig bug), [drivers/s390]
- bool/int outside menu (in the main menu), [arch/s390]
- "include" instead of "source" (previously sent fix for
sparc/sparc64 not included). [drivers/s390]
Regards
Andrzej
******************** PATCH 1 *****************************************
diff -uNr linux-test9/scripts/Menuconfig linux/scripts/Menuconfig
--- linux-test9/scripts/Menuconfig Mon Aug 21 17:57:36 2000
+++ linux/scripts/Menuconfig Thu Oct 5 19:05:38 2000
@@ -634,6 +634,7 @@
title="$1"
choices="$2"
current="$3"
+ chosen=
#
# Scan current value of choices and set radiolist switches.
@@ -644,7 +645,12 @@
while [ -n "$2" ]
do
case "$1" in
- "$current") list="$list $2 $1 ON " ;;
+ "$current"*) if [ -z "$chosen" ]; then
+ list="$list $2 $1 ON "
+ chosen=1
+ else
+ list="$list $2 $1 OFF "
+ fi ;;
*) list="$list $2 $1 OFF " ;;
esac
@@ -722,13 +728,13 @@
parser(ifile, newmenu)
}
+ else if ($0 ~ /^#|\$MAKE|mainmenu_name/) {
+ printf("") >>menu
+ }
else if ($1 ~ "endmenu") {
printf("}\n") >>menu
return
}
- else if ($0 ~ /^#|\$MAKE|mainmenu_name/) {
- printf("") >>menu
- }
else if ($1 == "source") {
parser($2,menu)
}
@@ -751,12 +757,12 @@
function parser(ifile,menu) {
while (getline <ifile) {
- if ($1 ~ /mainmenu_option|endmenu/) {
- printf("") >>menu
- }
- else if ($0 ~ /^#|$MAKE|mainmenu_name/) {
+ if ($0 ~ /^#|$MAKE|mainmenu_name/) {
printf("") >>menu
}
+ else if ($1 ~ /mainmenu_option|endmenu/) {
+ printf("") >>menu
+ }
else if ($1 == "source") {
parser($2,menu)
}
@@ -1192,6 +1198,7 @@
choices="$2"
default="$3"
current=
+ chosen=
set -- $choices
while [ -n "$2" ]
@@ -1215,12 +1222,15 @@
set -- $choices
while [ -n "$2" ]
do
- if eval [ "$1" = "$current" ]
- then
- define_bool "$2" "y"
- else
- define_bool "$2" "n"
- fi
+ case "$1" in
+ "$current"*) if [ -z "$chosen" ]; then
+ define_bool "$2" "y"
+ chosen=1
+ else
+ define_bool "$2" "n"
+ fi ;;
+ *) define_bool "$2" "n" ;;
+ esac
shift ; shift
done
}
diff -uNr linux-test9/scripts/tkparse.c linux/scripts/tkparse.c
--- linux-test9/scripts/tkparse.c Mon Jun 19 22:45:52 2000
+++ linux/scripts/tkparse.c Thu Oct 5 13:52:51 2000
@@ -326,6 +326,7 @@
static const char * tokenize_choices( struct kconfig * cfg_choose,
const char * pnt )
{
+ int default_checked = 0;
for ( ; ; )
{
struct kconfig * cfg;
@@ -349,12 +350,20 @@
cfg->token = token_choice_item;
cfg->cfg_parent = cfg_choose;
pnt = get_string( pnt, &cfg->label );
+ if ( ! default_checked &&
+ ! strncmp( cfg->label, cfg_choose->value, strlen( cfg_choose->value ) ) )
+ {
+ default_checked = 1;
+ free( cfg_choose->value );
+ cfg_choose->value = cfg->label;
+ }
while ( *pnt == ' ' || *pnt == '\t' )
pnt++;
pnt = get_string( pnt, &buffer );
cfg->nameindex = get_varnum( buffer );
}
-
+ if ( ! default_checked )
+ syntax_error( "bad 'choice' default value" );
return pnt;
}
@@ -515,7 +524,6 @@
pnt = get_qstring ( pnt, &cfg->label );
pnt = get_qstring ( pnt, &choice_list );
pnt = get_string ( pnt, &cfg->value );
-
cfg->nameindex = -(choose_number++);
tokenize_choices( cfg, choice_list );
free( choice_list );
**********************************************************************
******************** PATCH 2 *****************************************
diff -uNr linux-test9/Documentation/Configure.help linux/Documentation/Configure.help
--- linux-test9/Documentation/Configure.help Sat Sep 23 02:11:37 2000
+++ linux/Documentation/Configure.help Thu Oct 5 14:21:55 2000
@@ -2376,6 +2376,30 @@
information about which PCI hardware does work under Linux and which
doesn't.
+PCI support
+CONFIG_PCI_INTEGRATOR
+ Find out whether you have a PCI motherboard. PCI is the name of a
+ bus system, i.e. the way the CPU talks to the other stuff inside
+ your box. Other bus systems are ISA, EISA, Microchannel (MCA) or
+ VESA. If you have PCI, say Y, otherwise N.
+
+ The PCI-HOWTO, available from
+ http://www.linuxdoc.org/docs.html#howto , contains valuable
+ information about which PCI hardware does work under Linux and which
+ doesn't.
+
+QSpan PCI
+CONFIG_PCI_QSPAN
+ Find out whether you have a PCI motherboard. PCI is the name of a
+ bus system, i.e. the way the CPU talks to the other stuff inside
+ your box. Other bus systems are ISA, EISA, Microchannel (MCA) or
+ VESA. If you have PCI, say Y, otherwise N.
+
+ The PCI-HOWTO, available from
+ http://www.linuxdoc.org/docs.html#howto , contains valuable
+ information about which PCI hardware does work under Linux and which
+ doesn't.
+
PCI access mode
CONFIG_PCI_GOBIOS
On PCI systems, the BIOS can be used to detect the PCI devices and
diff -uNr linux-test9/arch/arm/config.in linux/arch/arm/config.in
--- linux-test9/arch/arm/config.in Tue Sep 19 19:57:30 2000
+++ linux/arch/arm/config.in Thu Oct 5 12:25:49 2000
@@ -213,7 +213,8 @@
define_bool CONFIG_PCI y
else
if [ "$CONFIG_ARCH_INTEGRATOR" = "y" ]; then
- bool 'PCI support' CONFIG_PCI
+ bool 'PCI support' CONFIG_PCI_INTEGRATOR
+ define_bool CONFIG_PCI $CONFIG_PCI_INTEGRATOR
else
define_bool CONFIG_PCI n
fi
diff -uNr linux-test9/arch/ppc/config.in linux/arch/ppc/config.in
--- linux-test9/arch/ppc/config.in Tue Sep 19 19:57:30 2000
+++ linux/arch/ppc/config.in Thu Oct 5 12:25:49 2000
@@ -104,11 +104,11 @@
"$CONFIG_8260" = "y" ]; then
define_bool CONFIG_PCI n
else
- if [ "$CONFIG_6xx" = "y" -o "$CONFIG_PPC64BRIDGE" = "y" ]; then
- define_bool CONFIG_PCI y
+ if [ "$CONFIG_8xx" = "y" ]; then
+ bool 'QSpan PCI' CONFIG_PCI_QSPAN
+ define_bool CONFIG_PCI $CONFIG_PCI_QSPAN
else
- # CONFIG_8xx
- bool 'QSpan PCI' CONFIG_PCI
+ define_bool CONFIG_PCI y
fi
fi
@@ -151,7 +151,7 @@
fi
if [ "$CONFIG_PREP" = "y" -o "$CONFIG_ALL_PPC" = "y" ]; then
- bool 'PReP bootloader kernel arguments' CONFIG_CMDLINE_BOOL y
+ bool 'PReP bootloader kernel arguments' CONFIG_CMDLINE_BOOL
if [ "$CONFIG_CMDLINE_BOOL" = "y" ] ; then
string 'Initial kernel command string' CONFIG_CMDLINE "console=ttyS0,9600 console=tty0 root=/dev/sda2"
fi
diff -uNr linux-test9/arch/s390/config.in linux/arch/s390/config.in
--- linux-test9/arch/s390/config.in Tue Aug 22 20:29:02 2000
+++ linux/arch/s390/config.in Thu Oct 5 12:42:22 2000
@@ -46,10 +46,15 @@
endmenu
source drivers/s390/Config.in
+
+mainmenu_option next_comment
+comment 'Character devices'
bool 'Unix98 PTY support' CONFIG_UNIX98_PTYS
if [ "$CONFIG_UNIX98_PTYS" = "y" ]; then
int 'Maximum number of Unix98 PTYs in use (0-2048)' CONFIG_UNIX98_PTY_COUNT 256
fi
+
+endmenu
if [ "$CONFIG_NET" = "y" ]; then
source net/Config.in
diff -uNr linux-test9/arch/sparc64/config.in linux/arch/sparc64/config.in
--- linux-test9/arch/sparc64/config.in Tue Sep 19 19:59:52 2000
+++ linux/arch/sparc64/config.in Thu Oct 5 12:25:49 2000
@@ -89,8 +89,8 @@
tristate 'Loopback device support' CONFIG_BLK_DEV_LOOP
dep_tristate 'Network block device support' CONFIG_BLK_DEV_NBD $CONFIG_NET
-#tristate 'Logical volume manager (LVM) support' CONFIG_BLK_DEV_LVM N
+#tristate 'Logical volume manager (LVM) support' CONFIG_BLK_DEV_LVM
#if [ "$CONFIG_BLK_DEV_LVM" != "n" ]; then
-# bool ' LVM information in proc filesystem' CONFIG_LVM_PROC_FS Y
+# bool ' LVM information in proc filesystem' CONFIG_LVM_PROC_FS
#fi
@@ -166,7 +166,7 @@
if [ "$CONFIG_PCI" != "n" ]; then
dep_tristate 'Adaptec AIC7xxx support' CONFIG_SCSI_AIC7XXX $CONFIG_SCSI
if [ "$CONFIG_SCSI_AIC7XXX" != "n" ]; then
- bool ' Enable tagged command queueing (TCQ) by default' CONFIG_AIC7XXX_TAGGED_QUEUEING Y
+ bool ' Enable tagged command queueing (TCQ) by default' CONFIG_AIC7XXX_TAGGED_QUEUEING
int ' Maximum number of TCQ commands per device' CONFIG_AIC7XXX_CMDS_PER_DEVICE 8
bool ' Collect statistics to report in /proc' CONFIG_AIC7XXX_PROC_STATS N
int ' Delay in seconds after SCSI bus reset' CONFIG_AIC7XXX_RESET_DELAY 5
diff -uNr linux-test9/drivers/s390/Config.in linux/drivers/s390/Config.in
--- linux-test9/drivers/s390/Config.in Tue Sep 19 19:58:38 2000
+++ linux/drivers/s390/Config.in Thu Oct 5 13:10:53 2000
@@ -5,7 +5,7 @@
if [ "$CONFIG_NET" = "y" ]; then
tristate 'Network block device support' CONFIG_BLK_DEV_NBD
fi
-include drivers/md/Config.in
+source drivers/md/Config.in
tristate 'RAM disk support' CONFIG_BLK_DEV_RAM
if [ "$CONFIG_BLK_DEV_RAM" = "y" ]; then
bool ' Initial RAM disk (initrd) support' CONFIG_BLK_DEV_INITRD
@@ -24,6 +24,8 @@
bool ' Support for DIAG access to CMS reserved Disks' CONFIG_DASD_MDSK
fi
+endmenu
+
#menu_option next_comment
#endmenu
@@ -33,7 +35,7 @@
bool 'Channel Device Configuration (Temporary Option)' CONFIG_CHANDEV
bool 'Network device support' CONFIG_NETDEVICES
if [ "$CONFIG_NETDEVICES" = "y" ]; then
- menu_option next_comment
+ mainmenu_option next_comment
comment 'S390 Network devices'
bool 'CTC device support' CONFIG_CTC
bool 'IUCV device support (VM only)' CONFIG_IUCV
@@ -41,6 +43,7 @@
bool 'Ethernet (10 or 100Mbit)' CONFIG_NET_ETHERNET
bool 'Token Ring driver support' CONFIG_TR
bool 'FDDI driver support' CONFIG_FDDI
+ endmenu
fi
endmenu
fi
**********************************************************************
-- ======================================================================= Andrzej M. Krzysztofowicz ankry@mif.pg.gda.pl phone (48)(58) 347 14 61 Faculty of Applied Phys. & Math., Technical University of Gdansk - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Sat Oct 07 2000 - 21:00:17 EST