diff mbox series

[FFmpeg-devel] ffmpeg-3.4.12 does not build (i686-w64-mingw32)

Message ID 1658097660.1149740.1671807871813@mail1.libero.it
State New
Headers show
Series [FFmpeg-devel] ffmpeg-3.4.12 does not build (i686-w64-mingw32) | expand

Checks

Context Check Description
yinshiyou/configure_loongarch64 warning Failed to apply patch
andriy/configure_x86 warning Failed to apply patch

Commit Message

Carlo Bramini Dec. 23, 2022, 3:04 p.m. UTC
Hello,

I tried to build ffmpeg-3.4.12, which is the last one supporting Windows XP, but it fails to compile the resource file for Windows.
Running verbose build, it prints this output on the console:

> $ make V=1
> i686-w64-mingw32-windres -I. -Isrc/ --preprocessor "i686-w64-mingw32-gcc -E -xc-header -DRC_INVOKED -MMD -MF libavdevice/avdeviceres.d -MT libavdevice/avdeviceres.o" -o libavdevice/avdeviceres.o /home/carlo/packages/ffmpeg/mingw64-i686-ffmpeg-3.4.12-1.noarch/src/ffmpeg-3.4.12/libavdevice/avdeviceres.rc
> /bin/sh: i686-w64-mingw32-gcc -E -xc-header -DRC_INVOKED -MMD -MF libavdevice/avdeviceres.d -MT libavdevice/avdeviceres.o: No such file or directory
> make: *** [/home/carlo/packages/ffmpeg/mingw64-i686-ffmpeg-3.4.12-1.noarch/src/ffmpeg-3.4.12/ffbuild/common.mak:86: libavdevice/avdeviceres.o] Error 1

I found a solution by comparing ffbuild/common.mak between this version and the latest 5.1.2, which has already fixed this bug.
So, I'm wondering if it could be possible to apply the same patch for fixing this tiny issue in the next maintenance release of 3.4.x branch, if it will happen in the future.
I attached that patch in this email for reference, if somebody can import that line from development sources.

Sincerely,

Carlo Bramini.

Comments

Michael Niedermayer Dec. 23, 2022, 8:21 p.m. UTC | #1
On Fri, Dec 23, 2022 at 04:04:31PM +0100, Carlo Bramini wrote:
> Hello,
> 
> I tried to build ffmpeg-3.4.12, which is the last one supporting Windows XP, but it fails to compile the resource file for Windows.
> Running verbose build, it prints this output on the console:
> 
> > $ make V=1
> > i686-w64-mingw32-windres -I. -Isrc/ --preprocessor "i686-w64-mingw32-gcc -E -xc-header -DRC_INVOKED -MMD -MF libavdevice/avdeviceres.d -MT libavdevice/avdeviceres.o" -o libavdevice/avdeviceres.o /home/carlo/packages/ffmpeg/mingw64-i686-ffmpeg-3.4.12-1.noarch/src/ffmpeg-3.4.12/libavdevice/avdeviceres.rc
> > /bin/sh: i686-w64-mingw32-gcc -E -xc-header -DRC_INVOKED -MMD -MF libavdevice/avdeviceres.d -MT libavdevice/avdeviceres.o: No such file or directory
> > make: *** [/home/carlo/packages/ffmpeg/mingw64-i686-ffmpeg-3.4.12-1.noarch/src/ffmpeg-3.4.12/ffbuild/common.mak:86: libavdevice/avdeviceres.o] Error 1
> 
> I found a solution by comparing ffbuild/common.mak between this version and the latest 5.1.2, which has already fixed this bug.
> So, I'm wondering if it could be possible to apply the same patch for fixing this tiny issue in the next maintenance release of 3.4.x branch, if it will happen in the future.
> I attached that patch in this email for reference, if somebody can import that line from development sources.
> 
> Sincerely,
> 
> Carlo Bramini.

> --- origsrc/ffmpeg-3.4.12/ffbuild/common.mak	2022-10-27 22:21:00.000000000 +0200
> +++ src/ffmpeg-3.4.12/ffbuild/common.mak	2022-12-23 10:46:32.733625900 +0100
> @@ -83,7 +83,7 @@ COMPILE_NVCC = $(call COMPILE,NVCC)
>  	-$(if $(ASMSTRIPFLAGS), $(STRIP) $(ASMSTRIPFLAGS) $@)
>  
>  %.o: %.rc
> -	$(WINDRES) $(IFLAGS) --preprocessor "$(DEPWINDRES) -E -xc-header -DRC_INVOKED $(CC_DEPFLAGS)" -o $@ $<
> +	$(WINDRES) $(IFLAGS) $(foreach ARG,$(CC_DEPFLAGS),--preprocessor-arg "$(ARG)") -o $@ $<
>  
>  %.i: %.c
>  	$(CC) $(CCFLAGS) $(CC_E) $<

This is the patch, you seem talking about.

commit f9626d1065c43f1d51afe66bdf988b9f33729440
Author: Martin Storsjö <martin@martin.st>
Date:   Sat May 15 00:42:38 2021 +0300

    ffbuild: Avoid using the --preprocessor argument to windres
    
    Instead use --preprocessor-arg; in binutils 2.36, the --preprocessor
    flag was changed so that it no longer accepts a string containing
    multiple arguments, but the whole --preprocessor argument is
    treated as the path to the preprocessor executable (where the path
    can contain spaces).
    
    It's currently unclear whether this behaviour will stay or if it
    is going to be reverted in the future, see discussion at [1]. Just
    to be safe, avoid using the --preprocessor argument. Don't redeclare
    the full preprocessing command, but just add the $(CC_DEPFLAGS) options.
    
    Based on a patch by Kyle Schwartz.
    
    [1] https://sourceware.org/bugzilla/show_bug.cgi?id=27594
    
    Signed-off-by: Martin Storsjö <martin@martin.st>


