Archived

This forum has been archived. Please start a new discussion on GitHub.

Can Ice be compiled with gcc 2.95?

The Linux installation nodes say:
C++ compiler

- GCC 3.2; or

- GCC 2.96 with STLport 4.5

I however need to evaluate Ice with GCC 2.95.3 as currently 2.96 is not an option for us. With 2.95 Ice compiles well until I get this:

make[2]: Entering directory `/home/jukvaini/ice/Ice-1.0.1/src/Ice'
pentium3-g++ -c -I.. -I../../include -I/home/jukvaini/ice/STLport-4.5.3/include/stlport -g -ftemplate-depth-128 -fPIC -Wall -D__linux__ Router.cpp
Router.cpp: In function `void IceInternal::checkedCast(const Ice::ObjectPrx &, const _STL::string &, IceInternal::ProxyHandle<IceProxy::Ice::Router> &)':
Router.cpp:58: `const class IceInternal::ProxyHandle<IceProxy::Ice::Object>' used where a `bool' was expected
make[2]: *** [Router.o] Error 1
make[2]: Leaving directory `/home/jukvaini/ice/Ice-1.0.1/src/Ice'

Which comes from Router.cpp code:
54 void
55 IceInternal::checkedCast(const ::Ice::ObjectPrx& b, ::Ice::RouterPrx& d)
56 {
57 d = 0;
58 if(b)
59 {

TIA!

:confused:

Comments

  • I really doubt this is workable. There were SUBSTANTIAL changes to GCC between versions 2.95.3 and version 3.2. Many of them were around STL (which ice leverages heavily).

    Why specifically can't you install GCC 3.2 or 3.3 on that machine?
  • marc
    marc Florida
    I made some changes to Ice, and now it compiles without problems with GCC 2.95.3. (Apparently GCC 2.95.3 has some problems with fully scoped names and operator bool.)

    All tests work, except for tests that involve loading of shared libraries (plugins, IcePack). I'm sure we can fix this problem, too.

    If you like to have a snapshot version with support for GCC 2.95.3, please email me directly at marc@zeroc.com.
  • Looks like I better do more homework before I put the words "no can do" in front of master Marc. Mea culpa ;-)
  • Originally posted by marc
    I made some changes to Ice, and now it compiles without problems with GCC 2.95.3. (Apparently GCC 2.95.3 has some problems with fully scoped names and operator bool.)

    Note though that you should be using the stlport. I spent a miserable
    week tracking down an intermittent bug before discovering that the
    std::string in gcc stl for 2.95 was not thread safe.
  • patch

    For those who didn't get snapshot version from marc ;) but still want to compile Ice with GCC 2.95.3 can apply attached patch.

    Ivan