Opened 16 years ago

Closed 16 years ago

Last modified 15 years ago

#14509 closed defect (fixed)

ffmpeg won't build on x86 / 10.4.11

Reported by: richard@… Owned by: acho@…
Priority: Normal Milestone:
Component: ports Version: 1.6.0
Keywords: ffmpeg Cc: richard@…
Port:

Description

Attempting to install ffmpeg via {{{sudo port -dv install ffmpeg}} on an x86 Mac running Mac OS X 10.4.11 and MacPorts 1.6.0 results in an build error. The error message is as follows:

Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk" && make all " returned error 2
Command output:
...<snip>...
gcc -I"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk"/libswscale -I"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk"/libavcodec  -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -I"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk" -I"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk" -I"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk"/libavutil -O2 -DHAVE_LRINTF -I/opt/local/include -no-cpp-precomp -pipe -force_cpusubtype_ALL -Wno-sign-compare -fomit-frame-pointer -g -Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -O3  -c -o i386/cavsdsp_mmx.o i386/cavsdsp_mmx.c
i386/cavsdsp_mmx.c: In function 'ff_put_cavs_qpel8_mc01_3dnow':
i386/cavsdsp_mmx.c:447: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm'
make[1]: *** [i386/cavsdsp_mmx.o] Error 1
make: *** [lib] Error 2

Attachments (1)

patch (698 bytes) - added by richard@… 16 years ago.
Portfile patch updating svn.tag and using --disable-mmx on x86

Download all attachments as: .zip

Change History (8)

comment:1 Changed 16 years ago by richard@…

Oops, I just realized I had the debug & verbose flags in the wrong location in the port command. It doesn't affect the actual error, but here's the correct results for the sudo port -dv install ffmpeg command on an x86 Mac running Mac OS X 10.4.11:

--->  Building ffmpeg with target all
DEBUG: Executing org.macports.build (ffmpeg)
DEBUG: Environment:
DEBUG: Assembled command: 'cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk" && make all'
make -C libavutil   all
make[1]: Nothing to be done for `all'.
make -C libavcodec  all
gcc -I"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk"/libswscale -I"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk"/libavcodec  -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -I"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk" -I"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk" -I"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk"/libavutil -O2 -DHAVE_LRINTF -I/opt/local/include -no-cpp-precomp -pipe -force_cpusubtype_ALL -Wno-sign-compare -fomit-frame-pointer -g -Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -O3  -c -o i386/cavsdsp_mmx.o i386/cavsdsp_mmx.c
i386/cavsdsp_mmx.c: In function 'ff_put_cavs_qpel8_mc01_3dnow':
i386/cavsdsp_mmx.c:447: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm'
make[1]: *** [i386/cavsdsp_mmx.o] Error 1
make: *** [lib] Error 2
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk" && make all " returned error 2
Command output: make -C libavutil   all
make[1]: Nothing to be done for `all'.
make -C libavcodec  all
gcc -I"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk"/libswscale -I"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk"/libavcodec  -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -I"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk" -I"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk" -I"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk"/libavutil -O2 -DHAVE_LRINTF -I/opt/local/include -no-cpp-precomp -pipe -force_cpusubtype_ALL -Wno-sign-compare -fomit-frame-pointer -g -Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -O3  -c -o i386/cavsdsp_mmx.o i386/cavsdsp_mmx.c
i386/cavsdsp_mmx.c: In function 'ff_put_cavs_qpel8_mc01_3dnow':
i386/cavsdsp_mmx.c:447: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm'
make[1]: *** [i386/cavsdsp_mmx.o] Error 1
make: *** [lib] Error 2

Warning: the following items did not execute (for ffmpeg): org.macports.activate org.macports.build org.macports.destroot org.macports.install
Error: Status 1 encountered during processing.

comment:2 Changed 16 years ago by richard@…

Adding a platform darwin 8 section with a --disable-mmx flag (identical to the platform darwin 9 Leopard fix) causes the error message to change to be identical to that of ticket #14492.

comment:3 Changed 16 years ago by richard@…

Bumping the svn.tag (in my case to 12276) as discussed in ticket #14492 in combination with setting the --disable-mmx in a platform darwin 8 section as mentioned in my previous comment fixed the build (sudo port install ffmpeg on x86 MacBook Pro / Mac OS X 10.4.11 / MacPorts 1.6.0).

However using the --disable-mmx flag seems like a horrible, horrible, hack.

comment:4 Changed 16 years ago by richard@…

Here is a suggested patch for the Portfile:

--- Portfile (Revision 33001)
+++ Portfile (working copy)
@@ -4,7 +4,7 @@
 
 name		ffmpeg
 version		0.4.9-pre1
-revision	5
+revision	6
 categories	multimedia
 maintainers	acho@macports.org openmaintainer
 description	Digital VCR and streaming server
@@ -36,7 +36,7 @@
 
 fetch.type     svn
 svn.url        svn://svn.mplayerhq.hu/ffmpeg/trunk
-svn.tag        11532
+svn.tag        12276
 worksrcdir     trunk
 depends_build  bin:svn:subversion
 
@@ -44,7 +44,7 @@
 configure.cflags-append	-DHAVE_LRINTF ${configure.cppflags}
 configure.args	--prefix=${prefix} --disable-vhook \
 		--mandir=${prefix}/share/man \
-		--enable-shared --enable-pthreads
+		--enable-shared --enable-pthreads 
 
 post-destroot {
 	file mkdir ${destroot}${prefix}/share/doc/${name}
@@ -54,8 +54,8 @@
 	}
 }
 
-platform darwin 9 {
-	# Fix Leopard problems by disabling assembly for now; see #13019.
+platform darwin i386 {
+	# Fix x86 problems by disabling assembly for now; see #13019 & 14509.
 	configure.args-append --disable-mmx
 }

Changed 16 years ago by richard@…

Attachment: patch added

Portfile patch updating svn.tag and using --disable-mmx on x86

comment:5 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)

Owner: changed from macports-tickets@… to acho@…

Assigning to maintainer.

comment:6 Changed 16 years ago by reiffert@…

Resolution: fixed
Status: newclosed

Committed in r35073 and r35074.

comment:7 Changed 15 years ago by (none)

Milestone: Port Bugs

Milestone Port Bugs deleted

Note: See TracTickets for help on using tickets.