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

Michael Niedermayer michael at niedermayer.cc
Fri Dec 23 22:21:36 EET 2022


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 at 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 at 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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20221223/b6eb9f3c/attachment.sig>


More information about the ffmpeg-devel mailing list