On 5/14/10 6:16 AM, Adam Tkac wrote: > I was able to built TigerVNC with MinGW as well on Windows, btw :) (but only > with GCC 3.4.5).
You didn't encounter the autotools problem I described? > I've never compared binaries built with GCC and Visual Studio but after quick > googling it seems GCC is better (or far more better) compiler than MSVC > in terms of performance. I've never tested GCC 4.5 as a Windows cross What I meant by unacceptable performance is that the build takes too long (20 minutes.) The performance of the resulting binaries is acceptable when built with GCC 4. However, you are misinformed about GCC being a better optimizing compiler than Visual C++. On libjpeg-turbo, the most performance-sensitive component of TigerVNC, Visual C++ 2008 handily stomps GCC 4.4 on 32-bit code, resulting in a binary that is about 20% faster. On 64-bit code, they produce binaries with comparable performance. http://libjpeg-turbo.virtualgl.org/pmwiki/uploads/About/libjpegturbovsipp.ods I haven't tested GCC 4.5 yet, due to the afore-mentioned issues with it. >> I understand everyone's general aversion to Visual C++ and the desire to >> have an integrated build system, but it also seems really bad that the >> only viable way to build the Windows code is by using Linux. > > To be honest, you are right I don't like Windows as a development platform, > but more real problem is that I don't have a Visual Studio license and > I don't want to pay for it only due TigerVNC project. This is a fallacy. There are many free ways to get Visual C++. I have been successfully using Visual C++ Express Edition (a free download) to build VirtualGL and TurboVNC for years. Visual C++ Express Edition 2010 just came out. These free editions are really what open source projects should be targeting, if they choose to have a Visual C++ build environment. The Express editions don't address the problem of doing 64-bit builds, but they at least provide a means for the average Windows developer to build our code. What I personally do for 64-bit builds is use the Windows SDK, which provides free command-line versions of both the 32-bit and 64-bit Visual C++ compilers. I use a customized system of GNU Makefiles to drive these compilers, so the build environment is relatively easy to set up (only GNU make is required in addition to the Microsoft tools.) I don't really advocate that for TigerVNC because the TigerVNC build is somewhat more complex. I'm really OK with requiring MinGW for 64-bit builds. I just think that we need a way for people to casually experiment with the Windows code. I totally agree that no open source project should require anyone to have to pay for a tool to build it, unless doing so solves a problem that could not be solved otherwise. > I see Visual Studio as an advantage only if one of the TigerVNC > developers use Windows & VS as a primary development environment, > which is probably not our case (if I read mails correctly you use OS X > and me, Pierre and Peter uses GNU/Linux). In my opinion you can safely I use everything. I have Windows systems, Linux systems, OS X systems, Solaris systems, you name it. > use former MinGW with GCC 3.4.5 even if it is slower than MSVC, > "production" builds of TigerVNC will be built with GCC 4.4 or GCC 4.5 > which are better than MSVC. But as I wrote above, if you would like to > resusciate VS build system and maintain it, feel free to do it, you > have my vote. Well, this is kind of the fundamental problem. Whereas I believe something needs to be done, that doesn't mean I necessarily have time to do it. :) In my case, the most expedient thing is probably going to be to get MinGW running on a Linux machine, because I have a ready supply of those. Most people won't, though. Don't get me wrong-- I like the concept of building with MinGW. I just think it isn't ready for primetime yet. This discussion is meant to solicit ideas for how we can deal with the problem in the near term. In the long term, MinGW will have an integrated installer, the CLSID_ActiveDesktop problem will be fixed, etc. Maybe the right thing to do is to re-target the VC++ build environment for Visual C++ Express Edition and then maintain that until MinGW is in a more reasonable state. We can still do "official" builds with MinGW, but I don't think it's reasonable to expect casual developers to be able to set that up. ------------------------------------------------------------------------------ _______________________________________________ Tigervnc-devel mailing list Tigervnc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tigervnc-devel