Boost logo

Boost :

From: Ulrich Eckhardt (uli_at_[hidden])
Date: 2005-07-06 15:48:43


Hi!

I ported large parts of Boost 1.32 to embedded Visual C++ 4 some time ago. One
of the major changes was because the included cross compilers reported
_MSC_VER somewhere in between 1200 and 1202. IOW, a plethora of cases that
checked ==1200 or >1200 failed to work for a few of them.

I already once submitted a patch, but it hasn't been incorporated yet, so here
is one against CVS from this afternoon. The changes I made were mostly
mechanical:

  MSC_VER <= 1200 -> MSC_VER < 1300
  MSC_VER == 1200 -> MSC_VER < 1300
  MSC_VER >= 1300 -> MSC_VER > 1200

Some other changes were that I corrected a few comments that spoke of only
VC6, but there are too many of them - I didn't get them all. Another change
was that I prepared the autolinking feature for evc4.

I tested the changes on a mirror of CVS from 6 months ago, and so far it seems
to work with evc4, vc6 and vc7.1.

BTW-1: I also noticed the same problem with other compilers/versions, i.e.
there are checks like 'MSC_VER > 1310' targeting VC8. This will fail if there
comes a service pack with a compiler with version 13.11, not an acute problem
though, just something to keep in mind perhaps.
BTW-2: There are a few cases where the compiler version was used to check for
a feature of the standardlibrary some variants of it came bundled with. I
think I marked these places with a 'TODO' tag.

For all who wonder, there is no real standardlibrary shipped with evc4,
neither a C nor a C++ one. STLport is mandatory therefore. Also, the
functions of the win32 API that use TCHAR=char are also almost gone, but
those are another patch another day.
 A last thing is that when linking, the name of the lib must not be larger
than 32 chars, or the runtime linker won't be able to find the lib. Explicit
loading with LoadLibrary still works. Guess how much blood, sweat&tears it
took me to find out ... the threads lib which is the only one I need is 33
chars or somesuch.

Please commit these changes, they are easy to verify and nonintrusive for
unaffected compilers, thanks.

Uli




Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk