On 2020-02-05 19:47, Olaf Meeuwissen wrote:
Hi Rainer,

Dr Rainer Woitok writes:

Olaf,

On Friday, 2020-01-31 18:08:28 +0900, you wrote:

...
This shouldn't be anything to worry about but I've submitted an issue
for it.  You can find it at:

   https://gitlab.com/sane-project/backends/issues/235

If you could add distribution/version info as well as attach your
config.log and config.status there, that would be appreciated.
Didn't yet, but will do eventually.

...
[...] and will report back how it went.
Waiting, patiently ;-)
Well,  up to now "sane-backends" fails to compile here.  I compiled from
three different changesets, and all failed the same way.  I tried:

    - changeset  1942c5fd32a7 (by <[email protected]>, 2020-01-26
      10:56:34 +0000), the 1.0.29 pre-release changeset,

    - changeset  5aa523289f82 (by <[email protected]>, 2019-07-31
      20:39:43 +0900), tagged 1.0.28,

    - changeset 20be9af3d7f3  (by <[email protected]>, 2020-02-02 23:16:29
      +0000), which as of today was the current tip of the repository.

The problem was consistently the same:

/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: 
./.libs/libpixma.a(libpixma_la-pixma.o): in function `pixma_jpeg_read_header':
/home/rainer/repo/sane-backends/backend/pixma/pixma.c:1311: undefined reference 
to `sanei_jpeg_jinit_write_ppm'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:4001: libsane.la] Error 1
make[2]: Leaving directory '/home/rainer/repo/sane-backends/backend'
make[1]: *** [Makefile:3274: all] Error 2
make[1]: Leaving directory '/home/rainer/repo/sane-backends/backend'
make: *** [Makefile:596: all-recursive] Error 1

But "sanei_jpeg_jinit_write_ppm" is defined in file "sanei/sanei_jpeg.c"
It's only defined if HAVE_LIBJPEG is defined.

and according to my build log  this file has been  compiled successfully
farther up:

depbase=`echo sanei_jpeg.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include/sane 
 -D_REENTRANT -DPATH_SANE_CONFIG_DIR=/home/rainer/etc/sane.d      
-DPATH_SANE_DATA_DIR=/home/rainer/share         
-DPATH_SANE_LOCK_DIR=/home/rainer/var/lock/sane         -DV_MAJOR=1 -DV_MINOR=0 -I. -I. 
-I../include -I../include -I/usr/include/libusb-1.0  -I/usr/include/libxml2   -Wall 
-Wextra -pedantic -g -O2 -MT sanei_jpeg.lo -MD -MP -MF $depbase.Tpo -c -o sanei_jpeg.lo 
sanei_jpeg.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../include/sane -D_REENTRANT 
-DPATH_SANE_CONFIG_DIR=/home/rainer/etc/sane.d 
-DPATH_SANE_DATA_DIR=/home/rainer/share 
-DPATH_SANE_LOCK_DIR=/home/rainer/var/lock/sane -DV_MAJOR=1 -DV_MINOR=0 -I. -I. 
-I../include -I../include -I/usr/include/libusb-1.0 -I/usr/include/libxml2 
-Wall -Wextra -pedantic -g -O2 -MT sanei_jpeg.lo -MD -MP -MF 
.deps/sanei_jpeg.Tpo -c sanei_jpeg.c  -fPIC -DPIC -o .libs/sanei_jpeg.o
/bin/sh ../libtool  --tag=CC   --mode=link gcc -Wall -Wextra -pedantic -g -O2   
-o libsanei.la  sanei_ab306.lo sanei_constrain_value.lo sanei_init_debug.lo 
sanei_net.lo sanei_wire.lo sanei_codec_ascii.lo sanei_codec_bin.lo 
sanei_scsi.lo sanei_config.lo sanei_config2.lo sanei_pio.lo sanei_pa4s2.lo 
sanei_auth.lo sanei_usb.lo sanei_thread.lo sanei_pv8630.lo sanei_pp.lo 
sanei_lm983x.lo sanei_access.lo sanei_tcp.lo sanei_udp.lo sanei_magic.lo 
sanei_ir.lo sanei_jpeg.lo
libtool: link: ar cru .libs/libsanei.a .libs/sanei_ab306.o 
.libs/sanei_constrain_value.o .libs/sanei_init_debug.o .libs/sanei_net.o 
.libs/sanei_wire.o .libs/sanei_codec_ascii.o .libs/sanei_codec_bin.o 
.libs/sanei_scsi.o .libs/sanei_config.o .libs/sanei_config2.o .libs/sanei_pio.o 
.libs/sanei_pa4s2.o .libs/sanei_auth.o .libs/sanei_usb.o .libs/sanei_thread.o 
.libs/sanei_pv8630.o .libs/sanei_pp.o .libs/sanei_lm983x.o .libs/sanei_access.o 
.libs/sanei_tcp.o .libs/sanei_udp.o .libs/sanei_magic.o .libs/sanei_ir.o 
.libs/sanei_jpeg.o
libtool: link: ranlib .libs/libsanei.a
libtool: link: ( cd ".libs" && rm -f "libsanei.la" && ln -s "../libsanei.la" 
"libsanei.la" )
make[1]: Leaving directory '/home/rainer/repo/sane-backends/sanei'
So, if HAVE_LIBJPEG is not defined (check include/sane/config.h), that
compiled sanei_jpeg.lo is basically empty.

Assuming it is not defined ...

Then I don't understand is why `make` thinks the pixma backend should be
built when HAVE_LIBJPEG is undefined.  Its compilation should have been
disabled by `configure` and shouldn't be listed in BACKEND_LIBS_ENABLED
in backend/Makefile.
I'm not sure what's going on either. It's building fine on my gentoo system.

I tried uninstalling libjpeg (the libjpeg-turbo package) to force HAVE_LIBJPEG to be undefined and building again. It completes building successfully, but does not build the pixma backend. Or, if I force it to build only the pixma backend:

BACKENDS=pixma ./configure

configure fails with an error about missing libjpeg. So that is working the way it should.

I also tried removing libjpeg after running configure, but before running make. That fails with a compilation error in sanei_jpeg.c.

In short, I was unable to reproduce the failure the Rainer had.

What's going on here?   I don't think I'm missing any dependencies, bec-
ause I didn't have any problems  building from Bruce's sane-backends ov-
erlay.
Don't know, really.  Can you re-run `configure` and provide the
`config.status` and `config.log` files?

Also, what options are you passing in to ./configure ?

Bruce


Reply via email to