cddrive problem in Toshiba Laptop with 2.4.0-test11 kernel

From: archan (devrootp@bigfoot.com)
Date: Thu Jan 18 2001 - 08:24:24 EST


sorry for reposting this message.... If some one has answered it, please
send me again...
I have lost some of the mails from the list

archan

-------------------------------------------------------------------------
I have compiled 2.4.0-test11 kernel for my Toshiba Laptop. Everything
works fine except the CDdrive. When I am trying to mount a iso-cd, it is
giving the following error
        _isofs_bmap: block >= EOF (1633681408, 2048)

I am attaching the Makefile for the compiled kernel and dmesg output in
this mail.

any help?

Archan

Linux version 2.4.0-test11 (pagladashu@pagladashu.ThinkingSoft.com) (gcc version 2.95.3 19991030 (prerelease)) #1 SMP Thu Jan 18 11:31:01 IST 2001
BIOS-provided physical RAM map:
 BIOS-e820: 000000000009f800 @ 0000000000000000 (usable)
 BIOS-e820: 0000000000000800 @ 000000000009f800 (reserved)
 BIOS-e820: 0000000000012400 @ 00000000000edc00 (reserved)
 BIOS-e820: 0000000003ef0000 @ 0000000000100000 (usable)
 BIOS-e820: 000000000000fc00 @ 0000000003ff0000 (ACPI data)
 BIOS-e820: 0000000000000400 @ 0000000003fffc00 (ACPI NVS)
 BIOS-e820: 0000000000080000 @ 00000000fff80000 (reserved)
Scan SMP from c0000000 for 1024 bytes.
Scan SMP from c009fc00 for 1024 bytes.
Scan SMP from c00f0000 for 65536 bytes.
Scan SMP from c009f800 for 4096 bytes.
On node 0 totalpages: 16368
zone(0): 4096 pages.
zone(1): 12272 pages.
zone(2): 0 pages.
mapped APIC to ffffe000 (01111000)
Kernel command line: BOOT_IMAGE=new ro root=301
Initializing CPU#0
Detected 451.027 MHz processor.
Console: colour dummy device 80x25
Calibrating delay loop... 897.84 BogoMIPS
Memory: 61644k/65472k available (1679k kernel code, 3440k reserved, 110k data, 220k init, 0k highmem)
Dentry-cache hash table entries: 8192 (order: 4, 65536 bytes)
Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 4096 (order: 3, 32768 bytes)
CPU: Before vendor init, caps: 008021bf c08029bf 00000000, vendor = 2
CPU: L1 I Cache: 32K (32 bytes/line), D cache 32K (32 bytes/line)
CPU: L2 Cache: 128K (32 bytes/line)
CPU: After vendor init, caps: 008021bf c08029bf 00000000 00000002
CPU: After generic, caps: 008021bf c08029bf 00000000 00000002
CPU: Common caps: 008021bf c08029bf 00000000 00000002
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
CPU: Before vendor init, caps: 008021bf c08029bf 00000000, vendor = 2
CPU: L1 I Cache: 32K (32 bytes/line), D cache 32K (32 bytes/line)
CPU: L2 Cache: 128K (32 bytes/line)
CPU: After vendor init, caps: 008021bf c08029bf 00000000 00000002
CPU: After generic, caps: 008021bf c08029bf 00000000 00000002
CPU: Common caps: 008021bf c08029bf 00000000 00000002
CPU0: AMD-K6(tm)-III Processor stepping 04
per-CPU timeslice cutoff: 365.35 usecs.
SMP motherboard not detected. Using dummy APIC emulation.
Setting commenced=1, go go go
PCI: PCI BIOS revision 2.10 entry at 0xfd8be, last bus=1
PCI: Using configuration type 1
PCI: Probing PCI hardware
Unknown bridge resource 2: assuming transparent
PCI: Using IRQ router ALI [10b9/1533] at 00:07.0
PCI: Found IRQ 10 for device 00:04.0
PCI: The same IRQ used for device 01:00.0
PCI: Found IRQ 10 for device 00:04.1
isapnp: Scanning for Pnp cards...
isapnp: No Plug & Play device found
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd v1.8
vesafb: framebuffer at 0xfd000000, mapped to 0xc4800000, size 3904k
vesafb: mode is 800x600x16, linelength=1600, pages=3
vesafb: protected mode interface info at c000:4d50
vesafb: scrolling: redraw
vesafb: directcolor: size=0:5:6:5, shift=0:11:5:0
Console: switching to colour frame buffer device 100x37
fb0: VESA VGA frame buffer device
pty: 256 Unix98 ptys configured
Toshiba System Managment Mode driver v1.7 22/6/2000
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ALI15X3: IDE controller on PCI bus 00 dev 78
PCI: No IRQ known for interrupt pin A of device 00:0f.0. Please try using pci=biosirq.
ALI15X3: chipset revision 194
ALI15X3: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0xfcf0-0xfcf7, BIOS settings: hda:DMA, hdb:pio
    ide1: BM-DMA at 0xfcf8-0xfcff, BIOS settings: hdc:DMA, hdd:pio
