[patch] Compilation fix #3

Arjan van de Ven (arjan@stack.nl)
Thu, 26 Nov 1998 11:02:18 +0100 (CET)


Compilation patch
-----------------

Kernel version : 129ac5
Platform : i386/gcc
Affected files : fs/nfsd/Makefile, fs/nfsd/stats.c

Description of the problem
--------------------------
nfsd cannot be compiled without CONFIG_PROC_FS

Suggested fix
-------------

diff -u -r linux/fs/nfsd/Makefile /usr/src/linux/fs/nfsd/Makefile
--- linux/fs/nfsd/Makefile Wed Jun 24 23:30:10 1998
+++ /usr/src/linux/fs/nfsd/Makefile Mon Nov 16 20:33:26 1998
@@ -9,11 +9,8 @@

O_TARGET := nfsd.o
O_OBJS := nfssvc.o nfsctl.o nfsproc.o nfsfh.o vfs.o \
- export.o auth.o lockd.o nfscache.o nfsxdr.o
-
-ifdef CONFIG_PROC_FS
- O_OBJS += stats.o
-endif
+ export.o auth.o lockd.o nfscache.o nfsxdr.o \
+ stats.o

M_OBJS := $(O_TARGET)

diff -u -r linux/fs/nfsd/stats.c /usr/src/linux/fs/nfsd/stats.c
--- linux/fs/nfsd/stats.c Mon Jan 12 23:39:48 1998
+++ /usr/src/linux/fs/nfsd/stats.c Mon Nov 16 20:33:12 1998
@@ -26,6 +26,7 @@
struct nfsd_stats nfsdstats;
struct svc_stat nfsd_svcstats = { &nfsd_program, };

+#ifdef CONFIG_PROC_FS
static int
nfsd_proc_read(char *buffer, char **start, off_t offset, int count,
int *eof, void *data)
@@ -88,3 +89,4 @@
{
svc_proc_unregister("nfsd");
}
+#endif /* CONFIG_PROC_FS */

Compiler output + config-file
-----------------------------
Note: Some other problems too (looking into them)

make[1]: Entering directory `/usr/src/linux/kernel'
make[2]: Entering directory `/usr/src/linux/kernel'
make[1]: Entering directory `/usr/src/linux/drivers'
make[2]: Entering directory `/usr/src/linux/drivers/block'
make[3]: Entering directory `/usr/src/linux/drivers/block/paride'
make[4]: Entering directory `/usr/src/linux/drivers/block/paride'
make[3]: Entering directory `/usr/src/linux/drivers/block'
genhd.c: In function `msdos_partition':
genhd.c:403: warning: `bsd_maxpart' might be used uninitialized in this function
hd.c:786: warning: initialization from incompatible pointer type
hd.c:788: warning: initialization from incompatible pointer type
make[2]: Entering directory `/usr/src/linux/drivers/char'
make[3]: Entering directory `/usr/src/linux/drivers/char'
mem.c: In function `chr_dev_init':
mem.c:602: warning: implicit declaration of function `i2c_init'
make[2]: Entering directory `/usr/src/linux/drivers/net'
make[3]: Entering directory `/usr/src/linux/drivers/net'
make[2]: Entering directory `/usr/src/linux/drivers/misc'
make[3]: Entering directory `/usr/src/linux/drivers/misc'
make[2]: Entering directory `/usr/src/linux/drivers/sound'
make[3]: Entering directory `/usr/src/linux/drivers/sound'
make[2]: Entering directory `/usr/src/linux/drivers/pnp'
make[3]: Entering directory `/usr/src/linux/drivers/pnp'
make[2]: Entering directory `/usr/src/linux/drivers/cdrom'
make[3]: Entering directory `/usr/src/linux/drivers/cdrom'
make[2]: Entering directory `/usr/src/linux/drivers/isdn'
make[3]: Entering directory `/usr/src/linux/drivers/isdn/pcbit'
make[4]: Entering directory `/usr/src/linux/drivers/isdn/pcbit'
make[3]: Entering directory `/usr/src/linux/drivers/isdn/avmb1'
make[4]: Entering directory `/usr/src/linux/drivers/isdn/avmb1'
make[3]: Entering directory `/usr/src/linux/drivers/isdn/isdnloop'
make[4]: Entering directory `/usr/src/linux/drivers/isdn/isdnloop'
make[3]: Entering directory `/usr/src/linux/drivers/isdn/act2000'
make[4]: Entering directory `/usr/src/linux/drivers/isdn/act2000'
module.c: In function `act2000_setup':
module.c:927: warning: unused variable `j'
module.c: At top level:
module.c:96: warning: `act2000_clear_msn' defined but not used
module.c:574: warning: `act2000_logstat' defined but not used
make[3]: Entering directory `/usr/src/linux/drivers/isdn'
isdn_common.c: In function `isdn_ioctl':
isdn_common.c:1270: warning: unused variable `s'
isdn_cards.c: In function `isdn_cards_init':
isdn_cards.c:89: warning: implicit declaration of function `act2000_init'
isdnloop/isdnloop.c:1070: warning: `isdnloop_stopallcards' defined but not used
make[2]: Entering directory `/usr/src/linux/drivers/net/hamradio'
make[3]: Entering directory `/usr/src/linux/drivers/net/hamradio'
make[2]: Entering directory `/usr/src/linux/drivers'
make[1]: Entering directory `/usr/src/linux/mm'
make[2]: Entering directory `/usr/src/linux/mm'
make[1]: Entering directory `/usr/src/linux/fs'
make[2]: Entering directory `/usr/src/linux/fs/minix'
make[3]: Entering directory `/usr/src/linux/fs/minix'
make[2]: Entering directory `/usr/src/linux/fs/fat'
make[3]: Entering directory `/usr/src/linux/fs/fat'
make[2]: Entering directory `/usr/src/linux/fs/msdos'
make[3]: Entering directory `/usr/src/linux/fs/msdos'
make[2]: Entering directory `/usr/src/linux/fs/vfat'
make[3]: Entering directory `/usr/src/linux/fs/vfat'
make[2]: Entering directory `/usr/src/linux/fs/isofs'
make[3]: Entering directory `/usr/src/linux/fs/isofs'
make[2]: Entering directory `/usr/src/linux/fs/nfs'
make[3]: Entering directory `/usr/src/linux/fs/nfs'
make[2]: Entering directory `/usr/src/linux/fs/nfsd'
make[3]: Entering directory `/usr/src/linux/fs/nfsd'
vfs.c: In function `nfsd_setattr':
vfs.c:278: warning: `saved_cap' might be used uninitialized in this function
vfs.c: In function `nfsd_write':
vfs.c:550: warning: `saved_cap' might be used uninitialized in this function
vfs.c: In function `nfsd_truncate':
vfs.c:755: warning: `saved_cap' might be used uninitialized in this function
vfs.c: In function `nfsd_permission':
vfs.c:1268: warning: `saved_cap' might be used uninitialized in this function
make[2]: Entering directory `/usr/src/linux/fs/lockd'
make[3]: Entering directory `/usr/src/linux/fs/lockd'
make[2]: Entering directory `/usr/src/linux/fs/nls'
make[3]: Entering directory `/usr/src/linux/fs/nls'
make[2]: Entering directory `/usr/src/linux/fs/umsdos'
make[3]: Entering directory `/usr/src/linux/fs/umsdos'
make[2]: Entering directory `/usr/src/linux/fs/sysv'
make[3]: Entering directory `/usr/src/linux/fs/sysv'
make[2]: Entering directory `/usr/src/linux/fs/ncpfs'
make[3]: Entering directory `/usr/src/linux/fs/ncpfs'
sock.c: In function `do_ncp_rpc_call':
sock.c:97: warning: unused variable `tmp_timeout'
make[2]: Entering directory `/usr/src/linux/fs/hpfs'
make[3]: Entering directory `/usr/src/linux/fs/hpfs'
make[2]: Entering directory `/usr/src/linux/fs/ntfs'
make[3]: Entering directory `/usr/src/linux/fs/ntfs'
make[2]: Entering directory `/usr/src/linux/fs/ufs'
make[3]: Entering directory `/usr/src/linux/fs/ufs'
make[2]: Entering directory `/usr/src/linux/fs/romfs'
make[3]: Entering directory `/usr/src/linux/fs/romfs'
make[2]: Entering directory `/usr/src/linux/fs/qnx4'
make[3]: Entering directory `/usr/src/linux/fs/qnx4'
make[2]: Entering directory `/usr/src/linux/fs'
make[1]: Entering directory `/usr/src/linux/net'
make[2]: Entering directory `/usr/src/linux/net/core'
make[3]: Entering directory `/usr/src/linux/net/core'
make[2]: Entering directory `/usr/src/linux/net/ethernet'
make[3]: Entering directory `/usr/src/linux/net/ethernet'
ar rcs ethernet.o
make[2]: Entering directory `/usr/src/linux/net/sched'
make[3]: Entering directory `/usr/src/linux/net/sched'
make[2]: Entering directory `/usr/src/linux/net/sunrpc'
make[3]: Entering directory `/usr/src/linux/net/sunrpc'
xprt.c: In function `rpciod_tcp_dispatcher':
xprt.c:752: warning: `result' might be used uninitialized in this function
make[2]: Entering directory `/usr/src/linux/net'
make[1]: Entering directory `/usr/src/linux/ipc'
make[2]: Entering directory `/usr/src/linux/ipc'
make[1]: Entering directory `/usr/src/linux/lib'
make[2]: Entering directory `/usr/src/linux/lib'
make[1]: Entering directory `/usr/src/linux/arch/i386/kernel'
make[1]: Entering directory `/usr/src/linux/arch/i386/mm'
make[2]: Entering directory `/usr/src/linux/arch/i386/mm'
make[1]: Entering directory `/usr/src/linux/arch/i386/lib'
make[2]: Entering directory `/usr/src/linux/arch/i386/lib'
arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o \
fs/filesystems.a \
net/network.a \
drivers/block/block.a drivers/char/char.a drivers/misc/misc.a drivers/isdn/isdn.a drivers/net/net.a drivers/cdrom/cdrom.a drivers/pnp/pnp.a drivers/block/paride/paride.a drivers/net/hamradio/hamradio.a \
/usr/src/linux/arch/i386/lib/lib.a /usr/src/linux/lib/lib.a /usr/src/linux/arch/i386/lib/lib.a \
-o vmlinux
fs/filesystems.a(nfsd.o): In function `find_fh_dentry':
nfsd.o(.text+0x1d45): undefined reference to `nfsdstats'
nfsd.o(.text+0x1d92): undefined reference to `nfsdstats'
nfsd.o(.text+0x1d9e): undefined reference to `nfsdstats'
nfsd.o(.text+0x1df9): undefined reference to `nfsdstats'
nfsd.o(.text+0x1e72): undefined reference to `nfsdstats'
fs/filesystems.a(nfsd.o)(.text+0x53c9): more undefined references to `nfsdstats' follow
fs/filesystems.a(nfsd.o)(.data+0x40): undefined reference to `nfsd_svcstats'
drivers/char/char.a(bttv.o): In function `find_vga':
bttv.o(.text+0x403b): undefined reference to `pci_devices'
drivers/char/char.a(bttv.o): In function `configure_bt848':
bttv.o(.text+0x52ca): undefined reference to `pci_set_master'
drivers/char/char.a(bttv.o): In function `find_bt848':
bttv.o(.text+0x5347): undefined reference to `pci_devices'
drivers/char/char.a(radio-miropcm20.o): In function `pcm20_mute':
radio-miropcm20.o(.text+0x13): undefined reference to `aci_write_cmd'
drivers/char/char.a(radio-miropcm20.o): In function `pcm20_setvol':
radio-miropcm20.o(.text+0x41): undefined reference to `aci_write_cmd'
radio-miropcm20.o(.text+0x59): undefined reference to `aci_write_cmd'
radio-miropcm20.o(.text+0x62): undefined reference to `aci_write_cmd'
radio-miropcm20.o(.text+0x84): undefined reference to `aci_write_cmd'
drivers/char/char.a(radio-miropcm20.o)(.text+0x8c): more undefined references to `aci_write_cmd' follow
drivers/char/char.a(radio-miropcm20.o): In function `pcm20_setfreq':
radio-miropcm20.o(.text+0xbb): undefined reference to `aci_write_cmd_d'
drivers/char/char.a(radio-miropcm20.o): In function `pcm20_getsigstr':
radio-miropcm20.o(.text+0xd8): undefined reference to `aci_indexed_cmd'
drivers/isdn/isdn.a(isdn_net.o): In function `isdn_net_unreachable':
isdn_net.o(.text+0x23): undefined reference to `icmp_send'
drivers/isdn/isdn.a(isdn_net.o): In function `isdn_net_unbind_channel':
isdn_net.o(.text+0x1d9): undefined reference to `qdisc_reset'
drivers/isdn/isdn.a(isdn_net.o): In function `isdn_net_receive':
isdn_net.o(.text+0x1c4a): undefined reference to `netif_rx'
drivers/isdn/isdn.a(isdn_net.o): In function `isdn_net_init':
isdn_net.o(.text+0x1fd6): undefined reference to `ether_setup'
drivers/isdn/isdn.a(isdn_net.o): In function `isdn_net_new':
isdn_net.o(.text+0x2ab5): undefined reference to `register_netdev'
drivers/isdn/isdn.a(isdn_net.o): In function `isdn_net_realrm':
isdn_net.o(.text+0x397d): undefined reference to `unregister_netdev'
drivers/isdn/isdn.a(isdn_x25iface.o): In function `isdn_x25iface_receive':
isdn_x25iface.o(.text+0x236): undefined reference to `netif_rx'
drivers/isdn/isdn.a(isdn_x25iface.o): In function `isdn_x25iface_connect_ind':
isdn_x25iface.o(.text+0x334): undefined reference to `netif_rx'
drivers/isdn/isdn.a(isdn_x25iface.o): In function `isdn_x25iface_disconn_ind':
isdn_x25iface.o(.text+0x408): undefined reference to `netif_rx'
make: *** [vmlinux] Error 1
#
# Automatically generated make config: don't edit
#

