[arch-general] sane - 'sane-config --libs' returns NON library information causing some CMake builds to fail - bug or feature?

David C. Rankin drankinatty at suddenlinkmail.com
Wed Mar 7 14:52:39 EST 2012


Guys,

  Ran into a big problem with sane 1.0.22-6 causing builds to fail due to the
return of 'sane-config --libs' returning non-library flags which results in
CMake botching the link config. From the sane-config man page:

--libs  Print the additional libraries that are necessary to link a SANE
frontend to libsane.

  Currently, on arch, 'sane-config --libs' returns:

10:51 providence:~/bld/david> sane-config --libs
-lsane  -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu -L/usr/lib
-lnetsnmp -lcrypto -lm -ldl -lv4l1   -lm -ltiff -ljpeg  -lgphoto2 -lgphoto2_port
-lm -lexif -lusb     -lavahi-common -lavahi-client    -lusb

  I don't know exactly why (I presume it has to do with the interpretation of
the '--' information by CMake), but it results in run-together link strings:

<snip>
CMakeFiles/kscan-shared.dir/imgscaninfo.cpp.o -L/opt/trinity/lib -L/opt/tqt3/lib
/opt/trinity/lib/libkio.so.4.2.0
-lsane-Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu-L/usr/lib
-lnetsnmp -lcrypto -lm -ldl -lv4l1 -ltiff -ljpeg -lgphoto2 -lgphoto2_port -lexif
-lusb -lavahi-common -lavahi-client /opt/trinity/lib/libtdeui.so.4.2.0
-lfreetype -lfontconfig /opt/trinity/lib/libtdesu.so.4.2.0 -lutil
/opt/trinity/lib/libkwalletclient.so.1.0.1 /opt/trinity/lib/libtdecore.so.4.2.0
/opt/trinity/lib/libDCOP.so.4.2.0 /opt/trinity/lib/libtdefx.so.4.2.0 -ltqt
-ltqt-mt -lXrender -lX11 -lz -lidn -lXcomposite -lICE -lSM
-Wl,-rpath,/opt/trinity/lib:/opt/tqt3/lib:

/usr/bin/ld: cannot find
-lsane-Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu-L/usr/lib
collect2: ld returned 1 exit status

  Here the problem is the run-together: '-lsane-Wl'. What I need to know is this
a "bug --or-- feature" on arch? Looking at the current sane in extra, this
behavior isn't something that arch is configuring or patching. However, the
string returned by sane-config --libs is the makepkg.conf string for $LDFLAGS
plus the lib information for sane...

  What say the experts?

-- 
David C. Rankin, J.D.,P.E.


More information about the arch-general mailing list