[sane-devel] compile problems with scanbd: undefined reference to symbol 'pthread_sigmask@@GLIBC_2.2.5'

Wilhelm wilhelm.meier at fh-kl.de
Thu Jan 3 09:08:50 UTC 2013


Hi Dominik,

Am 02.01.2013 20:45, schrieb Dominik Kopp:
> Hi,
>
> I'm trying to complile scanbd inside VirtualBox (host/client both openSUSE
> 12.2 64-bit) but I have no success.
>
> The error message during make is:
> /usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld:
> dbus.o: undefined reference to symbol 'pthread_sigmask@@GLIBC_2.2.5'
>
>
> Here are my executed commands with the (hopefully) important parts of the
> output messages:
>
> dom at linux-8k4r:~> svn co https://scanbd.svn.sourceforge.net/svnroot/scanbd/
> ...
> Ausgecheckt, Revision 132.
>
> dom at linux-8k4r:~/scanbd/trunk> cd scanbd
> dom at linux-8k4r:~/scanbd/trunk> cd trunk
> dom at linux-8k4r:~/scanbd/trunk> ./configure
> ...
> checking pkg-config is at least version 0.9.0... yes
> checking for CONFUSE... yes
> checking for DBUS... yes
> checking for UDEV... yes
> checking for SANE... no
> checking for sane-config... sane-config
> configure: creating ./config.status
> config.status: creating Makefile
> config.status: creating src/scanbd/Makefile
> ...
>
>
> dom at linux-8k4r:~/scanbd/trunk> make
>   cd . && /bin/sh /home/dom/scanbd/trunk/missing --run automake-1.11 --
> foreign
> /home/dom/scanbd/trunk/missing: Zeile 52: automake-1.11: Kommando nicht
> gefunden.
> WARNING: `automake-1.11' is missing on your system.  You should only need it
> if
>           you modified `Makefile.am', `acinclude.m4' or `configure.ac'.
>           You might want to install the `Automake' and `Perl' packages.
>           Grab them from any GNU archive site.
> CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /home/dom/scanbd/trunk/missing
> --run autoconf
> aclocal.m4:17: warning: this file was generated for autoconf 2.68.
> You have another version of autoconf.  It may work, but is not guaranteed
> to.
> If you have problems, you may need to regenerate the build system entirely.
> To do so, use the procedure documented by the package, typically
> `autoreconf'.
> /bin/sh ./config.status --recheck
> running CONFIG_SHELL=/bin/sh /bin/sh ./configure --no-create --no-recursion
> configure: loading site script /usr/share/site/x86_64-unknown-linux-gnu
> checking for a BSD-compatible install... /usr/bin/install -c
> checking whether build environment is sane... yes
> checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
> ...
>
> gcc -DPACKAGE_NAME=\"scanbd\" -DPACKAGE_TARNAME=\"scanbd\" -
> DPACKAGE_VERSION=\"1.2.1\" -DPACKAGE_STRING=\"scanbd\ 1.2.1\" -
> DPACKAGE_BUGREPORT=\"wilhelm.meier at fh-kl.de\" -DPACKAGE_URL=\"\" -
> DPACKAGE=\"scanbd\" -DVERSION=\"1.2.1\" -DSTDC_HEADERS=1 -
> DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1
> -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -
> DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_ALARM=1 -
> DHAVE_DUP2=1 -DHAVE_FTRUNCATE=1 -DHAVE_GETCWD=1 -DHAVE_MEMSET=1 -
> DHAVE_PUTENV=1 -DHAVE_REGCOMP=1 -DHAVE_STRDUP=1 -DHAVE_STRERROR=1 -
> DHAVE_ARPA_INET_H=1 -DHAVE_FCNTL_H=1 -DHAVE_LIMITS_H=1 -DHAVE_NETINET_IN_H=1
> -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYSLOG_H=1 -
> DHAVE_UNISTD_H=1 -DHAVE_CHOWN=1 -DHAVE_FORK=1 -DHAVE_VFORK=1 -
> DHAVE_WORKING_VFORK=1 -DHAVE_WORKING_FORK=1 -DHAVE_STDLIB_H=1 -
> DHAVE_MALLOC=1 -DHAVE__BOOL=1 -DHAVE_STDBOOL_H=1 -DHAVE_LINUX_LIMITS_H=1 -
> DHAVE_UTMP_H=1 -DHAVE_UTMPX_H=1 -DUSE_UDEV=1 -DUSE_SANE=1 -I.    -Wall -
> Wextra -
> std=c99 -g  -Werror   -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include
> -DSCANBUTTOND_LIB_DIR=\"/usr/local/lib64/scanbd/scanbuttond/backends/\" -
> DSCANBD_CFG_DIR=\"/usr/local/etc/scanbd/\"   -g -O2 -MT sane.o -MD -MP -MF
> .deps/sane.Tpo -c -o sane.o sane.c
> mv -f .deps/sane.Tpo .deps/sane.Po
> /bin/sh ../../libtool --tag=CC   --mode=link gcc -Wall -Wextra -std=c99 -g
> -Werror   -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include    -
> DSCANBUTTOND_LIB_DIR=\"/usr/local/lib64/scanbd/scanbuttond/backends/\" -
> DSCANBD_CFG_DIR=\"/usr/local/etc/scanbd/\"   -g -O2  -lconfuse   -ludev -lrt
> -ldbus-1     -rdynamic -lsane  -L/usr/lib64 -lnetsnmp -lcrypto -lm -ldl  -lm
> -ljpeg  -lgphoto2 -lgphoto2_port -lm -lexif       -lusb-1.0       -o scanbd
> scanbd.o daemonize.o dbus.o udev.o slog.o sane.o   -ldl
> libtool: link: gcc -Wall -Wextra -std=c99 -g -Werror -I/usr/include/dbus-1.0
> -I/usr/lib64/dbus-1.0/include -
> DSCANBUTTOND_LIB_DIR=\"/usr/local/lib64/scanbd/scanbuttond/backends/\" -
> DSCANBD_CFG_DIR=\"/usr/local/etc/scanbd/\" -g -O2 -rdynamic -o scanbd
> scanbd.o daemonize.o dbus.o udev.o slog.o sane.o  /usr/lib64/libconfuse.so -
> ludev -lrt -ldbus-1 -lsane -L/usr/lib64 /usr/lib64/libnetsnmp.so -lcrypto -
> ljpeg -lgphoto2 -lgphoto2_port -lm -lexif -lusb-1.0 -ldl
> /usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld:
> dbus.o: undefined reference to symbol 'pthread_sigmask@@GLIBC_2.2.5'
> /usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld:
> note: 'pthread_sigmask@@GLIBC_2.2.5' is defined in DSO
> /lib64/libpthread.so.0 so try adding it to the linker command line
> /lib64/libpthread.so.0: could not read symbols: Invalid operation
> collect2: error: ld returned 1 exit status
> make[1]: *** [scanbd] Fehler 1
> make[1]: Leaving directory `/home/dom/scanbd/trunk/src/scanbd'
> make: *** [all-recursive] Fehler 1

looks like -lpthread is missing on openSUSE. Do you mind trying to 
compile with the Makefile.simple instead of configure?

As safer aproach would be to use scanbd-1.2.1 instead of trunk.


-- 
Wilhelm


-- 
Wilhelm




More information about the sane-devel mailing list