#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y

#
# Processor type and features
#
# CONFIG_M386 is not set
# CONFIG_M486 is not set
CONFIG_M586=y
# CONFIG_M686 is not set
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y

#
# Loadable module support
#
# CONFIG_MODULES is not set

#
# General setup
#
# CONFIG_NET is not set
# CONFIG_PCI is not set
# CONFIG_MCA is not set
CONFIG_SYSVIPC=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_SYSCTL=y
# CONFIG_BINFMT_AOUT is not set
# CONFIG_BINFMT_ELF is not set
# CONFIG_BINFMT_MISC is not set
CONFIG_BINFMT_JAVA=y
# CONFIG_PARPORT is not set
# CONFIG_APM is not set

#
# Plug and Play support
#
CONFIG_PNP=y

#
# Block devices
#
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_DEV_IDE is not set

#
# Please see Documentation/ide.txt for help/info on IDE drives
#
CONFIG_BLK_DEV_HD_ONLY=y

#
# Additional Block Devices
#
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_MD=y
# CONFIG_MD_LINEAR is not set
CONFIG_MD_STRIPED=y
# CONFIG_MD_MIRRORING is not set
# CONFIG_MD_RAID5 is not set
# CONFIG_MD_BOOT is not set
CONFIG_BLK_DEV_RAM=y
# CONFIG_BLK_DEV_INITRD is not set
CONFIG_BLK_DEV_XD=y
CONFIG_PARIDE_PARPORT=y
CONFIG_PARIDE=y

