MSYS2 is basically Cygwin without the posix-purity stuff going and
instead a laser sharp focus on interoperability between MSYS2 tools
and Windows tools. It is "still Windows" but it uses it's own GCC that
links to (and creates software that links to) msys-2.0.dll that
provides a more posix-like set of system libraries and environment.

A regular Windows toolchain would not be the same.

On Sun, Sep 1, 2013 at 2:13 PM, Baruch Burstein <[email protected]> wrote:
> If I understand your answer correctly, MSYS(2) is basically just "Windows
> with POSIX tools, directory layout and paths", but it is still Windows. If
> so, hen why does it need it's own toolchain, and what are "MSYS binaries"?
> Wouldn't a regular Windows toolchain with Windows binaries be the same?
>
>
> On Sat, Aug 31, 2013 at 5:09 PM, LRN <[email protected]> wrote:
>>
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> On 31.08.2013 17:14, [email protected] wrote:
>> >
>> > #1
>> >
>> > I'm sure that there is a good reason to have two very similiar root type
>> > directories such as MinGW and msys, but I can't see it. But, I am new to
>> > MinGW. To me two different pseudo root directories.
>> >
>> > Can someone explain why the two are necessary and on would not suffice?
>> > Or point me to a document which explains it?
>> >
>> >     C:\MinGW  and
>> >     C:\<inGW\msys\1.0
>> >
>> > Also some directory has a link or is a link.  /usr?
>> >
>>
>> Welcome to the land of crazy!
>>
>> First, some clarifications:
>>
>> MinGW is a toolchain (compiler, linker, import libraries for MS
>> runtimes, headers). It works on W32 and produces pure W32 code, just
>> like MSVC does. There are two independent projects that make these
>> toolchains:
>> * mingw.org - they make mingw.org toolchains (their mailing list is
>> mingw-users at sourceforge.net)
>> * mingw-w64 - they make mingw-w64 toolchains (this is mingw-w64 mailing
>> list you're writing to).
>>
>> I won't try to explain to you which toolchain is better (spoiler:
>> mingw-w64 is).
>>
>> However, you need something to a buildsystem to drive the toolchain (run
>> it with appropriate arguments to compile things and produce binaries).
>> MSVC uses Visual Studio and Microsoft make (nmake, if i remember
>> correctly?) or some other crazy stuff.
>>
>> The decision on which buildsystem to use falls upon package developers,
>> not on mingw developers. Most free software packages are built by GNU
>> autotools (which produce GNU makefiles, which are interpreted by GNU
>> make).
>>
>> GNU Autotools use POSIX shell to run. GNU Makefiles produced by GNU
>> Autotools almost always use POSIX shell in some places. And while GNU
>> Make itself can be built for W32 (and thus may not have any POSIX
>> dependencies), these makefiles require a POSIX shell, and to produce
>> them ('configure' the package) you need a POSIX shell.
>>
>> MSYS provides a POSIX environment (including a POSIX shell, compatible
>> versions of GNU Autotools, and a POSIXly version of GNU Make) on W32.
>>
>> Thus, unless the package you are compiling uses some kind of alternative
>> buildsystem without any POSIX dependencies (CMake, SCons, plain
>> makefiles with no shell code, <insert your example here>), you need both
>> MinGW and MSYS.
>>
>> There are two projects that make MSYS:
>> * mignw.org - they make the original MSYS (MSYS1)
>> * some random people on the net (mostly it's just alexey) affiliated
>> mostly with mingw-w64 project - they make MSYS2
>>
>> (also, there's the Cygwin project, which has its own POSIX-only
>> environment, and its own toolchains, but to produce W32 binaries there
>> you have to cross-compile from Cygwin to W32; if you know what
>> "cross-compiling" is, and you're ok with it, then stop reading here and
>> go download&install Cygwin, and ask questions on Cygwin mailing list).
>>
>> Your MSYS is from mingw.org (i can tell from the way directories are
>> laid out).
>> I don't know which flavor of MinGW toolchains you're using though.
>>
>> At this point you should decide whether you really want to use mingw-w64
>> toolchain or a mingw.org toolchain. If it's mingw.org, then stop reading
>> and go to their mailing list and ask your questions there. If it's
>> mingw-w64, then read on.
>>
>> Since MSYS is a separate, POSIX environment, it has its own stuff - a
>> special toolchain (i686-pc-msys) that produces MSYS binaries, its own
>> set of GNU Autotools scripts. Also, all non-portable (POSIX-only) stuff
>> lives in MSYS - such as bash.
>>
>> Inside MSYS environment you have a virtual root directory and lots of
>> POSIXly things. Namely, for compatibility with real POSIX OSes, MSYS has
>> a /usr directory (which is just an alias for the root directory).
>>
>> /usr is an alias, not a link. In fact, MSYS doesn't use any symlinks at
>> all. Cygwin has its own symlink emulation (which is not compatible with
>> W32) by default (but you can make it use W32 symlinks on newer versions
>> of Winodws). MSYS2 and Cygwin tend to have more complex directory layouts.
>>
>> To keep MinGW stuff from conflicting with MSYS stuff, these two are kept
>> in separate roots, and MinGW root is (usually) mounted in MSYS as /mingw.
>> Also, when you run bash, /mingw/bin is put into your PATH before
>> /usr/bin, unless you set MSYSTEM=MSYS. This means that MinGW stuff has
>> priority over MSYS stuff. This is also the reason why MinGW make (if you
>> have it) is (or should be) re-named, so that you use /usr/bin/make.exe,
>> not /mingw/bin/make.exe, because usually it's the msys-make that you
>> want. On the other hand, is not renamed, so you'll be using
>> /mingw/bin/gcc.exe, not /usr/bin/gcc.exe, because you definitely don't
>> want to use msys-gcc!
>>
>> When you configure W32 packages, you are advised to use --prefix=/mingw,
>> and install them into /mingw prefix.
>>
>> OK, that should be enough. Once you decide which flavor of POSIX
>> environment to use (MSYS, Cygwin or MSYS2), we'll be able to talk details.
>>
>> > # 2 Can different users use MinGW. When installed it uses the current
>> > user's name to creaste /home/usr, but, I'd like to have another user
>> > with its own /home/<user-name> directory. ... ls shows the owner of
>> > files different depending on the person loggged in, but wouldn't allow
>> > me to create a /home/user-name, as I recall. There is no /etc/passwd.
>> > How can I find out about this to gain a good understanding?
>>
>> Depends on which environment you are using. In Cygwin and MSYS2 there
>> is, in fact, /etc/passwd.
>> In MSYS1, AFAIR, most of these things are stripped out and, for example,
>> it fakes ownership (so you see that files are owned by "you", no matter
>> which user you are logged under).
>> MSYS1, AFAIR, doesn't bother with permissions checks, so all users can
>> use it freely. Not sure why you can't create /home/user-name.
>> Cygwin and MSYS2 are more picky. MSYS2 was not tested for running under
>> different users (at least not by me). Don't know about Cygwin, ask on
>> Cygwin ML.
>>
>> - --
>> O< ascii ribbon - stop html email! - www.asciiribbon.org
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1.4.11 (MingW32)
>>
>> iQEcBAEBAgAGBQJSIfk3AAoJEOs4Jb6SI2CwMBQH/R8I0PU8i+2XV3CygjuCt/jP
>> MtdT5RktcnKiPDQHPzAgHFd83X4g2ReFUhXs2SqaWxl9bZm+UGObzv209bHTsX9F
>> /U8uAQJJLQRbQG+w2LisY1sdug82C/uzAcaCtW2Xy0b55YBM3050/M2xukEkN1mC
>> 5H6dccRzXuHuG1cMSCZ+CZn87qgbMPZ5rRupMhxgnHVfz9ippbb6x1Npfr/eFjKO
>> Edytc7aRW00GMlGDmRGp+nBc7JHYHT+QF1MZkaMeKDKp/Yx49+InmJuXh2yqTN4N
>> VnJJQe5XQ27wuqBmxIcAHBTZrixkF848vKf4BlV+1pwAtPW/EtDke1lDbjHqRFk=
>> =PnNW
>> -----END PGP SIGNATURE-----
>>
>>
>> ------------------------------------------------------------------------------
>> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
>> Discover the easy way to master current and previous Microsoft
>> technologies
>> and advance your career. Get an incredible 1,500+ hours of step-by-step
>> tutorial videos with LearnDevNow. Subscribe today and save!
>>
>> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
>> _______________________________________________
>> Mingw-w64-public mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
>
>
>
>
> --
> ˙uʍop-ǝpısdn sı ɹoʇıuoɯ ɹnoʎ 'sıɥʇ pɐǝɹ uɐɔ noʎ ɟı
>
> ------------------------------------------------------------------------------
> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
> Discover the easy way to master current and previous Microsoft technologies
> and advance your career. Get an incredible 1,500+ hours of step-by-step
> tutorial videos with LearnDevNow. Subscribe today and save!
> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
> _______________________________________________
> Mingw-w64-public mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
>

------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to