Skip to contentSkip to conversation

make xconfig

Linux-ia64 Jason Baron 3 participants 4 messages Aug 28, 2002

lore
Share & tools
lore
#0 lore raw

If I enable xconfig, I get these errors from the linux-2.4.19-ia64-020821.diff:

ERROR - Attempting to write value for unconfigured variable (CONFIG_BLK_DEV_LOOP).
ERROR - Attempting to write value for unconfigured variable (CONFIG_BLK_DEV_NBD).
ERROR - Attempting to write value for unconfigured variable (CONFIG_BLK_DEV_RAM).

The consequence is that these parameters do not get written to the appropriate files. Also, there are two top level "Block devices" menues.

This issue has been discussed a bit and I agree that the right solution is probably to fix the way that xconfig works. Short of this, we could choose not to source drivers/block/Config.in, and instead include the drivers/block/Config.in parameters in arch/ia64/config.in, as in the attached patch. This bloats the file a bit, but solves the issue in an arch independent way.

-Jason Baron

__________________________________________________
Do You Yahoo!?
Yahoo! Finance - Get real-time stock quotes
http://finance.yahoo.com

ia64/config.in renamed from ia64/config.in.bak +59 -13
@@ -136,7 +136,64 @@
 if [ "$CONFIG_IA64_HP_SIM" = "n" ]; then
   source drivers/mtd/Config.in
   source drivers/pnp/Config.in
-  source drivers/block/Config.in
+fi
+
+#
+# Block device driver configuration
+#
+mainmenu_option next_comment
+comment 'Block devices'
+
+if [ "$CONFIG_IA64_HP_SIM" = "n" ]; then
+  tristate 'Normal PC floppy disk support' CONFIG_BLK_DEV_FD
+  if [ "$CONFIG_AMIGA" = "y" ]; then
+    tristate 'Amiga floppy support' CONFIG_AMIGA_FLOPPY
+  fi
+  if [ "$CONFIG_ATARI" = "y" ]; then
+     tristate 'Atari floppy support' CONFIG_ATARI_FLOPPY
+  fi
+  if [ "$CONFIG_MAC" = "y" ]; then
+     dep_bool 'Macintosh IIfx/Quadra 900/Quadra 950 floppy support (EXPERIMENTAL)' CONFIG_BLK_DEV_SWIM_IOP $CONFIG_EXPERIMENTAL
+  fi
+  if [ "$CONFIG_MCA" = "y" ]; then
+     tristate 'PS/2 ESDI hard disk support' CONFIG_BLK_DEV_PS2
+  fi
+  if [ "$CONFIG_ZORRO" = "y" ]; then
+     tristate 'Amiga Zorro II ramdisk support' CONFIG_AMIGA_Z2RAM
+  fi
+  if [ "$CONFIG_ATARI" = "y" ]; then
+     tristate 'Atari ACSI support' CONFIG_ATARI_ACSI
+     if [ "$CONFIG_ATARI_ACSI" != "n" ]; then
+        comment 'Some devices (e.g. CD jukebox) support multiple LUNs'
+        bool '  Probe all LUNs on each ACSI device' CONFIG_ACSI_MULTI_LUN
+        tristate '  Atari SLM laser printer support' CONFIG_ATARI_SLM
+     fi
+  fi
+  dep_tristate 'XT hard disk support' CONFIG_BLK_DEV_XD $CONFIG_ISA
+  dep_tristate 'Parallel port IDE device support' CONFIG_PARIDE $CONFIG_PARPORT
+  if [ "$CONFIG_PARIDE" = "y" -o "$CONFIG_PARIDE" = "m" ]; then
+     source drivers/block/paride/Config.in
+  fi
+  dep_tristate 'Compaq SMART2 support' CONFIG_BLK_CPQ_DA $CONFIG_PCI
+  dep_tristate 'Compaq Smart Array 5xxx support' CONFIG_BLK_CPQ_CISS_DA $CONFIG_PCI 
+  dep_mbool '       SCSI tape drive support for Smart Array 5xxx' CONFIG_CISS_SCSI_TAPE $CONFIG_BLK_CPQ_CISS_DA $CONFIG_SCSI
+  dep_tristate 'Mylex DAC960/DAC1100 PCI RAID Controller support' CONFIG_BLK_DEV_DAC960 $CONFIG_PCI
+  dep_tristate 'Micro Memory MM5415 Battery Backed RAM support' CONFIG_BLK_DEV_UMEM $CONFIG_PCI $CONFIG_EXPERIMENTAL
+fi # !HP_SIM
+
+  tristate 'Loopback device support' CONFIG_BLK_DEV_LOOP
+  dep_tristate 'Network block device support' CONFIG_BLK_DEV_NBD $CONFIG_NET
+
+  tristate 'RAM disk support' CONFIG_BLK_DEV_RAM
+  if [ "$CONFIG_BLK_DEV_RAM" = "y" -o "$CONFIG_BLK_DEV_RAM" = "m" ]; then
+     int '  Default RAM disk size' CONFIG_BLK_DEV_RAM_SIZE 4096
+  fi
+  dep_bool '  Initial RAM disk (initrd) support' CONFIG_BLK_DEV_INITRD $CONFIG_BLK_DEV_RAM
+
+endmenu
+
+
+if [ "$CONFIG_IA64_HP_SIM" = "n" ]; then
   source drivers/ieee1394/Config.in
   source drivers/message/i2o/Config.in
   source drivers/md/Config.in
