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:
If I do a simple build of VLC on/for X86_64:
it fails at
It's grabbing the *wrong* libGL arch.
Checking
the order should ne *lib64* first.
If I move the 32-bit libGL libs out of the way
then
completes as expected, correctly linking the 64-bit /usr/lib64/libGL.* libs.
Checking immediatlely after ./configure, I *do* find this
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?
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*
Code:
git clone git://git.videolan.org/vlc.git
./bootstrap
./configure \
--host=x86_64-suse-linux-gnu \
--build=x86_64-suse-linux-gnu \
...
make
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
...
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.
If I move the 32-bit libGL libs out of the way
Code:
mv /usr/lib/libGL.* /home/temp/
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
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'
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?