hda: FUJITSU MHK2060AT, ATA DISK drive
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
hdc: CD-224E, ATAPI CDROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: 11733120 sectors (6007 MB) w/512KiB Cache, CHS=730/255/63, UDMA(66)
hdc: ATAPI 24X CD-ROM drive, 128kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.11
Partition check:
 hda: hda1 hda2 hda3 hda4 < hda5 hda6 >
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
Serial driver version 5.02 (2000-08-09) with MANY_PORTS SHARE_IRQ SERIAL_PCI ISAPNP enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
Linux agpgart interface v0.99 (c) Jeff Hartmann
agpgart: Maximum main memory to use for agp memory: 27M
agpgart: Detected Ali M1541 chipset
agpgart: AGP aperture is 64M @ 0xe0000000
es1371: version v0.26 time 11:32:55 Jan 18 2001
Trident 4DWave/SiS 7018/ALi 5451 PCI Audio, version 0.14.6, 11:33:00 Jan 18 2001
trident: ALi Audio Accelerator found at IO 0xf800, IRQ 5
ac97_codec: AC97 Audio codec, id: 0x4352:0x5914 (Unknown)
ac97_codec: AC97 Modem codec, id: 0x4358:0x5421 (Unknown)
Linux PCMCIA Card Services 3.1.22
  options: [pci] [cardbus] [pm]
Intel PCIC probe: not found.
Databook TCIC-2 PCMCIA probe: not found.
usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
Yenta IRQ list 0a98, PCI irq10
Socket status: 30000006
Yenta IRQ list 0a98, PCI irq10
Socket status: 30000010
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 4096 bind 4096)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
kmem_create: Forcing size word alignment - nfs_fh
ACPI: support found
ACPI: PBLK 0 @ 0x1010:0
ACPI: S1 supported
ACPI: S5 supported
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 220k freed
        -0681: *** Error: No installed handler for GPE.
Adding Swap: 80288k swap-space (priority -1)
cs: IO port probe 0x0c00-0x0cff: clean.
cs: IO port probe 0x0800-0x08ff: clean.
cs: IO port probe 0x0100-0x04ff: excluding 0x378-0x37f 0x408-0x40f 0x480-0x48f 0x4d0-0x4d7
cs: IO port probe 0x0a00-0x0aff: clean.
cs: memory probe 0xa0000000-0xa0ffffff: clean.
eth0: NE2000 Compatible: io 0x300, irq 3, hw_addr 00:90:99:0B:6E:FC
spurious 8259A interrupt: IRQ7.
VFS: Disk change detected on device ide1(22,0)
ISO 9660 Extensions: Microsoft Joliet Level 3
ISO 9660 Extensions: RRIP_1991A
_isofs_bmap: block < 0
_isofs_bmap: block < 0
_isofs_bmap: block < 0
ISO 9660 Extensions: Microsoft Joliet Level 3
ISO 9660 Extensions: RRIP_1991A
_isofs_bmap: block >= EOF (23068672, 2048)
VFS: Disk change detected on device ide1(22,0)
ISO 9660 Extensions: Microsoft Joliet Level 1
ISO 9660 Extensions: RRIP_1991A
_isofs_bmap: block >= EOF (1633681408, 2048)

VERSION = 2
PATCHLEVEL = 4
SUBLEVEL = 0
EXTRAVERSION = -test11

KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)

ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)

CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
          else if [ -x /bin/bash ]; then echo /bin/bash; \
          else echo sh; fi ; fi)
TOPDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)

