Re: Errors while compiling comedilib-0.7.19

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