[avahi] Cross-compilation and Alternate Expat Location

Grant Erickson gerickson at nuovations.com
Tue Feb 5 16:07:04 PST 2008


Has anyone run into, and found a viable patch for, an issue when
cross-compiling Avahi 0.6.22 in which libtool insists on sourcing the local
libexpat.so rather than the one I tell it to find via LDFLAGS?

The configure invocation:

    cd $(objdir) && \
    $(CURDIR)/$(srcdir)/configure \
    CC=$(CC) AR=$(AR) RANLIB=$(RANLIB) STRIP=$(STRIP) \
    CPPFLAGS="-I$(resultdir)../expat/usr/include \
    -I$(resultdir)../gdbm/usr/include \
    -I$(resultdir)../libcap/usr/include" \
    LDFLAGS="-L$(resultdir)../expat/usr/lib \
    -L$(resultdir)../gdbm/usr/lib \
    -L$(resultdir)../libcap/usr/lib" \
    LIBDAEMON_CFLAGS=-I$(resultdir)../libdaemon/usr/include \
    LIBDAEMON_LIBS=-L$(resultdir)../libdaemon/usr/lib \
    --build=$(build) \
    --host=$(host) \
    --disable-dbus \
    --disable-glib \
    --disable-gobject \
    --disable-gtk \
    --disable-manpages \
    --disable-monodoc \
    --disable-python \
    --disable-qt3 \
    --disable-qt4 \
    --with-distro=none \
    --with-xml=expat \
    --prefix=/usr \
    --sysconfdir=/etc \
    --localstatedir=/var

Failing build line:

    Making all in avahi-daemon
    make[3]: Entering directory `/tmp/src/avahi/.build/avahi-daemon'
    /bin/bash ../libtool --tag=CC --mode=link ppc_4xx-gcc
-I/tmp/src/avahi/avahi-0.6.22 '-DDEBUG_TRAP=__asm__("int $3")'
-DAVAHI_DAEMON_RUNTIME_DIR=\"/var/run/avahi-daemon/\"
-DAVAHI_SOCKET=\"/var/run/avahi-daemon/socket\"
-DAVAHI_SERVICE_DIR=\"/etc/avahi/services\"
-DAVAHI_CONFIG_FILE=\"/etc/avahi/avahi-daemon.conf\"
-DAVAHI_HOSTS_FILE=\"/etc/avahi/hosts\"
-DAVAHI_DBUS_INTROSPECTION_DIR=\"/usr/share/avahi/introspection\"
-DAVAHI_CONFIG_DIR=\"/etc/avahi\" -g -O2 -Wall -W -Wextra -pedantic -pipe
-Wformat -Wold-style-definition -Wdeclaration-after-statement -Wfloat-equal
-Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes
-Wredundant-decls -Wmissing-noreturn -Wshadow -Wendif-labels -Wpointer-arith
-Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Winline -fPIC
-D_XOPEN_SOURCE=500 -D__EXTENSIONS__
-L/tmp/src/results/avahi/../expat/usr/lib
-L/tmp/src/results/avahi/../gdbm/usr/lib
-L/tmp/src/results/avahi/../libcap/usr/lib -o avahi-daemon
avahi_daemon-main.o avahi_daemon-simple-protocol.o
avahi_daemon-static-services.o avahi_daemon-static-hosts.o
avahi_daemon-ini-file-parser.o avahi_daemon-setproctitle.o
avahi_daemon-check-nss.o avahi_daemon-chroot.o avahi_daemon-caps.o
../avahi-common/libavahi-common.la ../avahi-core/libavahi-core.la
-L/tmp/src/results/avahi/../libdaemon/usr/lib -lexpat -lcap -ldl
    ppc_4xx-gcc -I/tmp/src/avahi/avahi-0.6.22 "-DDEBUG_TRAP=__asm__(\"int
\$3\")" -DAVAHI_DAEMON_RUNTIME_DIR=\"/var/run/avahi-daemon/\"
-DAVAHI_SOCKET=\"/var/run/avahi-daemon/socket\"
-DAVAHI_SERVICE_DIR=\"/etc/avahi/services\"
-DAVAHI_CONFIG_FILE=\"/etc/avahi/avahi-daemon.conf\"
-DAVAHI_HOSTS_FILE=\"/etc/avahi/hosts\"
-DAVAHI_DBUS_INTROSPECTION_DIR=\"/usr/share/avahi/introspection\"
-DAVAHI_CONFIG_DIR=\"/etc/avahi\" -g -O2 -Wall -W -Wextra -pedantic -pipe
-Wformat -Wold-style-definition -Wdeclaration-after-statement -Wfloat-equal
-Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes
-Wredundant-decls -Wmissing-noreturn -Wshadow -Wendif-labels -Wpointer-arith
-Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Winline -fPIC
-D_XOPEN_SOURCE=500 -D__EXTENSIONS__ -o .libs/avahi-daemon
avahi_daemon-main.o avahi_daemon-simple-protocol.o
avahi_daemon-static-services.o avahi_daemon-static-hosts.o
avahi_daemon-ini-file-parser.o avahi_daemon-setproctitle.o
avahi_daemon-check-nss.o avahi_daemon-chroot.o avahi_daemon-caps.o
-L/tmp/src/results/avahi/../expat/usr/lib
-L/tmp/src/results/avahi/../gdbm/usr/lib
-L/tmp/src/results/avahi/../libcap/usr/lib
../avahi-common/.libs/libavahi-common.so
../avahi-core/.libs/libavahi-core.so
-L/tmp/src/results/avahi/../libdaemon/usr/lib /usr/lib/libexpat.so -lcap
-ldl 
    /usr/lib/libexpat.so: could not read symbols: File in wrong format
    collect2: ld returned 1 exit status
    make[3]: *** [avahi-daemon] Error 1
    make[3]: Leaving directory `/tmp/src/avahi/.build/avahi-daemon'
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory `/tmp/src/avahi/.build'
    make[1]: *** [all] Error 2
    make[1]: Leaving directory `/tmp/src/avahi/.build'
    make: *** [build] Error 2

The most obvious potential problem was that
"/tmp/src/results/avahi/../expat/usr/lib" did not exist or contain the
desired libraries at the time of build or configuration; however, I have
verified that the directory and libraries are, in fact, there.

Regards,

Grant Erickson




More information about the avahi mailing list