[MPlayer-users] compilation error on FreeBSD 7.0 STABLE AMD64

swell.k at gmail.com swell.k at gmail.com
Thu Sep 18 02:52:48 CEST 2008


(Cc'ing back mplayer-users for archives)

"Jan Catrysse" <j.catrysse at proximedia.be> writes:
> swell.k at gmail.com writes:
>> "Jan Catrysse" <j.catrysse at proximedia.be> writes:
>>> Has anyone got a clue? This is the first time I try to compile from latest
>>> source.
>>>
>>> I have already installed the latest x264 from source, but with the older one
>>> I didn't have any  success.
>> [...]
>>> {standard input}:27975: Error: `ff_h264_norm_shift(%esi)' is not a valid 64
>>> bit base/index expression
>>>
>>> {standard input}:27977: Error: `ff_h264_mlps_state+128(%eax)' is not a valid
>>> 64 bit base/index expression
>>>
>>> {standard input}:27989: Error: `-1(%ebx)' is not a valid 64 bit base/index
>>> expression
>>>
>>> {standard input}:27992: Error: `ff_h264_norm_shift(%ecx)' is not a valid 64
>>> bit base/index expression
>>>
>>> {standard input}:28010: Error: `ff_h264_lps_range(%eax,%esi,2)' is not a
>>> valid 64 bit base/index expression
>>>
>>> {standard input}:28023: Error: `ff_h264_norm_shift(%esi)' is not a valid 64
>>> bit base/index expression
>>>
>>> {standard input}:28025: Error: `ff_h264_mlps_state+128(%eax)' is not a valid
>>> 64 bit base/index expression
>> [...]
>>
>> IIRC, it's handled by -DBROKEN_RELOCATIONS in multimedia/mplayer.
>> Try to define it in config.h and see what happens. Another problem
>> with missing instructions can be solved by adding -fno-tree-vectorize
>> or -mno-sse3 (was in my case) if that ever bites you.
>>
>> But the better way is to use more recent assembler like the one
>> in devel/cross-binutils which removes most hacks to compile mplayer
>> from svn and allows one to use ssse3-optimized code.
>>
>> Here are some patches from multimedia/mplayer/files/ appliable to svn:
>> http://pastebin.com/m61aa2058
>> which I'm currently using together with lang/gcc44 and devel/cross-binutils.
>> Although only vidix/pci.c can stop compilation.
>>
>> HTH
>
> I downloaded the latest and it seems to work fine now without any troubles.
> I didn't make any changes.
>
> Thnx !!

You certainly are lucky one. With only updated assembler I still get:

vidix/pci.o(.text+0x69): In function `pci_scan':
: undefined reference to `pci_config_type'
vidix/pci.o(.text+0x119): In function `pci_scan':
: undefined reference to `pci_get_vendor'
vidix/pci.o(.text+0x173): In function `pci_scan':
: undefined reference to `pci_config_read_long'
vidix/pci.o(.text+0x192): In function `pci_scan':
: undefined reference to `pci_config_read_long'
vidix/pci.o(.text+0x1ae): In function `pci_scan':
: undefined reference to `pci_config_read_long'
vidix/pci.o(.text+0x1cd): In function `pci_scan':
: undefined reference to `pci_config_read_long'
vidix/pci.o(.text+0x1e6): In function `pci_scan':
: undefined reference to `pci_config_read_long'
vidix/pci.o(.text+0x1ff): more undefined references to `pci_config_read_long' follow

But I'm using 8-CURRENT unlike you and I disabled support for 32bit apps completely.

Apparently this error indicates the need for sysdep/pci_x86.c which is "fixed" by
ports/multimedia/mplayer/files/patch-vidix-pci.c

FYI, I think assembler in src/ will be updated in this year.
http://docs.freebsd.org/cgi/mid.cgi?20080701152932.GA27253
I don't know if it will ever be MFCed to 7-STABLE after that.



More information about the MPlayer-users mailing list