[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.
>