@@ -154,18 +211,7 @@
     define_bool CONFIG_BLK_DEV_HD n
   fi
   endmenu
-else # HP_SIM
-  mainmenu_option next_comment
-  comment 'Block devices'
-  tristate 'Loopback device support' CONFIG_BLK_DEV_LOOP
-  dep_tristate 'Network block device support' CONFIG_BLK_DEV_NBD $CONFIG_NET
-
-  tristate 'RAM disk support' CONFIG_BLK_DEV_RAM
-  if [ "$CONFIG_BLK_DEV_RAM" = "y" -o "$CONFIG_BLK_DEV_RAM" = "m" ]; then
-    int '  Default RAM disk size' CONFIG_BLK_DEV_RAM_SIZE 4096
-  fi
-  endmenu
-fi # HP_SIM
+fi # !HP_SIM
 
 mainmenu_option next_comment
 comment 'SCSI support'
#1 lore raw
Quoted 8 lines

This issue has been discussed a bit and I agree that the right solution is probably to fix the way that xconfig works. Short of this, we could choose not to source drivers/block/Config.in, and instead include the drivers/block/Config.in parameters in arch/ia64/config.in, as in the attached patch. This bloats the file a bit, but solves the issue in an arch independent way.

Duplicating the contents of drivers/block/Config.in doesn't feel like an improvement. Doesn't it just add more opportunity for me to make merge mistakes? I don't need any more of those :-)

Bjorn

#2 lore raw
In reply to Jason Baron
Quoted 9 lines · --- Bjorn Helgaas
Quoted 1 line

This issue has been discussed a bit and I agree

that

Quoted 2 lines

the right solution is probably to fix the way that xconfig works. Short of this, we could choose not

to

Quoted 1 line

source drivers/block/Config.in, and instead

include

Quoted 2 lines

the drivers/block/Config.in parameters in
arch/ia64/config.in, as in the attached patch.

Quoted 8 lines

This

Quoted 1 line

bloats the file a bit, but solves the issue in an

arch

Quoted 1 line

independent way.

Duplicating the contents of drivers/block/Config.in doesn't
feel like an improvement.

They are already duplicated.

-Jason

__________________________________________________
Do You Yahoo!?
Yahoo! Finance - Get real-time stock quotes
http://finance.yahoo.com

#3 lore raw
In reply to Jason Baron
Quoted 10 lines · Jason Baron

If I enable xconfig, I get these errors from the linux-2.4.19-ia64-020821.diff:

ERROR - Attempting to write value for unconfigured variable (CONFIG_BLK_DEV_LOOP).
ERROR - Attempting to write value for unconfigured variable (CONFIG_BLK_DEV_NBD).
ERROR - Attempting to write value for unconfigured variable (CONFIG_BLK_DEV_RAM).

Quoted 7 lines

The consequence is that these parameters do not get written to the appropriate files. Also, there are two top level "Block devices" menues.

This issue has been discussed a bit and I agree that the right solution is probably to fix the way that xconfig works.

It is an undocumented restriction of xconfig that an option should only be set in one menu. xconfig can detect sets of options within a menu, it sometimes detects sets of options across menus but do not rely on that. Nobody who has looked at the xconfig code is willing to remove this restriction (they usually turn white and and run away).

Unfortunately some architectures break this rule and break xconfig.

Quoted 6 lines

Short of this, we could choose not to
source drivers/block/Config.in, and instead include the drivers/block/Config.in parameters in arch/ia64/config.in, as in the attached patch. This bloats the file a bit, but solves the issue in an arch independent way.

Given the current menuconfig and xconfig code, the only workable fix is to follow the config rules. That means any variable should only be set in one menu. Do not duplicate variables in arch/ia64/config.in. Instead add conditions around the variables in drivers/block/Config.in and other Config.in files.

I sent DM a patch to do just this, but he rejected it. Instead xconfig was disabled. Disabling xconfig is not the solution, multiple definitions of a variable in multiple menus will silently break menuconfig as well (think out of order menu selection).