Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Gentoo User (http://www.linux-archive.org/gentoo-user/)
-   -   ffmpeg - fails to compile on amd64 (http://www.linux-archive.org/gentoo-user/609449-ffmpeg-fails-compile-amd64.html)

Joseph 12-12-2011 06:28 PM

ffmpeg - fails to compile on amd64
 
I"m trying to install "kino" but ffmpeg fails to compile:


Configuring source in /var/tmp/portage/media-video/ffmpeg-0.7.8/work/ffmpeg-0.7.8 ...

x86_64-pc-linux-gnu-gcc is unable to create an executable file.
If x86_64-pc-linux-gnu-gcc is a cross-compiler, use the --enable-cross-compile option.
Only do this if you know what cross compiling means.
C compiler test failed.

* ERROR: media-video/ffmpeg-0.7.8 failed (configure phase):
* (no error message)
*
* Call stack:

* ebuild.sh, line 56: Called src_configure
* environment, line 2680: Called die
* The specific snippet of code:
* ./configure --prefix=/usr --libdir=/usr/$(get_libdir) --shlibdir=/usr/$(get_libdir) --mandir=/usr/share/man --enable-shared --cc="$(tc-getCC)"
$(use_enable static-libs static) ${myconf} || die
*
* If you need support, post the output of 'emerge --info =media-video/ffmpeg-0.7.8',

* the complete build log and the output of 'emerge -pqv =media-video/ffmpeg-0.7.8'.
* The complete build log is located at '/var/tmp/portage/media-video/ffmpeg-0.7.8/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/media-video/ffmpeg-0.7.8/temp/environment'.
* S: '/var/tmp/portage/media-video/ffmpeg-0.7.8/work/ffmpeg-0.7.8'

--
Joseph

Michael Hampicke 12-12-2011 06:32 PM

ffmpeg - fails to compile on amd64
 
> Configuring source in
> /var/tmp/portage/media-video/ffmpeg-0.7.8/work/ffmpeg-0.7.8 ...
> x86_64-pc-linux-gnu-gcc is unable to create an executable file.
> If x86_64-pc-linux-gnu-gcc is a cross-compiler, use the
> --enable-cross-compile option.
> Only do this if you know what cross compiling means.
> C compiler test failed.

Do you have enabled the "cpudetection" and/or "custom-cflags" use flags?
Or do you use some crazy CFLAGS?
ffmpeg 0.7.8 compiles just fine on my amd64 box.

Michael Mol 12-12-2011 06:52 PM

ffmpeg - fails to compile on amd64
 
On Mon, Dec 12, 2011 at 2:28 PM, Joseph <syscon780@gmail.com> wrote:
> I"m trying to install "kino" but ffmpeg fails to compile:
>
>>>> Configuring source in
>>>> /var/tmp/portage/media-video/ffmpeg-0.7.8/work/ffmpeg-0.7.8 ...
>
> x86_64-pc-linux-gnu-gcc is unable to create an executable file.
> If x86_64-pc-linux-gnu-gcc is a cross-compiler, use the
> --enable-cross-compile option.
> Only do this if you know what cross compiling means.
> C compiler test failed.
>
> ** ERROR: media-video/ffmpeg-0.7.8 failed (configure phase):
> ** * (no error message)
> ** ** Call stack:
> ** * * ebuild.sh, line *56: *Called src_configure
> ** * environment, line 2680: *Called die
> ** The specific snippet of code:
> ** * * * ./configure --prefix=/usr --libdir=/usr/$(get_libdir)
> --shlibdir=/usr/$(get_libdir) --mandir=/usr/share/man --enable-shared
> --cc="$(tc-getCC)" $(use_enable static-libs static) ${myconf} || die
> ** ** If you need support, post the output of 'emerge --info
> =media-video/ffmpeg-0.7.8',
> ** the complete build log and the output of 'emerge -pqv
> =media-video/ffmpeg-0.7.8'.
> ** The complete build log is located at
> '/var/tmp/portage/media-video/ffmpeg-0.7.8/temp/build.log'.
> ** The ebuild environment file is located at
> '/var/tmp/portage/media-video/ffmpeg-0.7.8/temp/environment'.
> ** S: '/var/tmp/portage/media-video/ffmpeg-0.7.8/work/ffmpeg-0.7.8'

That sounds like a configure-script-time error. I somehow borked up my
gcc profile pretty badly the other day, and the solution turned out to
be re-running:

gcc-config $SOME_PROFILE

where SOME_PROFILE is something you'll find under /etc/env.d/gcc

After that, things worked fine for me again.

(I was in the process of building an email because I was going to ask
this list for help, and I figured out the solution while building the
narrative of things I was trying and testing. It'll probably show up
as another blog post.)
--
:wq

Joseph 12-12-2011 07:23 PM

ffmpeg - fails to compile on amd64
 
On 12/12/11 14:52, Michael Mol wrote:
[snip]


gcc-config $SOME_PROFILE

where SOME_PROFILE is something you'll find under /etc/env.d/gcc

After that, things worked fine for me again.

(I was in the process of building an email because I was going to ask
this list for help, and I figured out the solution while building the
narrative of things I was trying and testing. It'll probably show up
as another blog post.)
--
:wq


I have only three files in there
ll /etc/env.d/gcc/
.NATIVE
config-x86_64-pc-linux-gnu
x86_64-pc-linux-gnu-4.5.3


Should I run it on config-x86_64-pc-linux-gnu or x86_64-pc-linux-gnu-4.5.3 ?

--
Joseph

Joseph 12-12-2011 07:28 PM

ffmpeg - fails to compile on amd64
 
On 12/12/11 20:32, Michael Hampicke wrote:

Configuring source in
/var/tmp/portage/media-video/ffmpeg-0.7.8/work/ffmpeg-0.7.8 ...
x86_64-pc-linux-gnu-gcc is unable to create an executable file.
If x86_64-pc-linux-gnu-gcc is a cross-compiler, use the
--enable-cross-compile option.
Only do this if you know what cross compiling means.
C compiler test failed.


Do you have enabled the "cpudetection" and/or "custom-cflags" use flags?
Or do you use some crazy CFLAGS?
ffmpeg 0.7.8 compiles just fine on my amd64 box.


No nothing crazy:
CFLAGS="-Os -pipe -mtune=i686"

I'm not even sure if these flags are correct for my CPU:
AMD FX(tm)-8150 Eight-Core Processor

The flags suggestion I found on gentoo wiki are crazy:
http://en.gentoo-wiki.com/wiki/Safe_Cflags/AMD#AMD_FX-8xxx.2F6xxx.2F4xxx_.28Bulldozer.29

CFLAGS="-O2 -pipe -fomit-frame-pointer -march=bdver1 -mtune=bdver1 -mcx16 -msahf -maes -mpclmul -mpopcnt -mabm -mlwp -mavx"

Whoever suggested these flags must have been on some drugs :-/

--
Joseph

Dale 12-12-2011 07:29 PM

ffmpeg - fails to compile on amd64
 
Joseph wrote:

On 12/12/11 14:52, Michael Mol wrote:
[snip]


gcc-config $SOME_PROFILE

where SOME_PROFILE is something you'll find under /etc/env.d/gcc

After that, things worked fine for me again.

(I was in the process of building an email because I was going to ask
this list for help, and I figured out the solution while building the
narrative of things I was trying and testing. It'll probably show up
as another blog post.)
--
:wq


I have only three files in there
ll /etc/env.d/gcc/
.NATIVE
config-x86_64-pc-linux-gnu x86_64-pc-linux-gnu-4.5.3
Should I run it on config-x86_64-pc-linux-gnu or
x86_64-pc-linux-gnu-4.5.3 ?




Use this command to see if one is set:

gcc-config -l

Then you can use gcc-config <number you want to select> to set it if it
is not set. If it is set, it should look like this:


[1] x86_64-pc-linux-gnu-4.4.5
[2] x86_64-pc-linux-gnu-4.5.3 *

Note the little * on the end? That is the one that it is trying to
use. Sometimes it gets unset, especially if you install a new gcc and
remove the old without setting it to use the new one first, then things
tend to error out when gcc is called and it is not there.


Hope that helps.

Dale

:-) :-)

