[omniORB] RE : problem buiding omniorb Solaris 5.8 gcc3.1

Clement.VISSEAUX@sercel.fr Clement.VISSEAUX@sercel.fr
Tue May 28 13:36:01 2002


when installing gcc 3.1 the omniidl python program does not work any more on solaris

in fact, the omniidlrun.py ( omniidl ) can not load properly the omniidlmodule.so due to __eprintf unresolved external

the  _omniidlmodule.so library is built from the source code in omni/src/tool/omniidl/cxx
some of C++ files contain the call to the function assert () with the include file assert.h
this include file calls _asserts () that calls _eprintf () which turns out to be unresolved  because
assert,h is a solaris include file  that calls a solaris primitive ,and not a GNU primitive .

assert () is used to output messages .

some hints to tackle this problem ;
- recover a GNU assert.h and place in in /usr/local/include/
-or  write your own assert.h that does not call _assert () and place iit in /usr/local
- or write your own eprintf

-  or recompile omni/src/tool/omniidl/cxx ( make clean; make export )  :  add in dir.mk the following line
     DIR_CPPFLAGS += -DNDEBUG

doing so , assert. () is replaced in the macro by no code ( see assert.h )

( error mesages will not be printed anymore in omniiidl, but it works )


cheers