|
Release Notes for OCI's Distribution of TAO 1.0a
Copyright 1999 by Object Computing, Inc.
NOTE: |
|
These release notes are current as of TAO 1.0a which
corresponds to OCI part number 010-01. The latest version
of these release notes can be viewed or downloaded from
OCI's web site at http://theaceorb.com/releasenotes/.
|
Table of Contents
- General Notes
- CD Format Notes
- Building Requires GNU Make
- Static Libraries and Debug Builds
- Installing on Windows NT vs. UNIX
- Platform-specific Notes
- Windows NT on Intel with Microsoft Visual C++ 5.0 and 6.0
- Solaris 7 (SunOS 5.7) on Intel with egcs 1.1.2
- Solaris 2.5.1 (SunOS 5.5.1) on SPARC with egcs 1.1.2
- Solaris 2.5.1 (SunOS 5.5.1) on SPARC with SunCC 4.2
- Solaris 2.6 (SunOS 5.6) on SPARC with egcs 1.1.2
- Solaris 2.6 (SunOS 5.6) on SPARC with SunCC 4.2
- Solaris 7 (SunOS 5.7) on SPARC with egcs 1.1.2
- Solaris 7 (SunOS 5.7) on SPARC with SunCC 5.0
- HP-UX 11.00 on PA-RISC with aCC
- Linux on Intel with egcs 1.1.2
- Quickstart for Building with TAO
- TAO on UNIX
- TAO on Win32 with Visual C++
- Sample Application
- General Notes
- CD Format
This CD's format is ISO-9660 with Rock Ridge and Joliet extensions. Thus, it
should be readable on nearly every Unix platform (Rock Ridge extensions) as
well as NT (Joliet extensions). We mastered it using the freely-available mkhybrid tool, and
recorded it using the freely-available cdrecord.
- GNU Make Required on Unix
With the exception of Windows NT and Windows-like operating systems,
building ACE and TAO from source code requires GNU Make. While you can use
other tools to build applications using ACE & TAO, using GNU Make lets
you leverage the existing build system distributed with ACE & TAO. If
you need GNU Make, you can get a source distribution through http://www.ociweb.com/taodg/gnumake_manual.html
as well as other places.
- Static Libraries and Debug Builds
Due to size limitations, debug builds for UNIX and UNIX-like operating
systems on this CD do not include static libraries. You may build
static ACE, TAO, and ORB services libraries by adding
static_libs=1 to the flags you supply to GNU Make and
rebuilding ACE and TAO. See Building
Applications with TAO for more information on how to do this
yourself.
Note: you should have at least 900 Mb of additional free space
available to build only the static versions of the debuggable libraries. If
you want to build both static and dynamic versions, you will need more.
- Installing on Windows NT vs. UNIX
To install a Windows NT build of TAO 1.0a from CD, run
setup on a Windows NT platform. Likewise, to install for
a UNIX or UNIX-like platform, run setup on a UNIX or
UNIX-like platform.
- Platform-specific Notes
- Windows NT on Intel with Microsoft Visual C++ 5.0 and 6.0
ACE & TAO were compiled and tested using the following tools/OS combinations:
- Visual C++ 5.0
-
Windows NT 4.0 Service Pack 3 (NT4.0SP3)
Visual C++ 5.0 (no service packs applied)
- Visual C++ 6.0
-
Windows NT 4.0 Service Pack 5 (NT4.0SP5)
Visual C++ 6.0 (no service packs applied)
Visual C++ defaults to using program database (.pdb ) files for
symbolic debugging information. The compiler embeds absolute paths to the
program database files in the object (.obj ) files it creates. Microsoft
offers a debug format called C 7.0 compatible which embeds all
symbolic information in the object files themselves. Visual C++ supports
Microsoft format symbols and COFF format symbols. The debug versions of ACE
and TAO on this CD-ROM were built using C7 compatibility, including both
symbol formats.
If your project uses the program database style, your project will link to
C7 binaries included in this distribution. If you want to use C7 debug
information exclusively (rather than program database), C7
compatible must be selected and program database
de-selected in the C++ project options (compiler option
/Z7), and the program database files must be disabled in
the linker (/PDB:NONE).
For a debug build, the setup program places the following
DLLs and executables in %ACE_ROOT%\bin :
aced.dll (ACE library)
taod.dll (TAO library)
orbsvcsd.dll (ORB services library)
tao_idl.exe (TAO IDL to C++ compiler)
gperf.exe (GPERF executable)
For a non-debug (release) build, the setup program places
the following DLLs and executables in %ACE_ROOT%\bin :
ace.dll (ACE library)
tao.dll (TAO library)
orbsvcs.dll (ORB services library)
tao_idl.exe (TAO IDL to C++ compiler)
gperf.exe (GPERF executable)
It is necessary to modify the Executable files paths,
Include files paths, and Library files paths in the Visual
C++ IDE to include various directories. This is done in the
Tools > Options > Directories menu. Add the
following directories to Include Files :
%ACE_ROOT%
%ACE_ROOT%\TAO
%ACE_ROOT%\TAO\tao
%ACE_ROOT%\TAO\orbsvcs
%ACE_ROOT%\TAO\orbsvcs\orbsvcs
Add the following directories to Library Files :
%ACE_ROOT%\ace
%ACE_ROOT%\TAO\tao
%ACE_ROOT%\TAO\orbsvcs\orbsvcs
Add the following directory to Executable Files :
You should also add %ACE_ROOT%\bin to your
PATH environment variable so the DLLs can be located by
the dynamic linker at run time.
NOTE: If you rebuild
tao_idl.exe and gperf.exe using
a Release configuration, they will be placed in
%ACE_ROOT%\bin\Release . You should copy them
after you rebuild to %ACE_ROOT%\bin . A
similar situation exists for the various ORB services
executables, such as
%ACE_ROOT%\TAO\orbsvcs\Naming_Service\Naming_Service.exe
(which will be placed after rebuilding in
%ACE_ROOT%\TAO\orbsvcs\Naming_Service\Release\Naming_Service.exe
if you build using a Release configuration).
Building projects on NT using static libraries requires you to specify
certain preprocessor directives. You do this inside Visual C++ by going to
the C++ tab under the project settings, selecting the Preprocessor
Definitions category and adding
ACE_HAS_DLL=0,TAO_HAS_DLL=0,TAO_ORBSVCS_HAS_DLL=0,ACE_NO_INLINE
to the preprocessor definitions. Additionally, it may be necessary to link
to user32.lib and advapi32.lib.
- Solaris 7 (SunOS 5.7) on Intel with egcs 1.1.2
We compiled and tested ACE & TAO with the following OS/tool combination:
- Solaris 2.7 (Intel)
-
$ uname -rsv
SunOS 5.7 Generic_106542-04
- egcs 1.1.2
-
$ g++ -v
Reading specs from EGCSDIR/lib/gcc-lib/i386-pc-solaris2.7/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)
$ g++ --print-prog-name=ld
/usr/ccs/bin/ld
$ g++ --print-prog-name=as
EGCSDIR/lib/gcc-lib/i386-pc-solaris2.7/as
- Sun Linker
-
$ what /usr/ccs/bin/ld
/usr/ccs/bin/ld:
SunOS 5.7 Generic 106951-03 February 1999
$ /usr/ccs/bin/ld -V
ld: Software Generation Utilities - Solaris/ELF (3.0)
- GNU Assembler (binutils 2.9.1)
-
$ EGCSDIR/lib/gcc-lib/i386-pc-solaris2.7/as -V /dev/null
GNU assembler version 2.9.1 (i386-pc-solaris2.7), using BFD version 2.9.1
- GNU Library Archiver
-
$ ar -V
GNU ar 2.9.1
Copyright 1997 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License. This program has absolutely no warranty.
We used the GNU Binutils version 2.9.1 assembler and archiver rather than
the standard Sun assembler (/usr/ccs/bin/as) and library archiver
(/usr/ccs/bin/ar). We experienced the following problems with the standard tools:
- assembler (
as --WorkShop Compilers 4.2 alpha 14 Jan 1996)
-
Did not accept code for assembly via a UNIX pipe.
- archiver (
ar --Software Generation Utilities (SGU) Solaris/ELF 3.0)
-
Choked on long symbols names while building the static TAO library (
libTAO.a ).
- Solaris 2.5.1 (SunOS 5.5.1) on SPARC with egcs 1.1.2
We compiled and tested ACE & TAO with the following OS/tool combination:
- Solaris 2.5.1
-
$ uname -rsv
SunOS 5.5.1 Generic_103640-19
- egcs 1.1.2
-
$ g++ -v
Reading specs from EGCSDIR/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)
$ g++ --print-prog-name=ld
/usr/ccs/bin/ld
$ g++ --print-prog-name=as
EGCSDIR/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.66/as
- Sun Linker
-
$ what /usr/ccs/bin/ld
SunOS 5.5.1 Generic 103627-02 September 1997
$ /usr/ccs/bin/ld -V
ld: Software Generation Utilities - Solaris/ELF (3.0)
- Workshop 5.0a Assembler
-
$ EGCSDIR/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.66/as -V
EGCSDIR/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.66/as: WorkShop Compilers 5.0 Alpha 03/27/98 Build
NOTE: We were unable to get ACE &
TAO to compile correctly using the standard Sun Assembler
(/usr/ccs/bin/as) when compiling with egcs 1.1.2. The GNU Assembler
(gas) would not work, either. If you need to recompile ACE & TAO on
Solaris 2.5.1 using egcs in an environment identical to ours, you
will need the WorkShop assembler. We accomplished this by copying or
symlinking the Workshop 5.0a assembler under the
gcc-lib/platform/compiler-version directory for
the compiler, though you may find alternative methods for this.
- Solaris 2.5.1 (SunOS 5.5.1) on SPARC with SunCC 4.2
We compiled and tested ACE & TAO with the following OS/tool combination:
- Solaris 2.5.1
-
$ uname -rsv
SunOS 5.5.1 Generic_103640-19
- Sun CC 4.2 Compiler
-
$ CC -V /dev/null
CC: WorkShop Compilers 4.2 16 Jun 1998 C++ 4.2 patch 104631-07
tdb_link: WorkShop Compilers 4.2 16 Jun 1998 C++ 4.2 patch 104631-07
CC: WorkShop Compilers 4.2 16 Jun 1998 C++ 4.2 patch 104631-07
/export/sw/SUNWspro/bin/../SC4.2/bin/c++filt: WorkShop Compilers 4.2 16 Jun 1998
ld: Software Generation Utilities - Solaris/ELF (3.0)
- Solaris 2.6 (SunOS 5.6) on SPARC with egcs 1.1.2
(NOTE: This configuration is identical to the Solaris 2.5.1 egcs build except for the OS
version.)
We compiled and tested ACE & TAO with the following OS/tool combination:
- Solaris 2.6
-
$ uname -rsv
SunOS 5.6 Generic
$ showrev -p
No patches are installed
- egcs 1.1.2
-
$ g++ -v
Reading specs from EGCSDIR/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)
$ g++ --print-prog-name=ld
/usr/ccs/bin/ld
$ g++ --print-prog-name=as
EGCSDIR/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.66/as
- Sun Linker
-
$ what /usr/ccs/bin/ld
SunOS 5.5.1 Generic 103627-02 September 1997
$ /usr/ccs/bin/ld -V
ld: Software Generation Utilities - Solaris/ELF (3.0)
- Workshop 5.0a Assembler (see note under Solaris 2.5.1/egcs section)
-
$ EGCSDIR/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.66/as -V
EGCSDIR/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.66/as: WorkShop Compilers 5.0 Alpha 03/27/98 Build
- Solaris 2.6 (SunOS 5.6) on SPARC with SunCC 4.2
(NOTE: This configuration is identical to the Solaris 2.5.1 SunCC 4.2 build except for the OS
version.)
We compiled and tested ACE & TAO with the following OS/tool combination:
- Solaris 2.6
-
$ uname -rsv
SunOS 5.6 Generic
$ showrev -p
No patches are installed
- Sun CC 4.2 Compiler
-
$ CC -V /dev/null
CC: WorkShop Compilers 4.2 16 Jun 1998 C++ 4.2 patch 104631-07
tdb_link: WorkShop Compilers 4.2 16 Jun 1998 C++ 4.2 patch 104631-07
CC: WorkShop Compilers 4.2 16 Jun 1998 C++ 4.2 patch 104631-07
/export/sw/SUNWspro/bin/../SC4.2/bin/c++filt: WorkShop Compilers 4.2 16 Jun 1998
ld: Software Generation Utilities - Solaris/ELF (3.0)
- Solaris 7 (SunOS 5.7) on SPARC with egcs 1.1.2
(NOTE: This configuration is identical to the Solaris 2.5.1 egcs build except for the OS
version.)
We compiled and tested ACE & TAO with the following OS/tool combination:
- Solaris 2.7
-
$ uname -rsv
SunOS 5.7 Generic_106541-04
- egcs 1.1.2
-
$ g++ -v
Reading specs from EGCSDIR/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)
$ g++ --print-prog-name=ld
/usr/ccs/bin/ld
$ g++ --print-prog-name=as
EGCSDIR/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.66/as
- Sun Linker
-
$ what /usr/ccs/bin/ld
SunOS 5.5.1 Generic 103627-02 September 1997
$ /usr/ccs/bin/ld -V
ld: Software Generation Utilities - Solaris/ELF (3.0)
- Workshop 5.0a Assembler (see note under Solaris 2.5.1/egcs section)
-
$ EGCSDIR/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.66/as -V
EGCSDIR/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.91.66/as: WorkShop Compilers 5.0 Alpha 03/27/98 Build
- Solaris 7 (SunOS 5.7) on SPARC with SunCC 5.0
We compiled and tested ACE & TAO with the following OS/tool combination:
- Solaris 2.7
-
The following patches were applied prior to building TAO:
- 107311-05 -- C++ Compiler Patch
- 107357-03 -- Common Compiler Patch
- 106327-05 -- Sun OS 5.7 Shared Library Patch
$ uname -rsv
SunOS 5.7 Generic_106541-04
- Sun CC 5.0 Compiler
-
Problems with this compiler caused builds with debug off to have missing
symbols for some template instantiations. Thus, only builds with debug
turned on are included here.
$ CC -V /dev/null
CC: WorkShop Compilers 5.0 98/12/15 C++ 5.0
cdr_link: WorkShop Compilers 5.0 99/07/26 C++ 5.0 Patch 107311-05
CC: WorkShop Compilers 5.0 98/12/15 C++ 5.0
/usr/SUNWspro/bin/../SC5.0/bin/c++filt: WorkShop Compilers 5.0 99/07/26 C++ 5.0 Patch 107311-05
ld: Software Generation Utilities - Solaris/ELF (3.0)
- HP-UX 11.00 on PA-RISC with aCC
Important Installation Tip! |
|
This CD uses ISO-9660 with Rock Ridge extensions, a format which HP's
native mount is unable to grok. To mount this CD on HP-UX systems, you
will need to use the pfs_mount command instead of the the
usual mount command. However, in order to successfully
run pfs_mount , both the pfs_mountd and
pfsd daemons must be running. So, to mount the CD,
execute commands similar to the following as user root:
# pfs_mountd &
# pfsd &
# pfs_mount /dev/dsk/c1t2d0 /mnt
See related manual pages (section 1m) for pfs_mount ,
pfs_mountd , and pfsd for more information.
You will have to kill both pfsd and
pfs_mountd processes in order to eject the CD.
|
We compiled and tested ACE & TAO with the following OS/tool combination:
- HP-UX 11.0 (32 bit version)
-
$ uname -rsv
HP-UX B.11.00 U
- HP aCC Compiler
-
$ aCC -V /dev/null
aCC: HP ANSI C++ B3910B A.03.13
92453-07 linker command s800.sgs ld PA64 B.11.00 REL 980519
Some additional notes about the HP-UX distribution:
-
Although we built ACE and TAO using the 32 bit version of the operating
system, the libraries and executables should also work on the 64 bit version
of the operating system.
-
The aCC compiler cannot compile
$TAO_ROOT/orbsvcs/orbsvcs/Trader.cpp with debugging enabled.
Therefore, we compiled a non-debug version of Trader.o to use in
building the debug version of the ORB services library for HP-UX on this
CD-ROM. The problem did not affect any other files; all were successfully
compiled with debug symbols. This will have no impact unless you are
debugging the Trader, A/V Streams, and Life Cycle services.
-
The standard HP-UX 11 (B.11.00) archive utility ar(1) (PA64 B.11.00
REL 980312) fails when creating static libraries due to an inability to
process long symbol names in certain TAO object files. Instead, we used the
GNU
ar distributed with GNU Binutils version 2.9.1 to build the libraries.
We did this by passing the option AR=<path to ar> to
make when building all of ACE and TAO. For example, we would use
the following command if GNU ar is installed in the default location
$ make AR=/usr/local/bin/ar
-
TAO applications that rely on shared libraries must have the variable
SHLIB_PATH defined in their environment to include the
directory containing TAO and ACE shared libraries (e.g.,
$ACE_ROOT/ace). The SHLIB_PATH environment
variable is analogous to LD_LIBRARY_PATH used in other
UNIX-based distributions on this CD-ROM. This environment variable need
not be set at link-time, as the makefiles pass the -L option to
the linker.
- Linux on Intel with egcs 1.1.2
We compiled and tested ACE & TAO with the following OS/tool combination:
- Redhat Linux 6.0
-
$ uname -rsv
Linux 2.2.5-15 #1 Mon Apr 19 23:00:46 EDT 1999
- egcs 1.1.2 (standard compiler installed with RH 6.0)
-
$ g++ -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
$ g++ --print-prog-name=ld
ld
$ g++ --print-prog-name=as
as
$ ld -v
GNU ld version 2.9.1 (with BFD 2.9.1.0.23)
$ as -v /dev/null
GNU assembler version 2.9.1 (i386-redhat-linux), using BFD version 2.9.1.0.23
Although we built ACE & TAO on Red Hat Linux 6.0, they
should be compatible with any version of Linux
(kernel version 2.0 or greater) which has libc 6 (a.k.a.,
glibc 2). CAVEAT: The Linux builds on this CD
have not been tested on any version of Linux other than
Red Hat 6.0.
- Quickstart for Building with TAO
This section contains a few things you will need to know to build applications
which use the TAO and ACE libraries distributed on this CD. You can find more
detailed information in bldgapps.html, which is
adapted from Chapter 4 of the TAO Developer's
Guide (OCI part number 500-01). The Guide can be purchased through http://www.ociweb.com/products/tao/purchase.html.
- TAO on UNIX
On UNIX and UNIX-like systems, you should use GNU Make to build applications
with TAO. The document bldgapps.html shows
several sample Makefiles.
Briefly, you will need to set the following environment variables:
ACE_ROOT
- The base of your ACE and TAO installation
TAO_ROOT
$ACE_ROOT/TAO
LD_LIBRARY_PATH
- Must include
$ACE_ROOT/ace
MAKEFLAGS
- Contains flags such as
"debug=0" and
"exceptions=1" and should normally match the
settings for your installation.
For example, assuming the base of your installation of TAO is in
/usr/local/ACE_wrappers , and assuming you are using the
C-shell (csh):
setenv ACE_ROOT /usr/local/ACE_wrappers
setenv TAO_ROOT $ACE_ROOT/TAO
setenv LD_LIBRARY_PATH $ACE_ROOT/ace:$LD_LIBRARY_PATH
setenv MAKEFLAGS "debug=0 exceptions=1"
Note: On HP-UX (32-bit systems), use SHLIB_PATH
rather than LD_LIBRARY_PATH .
- TAO on Win32 with Visual C++
The document bldgapps.html details project file
settings. Briefly, you will need to:
- Modify Visual C++ option settings to specify the
directory locations of ACE and TAO header files and
libraries;
- Modify the default compiler settings to use
multi-threaded DLLs;
- Modify the Input Object/Library modules to use the
debug or release versions of the ACE, TAO, and
orbsvcs libraries, as appropriate for your
development environment;
- Set up a custom build configuration to invoke the TAO
IDL compiler to generate C++ header and source files
from OMG IDL files.
See bldgapps.html for more information.
- Sample Application
The CD includes a sample application which you can build and run to verify
that your installation of TAO was successful. The application consists of a
simple time server and client. The client invokes an operation on a Time
object in the server to get the current time in GMT.
Source code for this application is found on the CD in the file
example.tgz . We have also included a Makefile for building the
application on UNIX and UNIX-like systems, and a Visual C++ 5.0 project file
for building it on Windows NT.
On UNIX and UNIX-like platforms, use gunzip and
tar to uncompress and unpack this file. Then, run make in the
example directory to build the server and client. You can then run the
server and client.
On Windows NT, use WinZip to unpack the file. You will find a
Visual C++ workspace called TimeOfDay in the
example\VC++5 subdirectory which you can use to compile the
interfaces and build the server and client programs.
The server creates a Time object and prints its IOR as a string to stdout,
then waits for client requests. The client takes the IOR string as a
parameter and invokes a request on the Time object, then prints the time (in
GMT) to stdout.
Here is sample output from running the server and client on Linux:
$ server &
[3] 30821
IOR:010000000d00000049444c3a54696d653a312e300000000001000000000000006c00000001
0101000f000000746f7474656e2e6f63692e636f6d0000ab0500001b00000014010f00525354de
9ecd37cf5a02000000000001000000010000000002000000000000000800000001000000004f41
54010000001400000001f5864001000100000000000901010000000000
$ client <ior-from-printed-by-server>
Time in Greenwich is 21:47:19
EMail TAO Support at taosupport
Last modified: Wed May 29 10:44:18 GMT 2002
|
|