--
I am only responsible for what I said ... Not for what you understood or how you interpreted my words!

Miss the compile output? Hint:
EMERGE_DEFAULT_OPTS="--quiet-build=n"

Joseph 12-12-2011 07:43 PM

ffmpeg - fails to compile on amd64
 
On 12/12/11 14:29, Dale wrote:

[snip}


gcc-config -l

Then you can use gcc-config <number you want to select> to set it if it
is not set. If it is set, it should look like this:

[1] x86_64-pc-linux-gnu-4.4.5
[2] x86_64-pc-linux-gnu-4.5.3 *

Note the little * on the end? That is the one that it is trying to
use. Sometimes it gets unset, especially if you install a new gcc and
remove the old without setting it to use the new one first, then things
tend to error out when gcc is called and it is not there.

Hope that helps.

Dale


Yes the profile is set to:
[1] x86_64-pc-linux-gnu-4.5.3 *

everything compiled without any problems except that ffmpeg :-/


--
Joseph

Michael Hampicke 12-12-2011 07:49 PM

ffmpeg - fails to compile on amd64
 
> No nothing crazy:
> CFLAGS="-Os -pipe -mtune=i686"

No you're right, that's nothing crazy.

Perhaps you could paste the complete build log of your failed merge to
pastebin[1].
Portage tells you where you can find that log file. The output of %
emerge --info might prove useful too.