#
# Parallel IDE high-level drivers
#
CONFIG_PARIDE_PD=y
# CONFIG_PARIDE_PCD is not set
# CONFIG_PARIDE_PF is not set
# CONFIG_PARIDE_PT is not set
CONFIG_PARIDE_PG=y

#
# Parallel IDE protocol modules
#
# CONFIG_PARIDE_ATEN is not set
# CONFIG_PARIDE_BPCK is not set
CONFIG_PARIDE_COMM=y
# CONFIG_PARIDE_DSTR is not set
CONFIG_PARIDE_FIT2=y
# CONFIG_PARIDE_FIT3 is not set
# CONFIG_PARIDE_EPAT is not set
CONFIG_PARIDE_EPIA=y
CONFIG_PARIDE_FRPW=y
CONFIG_PARIDE_KBIC=y
CONFIG_PARIDE_KTTI=y
CONFIG_PARIDE_ON20=y
CONFIG_PARIDE_ON26=y
CONFIG_BLK_DEV_HD=y

#
# SCSI support
#
# CONFIG_SCSI is not set

#
# Amateur Radio support
#
CONFIG_HAMRADIO=y

#
# Misc. hamradio protocols
#

#
# ISDN subsystem
#
CONFIG_ISDN=y
# CONFIG_ISDN_PPP is not set
# CONFIG_ISDN_AUDIO is not set
CONFIG_ISDN_X25=y
# CONFIG_ISDN_DRV_ICN is not set
CONFIG_ISDN_DRV_LOOP=y
CONFIG_ISDN_DRV_PCBIT=y
# CONFIG_ISDN_DRV_HISAX is not set
# CONFIG_ISDN_DRV_SC is not set
CONFIG_ISDN_DRV_ACT2000=y
CONFIG_ISDN_DRV_AVMB1=y
# CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON is not set

#
# CD-ROM drivers (not for SCSI or IDE/ATAPI drives)
#
CONFIG_CD_NO_IDESCSI=y
# CONFIG_AZTCD is not set
# CONFIG_GSCD is not set
CONFIG_SBPCD=y
CONFIG_SBPCD2=y
CONFIG_SBPCD3=y
# CONFIG_SBPCD4 is not set
# CONFIG_MCD is not set
# CONFIG_MCDX is not set
CONFIG_OPTCD=y
CONFIG_CM206=y
# CONFIG_SJCD is not set
CONFIG_ISP16_CDI=y
CONFIG_CDU31A=y
# CONFIG_CDU535 is not set

