[FFmpeg-devel] Building for Mac x86 with GCC & NASM

softworkz . softworkz at hotmail.com
Wed May 28 11:49:43 EEST 2025



> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of
> Martin Storsjö
> Sent: Mittwoch, 28. Mai 2025 10:27
> To: FFmpeg development discussions and patches <ffmpeg-
> devel at ffmpeg.org>
> Subject: Re: [FFmpeg-devel] Building for Mac x86 with GCC & NASM
> 
> On Wed, 28 May 2025, softworkz . wrote:
> 
> >> -----Original Message-----
> >> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of
> >> Martin Storsjö
> >> Sent: Mittwoch, 28. Mai 2025 07:55
> >> To: FFmpeg development discussions and patches <ffmpeg-
> >> devel at ffmpeg.org>
> >> Subject: Re: [FFmpeg-devel] Building for Mac x86 with GCC & NASM
> >>
> >> These warnings appeared since the new linker in Xcode 15.0, 1.5
> years
> >> ago.
> >> I'm not aware of a flag for silencing these warnings; the only way
> I'm
> >> aware of is to force using the old linker by passing -Wl,-
> ld_classic.
> >
> > Thanks for the tip. It works to the extent that it prevents those
> > messages from appearing and make completes successfully. But almost
> > all (4724) fate tests are failing, haven't tried to trace it down.
> 
> That sounds odd; it works fine for me (on an arm64 mac).

Can you spot any difference to my configure that could be the culprit?

./configure --pkg-config-flags="--static" --extra-libs="-lm" \
         --extra-cflags="-mmacosx-version-min=14.0" \
         --extra-ldflags="-mmacosx-version-min=14.0 -Wl,-ld_classic -Wl,-platform_version,macos,14.0,14.0" \
         --enable-gpl \
         --enable-nonfree \
         --enable-videotoolbox \
         --samples=fate-suite --disable-stripping \
         --disable-doc --disable-optimizations --disable-avx512 --enable-debug=3



> However this flag isn't a great solution either, since Xcode 16, the
> linker warns "ld: warning: -ld_classic is deprecated and will be
> removed
> in a future release".

I'm on a macos-14 machine for now, not sure about the Xcode version,
does it align to the OS version?


> > This led me to a reference indicating that YASM already does it
> right.
> > I tried to build with YASM instead. After disabling HEVC and VVC
> decoders
> > it ran almost to the end, but then it failed on tx_float:
> >
> > Warning: libavcodec/x86/vp9lpf.o
> > skipping strip -x
> > Warning: libavcodec/x86/vp9lpf.o
> > libavutil/x86/tx_float.asm:1936: error:
> > Warning: (PFA_15_FN:21) expression syntax
> > Warning: error
> > libavutil/x86/tx_float.asm:1937: error: (PFA_15_FN:21)
> > Warning: expression syntax error
> > make: *** [libavutil/x86/tx_float.o] Error
> >
> > I don't know whether it can be disabled in some way as it appears to
> be
> > a prerequisite for many codecs and filters?
> > Besides that, I suppose that YASM isn't a good idea at all, right?`
> 
> I'm not really familiar with the situation about x86 assemblers, but
> afaik
> yasm is much further behind on many other aspects.
> 
> > From a different angle - what do you think would be the most useful
> > Mac build for Patchwork CI in general?
> > The available runners are macos 13, 14 and 15 - all x86, there's no
> > arm yet.
> > And would it be better to use Clang like in case of your FATE
> machines?
> 
> I would recommend you to use the Apple provided Clang rather than GCC.


Okay good, I'll switch to that.


Thanks again
sw





More information about the ffmpeg-devel mailing list