David Liontooth wrote: > Andrew Church wrote: > >>> I should have waited 5 minutes before posting this. I took a look at the >>> diff for memcpy.c to verify what had changed from the last revision. I >>> changed: >>> >>> .balign 16 >>> >>> back to: >>> >>> .align 16 >>> >>> >> [...] >> >> >>> Compilation gets A LOT further after this. It next dies here: >>> >>> gcc -DHAVE_CONFIG_H -I. -I../.. -D_REENTRANT -I../.. -I../../src -Wall >>> -Wstrict-prototypes -Wmissing-prototypes -g -O2 -MT deinterlace.lo -MD -MP >>> -MF .deps/deinterlace.Tpo -c deinterlace.c -fno-common -DPIC -o >>> .libs/deinterlace.o >>> /var/tmp//cc5641dA.s:362:Unknown pseudo-op: .rept >>> >>> >> Again, it looks like your assembler is too old. From your earlier post, it >> looks like the binutils-2.17 package you had installed mysteriously did not >> include the assembler (as), so I'd suggest installing binutils from source. >> If that's not an option, --disable-mmx should (hopefully) disable all the >> assembly and at least let you compile. >> >> > We're trying to find out what's going wrong with the assembly > compilation -- for reference, there's > http://developer.apple.com/documentation/DeveloperTools/Reference/Assembler/Assembler.pdf > > I'm not going to dive it it myself; let's see if we can find someone who > knows what's going on. A couple of guys working on Pre Make Kit (pmk, > see > http://sourceforge.net/tracker/index.php?func=detail&aid=1569713&group_id=94395&atid=607694) > try hard to make it work but up frustrated, concluding "Projects that > mix assembly and C code must all fail on MacOS X Intel machines." They > also say mplayer avoids the problem by using C embedded assembly. > > Aside from the probably unattractive option of switching to C embedded > assembly, this is clearly not a transcode problem. >
A recurring story is that OSX on 386 requires 16-byte alignment: The biggest difference is that the stack must be 16-byte aligned at the point of a function call. They wanted to do this because all Macs, coming late to to the Intel party, can assume they're running on a processor with SSE, Intel's vector instruction set, similar in concept to the PowerPC AltiVec. OS X uses SSE for all floating point math by default, for a performance boost. SSE, however, has some instructions that require 16-byte alignment. Apple just said, screw it, we have no legacy code, let's just require the stack to be 16-byte aligned so we can use SSE. http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/ -- he proposes a workaround. > Dave > >