- From: Charles-Edouard Ruault <ce_at_idtect.com>
- Date: Fri, 09 May 2003 13:58:11 +0200
Hi David,
this is the exact same problem i reported earlier to the list.
So far no answer ... my analysis is a linker problem since this problem
does not appear with other versions of ld.
The cause is that during the link phase, the symbols without the version
are removed from the library, causing the errors you see there.
The quick & dirty fix is to change the macro EXPORT_SYMBOL to do nothing.
in lib/libinternal.h replace
#define EXPORT_SYMBOL(a,b) __asm__(".symver " #a "," #a "_at_v" #b )
with
#define EXPORT_SYMBOL(a,b)
that will do the trick.
Davide Monge wrote:
>Hi!
>
>I have:
>IBM Xserver P4 2.4GHz 256Mb RAM 30Gb SCSI
>Mandrake 9.1 - kernel 2.4.21-13mdk (note: i have devfs default...)
>National Instrument PCI-6023E
>
>All modules are installed ok from package comedi-0.7.66
>this is lsmod out:
>
>Module Size Used by Not tainted
>sr_mod 16920 0 (autoclean) (unused)
>ide-cd 33856 0 (autoclean)
>cdrom 31648 0 (autoclean) [sr_mod ide-cd]
>parport_pc 25096 1 (autoclean)
>lp 8096 0 (autoclean)
>parport 34176 1 (autoclean) [parport_pc lp]
>i810_audio 26248 0
>soundcore 6276 0 [i810_audio]
>ac97_codec 12488 0 [i810_audio]
>nfsd 74256 8 (autoclean)
>af_packet 14952 1 (autoclean)
>floppy 55132 0
>button 3724 0 (unused)
>thermal 8224 0 (unused)
>processor 10872 0 [thermal]
>fan 2528 0 (unused)
>ac 2784 0 (unused)
>battery 7008 0 (unused)
>tg3 44744 1 (autoclean)
>supermount 15296 2 (autoclean)
>ni_pcimio 27680 0 (unused)
>mite 4668 0 [ni_pcimio]
>comedi 23444 0 [ni_pcimio]
>ehci-hcd 18568 0 (unused)
>usb-uhci 24652 0 (unused)
>usbcore 72992 1 [ehci-hcd usb-uhci]
>rtc 8060 0 (autoclean)
>ext3 64812 3
>jbd 42108 3 [ext3]
>sd_mod 11996 8
>aic7xxx 129628 4
>scsi_mod 95284 3 [sr_mod sd_mod aic7xxx]
>
>I have all tools ok for compiling (modules compilation was ok...)
>
>Invoking make command in comedilib-0.7.19/ this is the out:
>
>[root_at_zeus comedilib-0.7.19]# make
>set -e;for i in lib demo comedi_calibrate testing comedi_config;do
>make -C $i ; done
>make[1]: Entering directory
>`/home/davide/lintools/labview/comedilib-0.7.19/lib'
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -fPIC -I../include -I. -c
>-o comedi.o comedi.c
>comedi.c: In function `initialize':
>comedi.c:48: warning: concatenation of string literals with
>__FUNCTION__ is deprecated
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -fPIC -I../include -I. -c
>-o timer.o timer.c
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -fPIC -I../include -I. -c
>-o sv.o sv.c
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -fPIC -I../include -I. -c
>-o range.o range.c
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -fPIC -I../include -I. -c
>-o ioctl.o ioctl.c
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -fPIC -I../include -I. -c
>-o filler.o filler.c
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -fPIC -I../include -I. -c
>-o timed.o timed.c
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -fPIC -I../include -I. -c
>-o error.o error.c
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -fPIC -I../include -I. -c
>-o dio.o dio.c
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -fPIC -I../include -I. -c
>-o data.o data.c
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -fPIC -I../include -I. -c
>-o get.o get.c
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -fPIC -I../include -I. -c
>-o cmd.o cmd.c
>cmd.c: In function `__generic_timed':
>cmd.c:99: warning: concatenation of string literals with __FUNCTION__
>is deprecated
>cmd.c:126: warning: concatenation of string literals with
>__FUNCTION__ is deprecated
>cmd.c:140: warning: concatenation of string literals with
>__FUNCTION__ is deprecated
>cmd.c:147: warning: concatenation of string literals with
>__FUNCTION__ is deprecated
>cmd.c:151: warning: concatenation of string literals with
>__FUNCTION__ is deprecated
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -fPIC -I../include -I. -c
>-o buffer.o buffer.c
>buffer.c: In function `comedi_set_buffer_size':
>buffer.c:34: warning: implicit declaration of function `memset'
>#gcc -shared -Wl,-soname,libcomedi.so,-T,version_script -o
>libcomedi.so. comedi.o timer.o sv.o range.o ioctl.o filler.o timed.o
>error.o dio.o data.o get.o cmd.o buffer.o -lm
>gcc -shared -Wl,-soname,libcomedi.so.0
>-Wl,--version-script,version_script -o libcomedi.so.0.7.19 comedi.o
>timer.o sv.o range.o ioctl.o filler.o timed.o error.o dio.o data.o
>get.o cmd.o buffer.o -lm
>ar rs libcomedi.a comedi.o timer.o sv.o range.o ioctl.o filler.o
>timed.o error.o dio.o data.o get.o cmd.o buffer.o
>ln -sf libcomedi.so.0.7.19 libcomedi.so
>ln -sf libcomedi.so.0.7.19 libcomedi.so.0
>make[1]: Leaving directory
>`/home/davide/lintools/labview/comedilib-0.7.19/lib'
>make[1]: Entering directory
>`/home/davide/lintools/labview/comedilib-0.7.19/demo'
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I ../include -I . -c -o
>tut1.o tut1.c
>gcc -o tut1 tut1.o ../lib/libcomedi.a -lm
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I ../include -I . -c -o
>tut2.o tut2.c
>gcc -o tut2 tut2.o ../lib/libcomedi.a -lm
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I ../include -I . -c -o
>inp.o inp.c
>inp.c: In function `main':
>inp.c:37: warning: implicit declaration of function `exit'
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I ../include -I . -c -o
>common.o common.c
>gcc -o inp common.o inp.o ../lib/libcomedi.a -lm
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I ../include -I . -c -o
>inpn.o inpn.c
>inpn.c: In function `main':
>inpn.c:44: warning: implicit declaration of function `exit'
>gcc -o inpn common.o inpn.o ../lib/libcomedi.a -lm
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I ../include -I . -c -o
>eeprom_dump.o eeprom_dump.c
>gcc -o eeprom_dump common.o eeprom_dump.o ../lib/libcomedi.a -lm
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I ../include -I . -c -o
>info.o info.c
>info.c: In function `help':
>info.c:19: warning: implicit declaration of function `exit'
>gcc -o info common.o info.o ../lib/libcomedi.a -lm
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I ../include -I . -c -o
>outp.o outp.c
>outp.c: In function `main':
>outp.c:37: warning: implicit declaration of function `exit'
>gcc -o outp common.o outp.o ../lib/libcomedi.a -lm
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I ../include -I . -c -o
>insn.o insn.c
>insn.c: In function `main':
>insn.c:55: warning: implicit declaration of function `exit'
>gcc -o insn common.o insn.o ../lib/libcomedi.a -lm
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I ../include -I . -c -o
>antialias.o antialias.c
>antialias.c: In function `main':
>antialias.c:55: warning: implicit declaration of function `exit'
>gcc -o antialias common.o antialias.o ../lib/libcomedi.a -lm
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I ../include -I . -c -o
>ao_waveform.o ao_waveform.c
>ao_waveform.c: In function `comedi_internal_trigger':
>ao_waveform.c:92: warning: implicit declaration of function `memset'
>ao_waveform.c: In function `main':
>ao_waveform.c:115: warning: unused variable `insn_data'
>gcc -o ao_waveform common.o ao_waveform.o ../lib/libcomedi.a -lm
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I ../include -I . -c -o
>dio.o dio.c
>dio.c: In function `main':
>dio.c:40: warning: implicit declaration of function `exit'
>dio.c:33: warning: unused variable `i'
>gcc -o dio common.o dio.o ../lib/libcomedi.a -lm
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I ../include -I . -c -o
>mmap.o mmap.c
>mmap.c: In function `main':
>mmap.c:49: warning: implicit declaration of function `exit'
>mmap.c: In function `prepare_cmd':
>mmap.c:135: warning: implicit declaration of function `memset'
>gcc -o mmap common.o mmap.o ../lib/libcomedi.a -lm
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I ../include -I . -c -o
>ledclock.o ledclock.c
>ledclock.c: In function `main':
>ledclock.c:136: warning: implicit declaration of function `exit'
>gcc -o ledclock common.o ledclock.o ../lib/libcomedi.a -lm
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I ../include -I . -c -o
>receiver.o receiver.c
>receiver.c: In function `main':
>receiver.c:57: warning: implicit declaration of function `exit'
>gcc -o receiver common.o receiver.o ../lib/libcomedi.a -lm
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I ../include -I . -c -o
>sigio.o sigio.c
>sigio.c: In function `main':
>sigio.c:90: warning: implicit declaration of function `exit'
>gcc -o sigio common.o sigio.o ../lib/libcomedi.a -lm
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I ../include -I . -c -o
>select.o select.c
>select.c: In function `main':
>select.c:62: warning: implicit declaration of function `exit'
>gcc -o select common.o select.o ../lib/libcomedi.a -lm
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I ../include -I . -c -o
>sender.o sender.c
>sender.c: In function `main':
>sender.c:48: warning: implicit declaration of function `exit'
>gcc -o sender common.o sender.o ../lib/libcomedi.a -lm
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I ../include -I . -c -o
>cmd.o cmd.c
>gcc -o cmd common.o cmd.o ../lib/libcomedi.a -lm
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I ../include -I . -c -o
>poll.o poll.c
>poll.c: In function `main':
>poll.c:62: warning: implicit declaration of function `exit'
>gcc -o poll common.o poll.o ../lib/libcomedi.a -lm
>make[1]: Leaving directory
>`/home/davide/lintools/labview/comedilib-0.7.19/demo'
>make[1]: Entering directory
>`/home/davide/lintools/labview/comedilib-0.7.19/comedi_calibrate'
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I../include -c -o
>comedi_calibrate.o comedi_calibrate.c
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I../include -c -o ni.o
>ni.c
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I../include -c -o cb.o
>cb.c
>gcc -Wall -Wstrict-prototypes -O2 -DI18N -I../include -c -o
>other.o other.c
>other.c: In function `comedi_nanodelay':
>other.c:29: warning: implicit declaration of function `memset'
>gcc -o comedi_calibrate comedi_calibrate.o ni.o cb.o other.o
>-L../lib/ -lcomedi -lm
>comedi_calibrate.o(.text+0xcb): In function `main':
>: undefined reference to `comedi_open'
>comedi_calibrate.o(.text+0x10c): In function `main':
>: undefined reference to `comedi_find_subdevice_by_type'
>comedi_calibrate.o(.text+0x125): In function `main':
>: undefined reference to `comedi_find_subdevice_by_type'
>comedi_calibrate.o(.text+0x13e): In function `main':
>: undefined reference to `comedi_find_subdevice_by_type'
>comedi_calibrate.o(.text+0x157): In function `main':
>: undefined reference to `comedi_find_subdevice_by_type'
>comedi_calibrate.o(.text+0x29b): In function `main':
>: undefined reference to `comedi_get_version_code'
>comedi_calibrate.o(.text+0x2b2): In function `main':
>: undefined reference to `comedi_get_version_code'
>comedi_calibrate.o(.text+0x2c6): In function `main':
>: undefined reference to `comedi_get_version_code'
>comedi_calibrate.o(.text+0x423): In function `main':
>: undefined reference to `comedi_get_board_name'
>comedi_calibrate.o(.text+0x43f): In function `main':
>: undefined reference to `comedi_get_driver_name'
>comedi_calibrate.o(.text+0x4ab): In function `set_target':
>: undefined reference to `comedi_get_range'
>comedi_calibrate.o(.text+0x4c5): In function `set_target':
>: undefined reference to `comedi_get_maxdata'
>comedi_calibrate.o(.text+0x4d6): In function `set_target':
>: undefined reference to `comedi_from_phys'
>comedi_calibrate.o(.text+0x4e7): In function `set_target':
>: undefined reference to `comedi_to_phys'
>comedi_calibrate.o(.text+0x5cc): In function `preobserve':
>: undefined reference to `comedi_do_insn'
>comedi_calibrate.o(.text+0x7ae): In function `postgain_cal':
>: undefined reference to `comedi_get_range'
>comedi_calibrate.o(.text+0x839): In function `postgain_cal':
>: undefined reference to `comedi_get_range'
>comedi_calibrate.o(.text+0x1346): In function `setup_caldacs':
>: undefined reference to `comedi_get_n_channels'
>comedi_calibrate.o(.text+0x13c1): In function `setup_caldacs':
>: undefined reference to `comedi_get_maxdata'
>comedi_calibrate.o(.text+0x14d9): In function `update_caldac':
>: undefined reference to `comedi_data_write'
>comedi_calibrate.o(.text+0x1b1d): In function `get_bipolar_lowgain':
>: undefined reference to `comedi_get_n_ranges'
>comedi_calibrate.o(.text+0x1b49): In function `get_bipolar_lowgain':
>: undefined reference to `comedi_get_range'
>comedi_calibrate.o(.text+0x1bbd): In function `get_bipolar_highgain':
>: undefined reference to `comedi_get_n_ranges'
>comedi_calibrate.o(.text+0x1be9): In function `get_bipolar_highgain':
>: undefined reference to `comedi_get_range'
>comedi_calibrate.o(.text+0x1c5d): In function `get_unipolar_lowgain':
>: undefined reference to `comedi_get_n_ranges'
>comedi_calibrate.o(.text+0x1c89): In function `get_unipolar_lowgain':
>: undefined reference to `comedi_get_range'
>comedi_calibrate.o(.text+0x1cf5): In function `read_eeprom':
>: undefined reference to `comedi_data_read'
>comedi_calibrate.o(.text+0x1e48): In function `new_sv_init':
>: undefined reference to `comedi_get_maxdata'
>comedi_calibrate.o(.text+0x1e5d): In function `new_sv_init':
>: undefined reference to `comedi_get_range'
>comedi_calibrate.o(.text+0x1ec6): In function `new_sv_measure':
>: undefined reference to `comedi_data_read_hint'
>comedi_calibrate.o(.text+0x1f00): In function `new_sv_measure':
>: undefined reference to `comedi_data_read_n'
>comedi_calibrate.o(.text+0x1f28): In function `new_sv_measure':
>: undefined reference to `comedi_to_phys'
>comedi_calibrate.o(.text+0x1f94): In function `new_sv_measure':
>: undefined reference to `comedi_to_phys'
>comedi_calibrate.o(.text+0x2039): In function `new_sv_measure_order':
>: undefined reference to `comedi_data_read_n'
>comedi_calibrate.o(.text+0x2061): In function `new_sv_measure_order':
>: undefined reference to `comedi_to_phys'
>comedi_calibrate.o(.text+0x20d2): In function `new_sv_measure_order':
>: undefined reference to `comedi_to_phys'
>cb.o(.text+0x1175): In function `actual_source_voltage':
>: undefined reference to `comedi_data_read'
>collect2: ld returned 1 exit status
>make[1]: *** [comedi_calibrate] Error 1
>make[1]: Leaving directory
>`/home/davide/lintools/labview/comedilib-0.7.19/comedi_calibrate'
>make: *** [subdirs] Error 2
>[root_at_zeus comedilib-0.7.19]#
>
>Any idea?
>
>Thanks in advance!
>
>Davide
>
>______________________________________________________________________
>Yahoo! Cellulari: loghi, suonerie, picture message per il tuo telefonino
>http://it.yahoo.com/mail_it/foot/?http://it.mobile.yahoo.com/index2002.html
>
>_______________________________________________
>comedi mailing list
>comedi_at_comedi.org
>https://cvs.comedi.org/cgi-bin/mailman/listinfo/comedi
>
>
>
--
Charles-Edouard Ruault
Idtect SA
http://www.idtect.com
+33-1-42-81-81-84
Received on 2003-05-09Z10:58:11