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

Reply via email to