HPATH = $(TOPDIR)/include
FINDHPATH = $(HPATH)/asm $(HPATH)/linux $(HPATH)/scsi $(HPATH)/net

HOSTCC = gcc
HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer

CROSS_COMPILE =

#
# Include the make variables (CC, etc...)
#

AS = $(CROSS_COMPILE)as
LD = $(CROSS_COMPILE)ld
CC = $(CROSS_COMPILE)gcc
CPP = $(CC) -E
AR = $(CROSS_COMPILE)ar
NM = $(CROSS_COMPILE)nm
STRIP = $(CROSS_COMPILE)strip
OBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdump
MAKEFILES = $(TOPDIR)/.config
GENKSYMS = /sbin/genksyms
DEPMOD = /sbin/depmod
MODFLAGS = -DMODULE
CFLAGS_KERNEL =
PERL = perl

export VERSION PATCHLEVEL SUBLEVEL EXTRAVERSION KERNELRELEASE ARCH \
        CONFIG_SHELL TOPDIR HPATH HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC \
        CPP AR NM STRIP OBJCOPY OBJDUMP MAKE MAKEFILES GENKSYMS MODFLAGS PERL

all: do-it-all

#
# Make "config" the default target if there is no configuration file or
# "depend" the target if there is no top-level dependency information.
#

ifeq (.config,$(wildcard .config))
include .config
ifeq (.depend,$(wildcard .depend))
include .depend
do-it-all: Version vmlinux
else
CONFIGURATION = depend
do-it-all: depend
endif
else
CONFIGURATION = config
do-it-all: config
endif

#
# INSTALL_PATH specifies where to place the updated kernel and system map
# images. Uncomment if you want to place them anywhere other than root.
#

#export INSTALL_PATH=/boot

#
# INSTALL_MOD_PATH specifies a prefix to MODLIB for module directory
# relocations required by build roots. This is not defined in the
# makefile but the arguement can be passed to make if needed.
#

MODLIB := $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
export MODLIB

#
# standard CFLAGS
#

CPPFLAGS := -D__KERNEL__ -I$(HPATH)

CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing
AFLAGS := -D__ASSEMBLY__ $(CPPFLAGS)

#
# ROOT_DEV specifies the default root-device when making the image.
# This can be either FLOPPY, CURRENT, /dev/xxxx or empty, in which case
# the default of FLOPPY is used by 'build'.
# This is i386 specific.
#

export ROOT_DEV = CURRENT

#
# If you want to preset the SVGA mode, uncomment the next line and
# set SVGA_MODE to whatever number you want.
# Set it to -DSVGA_MODE=NORMAL_VGA if you just want the EGA/VGA mode.
# The number is the same as you would ordinarily press at bootup.
# This is i386 specific.
#

export SVGA_MODE = -DSVGA_MODE=NORMAL_VGA

#
# if you want the RAM disk device, define this to be the
# size in blocks.
# This is i386 specific.
#

#export RAMDISK = -DRAMDISK=512

CORE_FILES =kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o
NETWORKS =net/network.o
DRIVERS =drivers/block/block.o \
                 drivers/char/char.o \
                 drivers/misc/misc.o \
                 drivers/net/net.o \
                 drivers/media/media.o \
                 drivers/parport/parport.a
LIBS =$(TOPDIR)/lib/lib.a
SUBDIRS =kernel drivers mm fs net ipc lib

DRIVERS-n :=
DRIVERS-y :=
DRIVERS-m :=
DRIVERS- :=

DRIVERS-$(CONFIG_AGP) += drivers/char/agp/agp.o
DRIVERS-$(CONFIG_DRM) += drivers/char/drm/drm.o
DRIVERS-$(CONFIG_NUBUS) += drivers/nubus/nubus.a
DRIVERS-$(CONFIG_ISDN) += drivers/isdn/isdn.a
DRIVERS-$(CONFIG_NET_FC) += drivers/net/fc/fc.o
DRIVERS-$(CONFIG_APPLETALK) += drivers/net/appletalk/appletalk.o
DRIVERS-$(CONFIG_TR) += drivers/net/tokenring/tr.a
DRIVERS-$(CONFIG_WAN) += drivers/net/wan/wan.o
DRIVERS-$(CONFIG_ARCNET) += drivers/net/arcnet/arcnet.a
DRIVERS-$(CONFIG_ATM) += drivers/atm/atm.o
DRIVERS-$(CONFIG_IDE) += drivers/ide/idedriver.o
DRIVERS-$(CONFIG_SCSI) += drivers/scsi/scsidrv.o
DRIVERS-$(CONFIG_IEEE1394) += drivers/ieee1394/ieee1394.a

