Mailing-List: contact cygwin-apps-help AT cygwin DOT com; run by ezmlm Sender: cygwin-apps-owner AT cygwin DOT com List-Subscribe: List-Archive: List-Post: List-Help: , Delivered-To: mailing list cygwin-apps AT cygwin DOT com Delivered-To: fixup-cygwin-apps AT cygwin DOT com@fixme From: "Paul G." Organization: Paul G. To: cygwin-apps AT cygwin DOT com Date: Sun, 2 Dec 2001 15:12:19 -0800 MIME-Version: 1.0 Subject: Re: Semi-OT: (Was Re: attn: which, bzip2,gzip maintainers (was Re: some problems with setup.ini)) Reply-to: pgarceau AT qwest DOT net Message-ID: <3C0A44D3.32622.E5BFD@localhost> In-reply-to: <00b701c17ad5$fca2e080$0200a8c0@lifelesswks> X-mailer: Pegasus Mail for Windows (v4.01) Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT Content-description: Mail message body Thanks Robert. Paul G. > ----- Original Message ----- > From: "Paul G." > > > I didn't know that Cygwin runs under several flavors of Unix. > AFAIK, > > > it's calling Win32 API functions but I could be wrong... > > > > hmm...is that a challenge? Not sure how else to take it -- > > > > You're right, of course, dear Corinna, it is calling Win32api > functions, but afaik, that is not > > all it does. In fact I've forced it into doing more than that. Most > folks that I told about it asked, > > "What's the point?". The answer I typically give: "It is fun, it is > educational and, who knows, > > maybe someone, somewhere wants to build Cygwin generated apps under a > *nix or Linux > > platform..." > > I think we've got a terminology problem. > > "cygwin1.dll" aka Cygwin - a runtime POSIX compatability layer. ONLY > executes on win32 platforms - Win 95/98/ME/NT4/2K/XP. When configuring a > gcc+binutils toolchain use pc-ix86-cygwin to target this 'platform'. > (It's really just a different C library for win32, so 'platform is a > little strong :}). > "Cygwin" aka the cygwin Net distribution. A collection of open and free > software provided in binary form along with cygwin1.dll > > So Cygwin means two things :}. > > ... > > Of course, I've only been working with Cygwin since about r17, so I > could be completely > > wrong about this. > > If you are wanting to cross-compile to other targets you can, can't > you? Or is there some > > rule (legal or otherwise) that states Cygwin can not run on anything > but Win32api based > > platforms? > > Cygwin the dll only works on w32api programs - because it's translating > posix calls to win32 calls. It can be ported of course, and win64 and > wince are both platforms that could benefit from a port of cygwin to > them. Un*x machines won't benefit because they already have the posix > calls natively. So the restriction to where cygwin the dll runs is > purely technical - and can be lifted somewhat. I'd really love to see > cygwin1.dll running under WINE for example. I think that'd be a neat > hack. > > > Please, do correct me if I am wrong. Cygwin (not necessarily "just > the API") is built with > > some variation of gcc/g++ right? Ie. the source code, for the most > part, is written using C, C++ or > > C/C++ language syntax, right? (Setup.exe is, syntactically speaking, > C/C++) > > cygwin1.dll and the associated utilites are C/C++/x86assembler. > > ... > > Bottom line: It don't matter what Cygwin is targetted for as default > build environment. > ....................................GCC................................. > ................. > > gcc/g++ compiled/linked source code, in standalone mode (w/no gui > dependencies), will run on > > Win32api based platforms, Linux based platforms (with some lib > modifications), *nix platforms (lib > modifications) and Cray > Supercomputers (Terraflops anyone?). > > All a developer needs to do, in the absence of any GUI dependencies, > is build using > > gcc/g++ and be able to output the appropriate, platform specific, > libraries & support. From that > > standpoint, gcc/g++ is about the closest thing to a multi-platform > (universal?) C/C++ compiler I > > have ever found. > > Absolutely (with the one correction I've made in your paragraph :}). > cygwin1.dll is newlib+lowlevelposixsupport. So on linux you have glibc + > linux kernel + gcc toolchain, on bsd you have bsd kernel, plus the BSD C > library + gcc toolchain, and on win32 you have > either > MSCVRT - MS C library + gcc toolchain > or > cygwin1.dll + gcc toolchain. > > And of those two, one gives you POSIX, and one doesn't :}. And as a > second comment on your last paragraph, there are many non-GUI > dependencies - pthreads for example - that are also present to some > extent on all of the platforms listed, which aids portability. > > Rob > >