Messages in this thread Patch in this message | | | From | Keith Owens <> | Subject | Re: [KBUILD] 2.x.x mkdep incorrectly handles serial.c (and probably others) | Date | Sat, 12 Jun 1999 19:19:47 +1000 |
| |
On Fri, 11 Jun 1999 23:02:50 -0500, Michael Elizabeth Chastain <mec@shout.net> wrote: >kaos wrote >> Changing CONFIG_SERIAL_SHARE_IRQ with no other changes does *not* >> recompile serial.c but it should. >Would you like to fool around with mkdep.c? Right around here: >... try ripping out the call to define_config.
--- linux-2.2.9/linux/scripts/mkdep.c Fri, 05 Feb 1999 09:47:48 +1100 keith (linux-2.2/4_mkdep.c 1.1 644) +++ linux/linux/scripts/mkdep.c Sat, 12 Jun 1999 17:07:11 +1000 keith (linux-2.2/4_mkdep.c 1.1 644) @@ -379,7 +379,6 @@ GETNEXT if (isalnum(current) || current == '_') goto pound_define_undef_CONFIG_word; - define_config(1, map_dot, next - map_dot - 1); + /* do not define_config() here, it can hide real config changes */ goto __start; /* \<CONFIG_(\w*) */ Works for me. No extra files, 29 unique extra wildcard lines scattered over 12 files. The ones prefixed by '*' are real ones, they appear in i386 .config. The others are pseudo, internal config options, to avoid future confusion they should all be changed to a different name or added to .config.
CONFIG_0 CONFIG_1 CONFIG_AEDSP16 CONFIG_AWE32_SYNTH CONFIG_CMD CONFIG_DIO_CONSTANTS * CONFIG_HUB6 CONFIG_IHPIB CONFIG_IPV6_SUBTREES CONFIG_IP_MASQ_LOOSE_DEFAULT CONFIG_IP_PIMSM CONFIG_IP_PNP_DYNAMIC CONFIG_NFS_SNAPSHOT CONFIG_PACKET_MULTICAST * CONFIG_PARPORT CONFIG_RADIO_TYPHOON_PROC_FS CONFIG_REG_0 CONFIG_REG_1 CONFIG_RT6_POLICY CONFIG_SCSI_OMIT_FLASHPOINT * CONFIG_SERIAL_DETECT_IRQ * CONFIG_SERIAL_MANY_PORTS * CONFIG_SERIAL_MULTIPORT CONFIG_SERIAL_NOPAUSE_IO * CONFIG_SERIAL_SHARE_IRQ CONFIG_SOCK_PACKET CONFIG_UDP_DELAY_CSUM CONFIG_WDT501_FAN CONFIG_WDT_500
The ones prefixed by '*' worry me, these options are being forcibly set inside .c files. It implies that there is a mismatch between the .config dependencies and the code dependencies. While the result may be valid, the logic should probably be in .config instead of being buried in the code. For example, CONFIG_HUB6 forcibly sets CONFIG_SERIAL_MANY_PORTS and CONFIG_SERIAL_SHARE_IRQ but only within serial.c. Any other code using .config can see a different combination of these options.
As a general principle, I prefer "do it in one place and get it right once". In this case, setting HUB6 in make ...config should automatically set MANY_PORTS and SHARE_IRQ and not let the user override them. Is that possible with make ...config at the moment?
I scanned for all unusual define/undef of those options, i386 only. Some of these are obviously obsolete, they only have undef or ifdef.
--- CONFIG_0 drivers/net/at1700.c:134:#define CONFIG_0 6 /* Misc. configuration settings. */ drivers/net/fmv18x.c:92:#define CONFIG_0 6 /* Misc. configuration settings. */ --- CONFIG_1 drivers/net/at1700.c:135:#define CONFIG_1 7 drivers/net/fmv18x.c:93:#define CONFIG_1 7 --- CONFIG_AEDSP16 drivers/sound/lowlevel/aedsp16.c:38:# undef CONFIG_AEDSP16 drivers/sound/lowlevel/aedsp16.c:41:# define CONFIG_AEDSP16 1 --- CONFIG_AWE32_SYNTH drivers/sound/lowlevel/awe_compat-fbsd.h:56:#define CONFIG_AWE32_SYNTH drivers/sound/lowlevel/awe_compat-fbsd.h:67:# define CONFIG_AWE32_SYNTH drivers/sound/lowlevel/awe_compat-linux.h:84:#define CONFIG_AWE32_SYNTH drivers/sound/lowlevel/awe_compat.h:84:#define CONFIG_AWE32_SYNTH --- CONFIG_CMD drivers/net/3c507.c:184:#define CONFIG_CMD 0x0018 arch/i386/kernel/bios32.c:192:#define CONFIG_CMD(bus, device_fn, where) (0x80000000 | (bus << 16) | (device_fn << 8) | (where & ~3)) arch/i386/kernel/bios32.c:242:#undef CONFIG_CMD --- CONFIG_DIO_CONSTANTS drivers/dio/dio.c:36:#define CONFIG_DIO_CONSTANTS --- CONFIG_HUB6 drivers/char/serial.c:76:#define CONFIG_HUB6 --- CONFIG_IHPIB include/linux/dio.h:50:#define CONFIG_IHPIB /* hack hack : not yet a proper config option */ --- CONFIG_IPV6_SUBTREES net/ipv6/ip6_fib.c:36:#undef CONFIG_IPV6_SUBTREES --- CONFIG_IP_MASQ_LOOSE_DEFAULT net/ipv4/ip_masq.c:408:#define CONFIG_IP_MASQ_LOOSE_DEFAULT 1 --- CONFIG_IP_PIMSM net/ipv4/ipmr.c:64:#define CONFIG_IP_PIMSM 1 --- CONFIG_IP_PNP_DYNAMIC net/ipv4/ipconfig.c:74:#define CONFIG_IP_PNP_DYNAMIC --- CONFIG_NFS_SNAPSHOT fs/nfs/inode.c:35:#define CONFIG_NFS_SNAPSHOT 1 --- CONFIG_PACKET_MULTICAST net/packet/af_packet.c:110:#define CONFIG_PACKET_MULTICAST 1 --- CONFIG_PARPORT drivers/block/paride/paride.c:30:#define CONFIG_PARPORT --- CONFIG_RADIO_TYPHOON_PROC_FS drivers/char/radio-typhoon.c:52:#undef CONFIG_RADIO_TYPHOON_PROC_FS --- CONFIG_REG_0 drivers/net/eth16i.c:265:#define CONFIG_REG_0 6 --- CONFIG_REG_1 drivers/net/eth16i.c:284:#define CONFIG_REG_1 7 --- CONFIG_RT6_POLICY net/ipv6/route.c:49:#undef CONFIG_RT6_POLICY --- CONFIG_SCSI_OMIT_FLASHPOINT drivers/scsi/BusLogic.h:99:#undef CONFIG_SCSI_OMIT_FLASHPOINT drivers/scsi/BusLogic.h:100:#define CONFIG_SCSI_OMIT_FLASHPOINT drivers/scsi/BusLogic.h:104:#undef CONFIG_SCSI_OMIT_FLASHPOINT drivers/scsi/BusLogic.h:105:#define CONFIG_SCSI_OMIT_FLASHPOINT --- CONFIG_SERIAL_DETECT_IRQ drivers/char/serial.c:74:#define CONFIG_SERIAL_DETECT_IRQ --- CONFIG_SERIAL_MANY_PORTS drivers/char/serial.c:72:#define CONFIG_SERIAL_MANY_PORTS drivers/char/serial.c:89:#define CONFIG_SERIAL_MANY_PORTS --- CONFIG_SERIAL_MULTIPORT drivers/char/serial.c:75:#define CONFIG_SERIAL_MULTIPORT --- CONFIG_SERIAL_NOPAUSE_IO drivers/char/serial.c:66:#define CONFIG_SERIAL_NOPAUSE_IO drivers/sbus/char/su.c:15:#define CONFIG_SERIAL_NOPAUSE_IO /* Unused on sparc */ --- CONFIG_SERIAL_SHARE_IRQ drivers/char/serial.c:73:#define CONFIG_SERIAL_SHARE_IRQ drivers/char/serial.c:83:#define CONFIG_SERIAL_SHARE_IRQ drivers/char/serial.c:92:#define CONFIG_SERIAL_SHARE_IRQ --- CONFIG_SOCK_PACKET net/packet/af_packet.c:84:#define CONFIG_SOCK_PACKET 1 --- CONFIG_UDP_DELAY_CSUM net/ipv4/udp.c:848:#undef CONFIG_UDP_DELAY_CSUM net/ipv6/udp.c:342:#undef CONFIG_UDP_DELAY_CSUM --- CONFIG_WDT501_FAN drivers/char/wd501p.h:49:#ifdef CONFIG_WDT501_FAN /* Full board, Fan has no tachometer */ --- CONFIG_WDT_500 drivers/char/wd501p.h:61:#define CONFIG_WDT_500
- 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/
| |