lkml.org 
[lkml]   [1997]   [Dec]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subjectscsi compiling/linking problem w/ 2.1.75
Date
	it would appear that 2.1.75 won't link in scsi support unless modules
have been selected (they don't have to be used however!)

here's what I got when compiling through the first time (no modules):

ld -m elf_i386 -T /usr/src/linux/arch/i386/vmlinux.lds -e stext arch/i386/kernel
/head.o arch/i386/kernel/init_task.o init/main.o init/version.o \
arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o mm/mm.o fs/f
s.o ipc/ipc.o \
fs/filesystems.a \
net/network.a \
drivers/block/block.a drivers/char/char.a drivers/misc/misc.a drivers/ne
t/net.a drivers/scsi/scsi.a drivers/cdrom/cdrom.a drivers/pci/pci.a \
/usr/src/linux/arch/i386/lib/lib.a /usr/src/linux/lib/lib.a /usr/src/lin
ux/arch/i386/lib/lib.a \
-o vmlinux
drivers/scsi/scsi.a(scsi.o): In function `internal_cmnd':
scsi.o(.text+0x12ac): undefined reference to `scsi_times_out'
scsi.o(.text+0x12b5): undefined reference to `scsi_old_times_out'
scsi.o(.text+0x12bf): undefined reference to `scsi_add_timer'
scsi.o(.text+0x131c): undefined reference to `scsi_mlqueue_insert'
scsi.o(.text+0x1325): undefined reference to `scsi_old_done'
scsi.o(.text+0x137a): undefined reference to `scsi_old_done'
drivers/scsi/scsi.a(scsi.o): In function `scsi_do_cmd':
scsi.o(.text+0x16dd): undefined reference to `scsi_times_out'
scsi.o(.text+0x16e5): undefined reference to `scsi_old_times_out'
scsi.o(.text+0x16ef): undefined reference to `scsi_add_timer'
scsi.o(.text+0x174d): undefined reference to `scsi_mlqueue_insert'
scsi.o(.text+0x1755): undefined reference to `scsi_old_done'
scsi.o(.text+0x17ba): undefined reference to `scsi_old_done'
drivers/scsi/scsi.a(scsi.o): In function `scsi_done':
scsi.o(.text+0x17d3): undefined reference to `scsi_delete_timer'
drivers/scsi/scsi.a(scsi.o): In function `scsi_bottom_half_handler':
scsi.o(.text+0x1869): undefined reference to `scsi_decide_disposition'
scsi.o(.text+0x189f): undefined reference to `scsi_mlqueue_insert'
drivers/scsi/scsi.a(scsi.o): In function `scsi_retry_command':
scsi.o(.text+0x19c0): undefined reference to `scsi_times_out'
scsi.o(.text+0x19c9): undefined reference to `scsi_old_times_out'
scsi.o(.text+0x19d3): undefined reference to `scsi_add_timer'
scsi.o(.text+0x1a30): undefined reference to `scsi_mlqueue_insert'
scsi.o(.text+0x1a39): undefined reference to `scsi_old_done'
scsi.o(.text+0x1a8e): undefined reference to `scsi_old_done'
drivers/scsi/scsi.a(scsi.o): In function `scsi_finish_command':
scsi.o(.text+0x1b19): undefined reference to `scsi_mlqueue_finish'
scsi.o(.text+0x1b2a): undefined reference to `scsi_sense_valid'
drivers/scsi/scsi.a(hosts.o): In function `scsi_init':
hosts.o(.text.init+0xf0): undefined reference to `scsi_error_handler'
drivers/scsi/scsi.a(sd.o): In function `sd_open':
sd.o(.text+0x1c2): undefined reference to `scsi_block_when_processing_errors'
drivers/scsi/scsi.a(sd_ioctl.o): In function `sd_ioctl':
sd_ioctl.o(.text+0x35): undefined reference to `scsi_block_when_processing_error
s'
drivers/scsi/scsi.a(sr.o): In function `sr_open':
sr.o(.text+0x976): undefined reference to `scsi_block_when_processing_errors'
drivers/scsi/scsi.a(sr_ioctl.o): In function `sr_audio_ioctl':
sr_ioctl.o(.text+0x5ed): undefined reference to `scsi_block_when_processing_erro
rs'
drivers/scsi/scsi.a(sr_ioctl.o): In function `sr_dev_ioctl':
sr_ioctl.o(.text+0x10a8): undefined reference to `scsi_block_when_processing_err
ors'
drivers/scsi/scsi.a(scsi_ioctl.o)(.text+0x7ce): more undefined references to `sc
si_block_when_processing_errors' follow
make: *** [vmlinux] Error 1

when compiling with modules support (but not using any modules!) it compiles
and links fine. I believe it's this little chunk from
linux/drivers/scsi/Makefile that does it, but I'm a little ignorant on the best
way to fix it...

ifeq ($(CONFIG_SCSI),y)
# We must attach scsi_syms.o to scsi.o, as otherwise there is nothing to
# pull the object file from the archive.
SCSI=scsi.o
ifeq ($(CONFIG_MODULES),y)
O_TARGET := scsi_n_syms.o
O_OBJS := scsi.o scsi_error.o scsi_obsolete.o scsi_queue.o
OX_OBJS := scsi_syms.o
SCSI := $(O_TARGET)
endif
L_OBJS += $(SCSI) hosts.o scsi_ioctl.o constants.o scsicam.o
ifeq ($(CONFIG_PROC_FS),y)
L_OBJS += scsi_proc.o
endif
else
ifeq ($(CONFIG_SCSI),m)
MIX_OBJS += scsi_syms.o
M_OBJS += scsi_mod.o
endif
endif

\
 
 \ /
  Last update: 2005-03-22 13:40    [from the cache]
©2003-2011 Jasper Spaans