[omniORB] Compile omniORB302 error:implicit declaration of function `int strtoull(...)'

tony lam corba@telekbird.com.cn
Fri, 27 Oct 2000 09:38:00 +0800


Thanks all.
I modify the idlutil.cc and add a condition to compile
in SCO. It can work now.
But I meet another problem when I compile the omniORB.
making export in src/lib/omniORB2...
make[2]: Entering directory `/home/omni/src/lib/omniORB2'
../../../bin/x86_osr5/omniidl -bcxx -Wba -p../../../src/lib/omniORB2  -ComniORB3
 ../../../idl/Naming.idl


omniidl: ERROR!

omniidl: Could not open IDL compiler module _omniidlmodule.so
omniidl: Please make sure it is in directory /home/omni/lib/x86_osr5
omniidl: (or set the PYTHONPATH environment variable)

omniidl: (The error was `No module named _omniidl')


make[2]: *** [omniORB3/Naming.hh] Error 1
make[2]: Leaving directory `/home/omni/src/lib/omniORB2'
make[1]: *** [export] Error 1
make[1]: Leaving directory `/home/omni/src/lib'
make: *** [export] Error 1

I notice that the file dir.mk in $(TOP)/src/tool/omniidl/cxx
just not contains the script for SCO OSR5.So I add the following
contents like FreeBsd.

=======================================================
ifdef OSR5

CXXOPTIONS += -fPIC

libname = _omniidlmodule.so
soname = $(libname).$(IDLMODULE_MAJOR)
lib = $(soname).$(IDLMODULE_MINOR)

all:: $(lib)

$(lib): $(OBJS) $(PYOBJS)
        (set -x; \
       $(RM) $@; \
       $(CXXLINK) $(CXXLINKOPTIONS) -shared -o $@ -Wl,-soname,$(soname) \
       $(IMPORT_LIBRARY_FLAGS) \
       $(filter-out $(LibSuffixPattern),$^) $(LIBS)\
       )

export:: $(lib)
        @$(ExportLibrary)
        @(set -x; \
          cd $(EXPORT_TREE)/$(LIBDIR); \
          $(RM) $(soname); \
          ln -s $(lib) $(soname); \
          $(RM) $(libname); \
          ln -s $(soname) $(libname); \
         )

clean::
        $(RM) $(lib)

endif
==================================================================

But I get the another problem after I type "make export"
File omnicpp hasn't changed.
make[4]: Leaving directory `/home/omni/src/tool/omniidl/cxx/cccp'
(set -x; \
       rm -f _omniidlmodule.so.0.1; \
       g++  -fhandle-exceptions -Wall -Wno-unused -fPIC -shared -o _omniidlmodul
e.so.0.1 -Wl,-soname,_omniidlmodule.so.0 \
       -L../../../../lib/x86_osr5 \
       y.tab.o lex.yy.o idlerr.o idlutil.o idltype.o idlrepoId.o idlscope.o idle
xpr.o idlast.o idlvalidate.o idldump.o idlconfig.o idlpython.o \
       )
+ rm -f _omniidlmodule.so.0.1
+ g++ -fhandle-exceptions -Wall -Wno-unused -fPIC -shared -o _omniidlmodule.so.0
.1 -Wl,-soname,_omniidlmodule.so.0 -L../../../../lib/x86_osr5 y.tab.o lex.yy.o i
dlerr.o idlutil.o idltype.o idlrepoId.o idlscope.o idlexpr.o idlast.o idlvalidat
e.o idldump.o idlconfig.o idlpython.o
command line: warning: -o specifies multiple output file names
_omniidlmodule.so.0: fatal error: cannot open file for reading
collect2: ld returned 1 exit status
make[3]: *** [_omniidlmodule.so.0.1] Error 1
make[3]: Leaving directory `/home/omni/src/tool/omniidl/cxx'
make[2]: *** [export] Error 1
make[2]: Leaving directory `/home/omni/src/tool/omniidl'
make[1]: *** [export] Error 1
make[1]: Leaving directory `/home/omni/src/tool'
make: *** [export] Error 1

I don't know how to write a correct script to build .so for SCO.
Who can help me?

Thanks a lot.

tony lam.