lkml.org 
[lkml]   [1999]   [Jun]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    SubjectRe: [KBUILD] 2.x.x mkdep incorrectly handles serial.c (and probably others)
    Date
    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/

    \
     
     \ /
      Last update: 2005-03-22 13:52    [W:0.028 / U:0.652 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site