[...]
Carlo Bramini Dec. 24, 2022, 12:25 p.m. UTC | #2
Hello,

yes, that commit seems to be the one that include the needed fix.
Is it possible to import that change also into the next release of 3.4.x branch? Or do I need to open a new bug report?

Sincerely,

Carlo Bramini.

> Il 23/12/2022 21:21 Michael Niedermayer <michael@niedermayer.cc> ha scritto:
> 
>  
> On Fri, Dec 23, 2022 at 04:04:31PM +0100, Carlo Bramini wrote:
> > Hello,
> > 
> > I tried to build ffmpeg-3.4.12, which is the last one supporting Windows XP, but it fails to compile the resource file for Windows.
> > Running verbose build, it prints this output on the console:
> > 
> > > $ make V=1
> > > i686-w64-mingw32-windres -I. -Isrc/ --preprocessor "i686-w64-mingw32-gcc -E -xc-header -DRC_INVOKED -MMD -MF libavdevice/avdeviceres.d -MT libavdevice/avdeviceres.o" -o libavdevice/avdeviceres.o /home/carlo/packages/ffmpeg/mingw64-i686-ffmpeg-3.4.12-1.noarch/src/ffmpeg-3.4.12/libavdevice/avdeviceres.rc
> > > /bin/sh: i686-w64-mingw32-gcc -E -xc-header -DRC_INVOKED -MMD -MF libavdevice/avdeviceres.d -MT libavdevice/avdeviceres.o: No such file or directory
> > > make: *** [/home/carlo/packages/ffmpeg/mingw64-i686-ffmpeg-3.4.12-1.noarch/src/ffmpeg-3.4.12/ffbuild/common.mak:86: libavdevice/avdeviceres.o] Error 1
> > 
> > I found a solution by comparing ffbuild/common.mak between this version and the latest 5.1.2, which has already fixed this bug.
> > So, I'm wondering if it could be possible to apply the same patch for fixing this tiny issue in the next maintenance release of 3.4.x branch, if it will happen in the future.
> > I attached that patch in this email for reference, if somebody can import that line from development sources.
> > 
> > Sincerely,
> > 
> > Carlo Bramini.
> 
> > --- origsrc/ffmpeg-3.4.12/ffbuild/common.mak	2022-10-27 22:21:00.000000000 +0200
> > +++ src/ffmpeg-3.4.12/ffbuild/common.mak	2022-12-23 10:46:32.733625900 +0100
> > @@ -83,7 +83,7 @@ COMPILE_NVCC = $(call COMPILE,NVCC)
> >  	-$(if $(ASMSTRIPFLAGS), $(STRIP) $(ASMSTRIPFLAGS) $@)
> >  
> >  %.o: %.rc
> > -	$(WINDRES) $(IFLAGS) --preprocessor "$(DEPWINDRES) -E -xc-header -DRC_INVOKED $(CC_DEPFLAGS)" -o $@ $<
> > +	$(WINDRES) $(IFLAGS) $(foreach ARG,$(CC_DEPFLAGS),--preprocessor-arg "$(ARG)") -o $@ $<
> >  
> >  %.i: %.c
> >  	$(CC) $(CCFLAGS) $(CC_E) $<
> 
> This is the patch, you seem talking about.
> 
> commit f9626d1065c43f1d51afe66bdf988b9f33729440
> Author: Martin Storsjö <martin@martin.st>
> Date:   Sat May 15 00:42:38 2021 +0300
> 
>     ffbuild: Avoid using the --preprocessor argument to windres
>     
>     Instead use --preprocessor-arg; in binutils 2.36, the --preprocessor
>     flag was changed so that it no longer accepts a string containing
>     multiple arguments, but the whole --preprocessor argument is
>     treated as the path to the preprocessor executable (where the path
>     can contain spaces).
>     
>     It's currently unclear whether this behaviour will stay or if it
>     is going to be reverted in the future, see discussion at [1]. Just
>     to be safe, avoid using the --preprocessor argument. Don't redeclare
>     the full preprocessing command, but just add the $(CC_DEPFLAGS) options.
>     
>     Based on a patch by Kyle Schwartz.
>     
>     [1] https://sourceware.org/bugzilla/show_bug.cgi?id=27594
>     
>     Signed-off-by: Martin Storsjö <martin@martin.st>
> 
> 
> [...]
> 
> 
> -- 
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
> 
> "You are 36 times more likely to die in a bathtub than at the hands of a
> terrorist. Also, you are 2.5 times more likely to become a president and
> 2 times more likely to become an astronaut, than to die in a terrorist
> attack." -- Thoughty2
> 
> _______________________________________________
> 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".
diff mbox series

Patch

--- origsrc/ffmpeg-3.4.12/ffbuild/common.mak	2022-10-27 22:21:00.000000000 +0200
+++ src/ffmpeg-3.4.12/ffbuild/common.mak	2022-12-23 10:46:32.733625900 +0100
@@ -83,7 +83,7 @@  COMPILE_NVCC = $(call COMPILE,NVCC)
 	-$(if $(ASMSTRIPFLAGS), $(STRIP) $(ASMSTRIPFLAGS) $@)
 
 %.o: %.rc
-	$(WINDRES) $(IFLAGS) --preprocessor "$(DEPWINDRES) -E -xc-header -DRC_INVOKED $(CC_DEPFLAGS)" -o $@ $<
+	$(WINDRES) $(IFLAGS) $(foreach ARG,$(CC_DEPFLAGS),--preprocessor-arg "$(ARG)") -o $@ $<
 
 %.i: %.c
 	$(CC) $(CCFLAGS) $(CC_E) $<