SANE 1.0.2 DLL problems

From: Benjamin Low (ben@snrc.uow.edu.au)
Date: Wed Jun 28 2000 - 17:03:02 PDT

  • Next message: abel deuring: "Re: scsi command queuing"

    [Is the sane-devel list operating ok? I've sent a couple of messages
    which haven't appeared after 2-3 days - I notice others appear to have
    similar problems...]

    I've hit a snag running SANE 1.0.2 - I get indefined symbols when the
    backends are loaded.

    I've a Debian 2.1, linux 2.2.16 machine (w/ 2.4.0 USB backport), driving
    an Epson 610 (USB) scanner. I am using Karl Heinz's
    sane_epson_20000613.tar.gz backend in place of the 1.0.2 version. Karl
    has been of great help in getting the USB side happening, though I
    believe my current problem is sane-specfic (it happens for all backends,
    incl. pnm).

    Configure (with no options), make and make install succeeds (no errors,
    though I do get a bunch of warnings in most of the 'backend' drivers
    (unused variables and the like, nothing obviously serious)).

    $ cat /usr/local/etc/sane.d/dll.conf
    net
    epson
    pnm

    $ ls -l /usr/local/lib/sane/libsane.so.1
    lrwxrwxrwx 1 root staff 20 Jun 28 09:21 libsane.so.1 ->
    libsane-pnm.so.1.0.2*

    $ scanimage -L
    $
       i.e. nothing, not even the pnm test device

    $ SANE_DEBUG_DLL=128 scanimage -L
    [sanei_init_debug]: Setting debug level of dll to 128.
    [dll] adding backend net
    [dll] adding backend epson
    [dll] adding backend pnm
    [dll] loading backend pnm
    [dll] dlopen()ing `/usr/local/lib/sane/libsane-pnm.so.1'
    [dll] dlopen() failed (/usr/local/lib/sane/libsane-pnm.so.1: undefined
    symbol: sanei_debug_pnm)
    [dll] loading backend epson
    [dll] dlopen()ing `/usr/local/lib/sane/libsane-epson.so.1'
    [dll] dlopen() failed (/usr/local/lib/sane/libsane-epson.so.1: undefined
    symbol: sanei_scsi_max_request_size)
    [dll] loading backend net
    [dll] dlopen()ing `/usr/local/lib/sane/libsane-net.so.1'
    [dll] dlopen() failed (/usr/local/lib/sane/libsane-net.so.1: undefined
    symbol: sanei_w_start_reply)
    [dll] exiting
    [dll] calling backend `pnm's exit function
    [dll] call to unsupported backend operation
    [dll] calling backend `epson's exit function
    [dll] call to unsupported backend operation
    [dll] calling backend `net's exit function
    [dll] call to unsupported backend operation

    For what it's worth, I've tried configure --disable-shared with little
    change (the backends still fail to initialise - I can provide more info
    if reqd).

    Looking at the undefined symbols from above, in /usr/local/lib/sane:
    $ nm libsane-pnm.so.1 | grep sanei_debug_pnm
    00004298 B sanei_debug_pnm

    $ nm libsane-epson.so.1 | grep sanei_scsi_max_request_size
    000125d4 D sanei_scsi_max_request_size

    $ nm libsane-net.so.1 | grep sanei_w_start_reply
    00003f60 T sanei_w_start_reply

    As far I as I understand how dlls work (which is not much), this means
    the symbols *are* present, yes? Though I don't know what the
    implications of nm's B, D and T codes are...

    Does anyone know of any good documentation on how DLLs (are meant to :-)
    work?

    I'm more than happy to provide further info as required,

    Regards,

    Ben Low

    --
    Source code, list archive, and docs: http://www.mostang.com/sane/
    To unsubscribe: echo unsubscribe sane-devel | mail majordomo@mostang.com
    



    This archive was generated by hypermail 2b29 : Wed Jun 28 2000 - 16:53:00 PDT