Boost logo

Boost :

From: Thomas Witt (witt_at_[hidden])
Date: 2002-05-25 03:02:43


On Saturday 25 May 2002 01:27, Terje Slettebø wrote:
> From: "Beman Dawes" <bdawes_at_[hidden]>
>
> Exactly. This is something I've experienced before, too, that something
> worked on the Linux version, but not on the Windows version. I guess it's
> because there's no MSVC on Linux, so it doesn't run in default MSVC mode,
> there.

IIUC they are trying to build "drop-in" compilers. One can argue whether this
is the right goal, but given this premise I think they are doing quite well.

> One thing you may try right away, and which looks very promising, is to add
> the option "-Qoption,cpp,--no_microsoft".

This won't work. The problem is a 100% compliant compiler is almost certainly
not what you want. From my experience it wouldn't let you do any serious work
in the windows environment. As most headers and code are non-compliant in a
way that they use ms extensions, think __declspec.

>
> Therefore, I've found that it's probably best that I install the full
> version of STLPort, including building it, so it uses its own streams. If
> you do this, it may well compile. I'm going to try this, when I get a
> chance.

Even full STLport(4.5.3) will not work on intel in strict mode. See below.

> > Actually, the regular intel-win32 toolset in CVS already "works" in the
> > sense the compiles run, but a bunch of tests are failing, apparently
> > because the default is to emulate the Microsoft compiler, bugs and all:-(
> > That's what I was hoping someone has a workaround for.

This leaves us with the question whether we should publish results for the
default setting of a compiler or whether we allow tweaking. My opinion is
that if we allow tweaking it should be consistent throughout boost.

Here is what I am using on win32 with full STLport-4.5.3

# You will certainly want this
-Qoption,cpp,--new_for_init

# Koenig lookup
-Qoption,cpp,--arg_dependent_lookup

# Annoying but improves portability.
# Be careful gcc-3.1 is even more strict.
-Qoption,cpp,--no_implicit_typename

#
-Qoption,cpp,--no_friend_injection

I think --no_microsoft_bugs should be on this list too. I just haven't tried
it yet. From my experience one cannot activate two phase name binding
(--dep_name) on windows or linux. Neither STLport-4.5.3 on win32 nor
Dinkumware on linux does work with dep_name. I am not sure whether this are
all library errors or if there is a compiler bug too.

Hope this helps.

Thomas

-- 
Dipl.-Ing. Thomas Witt
Institut fuer Verkehrswesen, Eisenbahnbau und -betrieb, Universitaet Hannover
voice: +49(0) 511 762 - 4273, fax: +49(0) 511 762-3001
http://www.ive.uni-hannover.de

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