* [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