[MPlayer-users] BUG pre2 doesn't build on AMD64

Götz Waschk waschk at informatik.uni-rostock.de
Tue Oct 14 09:56:11 CEST 2003


Am Montag, 13. Oktober 2003, 12:40:18 Uhr MET, schrieb AthlonRob:
> [Automatic answer: RTFM (read DOCS, FAQ), also read DOCS/bugreports.html]
> On Mon, 2003-10-13 at 00:24, Götz Waschk wrote:
> > [Automatic answer: RTFM (read DOCS, FAQ), also read DOCS/bugreports.html]
> > Am Donnerstag,  9. Oktober 2003, 12:03:40 Uhr MET, schrieb Götz Waschk:
> > > I've noticed a build problem of my mplayer 1.0pre2 package for
> > > Mandrake on the AMD64 build host. The problem seems to be in
> > > libavcodec/i386/cputest.c
> > OK, I can build amd64 packages if I don't use the --enable-mmx option.
> Sounds, to me, like a buggy compiler issue.
> What GCC version are you using?

Mandrake has a heavily patched gcc 3.3.1 with amd64 support. I don't
think it's a compiler issue, I think the assembler code isn't
compatible with amd64:
gcc -Wall -O4   -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o i386/cputest.o i386/cputest.c 
{standard input}: Assembler messages:
{standard input}:21: Error: suffix or operands invalid for `pop'
{standard input}:27: Error: suffix or operands invalid for `pop'
make[1]: *** [i386/cputest.o] Error 1

> Since it's an amd64 build - you might want to try the
> latest-and-greatest, whatever that is today.

I get the same error with today's CVS of MPlayer and without the
optimization options. 

I've received a patch from one of the MPlayer developers that changed
the popl opcodes in the lines above to pop, this makes it possible to
compile that file, but the next source (i386/dsputil_mmx.c) gives me
even more errors:

gcc -Wall -O4   -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o i386/dsputil_mmx.o i386/dsputil_mmx.c 
i386/dsputil_mmx.c: In function `clear_blocks_mmx':
i386/dsputil_mmx.c:399: warning: cast from pointer to integer of different size
{standard input}: Assembler messages:
{standard input}:57: Error: `(%edx,%edx)' is not a valid 64 bit base/index expression
{standard input}:62: Error: `(%rsi,%edx)' is not a valid 64 bit base/index expression
{standard input}:63: Error: `1(%rsi,%edx)' is not a valid 64 bit base/index expression
[schnipp]

-- 
What difference does it make to the dead, the orphans and the
homeless, whether the mad destruction is wrought under the name of
totalitarianism or the holy name of liberty or democracy?
    Mahatma Gandhi (1869 - 1948), "Non-Violence in Peace and War"



More information about the MPlayer-users mailing list