[omniORB] Porting omniORB

David Riddoch djr@uk.research.att.com
Wed, 24 Mar 1999 09:55:22 +0000 (GMT)



Just a few comments ...

David


On Tue, 23 Mar 1999, erik.ivanenko wrote:

> I am just starting to try to port omniORB2 to RTEMS.   I am only at the
> beginning, so I don't know how all this goes together.  In fact, the
> bulk of my questions could be very stupid.  Please bear with me.
> 
> The port is being based on the ETSkernel.  This may or may not be the
> correct starting point.
> 
> Any help here would be very appreciated.
> 
> Here are my assumptions:
> 
> 1) Since RTEMS is for an embedded system, I will set the EmbeddedSystem
> variable.  This should cause ONLY lib to be built.
> 
> 2) There are three variables used:
> 
> HOSTBINDIR
> BINDIR
> LIBDIR
> 
> The HOSTBINDIR variable identifies the location of the IDL compiler.
> The BINDIR and LIBDIR variables identifies the locations where the
> target binaries and target libraries will be deposited.
> 
> Points 3/4/5:
> 
>  Since IMPORT_CPPFLAGS are propogated to CPPFLAGS via beforedir.mk,  it
> can be used to set ALL required FLAGS.
> 
> 3)  Since the cross-compiler is based on egcs-1.1b, and since the  the
> following flags will be set in the rtems.mk . ( this replaces the
> win32s.mk)
> 
> IMPORT_CPPFLAGS += -D_HAS_Cplusplus_Namespace
> 
> 4) Since the target architecture assumes that a Nameserver is running
> elsewhere:
> 
> IMPORT_CPPFLAGS += -DENABLE_CLIENT_IR_SUPPORT

IR stands for Interface Repository. It is not needed when contacting the
nameservice. I suggest you only enable this if you really need it.

> 5) Since the target is an x86, the symbol -D__x86__ is defined:
> 
> IMPORT_CPPFLAGS += =D__x86__
> 
> 6) The cross compiler is located by setting CXX inside
> platform/i386-rtems-4.0.mk.
> 
>  CXX = i386-rtems-g++
> 
> This assumes that the path environment variable is set so that
> i386-rtems-g++ can be located.
> 
> 7) The RTEMS posix compliance has been determined as:
> 
> OMNITHREAD_POSIX_CPPFLAGS = -DPthreadDraftVersion=10
> -DPthreadSuppprtThreadPriority
> 
> This is set inside platform/i386-rtems-4.0.mk.
> 
> 8)  The CONFIG_DEFAULT_LOCATION is meaningless, since there is no
> filesystem on rtems-4.0
> 
> 9) Another define -D__rtems__ is created inside
> platforms/i386-rtems-4.0.0  to control conditional compilation within
> initFile.cc.  We must ensure that NO attempt to open a default config
> file is present.
> 
> IMPORT_CPPFLAGS=-D__rtems__
> 
> 10) The __rtems__ symbol is also used to select string.h rather than
> strings.h.  No strings.h is available.
> 
> 11) I am unsure about where to set -D__GLIBC__=2 or -D_GNUC variables (
> wrong spelling, but hopefully the point is made. )

__GNUG__ and __GNUC_MINOR__ are set automatically by the EGCS compiler to
identify itself. You do not need to define them.

> 12) I have not set anything re: CXXDEBUGOPTIONS etc.

This is usually set on the command line, or in the dir.mk files in the
source directories. Set it to -g to enable debugging information. By
default it will be -O2 (optimisation).

> 
> Any help would be most appreciated.
> 
> 
> Thanks in advance.
>