#206 closed defect (fixed)
reverse order path declaration in configure
Reported by: | Owned by: | reimar | |
---|---|---|---|
Priority: | very important | Component: | vo |
Version: | HEAD | Severity: | major |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Reproduced by developer: | no | Analyzed by developer: | no |
Description
No xv output enabled by default when compiling on x86_64 architecture
in the configure script a line 3376 :
for I in /usr/X11R6/lib /usr/lib/X11R6 /usr/X11/lib /usr/lib32 /usr/openwin/lib
/usr/X11R6/lib64 /usr/lib ; do
should be like :
for I in /usr/X11R6/lib64 /usr/lib64 /usr/lib/X11R6 /usr/X11/lib /usr/lib32
/usr/openwin/lib /usr/X11R6/lib /usr/lib ; do
To make sure it takes the 64bit related paths first when found on the system
(meaning running on a 64bit system).
Attachments (2)
Change History (20)
comment:1 by , 20 years ago
comment:2 by , 20 years ago
Version: | 1.0pre6 → CVS |
---|
comment:3 by , 20 years ago
Owner: | changed from | to
---|
comment:4 by , 20 years ago
I experienced that problem already myself but I did not have time to play
around with 64 bit (esp. as SuSE is the only 64bit OS I have available and I
don't like it too much).
Your fix is wrong as you then can't compile MPlayer as 32bit app on a 64 bit
system (useful if you need binary codecs).
Try the attached patch instead.
comment:5 by , 20 years ago
Your fix is wrong as you then can't compile MPlayer as 32bit app on a 64 bit
system (useful if you need binary codecs).
Try the attached patch instead.
I don't understand very well what binary codecs you're talking about, because
anyway the win32 dll support is out of the question :
"NOTE: Win32 codec DLLs are not supported on your CPU (x86_64) or your
operating system (Linux). You may encounter a few files that cannot
be played due to missing open source video/audio codec support."
Can you tell me some examples ?
Here are the results of the configure before and after patching.
Btw, could you look at the bug #212 ? It's also related to x86_64 architecture.
before
...
Checking for X11 headers presence ... yes (using /usr/X11R6/include)
Checking for X11 libs presence ... yes (using /usr/X11R6/lib)
...
Enabled optional drivers:
Input: ftp network tv-v4l2 tv-v4l edl tv matroska cdda mpdvdkit2 vcd smb
Codecs: libdv libavcodec faad2(internal) libmpeg2 liba52 mp3lib libtheora
libvorbis libmad gif
Audio output: alsa esd arts oss sdl mpegpes(file)
Video output: sdl gif89a md5sum pnm jpeg png mpegpes(file) tga
Audio filters:
Disabled optional drivers:
Input: tv-bsdbt848 live.com dvdread dvb
Codecs: qtx opendivx x264 xvid real xanim dshow/dmo win32 libdts toolame liblzo
Audio output: sgi sun jack polyp dxr2 nas dsound win32 macosx
Video output: xvidix winvidix cvidix bl zr zr2 dxr3 dxr2 directx vesa fbdev
svga caca aa ggi xmga mga opengl dga xvmc xv x11 directfb tdfx_vid tdfxfb 3dfx
quartz
Audio filters: ladspa
after
...
Checking for X11 headers presence ... yes (using /usr/X11R6/include)
Checking for working X11 libs ... yes (using /usr/X11R6/lib64)
...
Enabled optional drivers:
Input: ftp network tv-v4l2 tv-v4l edl tv matroska cdda mpdvdkit2 vcd smb
Codecs: libdv libavcodec faad2(internal) libmpeg2 liba52 mp3lib libtheora
libvorbis libmad gif
Audio output: alsa esd arts oss sdl mpegpes(file)
Video output: sdl gif89a md5sum pnm jpeg png mpegpes(file) opengl dga xv x11
xover tga
Audio filters:
Disabled optional drivers:
Input: tv-bsdbt848 live.com dvdread dvb
Codecs: qtx opendivx x264 xvid real xanim dshow/dmo win32 libdts toolame liblzo
Audio output: sgi sun jack polyp dxr2 nas dsound win32 macosx
Video output: xvidix winvidix cvidix bl zr zr2 dxr3 dxr2 directx vesa fbdev
svga caca aa ggi xmga mga xvmc directfb tdfx_vid tdfxfb 3dfx quartz
Audio filters: ladspa
comment:6 by , 20 years ago
(In reply to comment #3)
I don't understand very well what binary codecs you're talking about, because
anyway the win32 dll support is out of the question :
"NOTE: Win32 codec DLLs are not supported on your CPU (x86_64) or your
operating system (Linux). You may encounter a few files that cannot
be played due to missing open source video/audio codec support."
If you compile it as a 32 bit application they should work just fine. And the
linux binaries for e.g. Real should definitly work then.
comment:7 by , 20 years ago
(In reply to comment #4)
If you compile it as a 32 bit application they should work just fine. And the
linux binaries for e.g. Real should definitly work then.
Can you tell me the parameters to give at ./configure time ?
I'll try it right now
comment:8 by , 20 years ago
(In reply to comment #5)
Can you tell me the parameters to give at ./configure time ?
I'll try it right now
Never tried it myself. You must specify the CFLAGS yourself and they must
include -m32.
CFLAGS=-O4 -march=athlon-xp -mtune=athlon-xp -pipe -ffast-math
-fomit-frame-pointer -m32 ./configure
might work (though when I suggested it to somebody on the -users ML it didn't work)
by , 20 years ago
Attachment: | declaring_athlonxp_on_AMD64.txt added |
---|
trying to compile in 32bit format on a x86_64
comment:9 by , 20 years ago
comment:10 by , 20 years ago
here's the result of
export CFLAGS="-O4 -march=athlon-xp -mtune=athlon-xp -pipe -ffast-math
-fomit-frame-pointer -m32"
./configure
doesn't work tough, but could show interesting things
comment:11 by , 20 years ago
(In reply to comment #8)
In fact, the main thing that will make very troublesome (and perhaps impossible)
to compile in 32bit on a x86_64 is that the libs in /usr/lib64 and particuliary
in /usr/X11R6/lib64 must be used.
Can a 32bit program compile cleanly with it ?
In the tests I did, seems not happy about this.
comment:12 by , 20 years ago
(In reply to comment #9)
In fact, the main thing that will make very troublesome (and perhaps impossible)
to compile in 32bit on a x86_64 is that the libs in /usr/lib64 and particuliary
in /usr/X11R6/lib64 must be used.
Can a 32bit program compile cleanly with it ?
Of course not. But the only point of having a lib64 dir is that you have the 32
bit libs in the lib dir! This construct still is stupid and SuSE at least in 9.1
managed to completely break things but it can work. I managed to do it and the
binary codecs worked. I had to use the patch I just sent the -dev-eng list and
had to create a lot of links though, because they broke it (e.g. they forgot to
make a link libgtk.so -> libgtk-1.2.so for the 32 bit libs)
comment:13 by , 20 years ago
(In reply to comment #10)
I made some more tests, here are the results
export CFLAGS="-O4 -march=athlon-xp -mtune=athlon-xp -pipe -ffast-math
-fomit-frame-pointer -m32"
./configure --with-x11libdir=/usr/X11R6/lib/
Enabled optional drivers:
Input: ftp network tv-v4l2 tv-v4l edl tv matroska cdda mpdvdkit2 vcd smb
Codecs: qtx libavcodec real dshow/dmo win32 faad2(internal) libmpeg2 liba52
mp3lib libvorbis
Audio output: oss mpegpes(file)
Video output: xvidix cvidix vesa md5sum pnm mpegpes(file) opengl dga xv x11
xover tga
Audio filters:
Disabled optional drivers:
Input: tv-bsdbt848 live.com dvdread dvb
Codecs: opendivx x264 xvid libdv amr_wb amr_nb xanim libdts libtheora
toolame libmad liblzo gif
Audio output: sgi sun alsa jack polyp esd arts dxr2 nas dsound win32 sdl macosx
Video output: winvidix bl zr zr2 dxr3 dxr2 directx sdl gif89a jpeg png fbdev
svga caca aa ggi xmga mga xvmc directfb tdfx_vid tdfxfb 3dfx quartz
Audio filters: ladspa
the compile fails with
wine/debugtools.h:67: warning: useless keyword or type name in empty declaration
wine/debugtools.h:67: warning: empty declaration
cc -I. -I.. -I../libvo -I../../libvo -I/usr/X11R6/include -fno-PIC -O4
-march=athlon-xp -mtune=athlon-xp -pipe -ffast-math -fomit-frame-pointer -m32
-D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -U_FILE_OFFSET_BITS
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -DMPLAYER -DWINE -c afl.c
cc -I. -I.. -I../libvo -I../../libvo -I/usr/X11R6/include -fno-PIC -O4
-march=athlon-xp -mtune=athlon-xp -pipe -ffast-math -fomit-frame-pointer -m32
-D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -U_FILE_OFFSET_BITS
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -DMPLAYER -DWINE -c vfl.c
cc -c -o wrapper.o wrapper.S
wrapper.S: Assembler messages:
wrapper.S:25: Error: suffix or operands invalid for `pusha'
wrapper.S:28: Error: suffix or operands invalid for `push'
wrapper.S:32: Error: suffix or operands invalid for `push'
wrapper.S:34: Error: suffix or operands invalid for `push'
wrapper.S:39: Error: suffix or operands invalid for `push'
wrapper.S:40: Error: suffix or operands invalid for `push'
wrapper.S:49: Error: suffix or operands invalid for `popa'
wrapper.S:51: Error: suffix or operands invalid for `pop'
wrapper.S:52: Error: suffix or operands invalid for `push'
wrapper.S:58: Error: suffix or operands invalid for `push'
wrapper.S:59: Error: suffix or operands invalid for `pusha'
wrapper.S:62: Error: suffix or operands invalid for `push'
wrapper.S:66: Error: suffix or operands invalid for `push'
wrapper.S:68: Error: suffix or operands invalid for `push'
wrapper.S:73: Error: suffix or operands invalid for `push'
wrapper.S:74: Error: suffix or operands invalid for `push'
wrapper.S:81: Error: suffix or operands invalid for `popa'
make[1]: * [wrapper.o] Error 1
make[1]: Leaving directory `/home/stranche/test/main/loader'
make: * [loader/libloader.a] Erreur 2
So I tried
./configure --with-x11libdir=/usr/X11R6/lib/ --disable-win32
Enabled optional drivers:
Input: ftp network tv-v4l2 tv-v4l edl tv matroska cdda mpdvdkit2 vcd smb
Codecs: libavcodec faad2(internal) libmpeg2 liba52 mp3lib libvorbis
Audio output: oss mpegpes(file)
Video output: xvidix cvidix vesa md5sum pnm mpegpes(file) opengl dga xv x11
xover tga
Audio filters:
Disabled optional drivers:
Input: tv-bsdbt848 live.com dvdread dvb
Codecs: qtx opendivx x264 xvid libdv amr_wb amr_nb real xanim dshow/dmo
win32 libdts libtheora toolame libmad liblzo gif
Audio output: sgi sun alsa jack polyp esd arts dxr2 nas dsound win32 sdl macosx
Video output: winvidix bl zr zr2 dxr3 dxr2 directx sdl gif89a jpeg png fbdev
svga caca aa ggi xmga mga xvmc directfb tdfx_vid tdfxfb 3dfx quartz
Audio filters: ladspa
Fails too with
cc -c -I../libvo -I../../libvo -I/usr/X11R6/include -fno-PIC -O4
-march=athlon-xp -mtune=athlon-xp -pipe -ffast-math -fomit-frame-pointer -m32
-D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -I. -I.. -o
pci_names.o pci_names.c
In file included from pci_names.c:7:
pci_dev_ids.c:1617:18: warning: trigraph ??) ignored, use -trigraphs to enable
pci_names.c:1577:23: warning: trigraph ??) ignored, use -trigraphs to enable
#cc -shared -Wl,-soname,libdha.so.1 -o libdha.so.1.0 libdha.o mtrr.o pci.o
pci_names.o
cc -shared -Wl,-soname -Wl,libdha.so.1.0 -o libdha.so.1.0 libdha.o mtrr.o
pci.o pci_names.o
/usr/bin/ld: warning: i386 architecture of input file `libdha.o' is incompatible
with i386:x86-64 output
/usr/bin/ld: warning: i386 architecture of input file `mtrr.o' is incompatible
with i386:x86-64 output
/usr/bin/ld: warning: i386 architecture of input file `pci.o' is incompatible
with i386:x86-64 output
/usr/bin/ld: warning: i386 architecture of input file `pci_names.o' is
incompatible with i386:x86-64 output
ln -sf libdha.so.1.0 libdha.so.1
ln -sf libdha.so.1.0 libdha.so
make[1]: Leaving directory `/home/stranche/test/main/libdha'
make -C vidix
make[1]: Entering directory `/home/stranche/test/main/vidix'
cc -c -I../libvo -I../../libvo -I/usr/X11R6/include -fno-PIC -O4
-march=athlon-xp -mtune=athlon-xp -pipe -ffast-math -fomit-frame-pointer -m32
-D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -o vidixlib.o vidixlib.c
vidixlib.c: In function `vdl_probe_driver':
vidixlib.c:126: warning: passing arg 2 of `strlcpy' discards qualifiers from
pointer target type
vidixlib.c:127: warning: passing arg 2 of `strlcat' discards qualifiers from
pointer target type
vidixlib.c: In function `vdlOpen':
vidixlib.c:198: warning: passing arg 2 of `strlcpy' discards qualifiers from
pointer target type
vidixlib.c:199: warning: passing arg 2 of `strlcat' discards qualifiers from
pointer target type
ar r libvidix.a vidixlib.o
ar: creating libvidix.a
true libvidix.a
make[2]: Entering directory `/home/stranche/test/main/vidix/drivers'
cc -c -I../libvo -I../../libvo -I/usr/X11R6/include -fno-PIC -O4
-march=athlon-xp -mtune=athlon-xp -pipe -ffast-math -fomit-frame-pointer -m32
-D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -I. -I.. -o
cyberblade_vid.o cyberblade_vid.c
cc -shared cyberblade_vid.o -L../../libdha -ldha -lm
-Wl,-soname,cyberblade_vid.so -o cyberblade_vid.so
/usr/bin/ld: warning: i386 architecture of input file `cyberblade_vid.o' is
incompatible with i386:x86-64 output
cc -c -I../libvo -I../../libvo -I/usr/X11R6/include -fno-PIC -O4
-march=athlon-xp -mtune=athlon-xp -pipe -ffast-math -fomit-frame-pointer -m32
-D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -I. -I.. -o
radeon_vid.o radeon_vid.c
cc -shared radeon_vid.o -L../../libdha -ldha -lm -lGL -lXxf86dga -lXv -lXxf86vm
-lXinerama -L/usr/X11R6/lib/ -lXext -lX11 -lnsl -lnsl -Wl,-soname,radeon_vid.so
-o radeon_vid.so
/usr/bin/ld: skipping incompatible /usr/X11R6/liblibXxf86dga.so when searching
for -lXxf86dga
/usr/bin/ld: skipping incompatible /usr/X11R6/liblibXxf86dga.a when searching
for -lXxf86dga
/usr/bin/ld: cannot find -lXxf86dga
collect2: ld returned 1 exit status
make[2]: * [radeon_vid.so] Error 1
make[2]: Leaving directory `/home/stranche/test/main/vidix/drivers'
make[1]: * [all] Error 2
make[1]: Leaving directory `/home/stranche/test/main/vidix'
make: * [vidix/libvidix.a] Erreur 2
I searched a bit about ld and found this :
export TARGET=elf_i386
Works !
However not everything is OK, for example no alsa (and I'm pretty sure other
things won't be happy)
I tried again to compile with win32 support but compiler isn't happy either
cc -I. -I.. -I../libvo -I../../libvo -I/usr/X11R6/include -fno-PIC -O4
-march=athlon-xp -mtune=athlon-xp -pipe -ffast-math -fomit-frame-pointer -m32
-D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -U_FILE_OFFSET_BITS
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -DMPLAYER -DWINE -c afl.c
cc -I. -I.. -I../libvo -I../../libvo -I/usr/X11R6/include -fno-PIC -O4
-march=athlon-xp -mtune=athlon-xp -pipe -ffast-math -fomit-frame-pointer -m32
-D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -U_FILE_OFFSET_BITS
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -DMPLAYER -DWINE -c vfl.c
cc -c -o wrapper.o wrapper.S
wrapper.S: Assembler messages:
wrapper.S:25: Error: suffix or operands invalid for `pusha'
wrapper.S:28: Error: suffix or operands invalid for `push'
wrapper.S:32: Error: suffix or operands invalid for `push'
wrapper.S:34: Error: suffix or operands invalid for `push'
wrapper.S:39: Error: suffix or operands invalid for `push'
wrapper.S:40: Error: suffix or operands invalid for `push'
wrapper.S:49: Error: suffix or operands invalid for `popa'
wrapper.S:51: Error: suffix or operands invalid for `pop'
wrapper.S:52: Error: suffix or operands invalid for `push'
wrapper.S:58: Error: suffix or operands invalid for `push'
wrapper.S:59: Error: suffix or operands invalid for `pusha'
wrapper.S:62: Error: suffix or operands invalid for `push'
wrapper.S:66: Error: suffix or operands invalid for `push'
wrapper.S:68: Error: suffix or operands invalid for `push'
wrapper.S:73: Error: suffix or operands invalid for `push'
wrapper.S:74: Error: suffix or operands invalid for `push'
wrapper.S:81: Error: suffix or operands invalid for `popa'
make[1]: * [wrapper.o] Error 1
make[1]: Leaving directory `/home/stranche/test/main/loader'
make: * [loader/libloader.a] Erreur 2
Anyway, to resume it is possible (but hairy !) to compile 32bit format on a
64bit platform, but the result isn't completely satisfying.
export CFLAGS="-O4 -march=athlon-xp -mtune=athlon-xp -pipe -ffast-math
-fomit-frame-pointer -m32"
export TARGET=elf_i386
./configure --with-x11libdir=/usr/X11R6/lib/
Perhaps there are other things to tweak a bit
comment:14 by , 20 years ago
./configure --target=athlon_xp --cc="gcc -m32" --as="as --32"
--with-extralibdir=/usr/lib
works for me.
comment:15 by , 20 years ago
(In reply to comment #12)
Thanks for your work, runs ok, we're almost there :)
I had however to use this :
./configure --target=athlon_xp --cc="gcc -m32" --as="as --32"
--with-extralibdir=/usr/lib --with-x11libdir=/usr/X11R6/lib/
Gives me this :
Enabled optional drivers:
Input: ftp network edl tv matroska cdda smb
Codecs: qtx libavcodec dshow/dmo win32 faad2(internal) libmpeg2 liba52
mp3lib tremor(internal)
Audio output: oss mpegpes(file)
Video output: xvidix cvidix md5sum pnm mpegpes(file) opengl dga xv x11 xover tga
Audio filters:
Disabled optional drivers:
Input: tv-v4l2 tv-v4l tv-bsdbt848 live.com dvdread mpdvdkit vcd dvb
Codecs: opendivx x264 xvid libdv amr_wb amr_nb real xanim libdts libtheora
toolame libmad liblzo gif
Audio output: sgi sun alsa jack polyp esd arts dxr2 nas dsound win32 sdl macosx
Video output: winvidix bl zr zr2 dxr3 dxr2 directx sdl vesa gif89a jpeg png
fbdev svga caca aa ggi xmga mga xvmc directfb tdfx_vid tdfxfb 3dfx quartz
Audio filters: ladspa
The thing I regreet much however is the ALSA sound-system non supported, makes
impossible to use the -ac hwac3 trigger, any ideas ?
comment:16 by , 20 years ago
(In reply to comment #13)
I had however to use this :
./configure --target=athlon_xp --cc="gcc -m32" --as="as --32"
--with-extralibdir=/usr/lib --with-x11libdir=/usr/X11R6/lib/
Probably because you have modified configure as stated in your first post?
The thing I regreet much however is the ALSA sound-system non supported, makes
impossible to use the -ac hwac3 trigger, any ideas ?
Look into configure.log why it wasn't recognized. I expect you didn't install
libasound-32bit
comment:17 by , 20 years ago
(In reply to comment #14)
To be sure not having troubles I pulled-in a fresh CVS tree and applied the
patch you suggested.
To make Alsa compile for 32bit I had to install the i386 versions of alsa-lib
and alsa-lib-devel along the x86_64 ones.
However, if the 64 bit compile just feels the same, I get no sound and the
following when using -ao alsa on 32bit binary :
Checking audio filter chain for 48000Hz/2ch/16bit -> 48000Hz/2ch/16bit...
AF_pre: af format: 2 bps, 2 ch, 48000 hz, little-endian 16-bit signed int
AF_pre: 48000Hz 2ch little-endian 16-bit signed int
alsa-init: 1 soundcard found, using: default
alsa-init: playback open error: Invalid argument
Could not open/initialize audio device -> no sound.
Audio: no sound
Anyway, the compilation adventures appart, makes me wonder what's the best move
to use for mplayer when you've got a 64bit architecture (starting to be more and
more used), should we make a native binary and lose support for things like dll
usage (thanks to a part of wine), or should the project try to maintain itself
in a 32 bit context whatever the system running on is (meaning improve the
source to automate all the configure options to give) ?
Personnaly I made a 32bit and a 64bit executable with different names.
to complete the previous message
On a 64bit system (Fedora Core 3 x86_64)
with unmodified configure
Enabled optional drivers:
libvorbis libmad gif
svga caca aa ggi xmga mga opengl dga xvmc xv x11 directfb tdfx_vid tdfxfb 3dfx
quartz
with modified configure
libvorbis libmad gif
xover tga
svga caca aa ggi xmga mga xvmc directfb tdfx_vid tdfxfb 3dfx quartz
Also tested on a 32bit system to make sure nothing is broken, nothing to report,
feels and compile the same.