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