ifneq ($(CONFIG_CD_NO_IDESCSI)$(CONFIG_BLK_DEV_IDECD)$(CONFIG_BLK_DEV_SR)$(CONFIG_PARIDE_PCD),)
DRIVERS-y += drivers/cdrom/cdrom.a
endif

DRIVERS-$(CONFIG_SOUND) += drivers/sound/sounddrivers.o
DRIVERS-$(CONFIG_PCI) += drivers/pci/pci.a
DRIVERS-$(CONFIG_MTD) += drivers/mtd/mtdlink.o
DRIVERS-$(CONFIG_PCMCIA) += drivers/pcmcia/pcmcia.o
DRIVERS-$(CONFIG_PCMCIA_NETCARD) += drivers/net/pcmcia/pcmcia_net.o
DRIVERS-$(CONFIG_PCMCIA_CHRDEV) += drivers/char/pcmcia/pcmcia_char.o
DRIVERS-$(CONFIG_DIO) += drivers/dio/dio.a
DRIVERS-$(CONFIG_SBUS) += drivers/sbus/sbus_all.o
DRIVERS-$(CONFIG_ZORRO) += drivers/zorro/zorro.a
DRIVERS-$(CONFIG_FC4) += drivers/fc4/fc4.a
DRIVERS-$(CONFIG_ALL_PPC) += drivers/macintosh/macintosh.o
DRIVERS-$(CONFIG_MAC) += drivers/macintosh/macintosh.o
DRIVERS-$(CONFIG_ISAPNP) += drivers/pnp/pnp.o
DRIVERS-$(CONFIG_SGI_IP22) += drivers/sgi/sgi.a
DRIVERS-$(CONFIG_VT) += drivers/video/video.o
DRIVERS-$(CONFIG_PARIDE) += drivers/block/paride/paride.a
DRIVERS-$(CONFIG_HAMRADIO) += drivers/net/hamradio/hamradio.o
DRIVERS-$(CONFIG_TC) += drivers/tc/tc.a
DRIVERS-$(CONFIG_USB) += drivers/usb/usbdrv.o
DRIVERS-$(CONFIG_INPUT) += drivers/input/inputdrv.o
DRIVERS-$(CONFIG_I2O) += drivers/i2o/i2o.o
DRIVERS-$(CONFIG_IRDA) += drivers/net/irda/irda.o
DRIVERS-$(CONFIG_I2C) += drivers/i2c/i2c.o
DRIVERS-$(CONFIG_PHONE) += drivers/telephony/telephony.o
DRIVERS-$(CONFIG_ACPI_INTERPRETER) += drivers/acpi/acpi.o
DRIVERS-$(CONFIG_MD) += drivers/md/mddev.o

DRIVERS += $(DRIVERS-y)

# files removed with 'make clean'
CLEAN_FILES = \
        kernel/ksyms.lst include/linux/compile.h \
        vmlinux System.map \
        .tmp* \
        drivers/char/consolemap_deftbl.c drivers/video/promcon_tbl.c \
        drivers/char/conmakehash \
        drivers/pci/devlist.h drivers/pci/classlist.h drivers/pci/gen-devlist \
        drivers/zorro/devlist.h drivers/zorro/gen-devlist \
        drivers/sound/bin2hex drivers/sound/hex2hex \
        drivers/atm/fore200e_mkfirm drivers/atm/{pca,sba}*{.bin,.bin1,.bin2} \
        net/khttpd/make_times_h \
        net/khttpd/times.h \
        submenu*
# directories removed with 'make clean'
CLEAN_DIRS = \
        modules

