[FFmpeg-devel] [PATCH 1/2] ffbuild: compose linker response files in a loop

Gyan Doshi ffmpeg at gyani.pro
Sat Mar 29 16:25:14 EET 2025



On 2025-03-29 05:51 pm, Ramiro Polla wrote:
> Hi Gyan,
>
> On Sat, Mar 29, 2025 at 6:11 AM Gyan Doshi <ffmpeg at gyani.pro> wrote:
>> On 2025-03-27 10:03 am, Gyan Doshi wrote:
>>> On 2025-03-26 11:37 pm, Andreas Rheinhardt wrote:
>>>> Gyan Doshi:
>>>>> On 2025-03-25 05:11 pm, Ramiro Polla wrote:
>>>>>> On Sat, Mar 22, 2025 at 5:33 AM Gyan Doshi <ffmpeg at gyani.pro> wrote:
>>>>>>> On 2025-03-22 03:29 am, Martin Storsjö wrote:
>>>>>>>> On Fri, 21 Mar 2025, Gyan Doshi wrote:
>>>>>>>>> ffbuild/library.mak | 7 +++++--
>>>>>>>>> 1 file changed, 5 insertions(+), 2 deletions(-)
>>>>>>>>>
>>>>>>>>> diff --git a/ffbuild/library.mak b/ffbuild/library.mak
>>>>>>>>> index 7e1871b74c..15302852ec 100644
>>>>>>>>> --- a/ffbuild/library.mak
>>>>>>>>> +++ b/ffbuild/library.mak
>>>>>>>>> @@ -36,7 +36,8 @@ endif
>>>>>>>>> $(SUBDIR)$(LIBNAME): $(OBJS) $(STLIBOBJS)
>>>>>>>>>        $(RM) $@
>>>>>>>>> ifeq ($(AR_OBJS),true)
>>>>>>>>> -    $(Q)echo $^ > $@.objs
>>>>>>>>> +    -$(RM) $@.objs
>>>>>>>>> +    $(Q)$(foreach ARG,$^,echo -n "$(ARG) " >> $@.objs;)
>>>>>>>> Does this instance even work, it looks broken, like it is missing
>>>>>>>> something?
>>>>>>> Tested both static and shared building. All working with no
>>>>>>> noticeable
>>>>>>> speed difference although I didn't formally bench.
>>>>>> It's generally a good idea to check for and report the speed
>>>>>> differences. Even if just for the sake of curiosity.
>>>>> So, with this configure:
>>>>>
>>>>>     --disable-doc --disable-w32threads --enable-pthreads --disable-
>>>>> autodetect --cc="ccache gcc" --enable-static --enable-shared --extra-
>>>>> ldflags="-static" --enable-gpl --enable-version3
>>>>>
>>>>> I ran one priming run + 5 repeat runs of    `time make -j4`.
>>>>>
>>>>> Before, real ranged from 2m10.188s to 2m12.154s
>>>>> After, real ranged from 2m12.486s to 2m13.405s
>>>>>
>>>>> I also ran one priming run + 5 repeat runs of    `time make -j4
>>>>> libavcodec/libavcodec.a libavcodec/avcodec.dll`.
>>>>>
>>>>> Before, real ranged from 1m34.232s to 1m42.721s
>>>>> After, real ranged from 1m32.360s to 1m39.484s
>>>>>
>>>> I presume this command compiled the whole of FFmpeg/libavcodec, i.e. it
>>>> did not just link, didn't it?
>>> Its deps, are *.o in lavu, lswr, lavc, but after the priming run, all
>>> the cc steps would be cache hits,
>>> so the bulk of the fresh executions are the linking steps.
>> Plan to push tomorrow.
> Did you not try to use GNU make's flie function?

I just benched this and it ranges from 1m28.093s to 1m29.971s (5% 
faster) for the lavc targets.
However, this was added in make 4.0. Are we supporting older make?

Regards,
Gyan



More information about the ffmpeg-devel mailing list