[omniORB] Compilation omniORB4 (20020311 snapshot) on Linux - LongDoubleSeq

Brecht Vermeulen brecht.vermeulen@rug.ac.be
Tue, 12 Mar 2002 02:12:01 +0100


Hi,

I've just downloaded the latest snapshot (20020311) and tried to compile
it on a Debian 2.2/Linux glibc 2.1 platform with the old method (not the
new configure) via the debian scripts to make debian packages and had
the following error :

/usr/bin/g++ -c -O2  -Wall -Wno-unused -I.. -I./..
-I../../../../include/omniORB4/internal -D_REENTRANT
-DUSE_omniORB_logStream -D_OMNIORB_LIBRARY
-DCONFIG_DEFAULT_LOCATION='"/etc/omniORB.cfg"'
-DCONFIG_ENV='"OMNIORB_CONFIG"' -DUnixArchitecture -I. -I.
-I../../../../include -D__x86__ -D__linux__ -D__OSVERSION__=2 -o
static/anonObject.o anonObject.cc
In file included from ../../../../include/omniORB4/CORBA.h:444,
                 from anonObject.cc:60:
../../../../include/omniORB4/dynAny.h:148: `LongDoubleSeq' undeclared in
namespace `CORBA'
../../../../include/omniORB4/dynAny.h:148: `value' was not declared in
this scope
../../../../include/omniORB4/dynAny.h:148: virtual outside class
declaration
../../../../include/omniORB4/dynAny.h:148: variable or field
`insert_longdouble_seq' declared void
../../../../include/omniORB4/dynAny.h:168: ANSI C++ forbids declaration
`LongDoubleSeq' with no type
../../../../include/omniORB4/dynAny.h:168: invalid use of `::'
../../../../include/omniORB4/dynAny.h:168: `LongDoubleSeq' declared as a
`virtual' field
../../../../include/omniORB4/dynAny.h:168: parse error before `*'
make[4]: *** [static/anonObject.o] Error 1

a little bit earlier :
omniidl: Running back-end 'cxx'
../../../bin/i586_linux_2.0_glibc2.1/omniidl -bcxx -Wba
-p../../../src/lib/omniORB -Wbdebug -v -nf -P -WbF -ComniORB4
../../../idl/corbaidl.idl
omniidl: Importing back-end 'cxx'
omniidl: 'cxx' imported from
'../../../src/lib/omniORB/omniidl_be/cxx/__init__.pyc'
omniidl: Preprocessing '../../../idl/corbaidl.idl' with
'/remov_ext/Software/omniORB/omniORB_11_mar_02/omni/lib/i586_linux_2.0_glibc2.1/omnicpp
-lang-c++ -undef -D__OMNIIDL__=0x2420 -DHAS_LongLong -D__OMNIIDL_CXX__
../../../idl/corbaidl.idl'

(LongDoubleSeq is defined in corbaidl.idl)

I solved the problem with changing :
omni/src/lib/omniORB/dir.mk,

omniORB4/corbaidl_defs.hh corbaidl_operators.hh corbaidl_poa.hh:
corbaidl.idl
        @(dir=omniORB4; $(CreateDir))
        $(OMNIORB_IDL) -v -nf -P -WbF -ComniORB4 -DHAS_LongDouble $<

(added the -DHAS_LongDouble)

but I'm almost 100% sure this is not the cleanest solution :-), but I'm
not an expert in the omniORB building process.

Can someone point me to the place where the real solution is situated or
is it just a bug in the building ?

regards,
Brecht