GCC 4.2.0 is unable to compile STLport due to a header conflict.

When compiling any C++ program that includes <iostream>:

In file included from
c:/aaronwl/gcc/root/bin/../lib/gcc/i686-pc-mingw32/4.2.0/../../../../include/c++/4.2.0/../4.2.0/cmath:52,
                 from /aaronwl/stlport/STLport-5.1.3/stlport/stl/_cmath.h:31,
                 from
/aaronwl/stlport/STLport-5.1.3/stlport/stl/_cstdlib.h:162,
                 from /aaronwl/stlport/STLport-5.1.3/stlport/stl/_locale.h:27,
                 from
/aaronwl/stlport/STLport-5.1.3/stlport/stl/_ios_base.h:30,
                 from /aaronwl/stlport/STLport-5.1.3/stlport/stl/_ios.h:23,
                 from /aaronwl/stlport/STLport-5.1.3/stlport/stl/_istream.h:27,
                 from /aaronwl/stlport/STLport-5.1.3/stlport/iostream:39,
                 from stuff.cpp:1:
c:/aaronwl/gcc/root/bin/../lib/gcc/i686-pc-mingw32/4.2.0/../../../../include/c++/4.2.0/ext/type_traits.h:184:
error: 'streamsize' in namespace 'std' does not name a type
c:/aaronwl/gcc/root/bin/../lib/gcc/i686-pc-mingw32/4.2.0/../../../../include/c++/4.2.0/ext/type_traits.h:189:
error: expected initializer before '__numeric_traits_floating'

The problem here is that STLport is including <cmath> provided by GCC, assuming
that it will play well.  However, GCC's <cmath> needs std::streamsize, and
assumes <iosfwd> will provide it.  <iosfwd>, provided by STLport, declares it
as stlpmtx_std::streamsize.  std is later redefined to be stlpmtx_std, but this
doesn't happen in time for <cmath>, because this doesn't happen until we exit
from STLport-provided system headers.  Thus the declaration can't be found.

I'm not sure who's problem this is, or whether GCC is inclined to do anything
to fix it.  But I thought I'd report it because STLport works with previous
versions, and this will probably be a problem for many users.


-- 
           Summary: GCC 4.2.0 incompatible with STLport 5.1.3
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: aaronavay62 at aaronwl dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31481

Reply via email to