pulseaudio libpulse-simple.la

  • Hi,

    I've tried to do a clean build on today's master and got the following error:

    Code
    /usr/lib/librt.so: file not recognized: File format not recognized
    collect2: error: ld returned 1 exit status
    libtool:   error: error: relink 'libpulse-simple.la' with the above command before installing it

    Here is a more detailed log:

    My system is Gentoo Linux.

    Any help is appreciated.

  • Your error is here,

    Code
    /mnt/share/Projects/LibreELEC.tv/build.LibreELEC-WeTek_Core.arm-9.0-devel/toolchain/bin/../lib/gcc/armv7a-libreelec-linux-gnueabi/6.2.0/../../../../armv7a-libreelec-linux-gnueabi/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for -lpthread
    /usr/lib/librt.so: file not recognized: File format not recognized
    collect2: error: ld returned 1 exit status


    it is looking on the host system for some reason.

  • Hi,

    Thanks for replying :)

    I checked the mentioned file, my guess would be the prefix

    Code
    $ /home/js/Projects/LibreELEC.tv/build.LibreELEC-WeTek_Core.arm-9.0-devel/pulseaudio-10.0/configure --host=armv7a-libreelec-linux-gnueabi --build=x86_64-pc-linux-gnu --prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib --localstatedir=/var --disable-static --enable-shared --disable-silent-rules --disable-nls --enable-largefile --disable-rpath --enable-neon-opt --disable-x11 --disable-tests --disable-samplerate --disable-oss-output --disable-oss-wrapper --disable-coreaudio-output --enable-alsa --disable-esound --disable-solaris --disable-waveout --enable-glib2 --disable-gtk3 --disable-gconf --enable-avahi --disable-jack --disable-asyncns --disable-tcpwrap --disable-lirc --enable-dbus --disable-bluez4 --enable-bluez5 --disable-bluez5-ofono-headset --disable-bluez5-native-headset --enable-udev --with-udev-rules-dir=/usr/lib/udev/rules.d --disable-hal-compat --enable-ipv6 --enable-openssl --disable-xen --disable-orc --disable-manpages --disable-per-user-esound-socket --disable-default-build-tests --disable-legacy-database-entry-format --with-system-user=root --with-system-group=root --with-access-group=root --without-caps --without-fftw --without-speex --with-soxr --with-module-dir=/usr/lib/pulse
  • The technical answer would be that the cross compiler is trying to link against /usr/lib/libpthread.so which won't work, as the host libraries are for x86_64 and you are building for ARM. As mentioned, this doesn't happen on other distributions. One could argue that the toolchain should be able to handle this, but I think to find the root cause here you would need to be an expert in autoconf, a lot of time and it might involve black magic. Perhaps the linker could be patched to work around it.

    Edited once, last by escalade (May 2, 2017 at 9:45 AM).

  • I'm trying to solve the issue for me on Gentoo.

    This is a noob question but what do i edit in order to add arguments to the pulseaudio package specifically?

    BTW any doc or info regarding the dir tree of the code is welcome some of it is logical the rest i'm still figuring out.

    Thanks.

  • Can you post what you get by

    Code
    /home/js/Projects/LibreELEC.tv/build.LibreELEC-WeTek_Core.arm-9.0-devel/toolchain/bin/armv7a-libreelec-linux-gnueabi-ld --verbose | grep SEARCH
    /home/js/Projects/LibreELEC.tv/build.LibreELEC-WeTek_Core.arm-9.0-devel/toolchain/bin/armv7a-libreelec-linux-gnueabi-gcc -print-search-dirs