View previous topic :: View next topic |
Author |
Message |
msst Apprentice

Joined: 07 Jun 2011 Posts: 259
|
Posted: Wed Dec 11, 2013 12:06 am Post subject: ffmpeg compile error |
|
|
Last version compiled perfect, but just now the current delivered that:
i686-pc-linux-gnu-gcc -I. -I./ -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -DHAVE_AV_CONFIG_H -march=native -O2 -pipe -march=native -O2 -pipe -march=k8-sse3 -std=c99 -fomit-frame-pointer -fPIC -pthread -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -march=native -O2 -pipe -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=return-type -MMD -MF libavcodec/dsputil.d -MT libavcodec/dsputil.o -c -o libavcodec/dsputil.o libavcodec/dsputil.c
In file included from libavcodec/diracdec.c:34:0:
libavcodec/dirac_arith.h: In Funktion »dirac_get_arith_bit«:
libavcodec/dirac_arith.h:141:5: Fehler: »asm«-Operand hat unmögliche Nebenbedingungen
__asm__(
^
make: *** [libavcodec/diracdec.o] Fehler 1
Any ideas where to find the problem? Didn't help to try stepping to ~x86 for ffmpeg as well, same error in stable and experimental version atm. |
|
Back to top |
|
 |
Jaglover Watchman


Joined: 29 May 2005 Posts: 8291 Location: Saint Amant, Acadiana
|
|
Back to top |
|
 |
potuz Guru

Joined: 30 Jan 2010 Posts: 378
|
|
Back to top |
|
 |
krinn Watchman


Joined: 02 May 2003 Posts: 7475
|
Posted: Fri Dec 13, 2013 3:54 am Post subject: |
|
|
Jaglover wrote: | Putting the whole build log into pastebin would help, too. |
-> Putting the whole build log of "LC_ALL=C emerge ffmpeg" into pastebin would help, too
Code: | In Funktion »dirac_get_arith_bit«:
Fehler: »asm«-Operand hat unmögliche Nebenbedingungen |
It gets weird enough with only two lines, i don't want parse such full build log  |
|
Back to top |
|
 |
VoidMage Watchman


Joined: 14 Oct 2006 Posts: 6196
|
Posted: Fri Dec 13, 2013 9:22 am Post subject: |
|
|
krinn wrote: | Code: | In Funktion »dirac_get_arith_bit«:
Fehler: »asm«-Operand hat unmögliche Nebenbedingungen |
It gets weird enough with only two lines, i don't want parse such full build log  |
That's just the standard "not enough registers" error (don't recall how it's exactly phrased in English, but that's what it usually ends up being). |
|
Back to top |
|
 |
potuz Guru

Joined: 30 Jan 2010 Posts: 378
|
Posted: Fri Dec 13, 2013 10:32 am Post subject: |
|
|
It's parsed as "error: ‘asm’ operand has impossible constraints" as in the trac listing posted above. |
|
Back to top |
|
 |
msst Apprentice

Joined: 07 Jun 2011 Posts: 259
|
Posted: Fri Dec 13, 2013 10:02 pm Post subject: |
|
|
Here is the emerge --info plus buildlog:
http://pastebin.com/AqJvBA5y
Also tried:
CFLAGS="-O0" USE="-pic" MAKEOPTS="-j1" CXXFLAGS="-O0" emerge ffmpeg
thats quite radically conservative and it yields:
exactly the same error. So not an issue with over -O optimization. Hmm.
UPDATE:
I was able to fix that problem by downgrading from gcc-4.8.2 to 4.6.3!
Seems ffmpeg is incompatible with gcc-4.8.2. Hmmm. Thats a bug - just whether its a gcc bug or a ffmpeg bug... |
|
Back to top |
|
 |
krinn Watchman


Joined: 02 May 2003 Posts: 7475
|
Posted: Sat Dec 14, 2013 4:30 am Post subject: |
|
|
Next time pastebin the build.log portage is telling you where to find it on failure.
And you should report ffmpeg bug, as if Quote: | -march=native -O2 -pipe -march=k8-sse3 | is add by configure phase, it's a bug and it will prevent cross compiling. |
|
Back to top |
|
 |
msst Apprentice

Joined: 07 Jun 2011 Posts: 259
|
Posted: Sun Dec 15, 2013 2:31 am Post subject: |
|
|
I did paste as much of the build.log as did fit the terminal buffer. If there is an upload function in pastebin then I failed to see it.
So what you say means that ffmpeg adds an march=k8-sse3 automatically which breaks the build? Weird. Thats kind of insane. And why does an older gcc version work then? |
|
Back to top |
|
 |
krinn Watchman


Joined: 02 May 2003 Posts: 7475
|
Posted: Sun Dec 15, 2013 12:39 pm Post subject: |
|
|
emerge -a wgetpaste
And even without it, you aren't limited to the console buffer if you paste it from nano or other editors.
if ffmpeg add -march=k8-sse3 when it detect -march=native : there's nothing that bad, but it looks weird to force it.
And if ffmpeg add it unconditionally then it's clearly a bug as it will prevent cross compile build.
It doesn't break on older gcc as -march=k8-sse3 is a valid march setting for your cpu. But trying to build it with -march=pentium-m for another cpu with your cpu, if it use -march=pentium-m -march=k8-sse3 (last entry overlap previous entry) you will produce k8-sse3 code instead of pentium-m code.
Looking less insane ? |
|
Back to top |
|
 |
TomWij Retired Dev


Joined: 04 Jul 2012 Posts: 1553
|
Posted: Sun Dec 15, 2013 2:30 pm Post subject: |
|
|
mas- wrote: | Seems ffmpeg is incompatible with gcc-4.8.2. Hmmm. Thats a bug - just whether its a gcc bug or a ffmpeg bug... |
Can you file this bug at Gentoo Bugzilla? Read here how to write a bug report, for more in-depth details and troubleshooting steps you can read our Bugzilla HOWTO. |
|
Back to top |
|
 |
|