#
# Character devices
#
# CONFIG_VT is not set
CONFIG_SERIAL=y
CONFIG_SERIAL_CONSOLE=y
CONFIG_SERIAL_EXTENDED=y
CONFIG_SERIAL_MANY_PORTS=y
CONFIG_SERIAL_SHARE_IRQ=y
CONFIG_SERIAL_DETECT_IRQ=y
CONFIG_SERIAL_MULTIPORT=y
# CONFIG_HUB6 is not set
CONFIG_SERIAL_NONSTANDARD=y
CONFIG_ROCKETPORT=y
CONFIG_DIGIEPCA=y
# CONFIG_CYCLADES is not set
CONFIG_STALDRV=y
# CONFIG_STALLION is not set
# CONFIG_ISTALLION is not set
# CONFIG_RISCOM8 is not set
CONFIG_SPECIALIX=y
# CONFIG_SPECIALIX_RTSCTS is not set
# CONFIG_ESPSERIAL is not set
# CONFIG_UNIX98_PTYS is not set
# CONFIG_MOUSE is not set
# CONFIG_QIC02_TAPE is not set
# CONFIG_WATCHDOG is not set
# CONFIG_RTC is not set
CONFIG_VIDEO_DEV=y
CONFIG_RADIO_RTRACK=y
CONFIG_RADIO_RTRACK_PORT=20f
CONFIG_RADIO_RTRACK2=y
CONFIG_RADIO_RTRACK2_PORT=30c
CONFIG_RADIO_AZTECH=y
CONFIG_RADIO_AZTECH_PORT=350
CONFIG_RADIO_MIROPCM20=y
CONFIG_VIDEO_BT848=y
# CONFIG_VIDEO_PMS is not set
CONFIG_VIDEO_SAA5249=y
# CONFIG_RADIO_SF16FMI is not set
# CONFIG_RADIO_ZOLTRIX is not set
# CONFIG_NVRAM is not set
# CONFIG_JOYSTICK is not set

#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set

#
# Filesystems
#
CONFIG_QUOTA=y
CONFIG_MINIX_FS=y
# CONFIG_EXT2_FS is not set
CONFIG_ISO9660_FS=y
# CONFIG_JOLIET is not set
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_UMSDOS_FS=y
CONFIG_VFAT_FS=y
# CONFIG_PROC_FS is not set
CONFIG_NFS_FS=y
CONFIG_NFSD=y
CONFIG_NFSD_SUN=y
CONFIG_SUNRPC=y
CONFIG_LOCKD=y
# CONFIG_CODA_FS is not set
# CONFIG_SMB_FS is not set
CONFIG_NCP_FS=y
# CONFIG_NCPFS_PACKET_SIGNING is not set
CONFIG_NCPFS_IOCTL_LOCKING=y
# CONFIG_NCPFS_STRONG is not set
CONFIG_NCPFS_NFS_NS=y
# CONFIG_NCPFS_OS2_NS is not set
CONFIG_NCPFS_MOUNT_SUBDIR=y
CONFIG_HPFS_FS=y
CONFIG_NTFS_FS=y
# CONFIG_NTFS_RW is not set
CONFIG_SYSV_FS=y
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
CONFIG_ROMFS_FS=y
# CONFIG_AUTOFS_FS is not set
CONFIG_UFS_FS=y
CONFIG_BSD_DISKLABEL=y
CONFIG_SMD_DISKLABEL=y
CONFIG_SOLARIS_X86_PARTITION=y
# CONFIG_ADFS_FS is not set
CONFIG_QNX4FS_FS=y
# CONFIG_QNX4FS_RW is not set
# CONFIG_MAC_PARTITION is not set
CONFIG_NLS=y

#
# Native Language Support
#
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_737=y
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
CONFIG_NLS_CODEPAGE_852=y
# CONFIG_NLS_CODEPAGE_855 is not set
CONFIG_NLS_CODEPAGE_857=y
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
CONFIG_NLS_CODEPAGE_863=y
CONFIG_NLS_CODEPAGE_864=y
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
CONFIG_NLS_CODEPAGE_869=y
# CONFIG_NLS_CODEPAGE_874 is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
CONFIG_NLS_ISO8859_4=y
# CONFIG_NLS_ISO8859_5 is not set
CONFIG_NLS_ISO8859_6=y
# CONFIG_NLS_ISO8859_7 is not set
CONFIG_NLS_ISO8859_8=y
# CONFIG_NLS_ISO8859_9 is not set
CONFIG_NLS_KOI8_R=y

#
# Sound
#
# CONFIG_SOUND is not set

#
# Kernel hacking
#
CONFIG_MAGIC_SYSRQ=y

-
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/