Am Mittwoch, den 24.07.2013, 00:18 +0200 schrieb Michael Langguth: > looking at the current state of this project i can say that i did not > start basing it on a compatibility library. but there was (no surprise) > a lot of compatibility stuff to take care about. it was obvious to keep > this stuff separate from the core code of mksh. so i came out with > something like my own, small compatibility library. but core stuff like > fork() or sigchld (in progress) is still implemented directly in the shell.
Wow, I believe implementing fork() is one major step in porting a Unix shell to Win32? Your compatibility library is what can be found in the liblan directory? Ever considered extending this library so that the full set of shell utilities could be built against it? > for me it would be no bad thing to have or use such a library. the > question is how much it isolates applications built against it from > windows itself and other native win32 applications. here i agree with > thorstens "picture", showing mingw very near to native. It builds against the systems msvcrt.dll with header files constructed from reverse engineering, so it *is* a native build, but not the system's native compiler. > about the utils: at the moment i use a mix of mostly gnuwin32, a few > unxutils and a few self-written ones. e.g. rm is self written because i > found no rm implementation that was able to detect and not to follow(!) > windows junctions and/or symlinks. ln (-s) too. Yes, you'll encounter Unix concepts even in the most trivial utilities. > i spent some time to get information about how to create a mingw build > enviromnent. may be i looked at the wrong places but i found nothing > looking like success within a few days. so it seemed easyer to me to > rewrite a few tools with the minimum, classic unix option set. Get the lates installer from here to install MinGW/MSYS: http://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst/ This will a.o. install a msys.bat which will open a bash terminal. Using gcc in this terminal will compile native Win32 using mingw. If you want to build *for* msys, i.e. using its compatibility library, run "msys.bat MSYS". > thats the point where fabians post opened a new perspective (thanks): up > to now mingw-w64 was not on my radar. i will take a look on it. it > doesnt look like the tools coming with it will be the right ones for a > native win32 environment. but this should definitely help me to create a > mingw build environment. All that wingw-w64 does in this regard is bundling the whole of MSYS into a single zip file. There are no other "tools that come with it". It is, however, more convenient to point people to this zip file than leading them through the whole download and installations instructions for MinGW if they are just interested in the MSYS utilities. ;) > but - is mingw still maintained? do have current mingw versions > knowledge about e.g. windows symlinks? i'll see... It is. At least gcc versions are updated quite regularly (or were until about one year ago, which is when I lost interest in it). However, the project has somehow missed the jump to the win64 ABI and now the w64 fork has become quite successful. Plus, the fork's requirements for symbol inclusion in the run-time seem a bit less strict. Regarding MSYS, I think development has halted when it was considered "good enough" to run the majority of ./configure scripts. There is a reimplementation going on called MSYS2 which will be based on the current Cygwin development, but I don't know how far this is from release quality: http://sourceforge.net/p/mingw/msys2-runtime/ci/msys2-1.0-dev/tree/ - Fabian
