
Misleading, because it says "Use msys2 shell for running pacman. Well, if you can use any shell to run pacman, the the wiki seems Practically speaking, you can transform an msys2 shell into a mingw-w64 x86_64 shell for the execution of some-command as follows: At present multilib GCCs would compromise the choice of exception handling as it's not possible to specify different types for each arch. We don't provide multilib builds of GCC so you can't use -m32 and -m64. Users who use MSYS2 to build their own native software are better off writing PKGBUILD scripts for it anyway and using makepkg-mingw from the msys2_shell. So running pacman from msys2_shell.bat avoids a class of potential problems (though we'd try to fix any that are reported anyway). A concrete example of that would be 'sed'. Generally speaking, you can use any shell for pacman, but you could run into some issues using mingw shells where depending on what packages you've installed into /mingw32 or /mingw64, the post install scripts of packages (which are arbitrary bash scripts) may end up running an unexpected mingw-w64 variant of a program. If you only need to run bits of mingw-w64 software occasionally then using the full path to it will sometimes work ok. I can't speak for all users, I expect some want to develop msys2 software or shell scripts or python or whatever and all that can be done without using native mingw-w64 software.

I can at least point out the problem areas and unanswered issues, as a user trying to understand msys2. I would take a stab at editing it, I can write well, but I don't know the answers. Does "other tasks" include running pacman? If so, the the description about msys2 is misleading.īottom line, it would be nice if the wiki was clearer and more directly related to what a user needs to know.

= What does it mean by using mingw shells for "other tasks". = As a user, do I ever need to use the msys2 shell? Is the msys2 shell pretty much for developers wanting to develop new msys2 packages?

= I take it that if I want to build a 32-bit exe, I should do so within mingw32 shell, and if I want to build a 64-bit exe, I should do so within mingw64 shell, but is it correct that with -m32 or -m64 compiler flags, or something like that, either architecture can be built from either mingw shell?

Does it really matter which shell is used to run pacman? Do I really need to open an msys2 shell to run pacman? = I have been running pacman from the mingw shells and it seems to work fine, opposite to what the wiki suggests. Use mingw shells for building native software and other tasks." Here are some specific confusions: I'm also confused about the difference between the shells, and which to use, even after reading the wiki, which currently says: "Use msys2 shell for running pacman, makepkg, makepkg-mingw and for building POSIX-dependent software that you don't intend to distribute.
