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

Marvin Scholz epirat07 at gmail.com
Wed May 28 11:56:55 EEST 2025



On 28 May 2025, at 10:49, softworkz . wrote:

>> -----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" \

The extra libs here should not be needed.

>          --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" \

Why are you using platform_version? That should not be necessary.

Also while using the old linker would help with these warnings, I dont think its a good thing to
do in CI as we would miss issues that only happen with the new linker…

>          --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
>
>
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list