* [FFmpeg-devel] [PATCH v3] ffbuild: read library linker objects from a file
@ 2025-03-13 13:02 Gyan Doshi
2025-03-15 7:56 ` Gyan Doshi
2025-03-17 11:32 ` Zhao Zhili
0 siblings, 2 replies; 8+ messages in thread
From: Gyan Doshi @ 2025-03-13 13:02 UTC (permalink / raw)
To: ffmpeg-devel
The linker command can exceed the maximum argument limit on MinGW,
especially for libavcodec.
The objects list is now stored in a file and passed to the linker.
---
v3:
for reasons unknown to me, static linking doesn't appear to
work on linux with escaped variables, so removed those.
Someone please test on linux both static and shared builds.
.gitignore | 1 +
ffbuild/common.mak | 2 +-
ffbuild/library.mak | 8 ++++++--
3 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/.gitignore b/.gitignore
index 9cfc78b414..430abaf91b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
*.a
*.o
+*.objs
*.o.*
*.d
*.def
diff --git a/ffbuild/common.mak b/ffbuild/common.mak
index 023adb8567..ca45a0f368 100644
--- a/ffbuild/common.mak
+++ b/ffbuild/common.mak
@@ -214,7 +214,7 @@ $(TOOLOBJS): | tools
OUTDIRS := $(OUTDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(SLIBOBJS) $(SHLIBOBJS) $(STLIBOBJS) $(TESTOBJS))
-CLEANSUFFIXES = *.d *.gcda *.gcno *.h.c *.ho *.map *.o *.pc *.ptx *.ptx.gz *.ptx.c *.ver *.version *$(DEFAULT_X86ASMD).asm *~ *.ilk *.pdb
+CLEANSUFFIXES = *.d *.gcda *.gcno *.h.c *.ho *.map *.o *.objs *.pc *.ptx *.ptx.gz *.ptx.c *.ver *.version *$(DEFAULT_X86ASMD).asm *~ *.ilk *.pdb
LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a
define RULES
diff --git a/ffbuild/library.mak b/ffbuild/library.mak
index 793e9d41fa..72e3872157 100644
--- a/ffbuild/library.mak
+++ b/ffbuild/library.mak
@@ -35,8 +35,10 @@ OBJS += $(SHLIBOBJS)
endif
$(SUBDIR)$(LIBNAME): $(OBJS) $(STLIBOBJS)
$(RM) $@
- $(AR) $(ARFLAGS) $(AR_O) $^
+ $(Q)echo $^ > $@.objs
+ $(AR) $(ARFLAGS) $(AR_O) @$@.objs
$(RANLIB) $@
+ -$(RM) $@.objs
install-headers: install-lib$(NAME)-headers install-lib$(NAME)-pkgconfig
@@ -66,8 +68,10 @@ $(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SHLIBOBJS) $(SLIBOBJS) $(SUBDIR)lib$(NAME).ver
$(SLIB_CREATE_DEF_CMD)
- $$(LD) $(SHFLAGS) $(LDFLAGS) $(LDSOFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS)
+ $(Q)echo $$(filter %.o,$$^) > $$@.objs
+ $$(LD) $(SHFLAGS) $(LDFLAGS) $(LDSOFLAGS) $$(LD_O) @$$@.objs $(FFEXTRALIBS)
$(SLIB_EXTRA_CMD)
+ -$(RM) $$@.objs
ifdef SUBDIR
$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(DEP_LIBS)
--
2.46.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH v3] ffbuild: read library linker objects from a file
2025-03-13 13:02 [FFmpeg-devel] [PATCH v3] ffbuild: read library linker objects from a file Gyan Doshi
@ 2025-03-15 7:56 ` Gyan Doshi
2025-03-17 10:17 ` Gyan Doshi
2025-03-17 11:32 ` Zhao Zhili
1 sibling, 1 reply; 8+ messages in thread
From: Gyan Doshi @ 2025-03-15 7:56 UTC (permalink / raw)
To: ffmpeg-devel
On 2025-03-13 06:32 pm, Gyan Doshi wrote:
> The linker command can exceed the maximum argument limit on MinGW,
> especially for libavcodec.
>
> The objects list is now stored in a file and passed to the linker.
> ---
> v3:
> for reasons unknown to me, static linking doesn't appear to
> work on linux with escaped variables, so removed those.
> Someone please test on linux both static and shared builds.
Both static and shared build tested on Ubuntu (WSL).
Plan to push tomorrow.
Regards,
Gyan
>
> .gitignore | 1 +
> ffbuild/common.mak | 2 +-
> ffbuild/library.mak | 8 ++++++--
> 3 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/.gitignore b/.gitignore
> index 9cfc78b414..430abaf91b 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -1,5 +1,6 @@
> *.a
> *.o
> +*.objs
> *.o.*
> *.d
> *.def
> diff --git a/ffbuild/common.mak b/ffbuild/common.mak
> index 023adb8567..ca45a0f368 100644
> --- a/ffbuild/common.mak
> +++ b/ffbuild/common.mak
> @@ -214,7 +214,7 @@ $(TOOLOBJS): | tools
>
> OUTDIRS := $(OUTDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(SLIBOBJS) $(SHLIBOBJS) $(STLIBOBJS) $(TESTOBJS))
>
> -CLEANSUFFIXES = *.d *.gcda *.gcno *.h.c *.ho *.map *.o *.pc *.ptx *.ptx.gz *.ptx.c *.ver *.version *$(DEFAULT_X86ASMD).asm *~ *.ilk *.pdb
> +CLEANSUFFIXES = *.d *.gcda *.gcno *.h.c *.ho *.map *.o *.objs *.pc *.ptx *.ptx.gz *.ptx.c *.ver *.version *$(DEFAULT_X86ASMD).asm *~ *.ilk *.pdb
> LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a
>
> define RULES
> diff --git a/ffbuild/library.mak b/ffbuild/library.mak
> index 793e9d41fa..72e3872157 100644
> --- a/ffbuild/library.mak
> +++ b/ffbuild/library.mak
> @@ -35,8 +35,10 @@ OBJS += $(SHLIBOBJS)
> endif
> $(SUBDIR)$(LIBNAME): $(OBJS) $(STLIBOBJS)
> $(RM) $@
> - $(AR) $(ARFLAGS) $(AR_O) $^
> + $(Q)echo $^ > $@.objs
> + $(AR) $(ARFLAGS) $(AR_O) @$@.objs
> $(RANLIB) $@
> + -$(RM) $@.objs
>
> install-headers: install-lib$(NAME)-headers install-lib$(NAME)-pkgconfig
>
> @@ -66,8 +68,10 @@ $(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
>
> $(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SHLIBOBJS) $(SLIBOBJS) $(SUBDIR)lib$(NAME).ver
> $(SLIB_CREATE_DEF_CMD)
> - $$(LD) $(SHFLAGS) $(LDFLAGS) $(LDSOFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS)
> + $(Q)echo $$(filter %.o,$$^) > $$@.objs
> + $$(LD) $(SHFLAGS) $(LDFLAGS) $(LDSOFLAGS) $$(LD_O) @$$@.objs $(FFEXTRALIBS)
> $(SLIB_EXTRA_CMD)
> + -$(RM) $$@.objs
>
> ifdef SUBDIR
> $(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(DEP_LIBS)
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH v3] ffbuild: read library linker objects from a file
2025-03-15 7:56 ` Gyan Doshi
@ 2025-03-17 10:17 ` Gyan Doshi
0 siblings, 0 replies; 8+ messages in thread
From: Gyan Doshi @ 2025-03-17 10:17 UTC (permalink / raw)
To: ffmpeg-devel
On 2025-03-15 01:26 pm, Gyan Doshi wrote:
>
>
> On 2025-03-13 06:32 pm, Gyan Doshi wrote:
>> The linker command can exceed the maximum argument limit on MinGW,
>> especially for libavcodec.
>>
>> The objects list is now stored in a file and passed to the linker.
>> ---
>> v3:
>> for reasons unknown to me, static linking doesn't appear to
>> work on linux with escaped variables, so removed those.
>> Someone please test on linux both static and shared builds.
>
> Both static and shared build tested on Ubuntu (WSL).
> Plan to push tomorrow.
Pushed as 9e857e1f8aeeb655adb9d09bf53add26a27092e2
Regards,
Gyan*
*
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH v3] ffbuild: read library linker objects from a file
2025-03-13 13:02 [FFmpeg-devel] [PATCH v3] ffbuild: read library linker objects from a file Gyan Doshi
2025-03-15 7:56 ` Gyan Doshi
@ 2025-03-17 11:32 ` Zhao Zhili
2025-03-17 11:45 ` Gyan Doshi
1 sibling, 1 reply; 8+ messages in thread
From: Zhao Zhili @ 2025-03-17 11:32 UTC (permalink / raw)
To: FFmpeg development discussions and patches
> On Mar 13, 2025, at 21:02, Gyan Doshi <ffmpeg@gyani.pro> wrote:
>
> The linker command can exceed the maximum argument limit on MinGW,
> especially for libavcodec.
>
> The objects list is now stored in a file and passed to the linker.
> ---
> v3:
> for reasons unknown to me, static linking doesn't appear to
> work on linux with escaped variables, so removed those.
> Someone please test on linux both static and shared builds.
>
> .gitignore | 1 +
> ffbuild/common.mak | 2 +-
> ffbuild/library.mak | 8 ++++++--
> 3 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/.gitignore b/.gitignore
> index 9cfc78b414..430abaf91b 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -1,5 +1,6 @@
> *.a
> *.o
> +*.objs
> *.o.*
> *.d
> *.def
> diff --git a/ffbuild/common.mak b/ffbuild/common.mak
> index 023adb8567..ca45a0f368 100644
> --- a/ffbuild/common.mak
> +++ b/ffbuild/common.mak
> @@ -214,7 +214,7 @@ $(TOOLOBJS): | tools
>
> OUTDIRS := $(OUTDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(SLIBOBJS) $(SHLIBOBJS) $(STLIBOBJS) $(TESTOBJS))
>
> -CLEANSUFFIXES = *.d *.gcda *.gcno *.h.c *.ho *.map *.o *.pc *.ptx *.ptx.gz *.ptx.c *.ver *.version *$(DEFAULT_X86ASMD).asm *~ *.ilk *.pdb
> +CLEANSUFFIXES = *.d *.gcda *.gcno *.h.c *.ho *.map *.o *.objs *.pc *.ptx *.ptx.gz *.ptx.c *.ver *.version *$(DEFAULT_X86ASMD).asm *~ *.ilk *.pdb
> LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a
>
> define RULES
> diff --git a/ffbuild/library.mak b/ffbuild/library.mak
> index 793e9d41fa..72e3872157 100644
> --- a/ffbuild/library.mak
> +++ b/ffbuild/library.mak
> @@ -35,8 +35,10 @@ OBJS += $(SHLIBOBJS)
> endif
> $(SUBDIR)$(LIBNAME): $(OBJS) $(STLIBOBJS)
> $(RM) $@
> - $(AR) $(ARFLAGS) $(AR_O) $^
> + $(Q)echo $^ > $@.objs
> + $(AR) $(ARFLAGS) $(AR_O) @$@.objs
@file doesn’t supported by ar on macOS or BSD.
> $(RANLIB) $@
> + -$(RM) $@.objs
>
> install-headers: install-lib$(NAME)-headers install-lib$(NAME)-pkgconfig
>
> @@ -66,8 +68,10 @@ $(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
>
> $(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SHLIBOBJS) $(SLIBOBJS) $(SUBDIR)lib$(NAME).ver
> $(SLIB_CREATE_DEF_CMD)
> - $$(LD) $(SHFLAGS) $(LDFLAGS) $(LDSOFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS)
> + $(Q)echo $$(filter %.o,$$^) > $$@.objs
> + $$(LD) $(SHFLAGS) $(LDFLAGS) $(LDSOFLAGS) $$(LD_O) @$$@.objs $(FFEXTRALIBS)
> $(SLIB_EXTRA_CMD)
> + -$(RM) $$@.objs
>
> ifdef SUBDIR
> $(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(DEP_LIBS)
> --
> 2.46.1
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH v3] ffbuild: read library linker objects from a file
2025-03-17 11:32 ` Zhao Zhili
@ 2025-03-17 11:45 ` Gyan Doshi
2025-03-17 11:59 ` Zhao Zhili
0 siblings, 1 reply; 8+ messages in thread
From: Gyan Doshi @ 2025-03-17 11:45 UTC (permalink / raw)
To: ffmpeg-devel
On 2025-03-17 05:02 pm, Zhao Zhili wrote:
>
>> On Mar 13, 2025, at 21:02, Gyan Doshi <ffmpeg@gyani.pro> wrote:
>>
>> The linker command can exceed the maximum argument limit on MinGW,
>> especially for libavcodec.
>>
>> The objects list is now stored in a file and passed to the linker.
>> ---
>> v3:
>> for reasons unknown to me, static linking doesn't appear to
>> work on linux with escaped variables, so removed those.
>> Someone please test on linux both static and shared builds.
>>
>> .gitignore | 1 +
>> ffbuild/common.mak | 2 +-
>> ffbuild/library.mak | 8 ++++++--
>> 3 files changed, 8 insertions(+), 3 deletions(-)
>>
>> diff --git a/.gitignore b/.gitignore
>> index 9cfc78b414..430abaf91b 100644
>> --- a/.gitignore
>> +++ b/.gitignore
>> @@ -1,5 +1,6 @@
>> *.a
>> *.o
>> +*.objs
>> *.o.*
>> *.d
>> *.def
>> diff --git a/ffbuild/common.mak b/ffbuild/common.mak
>> index 023adb8567..ca45a0f368 100644
>> --- a/ffbuild/common.mak
>> +++ b/ffbuild/common.mak
>> @@ -214,7 +214,7 @@ $(TOOLOBJS): | tools
>>
>> OUTDIRS := $(OUTDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(SLIBOBJS) $(SHLIBOBJS) $(STLIBOBJS) $(TESTOBJS))
>>
>> -CLEANSUFFIXES = *.d *.gcda *.gcno *.h.c *.ho *.map *.o *.pc *.ptx *.ptx.gz *.ptx.c *.ver *.version *$(DEFAULT_X86ASMD).asm *~ *.ilk *.pdb
>> +CLEANSUFFIXES = *.d *.gcda *.gcno *.h.c *.ho *.map *.o *.objs *.pc *.ptx *.ptx.gz *.ptx.c *.ver *.version *$(DEFAULT_X86ASMD).asm *~ *.ilk *.pdb
>> LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a
>>
>> define RULES
>> diff --git a/ffbuild/library.mak b/ffbuild/library.mak
>> index 793e9d41fa..72e3872157 100644
>> --- a/ffbuild/library.mak
>> +++ b/ffbuild/library.mak
>> @@ -35,8 +35,10 @@ OBJS += $(SHLIBOBJS)
>> endif
>> $(SUBDIR)$(LIBNAME): $(OBJS) $(STLIBOBJS)
>> $(RM) $@
>> - $(AR) $(ARFLAGS) $(AR_O) $^
>> + $(Q)echo $^ > $@.objs
>> + $(AR) $(ARFLAGS) $(AR_O) @$@.objs
> @file doesn’t supported by ar on macOS or BSD.
Do we have any FATE clients on these platforms?
I guess we can use some guard (which?) to define an alternate recipe.
Regards,
Gyan
>
>> $(RANLIB) $@
>> + -$(RM) $@.objs
>>
>> install-headers: install-lib$(NAME)-headers install-lib$(NAME)-pkgconfig
>>
>> @@ -66,8 +68,10 @@ $(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
>>
>> $(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SHLIBOBJS) $(SLIBOBJS) $(SUBDIR)lib$(NAME).ver
>> $(SLIB_CREATE_DEF_CMD)
>> - $$(LD) $(SHFLAGS) $(LDFLAGS) $(LDSOFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS)
>> + $(Q)echo $$(filter %.o,$$^) > $$@.objs
>> + $$(LD) $(SHFLAGS) $(LDFLAGS) $(LDSOFLAGS) $$(LD_O) @$$@.objs $(FFEXTRALIBS)
>> $(SLIB_EXTRA_CMD)
>> + -$(RM) $$@.objs
>>
>> ifdef SUBDIR
>> $(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(DEP_LIBS)
>> --
>> 2.46.1
>>
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel@ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH v3] ffbuild: read library linker objects from a file
2025-03-17 11:45 ` Gyan Doshi
@ 2025-03-17 11:59 ` Zhao Zhili
2025-03-17 13:11 ` Gyan Doshi
0 siblings, 1 reply; 8+ messages in thread
From: Zhao Zhili @ 2025-03-17 11:59 UTC (permalink / raw)
To: FFmpeg development discussions and patches
> On Mar 17, 2025, at 19:45, Gyan Doshi <ffmpeg@gyani.pro> wrote:
>
>
>
> On 2025-03-17 05:02 pm, Zhao Zhili wrote:
>>
>>> On Mar 13, 2025, at 21:02, Gyan Doshi <ffmpeg@gyani.pro> wrote:
>>>
>>> The linker command can exceed the maximum argument limit on MinGW,
>>> especially for libavcodec.
>>>
>>> The objects list is now stored in a file and passed to the linker.
>>> ---
>>> v3:
>>> for reasons unknown to me, static linking doesn't appear to
>>> work on linux with escaped variables, so removed those.
>>> Someone please test on linux both static and shared builds.
>>>
>>> .gitignore | 1 +
>>> ffbuild/common.mak | 2 +-
>>> ffbuild/library.mak | 8 ++++++--
>>> 3 files changed, 8 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/.gitignore b/.gitignore
>>> index 9cfc78b414..430abaf91b 100644
>>> --- a/.gitignore
>>> +++ b/.gitignore
>>> @@ -1,5 +1,6 @@
>>> *.a
>>> *.o
>>> +*.objs
>>> *.o.*
>>> *.d
>>> *.def
>>> diff --git a/ffbuild/common.mak b/ffbuild/common.mak
>>> index 023adb8567..ca45a0f368 100644
>>> --- a/ffbuild/common.mak
>>> +++ b/ffbuild/common.mak
>>> @@ -214,7 +214,7 @@ $(TOOLOBJS): | tools
>>>
>>> OUTDIRS := $(OUTDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(SLIBOBJS) $(SHLIBOBJS) $(STLIBOBJS) $(TESTOBJS))
>>>
>>> -CLEANSUFFIXES = *.d *.gcda *.gcno *.h.c *.ho *.map *.o *.pc *.ptx *.ptx.gz *.ptx.c *.ver *.version *$(DEFAULT_X86ASMD).asm *~ *.ilk *.pdb
>>> +CLEANSUFFIXES = *.d *.gcda *.gcno *.h.c *.ho *.map *.o *.objs *.pc *.ptx *.ptx.gz *.ptx.c *.ver *.version *$(DEFAULT_X86ASMD).asm *~ *.ilk *.pdb
>>> LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a
>>>
>>> define RULES
>>> diff --git a/ffbuild/library.mak b/ffbuild/library.mak
>>> index 793e9d41fa..72e3872157 100644
>>> --- a/ffbuild/library.mak
>>> +++ b/ffbuild/library.mak
>>> @@ -35,8 +35,10 @@ OBJS += $(SHLIBOBJS)
>>> endif
>>> $(SUBDIR)$(LIBNAME): $(OBJS) $(STLIBOBJS)
>>> $(RM) $@
>>> - $(AR) $(ARFLAGS) $(AR_O) $^
>>> + $(Q)echo $^ > $@.objs
>>> + $(AR) $(ARFLAGS) $(AR_O) @$@.objs
>> @file doesn’t supported by ar on macOS or BSD.
>
> Do we have any FATE clients on these platforms?
I remember there were apple machines, but they are not there now.
https://fate.ffmpeg.org/
Can we add CI machine and workflow to code.ffmpeg.org <http://code.ffmpeg.org/> now?
>
> I guess we can use some guard (which?) to define an alternate recipe.
>
> Regards,
> Gyan
>
>
>>
>>> $(RANLIB) $@
>>> + -$(RM) $@.objs
>>>
>>> install-headers: install-lib$(NAME)-headers install-lib$(NAME)-pkgconfig
>>>
>>> @@ -66,8 +68,10 @@ $(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
>>>
>>> $(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SHLIBOBJS) $(SLIBOBJS) $(SUBDIR)lib$(NAME).ver
>>> $(SLIB_CREATE_DEF_CMD)
>>> - $$(LD) $(SHFLAGS) $(LDFLAGS) $(LDSOFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS)
>>> + $(Q)echo $$(filter %.o,$$^) > $$@.objs
>>> + $$(LD) $(SHFLAGS) $(LDFLAGS) $(LDSOFLAGS) $$(LD_O) @$$@.objs $(FFEXTRALIBS)
>>> $(SLIB_EXTRA_CMD)
>>> + -$(RM) $$@.objs
>>>
>>> ifdef SUBDIR
>>> $(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(DEP_LIBS)
>>> --
>>> 2.46.1
>>>
>>> _______________________________________________
>>> ffmpeg-devel mailing list
>>> ffmpeg-devel@ffmpeg.org
>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>
>>> To unsubscribe, visit link above, or email
>>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel@ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH v3] ffbuild: read library linker objects from a file
2025-03-17 11:59 ` Zhao Zhili
@ 2025-03-17 13:11 ` Gyan Doshi
2025-03-17 13:21 ` Martin Storsjö
0 siblings, 1 reply; 8+ messages in thread
From: Gyan Doshi @ 2025-03-17 13:11 UTC (permalink / raw)
To: ffmpeg-devel
On 2025-03-17 05:29 pm, Zhao Zhili wrote:
>
>> On Mar 17, 2025, at 19:45, Gyan Doshi <ffmpeg@gyani.pro> wrote:
>>
>>
>>
>> On 2025-03-17 05:02 pm, Zhao Zhili wrote:
>>>> On Mar 13, 2025, at 21:02, Gyan Doshi <ffmpeg@gyani.pro> wrote:
>>>>
>>>> The linker command can exceed the maximum argument limit on MinGW,
>>>> especially for libavcodec.
>>>>
>>>> The objects list is now stored in a file and passed to the linker.
>>>> ---
>>>> v3:
>>>> for reasons unknown to me, static linking doesn't appear to
>>>> work on linux with escaped variables, so removed those.
>>>> Someone please test on linux both static and shared builds.
>>>>
>>>> .gitignore | 1 +
>>>> ffbuild/common.mak | 2 +-
>>>> ffbuild/library.mak | 8 ++++++--
>>>> 3 files changed, 8 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/.gitignore b/.gitignore
>>>> index 9cfc78b414..430abaf91b 100644
>>>> --- a/.gitignore
>>>> +++ b/.gitignore
>>>> @@ -1,5 +1,6 @@
>>>> *.a
>>>> *.o
>>>> +*.objs
>>>> *.o.*
>>>> *.d
>>>> *.def
>>>> diff --git a/ffbuild/common.mak b/ffbuild/common.mak
>>>> index 023adb8567..ca45a0f368 100644
>>>> --- a/ffbuild/common.mak
>>>> +++ b/ffbuild/common.mak
>>>> @@ -214,7 +214,7 @@ $(TOOLOBJS): | tools
>>>>
>>>> OUTDIRS := $(OUTDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(SLIBOBJS) $(SHLIBOBJS) $(STLIBOBJS) $(TESTOBJS))
>>>>
>>>> -CLEANSUFFIXES = *.d *.gcda *.gcno *.h.c *.ho *.map *.o *.pc *.ptx *.ptx.gz *.ptx.c *.ver *.version *$(DEFAULT_X86ASMD).asm *~ *.ilk *.pdb
>>>> +CLEANSUFFIXES = *.d *.gcda *.gcno *.h.c *.ho *.map *.o *.objs *.pc *.ptx *.ptx.gz *.ptx.c *.ver *.version *$(DEFAULT_X86ASMD).asm *~ *.ilk *.pdb
>>>> LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a
>>>>
>>>> define RULES
>>>> diff --git a/ffbuild/library.mak b/ffbuild/library.mak
>>>> index 793e9d41fa..72e3872157 100644
>>>> --- a/ffbuild/library.mak
>>>> +++ b/ffbuild/library.mak
>>>> @@ -35,8 +35,10 @@ OBJS += $(SHLIBOBJS)
>>>> endif
>>>> $(SUBDIR)$(LIBNAME): $(OBJS) $(STLIBOBJS)
>>>> $(RM) $@
>>>> - $(AR) $(ARFLAGS) $(AR_O) $^
>>>> + $(Q)echo $^ > $@.objs
>>>> + $(AR) $(ARFLAGS) $(AR_O) @$@.objs
>>> @file doesn’t supported by ar on macOS or BSD.
>> Do we have any FATE clients on these platforms?
> I remember there were apple machines, but they are not there now.
>
> https://fate.ffmpeg.org/
Can we get a definite list of archiver/linkers which we support that
don't support response files?
Regards,
Gyan
>
> Can we add CI machine and workflow to code.ffmpeg.org <http://code.ffmpeg.org/> now?
>
>> I guess we can use some guard (which?) to define an alternate recipe.
>>
>> Regards,
>> Gyan
>>
>>
>>>> $(RANLIB) $@
>>>> + -$(RM) $@.objs
>>>>
>>>> install-headers: install-lib$(NAME)-headers install-lib$(NAME)-pkgconfig
>>>>
>>>> @@ -66,8 +68,10 @@ $(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
>>>>
>>>> $(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SHLIBOBJS) $(SLIBOBJS) $(SUBDIR)lib$(NAME).ver
>>>> $(SLIB_CREATE_DEF_CMD)
>>>> - $$(LD) $(SHFLAGS) $(LDFLAGS) $(LDSOFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS)
>>>> + $(Q)echo $$(filter %.o,$$^) > $$@.objs
>>>> + $$(LD) $(SHFLAGS) $(LDFLAGS) $(LDSOFLAGS) $$(LD_O) @$$@.objs $(FFEXTRALIBS)
>>>> $(SLIB_EXTRA_CMD)
>>>> + -$(RM) $$@.objs
>>>>
>>>> ifdef SUBDIR
>>>> $(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(DEP_LIBS)
>>>> --
>>>> 2.46.1
>>>>
>>>> _______________________________________________
>>>> ffmpeg-devel mailing list
>>>> ffmpeg-devel@ffmpeg.org
>>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>>
>>>> To unsubscribe, visit link above, or email
>>>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>>> _______________________________________________
>>> ffmpeg-devel mailing list
>>> ffmpeg-devel@ffmpeg.org
>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>
>>> To unsubscribe, visit link above, or email
>>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel@ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH v3] ffbuild: read library linker objects from a file
2025-03-17 13:11 ` Gyan Doshi
@ 2025-03-17 13:21 ` Martin Storsjö
0 siblings, 0 replies; 8+ messages in thread
From: Martin Storsjö @ 2025-03-17 13:21 UTC (permalink / raw)
To: FFmpeg development discussions and patches
On Mon, 17 Mar 2025, Gyan Doshi wrote:
> On 2025-03-17 05:29 pm, Zhao Zhili wrote:
>>
>>>> @file doesn’t supported by ar on macOS or BSD.
>>> Do we have any FATE clients on these platforms?
>> I remember there were apple machines, but they are not there now.
>>
>> https://fate.ffmpeg.org/
>
> Can we get a definite list of archiver/linkers which we support that
> don't support response files?
Wouldn't it be easier to just test within configure whether $AR supports
response files like this? And then emit a flag to config.mak which allows
picking which codepath to take here.
Alternatively we could look for specifically targeting the fix to Windows
- however, it's not enough to look for the target OS - it needs to look at
the host OS. Crosscompiling for Windows on unix won't need it, and the
converse, crosscompiling on Windows targeting Linux would also need the
same fix.
So just checking whether the feature is supported by $AR might be the
simplest.
// Martin
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-03-17 13:21 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-03-13 13:02 [FFmpeg-devel] [PATCH v3] ffbuild: read library linker objects from a file Gyan Doshi
2025-03-15 7:56 ` Gyan Doshi
2025-03-17 10:17 ` Gyan Doshi
2025-03-17 11:32 ` Zhao Zhili
2025-03-17 11:45 ` Gyan Doshi
2025-03-17 11:59 ` Zhao Zhili
2025-03-17 13:11 ` Gyan Doshi
2025-03-17 13:21 ` Martin Storsjö
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git