[1] http://pastebin.com/

Michael Schreckenbauer 12-12-2011 07:52 PM

ffmpeg - fails to compile on amd64
 
Am Montag, 12. Dezember 2011, 13:28:39 schrieb Joseph:
> On 12/12/11 20:32, Michael Hampicke wrote:
> >> Configuring source in
> >> /var/tmp/portage/media-video/ffmpeg-0.7.8/work/ffmpeg-0.7.8 ...
> >> x86_64-pc-linux-gnu-gcc is unable to create an executable file.
> >> If x86_64-pc-linux-gnu-gcc is a cross-compiler, use the
> >> --enable-cross-compile option.
> >> Only do this if you know what cross compiling means.
> >> C compiler test failed.
> >
> >Do you have enabled the "cpudetection" and/or "custom-cflags" use flags?
> >Or do you use some crazy CFLAGS?
> >ffmpeg 0.7.8 compiles just fine on my amd64 box.
>
> No nothing crazy:
> CFLAGS="-Os -pipe -mtune=i686"

i686? That's not amd64. You need something 64bit. Just use march=native
instead of mtune=i686.


> I'm not even sure if these flags are correct for my CPU:
> AMD FX(tm)-8150 Eight-Core Processor

:) They are not.

> The flags suggestion I found on gentoo wiki are crazy:
> http://en.gentoo-wiki.com/wiki/Safe_Cflags/AMD#AMD_FX-8xxx.2F6xxx.2F4xxx_.28
> Bulldozer.29
>
> CFLAGS="-O2 -pipe -fomit-frame-pointer -march=bdver1 -mtune=bdver1 -mcx16
> -msahf -maes -mpclmul -mpopcnt -mabm -mlwp -mavx"
> Whoever suggested these flags must have been on some drugs :-/

Could well be, that this is what march=native gives for bdver1.

Best,
Michael

Michael Hampicke 12-12-2011 08:09 PM

ffmpeg - fails to compile on amd64
 
>> No nothing crazy:
>> CFLAGS="-Os -pipe -mtune=i686"
>
> i686? That's not amd64. You need something 64bit. Just use march=native
> instead of mtune=i686.

Wait, what! I could swear I was reading march=native just a few minutes ago.

mtune=i686 on amd64 just doesn't seem right, but it should compile.

# echo | gcc -dM -E - -march=native
/usr/libexec/gcc/x86_64-pc-linux-gnu/4.5.3/cc1 -E -quiet -v -
-D_FORTIFY_SOURCE=2 -mtune=i686 -march=x86-64

gcc sets the correct march even if you set the wrong mtune.

But as Michael says, just use march=native and you should be fine.


All times are GMT. The time now is 05:56 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.