# files removed with 'make mrproper'
MRPROPER_FILES = \
        include/linux/autoconf.h include/linux/version.h \
        drivers/net/hamradio/soundmodem/sm_tbl_{afsk1200,afsk2666,fsk9600}.h \
        drivers/net/hamradio/soundmodem/sm_tbl_{hapn4800,psk4800}.h \
        drivers/net/hamradio/soundmodem/sm_tbl_{afsk2400_7,afsk2400_8}.h \
        drivers/net/hamradio/soundmodem/gentbl \
        drivers/char/hfmodem/gentbl drivers/char/hfmodem/tables.h \
        drivers/sound/*_boot.h drivers/sound/.*.boot \
        drivers/sound/msndinit.c \
        drivers/sound/msndperm.c \
        drivers/sound/pndsperm.c \
        drivers/sound/pndspini.c \
        drivers/atm/fore200e_*_fw.c drivers/atm/.fore200e_*.fw \
        .version .config* config.in config.old \
        scripts/tkparse scripts/kconfig.tk scripts/kconfig.tmp \
        scripts/lxdialog/*.o scripts/lxdialog/lxdialog \
        .menuconfig.log \
        include/asm \
        .hdepend scripts/mkdep scripts/split-include scripts/docproc \
        $(TOPDIR)/include/linux/modversions.h
# directories removed with 'make mrproper'
MRPROPER_DIRS = \
        include/config \
        $(TOPDIR)/include/linux/modules

include arch/$(ARCH)/Makefile

export CPPFLAGS CFLAGS AFLAGS

export NETWORKS DRIVERS LIBS HEAD LDFLAGS LINKFLAGS MAKEBOOT ASFLAGS

.S.s:
        $(CPP) $(AFLAGS) -traditional -o $*.s $<
.S.o:
        $(CC) $(AFLAGS) -traditional -c -o $*.o $<

Version: dummy
        @rm -f include/linux/compile.h

boot: vmlinux
        @$(MAKE) CFLAGS="$(CFLAGS) $(CFLAGS_KERNEL)" -C arch/$(ARCH)/boot

vmlinux: $(CONFIGURATION) init/main.o init/version.o linuxsubdirs
        $(LD) $(LINKFLAGS) $(HEAD) init/main.o init/version.o \
                --start-group \
                $(CORE_FILES) \
                $(DRIVERS) \
                $(NETWORKS) \
                $(LIBS) \
                --end-group \
                -o vmlinux
        $(NM) vmlinux | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map

symlinks:
        rm -f include/asm
        ( cd include ; ln -sf asm-$(ARCH) asm)
        @if [ ! -d include/linux/modules ]; then \
                mkdir include/linux/modules; \
        fi

oldconfig: symlinks
        $(CONFIG_SHELL) scripts/Configure -d arch/$(ARCH)/config.in

xconfig: symlinks
        $(MAKE) -C scripts kconfig.tk
        wish -f scripts/kconfig.tk

menuconfig: include/linux/version.h symlinks
        $(MAKE) -C scripts/lxdialog all
        $(CONFIG_SHELL) scripts/Menuconfig arch/$(ARCH)/config.in

config: symlinks
        $(CONFIG_SHELL) scripts/Configure arch/$(ARCH)/config.in

include/config/MARKER: scripts/split-include include/linux/autoconf.h
        scripts/split-include include/linux/autoconf.h include/config
        @ touch include/config/MARKER

linuxsubdirs: $(patsubst %, _dir_%, $(SUBDIRS))

$(patsubst %, _dir_%, $(SUBDIRS)) : dummy include/linux/version.h include/config/MARKER
        $(MAKE) CFLAGS="$(CFLAGS) $(CFLAGS_KERNEL)" -C $(patsubst _dir_%, %, $@)

$(TOPDIR)/include/linux/version.h: include/linux/version.h
$(TOPDIR)/include/linux/compile.h: include/linux/compile.h

newversion:
        @if [ ! -f .version ]; then \
                echo 1 > .version; \
        else \
                expr 0`cat .version` + 1 > .version; \
        fi

include/linux/compile.h: $(CONFIGURATION) include/linux/version.h newversion
        @echo -n \#define UTS_VERSION \"\#`cat .version` > .ver
        @if [ -n "$(CONFIG_SMP)" ] ; then echo -n " SMP" >> .ver; fi
        @if [ -f .name ]; then echo -n \-`cat .name` >> .ver; fi
        @echo ' '`date`'"' >> .ver
        @echo \#define LINUX_COMPILE_TIME \"`date +%T`\" >> .ver
        @echo \#define LINUX_COMPILE_BY \"`whoami`\" >> .ver
        @echo \#define LINUX_COMPILE_HOST \"`hostname`\" >> .ver
        @if [ -x /bin/dnsdomainname ]; then \
           echo \#define LINUX_COMPILE_DOMAIN \"`dnsdomainname`\"; \
         elif [ -x /bin/domainname ]; then \
           echo \#define LINUX_COMPILE_DOMAIN \"`domainname`\"; \
         else \
           echo \#define LINUX_COMPILE_DOMAIN ; \
         fi >> .ver
        @echo \#define LINUX_COMPILER \"`$(CC) $(CFLAGS) -v 2>&1 | tail -1`\" >> .ver
        @mv -f .ver $@

include/linux/version.h: ./Makefile
        @echo \#define UTS_RELEASE \"$(KERNELRELEASE)\" > .ver
        @echo \#define LINUX_VERSION_CODE `expr $(VERSION) \\* 65536 + $(PATCHLEVEL) \\* 256 + $(SUBLEVEL)` >> .ver
        @echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))' >>.ver
        @mv -f .ver $@

init/version.o: init/version.c include/linux/compile.h include/config/MARKER
        $(CC) $(CFLAGS) $(CFLAGS_KERNEL) -DUTS_MACHINE='"$(ARCH)"' -c -o init/version.o init/version.c

init/main.o: init/main.c include/config/MARKER
        $(CC) $(CFLAGS) $(CFLAGS_KERNEL) $(PROFILING) -c -o $*.o $<

fs lib mm ipc kernel drivers net: dummy
        $(MAKE) CFLAGS="$(CFLAGS) $(CFLAGS_KERNEL)" $(subst $@, _dir_$@, $@)

TAGS: dummy
        etags `find include/asm-$(ARCH) -name '*.h'`
        find include -type d \( -name "asm-*" -o -name config \) -prune -o -name '*.h' -print | xargs etags -a
        find $(SUBDIRS) init -name '*.c' | xargs etags -a

# Exuberant ctags works better with -I
tags: dummy
        CTAGSF=`ctags --version | grep -i exuberant >/dev/null && echo "-I __initdata,__exitdata,EXPORT_SYMBOL,EXPORT_SYMBOL_NOVERS"`; \
        ctags $$CTAGSF `find include/asm-$(ARCH) -name '*.h'` && \
        find include -type d \( -name "asm-*" -o -name config \) -prune -o -name '*.h' -print | xargs ctags $$CTAGSF -a && \
        find $(SUBDIRS) init -name '*.c' | xargs ctags $$CTAGSF -a

ifdef CONFIG_MODULES
ifdef CONFIG_MODVERSIONS
MODFLAGS += -DMODVERSIONS -include $(HPATH)/linux/modversions.h
endif

.PHONY: modules
modules: $(patsubst %, _mod_%, $(SUBDIRS))

.PHONY: $(patsubst %, _mod_%, $(SUBDIRS))
$(patsubst %, _mod_%, $(SUBDIRS)) : include/linux/version.h include/config/MARKER
        $(MAKE) -C $(patsubst _mod_%, %, $@) CFLAGS="$(CFLAGS) $(MODFLAGS)" MAKING_MODULES=1 modules

.PHONY: modules_install
modules_install: _modinst_ $(patsubst %, _modinst_%, $(SUBDIRS)) _modinst_post

.PHONY: _modinst_
_modinst_:
        @rm -rf $(MODLIB)/kernel
        @rm -f $(MODLIB)/build
        @mkdir -p $(MODLIB)/kernel
        @ln -s $(TOPDIR) $(MODLIB)/build

# If System.map exists, run depmod. This deliberately does not have a
# dependency on System.map since that would run the dependency tree on
# vmlinux. This depmod is only for convenience to give the initial
# boot a modules.dep even before / is mounted read-write. However the
# boot script depmod is the master version.
ifeq "$(strip $(INSTALL_MOD_PATH))" ""
depmod_opts :=
else
depmod_opts := -b $(INSTALL_MOD_PATH) -r
endif
.PHONY: _modinst_post
_modinst_post: _modinst_post_pcmcia
        if [ -r System.map ]; then $(DEPMOD) -ae -F System.map $(depmod_opts) $(KERNELRELEASE); fi

# Backwards compatibilty symlinks for people still using old versions
# of pcmcia-cs with hard coded pathnames on insmod. Remove
# _modinst_post_pcmcia for kernel 2.4.1.
.PHONY: _modinst_post_pcmcia
_modinst_post_pcmcia:
        cd $(MODLIB); \
        mkdir -p pcmcia; \
        find kernel -path '*/pcmcia/*' -name '*.o' | xargs -i -r ln -sf ../{} pcmcia

.PHONY: $(patsubst %, _modinst_%, $(SUBDIRS))
$(patsubst %, _modinst_%, $(SUBDIRS)) :
        $(MAKE) -C $(patsubst _modinst_%, %, $@) modules_install

# modules disabled....

else
modules modules_install: dummy
        @echo
        @echo "The present kernel configuration has modules disabled."
        @echo "Type 'make config' and enable loadable module support."
        @echo "Then build a kernel with module support enabled."
        @echo
        @exit 1
endif

clean: archclean
        find . \( -name '*.[oas]' -o -name core -o -name '.*.flags' \) -type f -print \
                | grep -v lxdialog/ | xargs rm -f
        rm -f $(CLEAN_FILES)
        rm -rf $(CLEAN_DIRS)
        $(MAKE) -C Documentation/DocBook clean

mrproper: clean archmrproper
        find . \( -size 0 -o -name .depend \) -type f -print | xargs rm -f
        rm -f $(MRPROPER_FILES)
        rm -rf $(MRPROPER_DIRS)
        $(MAKE) -C Documentation/DocBook mrproper

distclean: mrproper
        rm -f core `find . \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
                -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
                -o -name '.*.rej' -o -name '.SUMS' -o -size 0 \) -print` TAGS tags

backup: mrproper
        cd .. && tar cf - linux/ | gzip -9 > backup.gz
        sync

sgmldocs:
        chmod 755 $(TOPDIR)/scripts/docgen
        chmod 755 $(TOPDIR)/scripts/gen-all-syms
        chmod 755 $(TOPDIR)/scripts/kernel-doc
        $(MAKE) -C $(TOPDIR)/Documentation/DocBook books

psdocs: sgmldocs
        $(MAKE) -C Documentation/DocBook ps

pdfdocs: sgmldocs
        $(MAKE) -C Documentation/DocBook pdf

htmldocs: sgmldocs
        $(MAKE) -C Documentation/DocBook html

sums:
        find . -type f -print | sort | xargs sum > .SUMS

dep-files: scripts/mkdep archdep include/linux/version.h
        scripts/mkdep init/*.c > .depend
        scripts/mkdep `find $(FINDHPATH) -name SCCS -prune -o -follow -name \*.h ! -name modversions.h -print` > .hdepend
        $(MAKE) $(patsubst %,_sfdep_%,$(SUBDIRS)) _FASTDEP_ALL_SUB_DIRS="$(SUBDIRS)"
ifdef CONFIG_MODVERSIONS
        $(MAKE) update-modverfile
endif

ifdef CONFIG_MODVERSIONS
MODVERFILE := $(TOPDIR)/include/linux/modversions.h
else
MODVERFILE :=
endif
export MODVERFILE

depend dep: dep-files

# make checkconfig: Prune 'scripts' directory to avoid "false positives".
checkconfig:
        find * -name '*.[hcS]' -type f -print | grep -v scripts/ | sort | xargs $(PERL) -w scripts/checkconfig.pl

checkhelp:
        find * -name [cC]onfig.in -print | sort | xargs $(PERL) -w scripts/checkhelp.pl

checkincludes:
        find * -name '*.[hcS]' -type f -print | sort | xargs $(PERL) -w scripts/checkincludes.pl

ifdef CONFIGURATION
..$(CONFIGURATION):
        @echo
        @echo "You have a bad or nonexistent" .$(CONFIGURATION) ": running 'make" $(CONFIGURATION)"'"
        @echo
        $(MAKE) $(CONFIGURATION)
        @echo
        @echo "Successful. Try re-making (ignore the error that follows)"
        @echo
        exit 1

#dummy: ..$(CONFIGURATION)
dummy:

else

dummy:

endif

include Rules.make

#
# This generates dependencies for the .h files.
#

scripts/mkdep: scripts/mkdep.c
        $(HOSTCC) $(HOSTCFLAGS) -o scripts/mkdep scripts/mkdep.c

scripts/split-include: scripts/split-include.c
        $(HOSTCC) $(HOSTCFLAGS) -o scripts/split-include scripts/split-include.c

-
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 : Tue Jan 23 2001 - 21:00:17 EST