srcanaapps/depexplorer/com.nokia.s60tools.appdep.help/html/appendix.htm
author noe\swadi
Sat, 09 Jan 2010 10:04:11 +0530
changeset 0 a02c979e8dfd
permissions -rw-r--r--
1. Copyrights changed to EPL 2. Feature updates mentioned in release notes.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     2
<html>
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     3
<head>
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     4
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     5
<title>Appendix: Static Dependencies to Dynamic Data</title>
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     6
<link href="../book.css" type="text/css" rel="stylesheet"></head>
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     7
<body>
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     8
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     9
<h2>Appendix: Static Dependencies to Dynamic Data</h2>
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    10
<p>In ARM EABI binary model used in Symbian OS 9.x the compiler generates exports for runtime type information (RTTI) and virtual tables. With c++filt _ZTI maps to typeinfo for and _ZTV maps to vtable for. Those exports are actually data - they will never be "called" in a functional sense. They will be used to fill in values in the corresponding tables for derived classes, if there are any in the calling DLL.</p>
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    11
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    12
<p>Those objects are automatically exported, even though they are not nameable in C++. The compiler will expect these symbols to exist when compiling code which needs them (for example, constructors for derived classes), and generates them when it compiles a "key function" for the class. These symbols are added automatically when the EABI def files are frozen - they are automatic exports.</p>
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    13
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    14
<p>The LIB format for import libraries is restricted and does not contain these exports in the symbol table. Therefore it is always recommended to prefer DSO format over LIB which does not have this limitation when analyzing content of import libraries. Ordinals in the symbol table form a continuous sequence from 1 to n and therefore cannot contain any  holes. If LIB files contain holes, the content of those is unknown. Exports related to runtime type information and virtual tables can also be in the end of symbol table so with LIB files size of symbol table can be reported incorrectly.</p>
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    15
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    16
<p>Source: <i>Definitive Guide on the Technical Intricacies of Compatibility</i>, 2006, Peter Harper, Symbian LTC.</p> 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    17
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    18
<div id="footer">Copyright &copy; 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    19
License: <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.</div>
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    20
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    21
</body>
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    22
</html>