[sane-devel] Forcing local getopt (avision, SCSI, wait_4_lamp)

Andy Bennett andyjpb at ashurst.eu.org
Sun Oct 14 23:09:19 BST 2018


Hi,

Sorry for the top post!
Here's an update on my progress. I've managed to get a build but there seem 
to be some runtime linking issues.


I've included the lib/getopt.c and lib/getopt1.c code with #include 
directives in frontend/scanimage.c, frontend/saned.c and tools/sane-desc.c.

This has allowed me to produce a build that completes without error. 
However, when I run the resulting execuables they do not work.

scanimage bombs out immediately. saned bombs out when scanimage connects to 
it across the network.

Both give an error similar to this:

-----
scanimage: rld: Fatal Error: attempted access to unresolvable symbol in 
.../libsane.so.1: sane_dll_init
-----

If I configure with --disable-shared --enable-static and rebuild then the 
build fails with the same symbols being unresolvable.


Grepping the source reveals that sane_dll_init does not appear anywhere 
either as a declaration or a reference.

Does anyone know what's going on here?




> I have an HP ScanJet 7400c that has dual USB1 and SCSI 
> interfaces. When I use the USB1 interface on my modern Linux 
> system it overruns the buffer several times on each page. This 
> causes the scanner to stop, reposition itself and carry on. This 
> is really slow.
>
> I am trying to work out whether the scanner's SCSI bus has 
> enough bandwidth to complete the scan without overflowing the 
> buffer. The only machine I currently have with SCSI is an SGI O2 
> running IRIX. I have a binary copy of 1.0.19 for this machine 
> and I've managed to rebuild working binaries from the 1.0.19 
> source with the toolchain that I'm using
>
> 1.0.19 doesn't seem to work with the 7400c. The avision backend 
> gets stuck in wait_4_lamp and eventually gives up after 90 
> tries. During this time the lamp is actually on! In the git tree 
> I can see a later patch for 'avision.c: Recognize "backlight on" 
> status' and quite a lot of other fixes which are probably worth 
> having.
>
>
> Therefore, I'm trying to build the latest git on IRIX 6.5.30 
> with MIPSpro 7.4.4 and gmake. This platform has an ancient 
> libpng and doesn't have GNU getopt_long. At least MIPSpro 7.4.4 
> supports c99!
>
> I end up with this in include/sane/config.h after configure:
>
> -----
> #define HAVE_GETOPT_H 1
> ...
> /* 'undef HAVE_GETOPT_LONG */
> ...
> #define HAVE_LIBPNG 1
> -----
>
>
> I can stop it trying to compile against the PNG headers by 
> removing HAVE_LIBPNG by hand before running gmake. Is there 
> something I can pass to configure that will do that 
> automatically?
>
>
> The getopt problem is more difficult. frontend/scanimage.c does 
> not try to link against the code from lib/getopt.c or 
> lib/getopt1.c and when I go into the lib/ directory the code 
> does not even appear to have been built.
>
> Is there a way I can force the configuration to build and link 
> against the sane-backends supplied getopt code?
>
> I've tried moving /usr/include/getopt.h aside but then 
> configure fails when testing whether the C compiler can produce 
> executables so I really need a way to change the sane-backends 
> tree to do it.
>
>
>
> Thanks for any help you can offer!
>
>
>
>
> Regards,
> @ndy
>

-- 
Regards,
@ndy

-- 
andyjpb at ashurst.eu.org
http://www.ashurst.eu.org/
0x7EBA75FF



More information about the sane-devel mailing list