MSYS using Junctions quirk
dmccunney <[email protected]> Mon, 27 Aug 2012 18:12:59 -0400
| Newsgroups | gmane.comp.gnu.mingw.msys |
|---|---|
| Message-ID | <CAF4AJDy5Wh+XbiOHduS3fuExZA8CKjCiTx6X80Bq_iTfcpCEOg@mail.gmail.com> |
I'm not sure whether I'm encountering a bug or just getting bitten by lack of knowledge. I have an ancient Fujitsu p2110 notebook, given to me by a friend when she upgraded to a faster box. It's decidedly low end, with a Transmeta 867mhz CPU, an IDE 4 HD, and a whopping 256MB of RAM, of which 16MB are taken off the top by the CPU for "code morphing". It came to me with WinXP SP2 installed, and was frozen snail slow. I swapped the original 30GB HD for a 40GB from my SO's dead laptop, reformatted, partitioned, and installed Win2K Pro SP4, two flavors of Linux, and FreeDOS. Properly tuned and configured, Win2K takes about 80MB of RAM when loaded, and is actually usable. (Most of what I might need to run under Windows works in 2K. The stuff that doesn't I can live without.) I installed the MYS tools because I wanted a set of Win32 ports of the common *nix utilities, and a working Win32 version of bash. I did not install the MinGW compiler and associated tools - the machine is way too underpowered to do development on it. NTFS5 supports hard links for files and junctions for directories. I use Hermann Schinagl's Link Shell Extension (http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html) which provides context menu entries to create and manipulate such things. Under Win2K/WinXP it does hard links out of the box. Under Vista/Win7 it supports proper symbolic links, too.* I wanted a *nix like file system, so I used LSE to create a junction, and have Msys/1.0/bin appear as /bin. That works fine. I subsequently decided I'd prefer it to appear as /usr/bin, deleted the old junction, and created a new one. That did *not* work fine. The junction was created, /usr/bin shows in the file system and I can list the files in it, but attempting to actually execute any of them fails. I can type the command at the prompt and I simply return to the prompt with the command not actually running. If I create the junction as /bin, things work. It appears Msys tools only work correctly through junctions created off of root, and fail if the junction is created off a sub-directory. This seems to be Msys specific, as I have other sets on Win32 ports of *nix utilities, like the Gnuwin32 collection, that do work as expected. Right now, I have Msys mapped via a junction as /bin, and can live with it. But I'm curious: *should* creating the junction as /usr/bin have worked, or am I running into an inherent limit in how Msys works, or have I found a bug? * And too my surprise, a recent update to LSE pointed to an open source driver written by a Japanese developer that enables true symlinks in 2K and XP. NTFS5 has the underlying infrastructure to support symlinks, but it's not exposed by the 2k/XP kernel. The driver amends that oversite. ______ Dennis https://plus.google.com/u/0/105128793974319004519 ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/