On Tue, Feb 08, 2011 at 08:34:18PM -0600, Rob Landley wrote: > Cygwin provides something vaguely like posix semantics for Windows, by > essentially sticking an ENTIRE NEW OPERATING SYSTEM in between your > application and Windows. The result isn't actually very good, but to > even approach Posix on windows, your transaltion layer really does need > to be that thick.
Thick yes. Invasive, no. Cygwin is virtually unusable for deploying apps because if the user has an existing Cygwin installation with odd settings, your app (even if it's meant to run as a standalone app) will pick up those settings and break. (Think of things like changing the virtual "mounted file systems", permissions mode, text/binary file type defaults, etc.) Nowhere does POSIX say you have to have a Unix-like filesystem hierarchy. It specifies a few special names for device nodes like /dev/null, but that's about all. All of the at-odds-with-windows filesystem behavior Cygwin imposes is mimicing historical Unix practices, and has nothing to do with POSIX. This is what I mean I'd like to see stripped out when I say I want something "between Cygwin and mingw". > Suggesting Porting uClibc to work within the context of Cygwin might be > technically possible, but would be a horribly bad idea utterly at odds > with the "micro" part of uClibc. (The cygwin developers had to hack up > glibc until it was unrecognizable.) Doing so would defeat the purpose > of using (or developing) uClibc, and by complicating the uClibc code and > making it harder for the Linux developers to understand and maintain the > Linux version would make it a worse thing to use on Linux. Actually, there's one very clean way to do it. Write a "syscall()" function for Windows that provides POSIX functionality on top of the Windows kernel interfaces, and uses the Linux definitions of all the structs and constants for interfacing with syscalls. Then you can use any Linux libc you like on Windows. :-) Rich _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
