On 03/07/2012 02:42 PM, David C. Rankin wrote: > On 03/07/2012 01:04 PM, David C. Rankin wrote: >> On 03/07/2012 11:08 AM, Serghei Amelian wrote: >>> On Wednesday 07 March 2012 18:55:51 David C. Rankin wrote: >>> [...] >>> >>>> LIBSANE_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 >>>> ' >>>> >>>> LIBSANE_LDFLAGS='-L/usr/lib >>>> -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu >>>> -Wl,-rpath,/usr/lib' >>>> >>>> LIBSANE_INCLUDES='' >>>> >>>> I have no idea how '-lsane-Wl' is ending up crammed together. Any >>>> thoughts from the gurus? >>> >>> cmake expects only a library list from sane-config. >>> >> >> Well, that could explain it :p >> >> That would also be consistent with the man page for sane-config: >> >> --libs Print the additional libraries that are necessary to link a SANE >> frontend to libsane. >> >> I'll sed those out and follow up with arch on the behavior of sane. What is >> the output of your: >> >> sane-config --libs >> >> ? >> > > Tim, all: > > net-snmp-config --libs includes NON library information which causes packages > built later that depend on it (eg: sane) to fail to link due to extraneous > library information. I opened a bug report with Arch: > > https://bugs.archlinux.org/task/28817 > Serghei, All, Looking at the concatenation, even if net-snmp-config included linker flags in the linker --libs string, the build should not have failed. Linking CXX shared library libkscan.so /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 The error above shows that the link would have succeeded if '-lsane' and '-Wl' were not concatenated together. The final part of the error was: collect2: ld returned 1 exit status make[2]: *** [libkscan/libkscan.so.1.0.0] Error 1 make[1]: *** [libkscan/CMakeFiles/kscan-shared.dir/all] Error 2 make: *** [all] Error 2 I don't know where the actual concatenation takes place after the CMakeLists.txt is read, but it looks like whatever takes place after: LINK kio-shared ${SANE_LIBRARIES} is where the concatenation problem arises. Where can I look at this logic? -- David C. Rankin, J.D.,P.E.