1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>SIDL Library Issues</TITLE>
<META NAME="description" CONTENT="SIDL Library Issues">
<META NAME="keywords" CONTENT="users_guide">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="users_guide.css">
<LINK REL="next" HREF="node197.html">
<LINK REL="previous" HREF="node193.html">
<LINK REL="up" HREF="node187.html">
<LINK REL="next" HREF="node197.html">
</HEAD>
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
<A NAME="tex2html3649"
HREF="node197.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html3643"
HREF="node187.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html3637"
HREF="node195.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html3645"
HREF="node14.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<A NAME="tex2html3647"
HREF="node317.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html3650"
HREF="node197.html">SCL Files for Dynamic</A>
<B> Up:</B> <A NAME="tex2html3644"
HREF="node187.html">Building Portable Polyglot Software</A>
<B> Previous:</B> <A NAME="tex2html3638"
HREF="node195.html">Tracking Down Problems</A>
<B> <A NAME="tex2html3646"
HREF="node14.html">Contents</A></B>
<B> <A NAME="tex2html3648"
HREF="node317.html">Index</A></B>
<BR>
<BR></DIV>
<!--End of Navigation Panel-->
<H1><A NAME="SECTION04140000000000000000"></A><A NAME="s:sidl_lib"></A>
<BR>
SIDL Library Issues
</H1>
<P>
As mentioned in Section <A HREF="node100.html#s:sidl_runtime">5.5</A>, the Babel toolkit includes the
SIDL runtime library. The library provides a base interface, class,
and exception as the foundation. This is how Babel provides object-oriented
features to non-object-oriented languages. In order to support the runtime
system and build the SIDL library, it also provides DLL and Loader classes.
<P>
<A NAME="11220"></A>Babel generated code depends critically on <TT>babel_config.h</TT> to correctly
define a lot of platform specific details. One detail that changes too
frequently to encode in <TT>babel_config.h</TT> is whether or not the software
is being compiled is position independent code (PIC). This detail is commonly
added to the compilation instruction using the flags (e.g. <TT>-fPIC -DPIC</TT>
<A NAME="tex2html49"
HREF="footnode.html#foot11281"><SUP><SPAN CLASS="arabic">15</SPAN>.<SPAN CLASS="arabic">2</SPAN></SUP></A>). The first flag tells the compiler to generate position independent
code. The second defines the preprocessor macro <TT>PIC</TT>. Looking now at
<TT>babel_config.h</TT>, we see that either <TT>SIDL_DYNAMIC_LIBRARY</TT> or
<TT>SIDL_STATIC_LIBRARY</TT> are defined depending on whether or not <TT>PIC</TT>
is defined.
<P>
As described in Section <A HREF="node194.html#ss:pic">14.3.1</A>, Babel tends to focus on static libraries
and dynamic linked libraries; not worrying much about <A NAME="11231"></A>shared libraries. The
main reason is that for every last drop of performance, people would want
static libraries. To support Java and Python (and the CCA model) dynamic
loading is required. There's no real benefit to doing shared libraries that
can't be dynamically loaded, so in developing Babel, we focus on the other two
linkage situations.
<P>
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
<A NAME="tex2html3649"
HREF="node197.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html3643"
HREF="node187.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html3637"
HREF="node195.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html3645"
HREF="node14.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<A NAME="tex2html3647"
HREF="node317.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html3650"
HREF="node197.html">SCL Files for Dynamic</A>
<B> Up:</B> <A NAME="tex2html3644"
HREF="node187.html">Building Portable Polyglot Software</A>
<B> Previous:</B> <A NAME="tex2html3638"
HREF="node195.html">Tracking Down Problems</A>
<B> <A NAME="tex2html3646"
HREF="node14.html">Contents</A></B>
<B> <A NAME="tex2html3648"
HREF="node317.html">Index</A></B> </DIV>
<!--End of Navigation Panel-->
<ADDRESS>
<br><br>babel-0.10.2<br>users_guide Last Modified 2005-03-23<br><br><a href="http://www.llnl.gov/CASC/components">http://www.llnl.gov/CASC/components</a><br><a href="mailto:components@llnl.gov">components@llnl.gov</a>
</ADDRESS>
</BODY>
</HTML>
|