scl_intro(3scl)scl_intro(3scl)NAMEscl_intro - introduction to Solaris Compatibility Libraries
DESCRIPTION
In addition to the standard UNIX application program interfaces (APIs)
common to most UNIX systems, the Sun Solaris operating system provides
a number of APIs specific to Solaris. An application that uses these
APIs might require substantial changes before it can be compiled on a
UNIX system other than Solaris.
The Solaris Compatibility Libraries (SCL) is a collection of C header
files and libraries that implement many of the key APIs specific to
Solaris. The purpose of the SCL is to enable Solaris applications that
call these non-standard APIs to be built and executed on Tru64 UNIX
with minimal source code changes.
The functionality provided by the SCL is split into three main cate‐
gories: A Tru64 UNIX port of SunSoft's transport-independent RPC (TI-
RPC) v2.3, the distribution of which is publicly available at
ftp://playground.sun.com/pub/rpc. Refer to the README file included in
that distribution for information describing the release. An implemen‐
tation of Solaris thread functions layered upon POSIX threads Various
library functions including asynchronous I/O, large file support, wide
character and signal string functions
These are further described in the SCL User's Guide and in the addi‐
tional man pages supplied with SCL.
FEATURES
The Solaris Compatibility Libraries Directory Tree
The default location for the SCL directory tree is /usr/opt/solcomplib.
You can use an alternative location, in which case you must set the
SCL_ROOT_DIR environment variable to reference the alternative SCL root
directory.
The following diagram shows the directory structure for the SCL:
/usr/opt/solcomplib
|
|
-+-----+-------+--------+------------+-------+------+------+--------+-
| | | | | | | | |
| | | | | | | | |
bin doc etc examples include lib man shlib source
| | | |
| | | |
-+-------+- -+----+-----+- | nls
| | | | | |
| | | | | |
html ref rpc threads | msg
| | |
| | |
html square |
|
|
-+-------+-----+---+--------+-
| | | |
| | | |
arpa rpc rpcsvc sys
Header Files
The Solaris Compatibility Libraries provides numerous C language head‐
ers that define types and structures as well as the Solaris function
prototypes. Header files are located in the include directory beneath
the SCL root directory.
To use the SCL versions of the headers, your make files and build com‐
mands must specify the SCL include directory before any other directo‐
ries.
Many of the SCL headers provide prototypes and definitions that are in
addition to those in the standard headers. Consequently, these SCL
headers include the standard headers by specifying an explicit path.
The standard headers are assumed to reside in the /usr/include direc‐
tory tree. If your Tru64 UNIX development environment differs from
this, you must edit the SCL headers and change the directory paths to
match those in your environment.
Libraries
The SCL functionality is provided as a number of shared libraries
residing in the shlib directory beneath the SCL root directory. To use
shared libraries, you must set the environment variable LD_LIBRARY_PATH
to include the SCL shlib path so that the SCL shared libraries can be
located at run-time.
In addition the SCL miscellaneous components are supplied as a static
library residing in the lib directory.
When building applications that use the SCL it is important to name the
appropriate SCL directory with -L option on the cc or ld command, or
within the makefile. The libraries to specify are: -lrpc -lxti for RPC
-lthread for threads -lsolmisc for miscellaneous functions
If linking with libsolmisc.a (the static library), you also need to
specify additional libraries: -lsolutil and possibly -lrt, -lexc and
-lrpcsvc.
The shared libraries must be installed on every system that runs appli‐
cations that make use of the SCL. You should either install the SCL on
these systems separately or package all required SCL libraries with
your application distribution.
For details on how to link SCL RPC applications, see the square example
in the examples/rpc directory beneath the SCL root directory.
Binaries
A number of commands and utilities are supplied with the SCL and these
reside in the bin directory beneath the SCL root directory. You should
amend the value for PATH environment variable in order to locate these.
Documentation
Documentation provided with SCL can be found in the doc directory
beneath the SCL root directory. Documentation comprises the User's
Guide in a number of formats for online reading or printing.
Reference documentation can be found in the man directory beneath the
SCL root directory. All functions and commands have associated man
pages which can be referenced in the normal way after including the
full path to the man directory in the definition of the MANPATH envi‐
ronment variable. For example $ setenv MANPATH /usr/man:/usr/opt/sol‐
complib/man
The SCL man pages have their own subsection, for example, 3scl. Use
this subsection with the man command to qualify the page if required.
Additionally the reference pages are supplied as HTML for online view‐
ing.
RELATED INFORMATION
Overviews: scl_rpc(3scl), scl_thread_intro(3scl)
Manual: Solaris Compatibility Library User's Guide
scl_intro(3scl)