[FFmpeg-trac] #9909(build system:new): MSVC build failure on Windows when using assembly optimizations

FFmpeg trac at avcodec.org
Tue Sep 6 19:29:08 EEST 2022

#9909: MSVC build failure on Windows when using assembly optimizations
             Reporter:  chocky       |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  build        |                  Version:  git-
  system                             |  master
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
 I am unable to build recent versions of FFmpeg with MSVC on Windows using
 the msys environment, when using assembly optimizations. Previously I was
 able to compile FFmpeg when following the MSVC compilation guide.

 I have gone back through previous code snapshots on the master branch, and
 it seems to be the changes on 2022-06-22 which have introduced the issue.
 Snapshots prior to this build OK with assembly optimisations using MSVC.

 I am using Windows 10 Pro (19044.1889) and Microsoft Visual Studio 2022

 The steps that I used to reproduce the issue (following the MSVC
 compilation guide):
 Install msys environment.
 Launch a Visual Studio Developer Command Prompt and run vcvarsall.bat
 From the developer command prompt, run msys2_shell.
 From the msys terminal, install required packages (one time setup):
 pacman -S make
 pacman -S yasm
 pacman -S diffutils
 Set up the appropriate tools path in msys terminal (for a 64bit build):
 export PATH="/c/Program Files/Microsoft Visual

 When using the following configuration, make hangs:
 ./configure --target-os=win64 --arch=x86_64 --disable-programs --enable-
 shared --disable-static --toolchain=msvc

 By hang, I mean that compilation reaches this stage but does not progress:
 LD      libavcodec/avcodec-59.dll
    Creating library libavcodec/avcodec.lib and object

 At this point it seems as if link.exe has locked up, and pressing Ctrl+C
 results in:
 make: *** Deleting file 'libavcodec/avcodec-59.dll'
 make: unlink: libavcodec/avcodec-59.dll: Device or resource busy

 Note that if I use a configuration with the --disable-asm flag, make
 ./configure --target-os=win64 --arch=x86_64 --disable-programs --enable-
 shared --disable-static --toolchain=msvc --disable-asm
Ticket URL: <https://trac.ffmpeg.org/ticket/9909>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker

More information about the FFmpeg-trac mailing list