Help compiling ffmpeg from source

Waitman Gobble gobble.wa at gmail.com
Wed Feb 29 21:12:23 UTC 2012


On Wed, Feb 29, 2012 at 1:03 PM, Andy Wodfer <wodfer at gmail.com> wrote:

> On Wed, Feb 29, 2012 at 9:46 PM, Waitman Gobble <gobble.wa at gmail.com>wrote:
>
>>
>>
>> On Wed, Feb 29, 2012 at 12:37 PM, Andy Wodfer <wodfer at gmail.com> wrote:
>>
>>> On Wed, Feb 29, 2012 at 9:20 PM, Waitman Gobble <gobble.wa at gmail.com>
>>> wrote:
>>>
>>> >
>>> > On Feb 29, 2012 12:10 PM, "Andy Wodfer" <wodfer at gmail.com> wrote:
>>> > >
>>> > > On Wed, Feb 29, 2012 at 3:09 PM, Andy Wodfer <wodfer at gmail.com>
>>> wrote:
>>> > >
>>> > > > On Wed, Feb 29, 2012 at 2:50 PM, Da Rock <
>>> > > > freebsd-questions at herveybayaustralia.com.au> wrote:
>>> > > >
>>> > > >> On 02/29/12 23:48, Andy Wodfer wrote:
>>> > > >>
>>> > > >>> I'm on FreeBSD 8.2 STABLE (AMD64).
>>> > > >>>
>>> > > >>> I need to install the latest ffmpeg 0.10, but it fails when
>>> > compiling. I
>>> > > >>> must admit I very rarely do it this way. Normally all software is
>>> > > >>> installed
>>> > > >>> from ports, but I couldn't find this version of ffmpeg there.
>>> > > >>>
>>> > > >>> Heres what I do:
>>> > > >>>
>>> > > >>> ./configure
>>> > > >>> gmake
>>> > > >>>
>>> > > >>> and the problem looks like this:
>>> > > >>>
>>> > > >>> [snip]
>>> > > >>> /var/tmp//ccKzWhb0.s:26921: Error: `ff_h264_norm_shift(%r10d)' is
>>> > not a
>>> > > >>> valid 64 bit base/index expression
>>> > > >>> /var/tmp//ccKzWhb0.s:26923: Error:
>>> `ff_h264_mlps_state+128(%edi)' is
>>> > not
>>> > > >>> a
>>> > > >>> valid 64 bit base/index expression
>>> > > >>> /var/tmp//ccKzWhb0.s:26931: Error: `-1(%r9d)' is not a valid 64
>>> bit
>>> > > >>> base/index expression
>>> > > >>> /var/tmp//ccKzWhb0.s:26936: Error: `ff_h264_norm_shift(%ecx)' is
>>> not
>>> > a
>>> > > >>> valid 64 bit base/index expression
>>> > > >>> /var/tmp//ccKzWhb0.s:27045: Error:
>>> > `ff_h264_lps_range(%r9d,%r12d,**2)'
>>> >
>>> > > >>> is not
>>> > > >>> a valid 64 bit base/index expression
>>> > > >>> /var/tmp//ccKzWhb0.s:27055: Error: `ff_h264_norm_shift(%r12d)' is
>>> > not a
>>> > > >>> valid 64 bit base/index expression
>>> > > >>> /var/tmp//ccKzWhb0.s:27057: Error:
>>> `ff_h264_mlps_state+128(%r9d)' is
>>> > not
>>> > > >>> a
>>> > > >>> valid 64 bit base/index expression
>>> > > >>> /var/tmp//ccKzWhb0.s:27065: Error: `-1(%r11d)' is not a valid 64
>>> bit
>>> > > >>> base/index expression
>>> > > >>> /var/tmp//ccKzWhb0.s:27070: Error: `ff_h264_norm_shift(%ecx)' is
>>> not
>>> > a
>>> > > >>> valid 64 bit base/index expression
>>> > > >>> gmake: *** [libavcodec/h264_cabac.o] Error 1
>>> > > >>>
>>> > > >> Thats right, I remember this one- really simple but will get you
>>> every
>>> > > >> time! You need a newer gcc version (probably 4.6 will get you out
>>> of
>>> > > >> trouble if I remember correctly).
>>> > > >>
>>> > > >> The port already sets this, it will only bite when you're working
>>> > solo.
>>> > > >>
>>> > > >>
>>> > > > Ok - thanks!
>>> > > >
>>> > > > I'm currently doing this:
>>> > > > http://www.freebsd.org/doc/en/articles/custom-gcc/article.html
>>> > > >
>>> > > > I will report back on how it goes. :-)
>>> > > >
>>> > > > Cheers,
>>> > > > Andy
>>> > > >
>>> > >
>>> > > So, I updated gmake to 3.82 from ports and installed gcc47 from
>>> ports. I
>>> > > updated /etc/make.conf as described here:
>>> > > http://www.freebsd.org/doc/en/articles/custom-gcc/article.html
>>> > >
>>> > > However, I don't have a libmap file so I skipped this one and the
>>> other
>>> > > ones below in the article.
>>> > >
>>> > > Here's some outputs:
>>> > >
>>> > > # gmake -v
>>> > > GNU Make 3.82
>>> > > Built for amd64-portbld-freebsd8.2
>>> > > Copyright (C) 2010  Free Software Foundation, Inc.
>>> > > License GPLv3+: GNU GPL version 3 or later <
>>> > http://gnu.org/licenses/gpl.html
>>> > > >
>>> > > This is free software: you are free to change and redistribute it.
>>> > > There is NO WARRANTY, to the extent permitted by law.
>>> > >
>>> > > # gcc -v
>>> > > Using built-in specs.
>>> > > Target: amd64-undermydesk-freebsd
>>> > > Configured with: FreeBSD/amd64 system compiler
>>> > > Thread model: posix
>>> > > gcc version 4.2.2 20070831 prerelease [FreeBSD]
>>> > >
>>> > > How do I tell the system to use gcc47 instead of 4.2.2 (if that's
>>> what
>>> > > causes the problems)?
>>> > >
>>> > > Compiling ffmpeg from source still failes on the same line as in my
>>> > orginal
>>> > > post.
>>> > >
>>> > > Thanks a lot for any pointers that will help me resolve this. :-)
>>> > >
>>> > > All the best,
>>> > > Andy
>>> > > _______________________________________________
>>> > > freebsd-questions at freebsd.org mailing list
>>> > > http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>>> > > To unsubscribe, send any mail to "
>>> > freebsd-questions-unsubscribe at freebsd.org"
>>> >
>>> > is there a gcc47 or maybe a typo?
>>> >
>>> > should be
>>> > # export CC=gcc46
>>> > or
>>> > # setenv CC gcc46
>>> >
>>> > if building from source
>>> >
>>> > --
>>> > Waitman Gobble
>>> > San Jose California USA
>>> >
>>>
>>> Yes, gcc47 was out a few days ago.
>>>
>>> So, I'm making some progress.
>>>
>>> I now export CC=gcc47
>>>
>>> and by adding this ./configure --extra-cflags=-DBROKEN_RELOCATIONS (what
>>> does this mean/do???)
>>>
>>> I'm able to get past the h264 compile fail.
>>>
>>> However, I now stop at vp5 with the following message:
>>>
>>> CC      libavcodec/vp5.o
>>> /var/tmp//ccmvakth.s: Assembler messages:
>>> /var/tmp//ccmvakth.s:323: Error: `(%r8d,%eax)' is not a valid 64 bit
>>> base/index expression
>>> /var/tmp//ccmvakth.s:436: Error: `(%r8d,%eax)' is not a valid 64 bit
>>> base/index expression
>>> /var/tmp//ccmvakth.s:548: Error: `(%r8d,%eax)' is not a valid 64 bit
>>> base/index expression
>>> /var/tmp//ccmvakth.s:669: Error: `(%r8d,%eax)' is not a valid 64 bit
>>> base/index expression
>>> /var/tmp//ccmvakth.s:920: Error: `(%r8d,%eax)' is not a valid 64 bit
>>> base/index expression
>>> /var/tmp//ccmvakth.s:1136: Error: `(%r8d,%eax)' is not a valid 64 bit
>>> base/index expression
>>> /var/tmp//ccmvakth.s:1422: Error: `(%r8d,%eax)' is not a valid 64 bit
>>> base/index expression
>>> /var/tmp//ccmvakth.s:1531: Error: `(%r8d,%eax)' is not a valid 64 bit
>>> base/index expression
>>> /var/tmp//ccmvakth.s:1826: Error: `(%r8d,%eax)' is not a valid 64 bit
>>> base/index expression
>>> /var/tmp//ccmvakth.s:1923: Error: `(%esi,%edx)' is not a valid 64 bit
>>> base/index expression
>>> /var/tmp//ccmvakth.s:2020: Error: `(%esi,%edx)' is not a valid 64 bit
>>> base/index expression
>>> /var/tmp//ccmvakth.s:2116: Error: `(%esi,%edx)' is not a valid 64 bit
>>> base/index expression
>>> /var/tmp//ccmvakth.s:2226: Error: `(%r8d,%eax)' is not a valid 64 bit
>>> base/index expression
>>> /var/tmp//ccmvakth.s:8827: Error: `(%esi,%eax)' is not a valid 64 bit
>>> base/index expression
>>> /var/tmp//ccmvakth.s:9738: Error: `(%esi,%eax)' is not a valid 64 bit
>>> base/index expression
>>> /var/tmp//ccmvakth.s:10351: Error: `(%esi,%eax)' is not a valid 64 bit
>>> base/index expression
>>> /var/tmp//ccmvakth.s:10988: Error: `(%esi,%eax)' is not a valid 64 bit
>>> base/index expression
>>> /var/tmp//ccmvakth.s:11625: Error: `(%esi,%eax)' is not a valid 64 bit
>>> base/index expression
>>> /var/tmp//ccmvakth.s:12262: Error: `(%esi,%eax)' is not a valid 64 bit
>>> base/index expression
>>> /var/tmp//ccmvakth.s:13499: Error: `(%esi,%eax)' is not a valid 64 bit
>>> base/index expression
>>> gmake: *** [libavcodec/vp5.o] Error 1
>>>
>>> Any idea of what my next step could be?
>>>
>>> Cheers,
>>> Andy
>>> _______________________________________________
>>> freebsd-questions at freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>>> To unsubscribe, send any mail to "
>>> freebsd-questions-unsubscribe at freebsd.org"
>>>
>>
>>
>> here's the info about broken relocations..,
>>
>> http://ffmpeg.org/pipermail/ffmpeg-cvslog/2007-April/005557.html
>>
>> but there's this..
>>
>> http://lists.mplayerhq.hu/pipermail/mplayer-users/2011-July/083048.html
>>
>> I believe that says you don't really want to define BROKEN_RELOCATIONS
>> but instead update GNU binutils b/c 'stock' binutils don't do 64bit ...
>> I think binutils update must be in ports. I do know if you pkg_add -r
>> mplayer it installs gcc46 and updated binutils.,, :-)
>>
>>
>> Waitman Gobble
>> San Jose California USA
>>
>>
>>
> Fantastic! That did the trick and it compiled and installed successfully
> now. :-)
>
> Here's a rundown of what solved it:
>
> 1. Updated binutils to latest version from ports.
> 2. Updated gmake to latest version from ports
> 3. Updated gcc to version 47 from ports.
> 4. removed /usr/bin/as and made a symlink from /usr/bin/as to
> /usr/local/bin/as (newer version)
>
> export CC=gcc47 or setenv.
>
> Perhaps all I really needed to do was point 4?.
>
> Anyway, thanks a lot for great help!
>
> All the best,
> Andreas
>

Maybe... but gas (/usr/local/bin/as) comes from #1 in your list.
version of gmake probably OK.
gcc, hmmm. i've run into some issues compiling stuff with 4.2.1 - but for
ffmpeg probably want newer gcc anyway.

Waitman


More information about the freebsd-questions mailing list