Quantcast
Channel: openSUSE Forums
Viewing all articles
Browse latest Browse all 40713

64-bit build (fwiw, VLC) incorrectly links 32bit-libs; help troubleshooting 'sys_lib_dlsearch_path'

$
0
0
I'm working on a native build of upstream VLC on an Opensuse 12.3/64 box; I'll eventually package it up in obs for my own use.


My desktop has nvidia drivers installed "The hard way". That install results in libGL installed as dual-arch:
Code:

    ls -al /usr/lib*/libGL.*
        -rw-r--r-- 1 root root  654 Jul  6 17:00 /usr/lib64/libGL.la
        lrwxrwxrwx 1 root root  10 Jul  6 17:00 /usr/lib64/libGL.so -> libGL.so.1*
        lrwxrwxrwx 1 root root  15 Jul  6 17:00 /usr/lib64/libGL.so.1 -> libGL.so.319.23*
        -rwxr-xr-x 1 root root 1.1M Jul  6 17:00 /usr/lib64/libGL.so.319.23*
        lrwxrwxrwx 1 root root  10 Jul  6 17:00 /usr/lib/libGL.so -> libGL.so.1*
        lrwxrwxrwx 1 root root  15 Jul  8 12:04 /usr/lib/libGL.so.1 -> libGL.so.319.23*
        -rwxr-xr-x 1 root root 965K Jul  6 17:00 /usr/lib/libGL.so.319.23*

If I do a simple build of VLC on/for X86_64:
Code:

    git clone git://git.videolan.org/vlc.git
    ./bootstrap
    ./configure \
      --host=x86_64-suse-linux-gnu \
      --build=x86_64-suse-linux-gnu \
      ...
    make

it fails at
Code:

        ...
        make[4]: Entering directory
        `/home/dev/vlc-master/modules/video_output'
          CCLD    libgl_plugin.la
        /usr/lib/libGL.so: could not read symbols: File in wrong format
        ...

It's grabbing the *wrong* libGL arch.


Checking
Code:

    cat /etc/ld.so.conf
        /usr/local/lib64
        /usr/lib64
        /usr/local/lib
        /usr/lib
        include /etc/ld.so.conf.d/*.conf
        # /lib64, /lib, /usr/lib64 and /usr/lib gets added
        # automatically by ldconfig after parsing this file.
        # So, they do not need to be listed.

the order should ne *lib64* first.


If I move the 32-bit libGL libs out of the way
Code:

    mv /usr/lib/libGL.* /home/temp/
then
Code:

    ./bootstrap  ( <-- an autoreconf script that has '--copy --force' on the autofoo files)
    ./configure \
      --host=x86_64-suse-linux-gnu \
      --build=x86_64-suse-linux-gnu \
      ...
    make

completes as expected, correctly linking the 64-bit /usr/lib64/libGL.* libs.


Checking immediatlely after ./configure, I *do* find this
Code:

    grep sys_lib_dlsearch_path_spec config.status
        sys_lib_dlsearch_path_spec='/lib /usr/lib /usr/local/lib64 /usr/lib64 /usr/local/lib /usr/lib /usr/lib64/xorg/modules'

Which, I *think* is causing of the actual `make` fail.


I've been having difficulty finding where the actual libpath problem *originates* in VLC source -- libtool.m4, ltmain.sh, configure.ac, etc. Reading through their sources, they do NOT call out opensuse & its dual-arch libpath's in any 'case)' clauses.


It's also possible that the problem is in Opensuse's "/usr/share/site/x86_64-unknown-linux-gnu", or other autofoo config.


My 1st question here is: what's the best approach do dealing with Opensuse-specific libpaths in general?


And, IDEALLY, anyone know of a specific workaround/fix for VLC sources?

Viewing all articles
Browse latest Browse all 40713

Trending Articles