Symbian3/SDK/Source/GUID-CAC07A47-1475-5152-83AA-E59FD3AFF321.dita
changeset 0 89d6a7a84779
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-CAC07A47-1475-5152-83AA-E59FD3AFF321.dita	Thu Jan 21 18:18:20 2010 +0000
@@ -0,0 +1,421 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
+<!-- This component and the accompanying materials are made available under the terms of the License 
+"Eclipse Public License v1.0" which accompanies this distribution, 
+and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
+<!-- Initial Contributors:
+    Nokia Corporation - initial contribution.
+Contributors: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-CAC07A47-1475-5152-83AA-E59FD3AFF321" xml:lang="en"><title>elf2e32
+command syntax</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section><title>Overview</title> <p>The <filepath>elf2e32</filepath> tool's
+primary function is to create executables (DLLs and EXEs) in the format required
+by Symbian platform, known as the E32Image format. The tool takes as input,
+the executables produced by a compiler in the standard Executable and Linking
+Format (ELF), and Symbian platform-specific options specified as command-line
+arguments to the tool. The tool is located in at <filepath>epoc32\tools\elf2e32.exe</filepath>. </p> <p><b>Invocation
+syntax </b> </p> <p> <codeph>elf2e32 [--capability=&lt;capabilities&gt;] [--compressionmethod
+          [none | inflate | bytepair]] [--debuggable] [--dlldata]        
+  [--definput=&lt;file-path&gt;] [--defoutput=&lt;file-path&gt;]           [--dso=&lt;file-path&gt;]
+[--dump=&lt;dump-options&gt;]           [--e32input=&lt;file-path&gt;] [--elfinput=&lt;file-path&gt;]
+[--fixedaddress]           [--heap=&lt;committed-size&gt;[,&lt;reserved-size&gt;]]
+[--help]           [--libpath=&lt;search-paths&gt;] [--linkas=&lt;name&gt;] [--namedlookup]
+          [--noexportlibrary] [--output=&lt;file-path&gt;] [--sid=&lt;secure-ID&gt;]
+          [--stack=&lt;size&gt;] [--sysdef=&lt;ordinal-number&gt;,&lt;symbol&gt;] 
+         [--targettype=&lt;target-type&gt;] [--uid1=&lt;UID&gt;] [--uid2=&lt;UID&gt;]
+          [--uid3=&lt;UID&gt;] [--uncompressed]</codeph>  </p> </section>
+<section><title>Options</title> <table id="GUID-40226F24-CBEA-5810-832A-9FEC90B108AB">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p> <b>Option</b>  </p> </entry>
+<entry><p> <b>Description</b>  </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>capability=&lt;capabilities&gt;</codeph>  </p> </entry>
+<entry><p>Platform security capabilities to be assigned to the executable. </p> <p>Capabilities
+can be specified by name using the set of identifiers used in mmp files, i.e.: <codeph>TCB</codeph>, <codeph>CommDD</codeph>, <codeph>PowerMgmt</codeph>, <codeph>MultimediaDD</codeph>, <codeph>ReadDeviceData</codeph>, <codeph>WriteDeviceData</codeph>, <codeph>DRM</codeph>, <codeph>TrustedUI</codeph>, <codeph>ProtServ</codeph>, <codeph>DiskAdmin</codeph>, <codeph>NetworkControl</codeph>, <codeph>AllFiles</codeph>, <codeph>SwEvent</codeph>, <codeph>NetworkServices</codeph>, <codeph>LocalServices</codeph>, <codeph>ReadUserData</codeph>, <codeph>WriteUserData</codeph>, <codeph>Location</codeph>, <codeph>SurroundingsDD</codeph>, and <codeph>UserEnvironment</codeph>. </p> <p>Multiple
+capabilities can be specified using "+" as a separator. For example: </p> <codeblock id="GUID-80CCAB8E-AA0C-5B48-9E68-59AB1670BCA6" xml:space="preserve">--capability=LocalServices+ReadDeviceData+ReadUserData</codeblock> <p>The
+special capability name <codeph>ALL</codeph> can be used to represent all
+capabilities supported by the current version of Symbian platform. This can
+also be used together with capability names prefixed with a '-' to indicate
+which capabilities to exclude. For example: </p> <codeblock id="GUID-08672BAE-CABA-564E-B49C-6AB6FA8E8BA5" xml:space="preserve">--capability=ALL-TCB-TrustedUI</codeblock> <p>The default is no capabilities though the word <codeph>NONE</codeph> can
+be used explicitly. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>debuggable</codeph>  </p> </entry>
+<entry><p>Specifies that the application can be debugged using the run-mode
+debug subsystem. Only executables (EXEs and EXEXPs) can be specified as <codeph>debuggable</codeph>. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>definput=&lt;file-path&gt;</codeph>  </p> </entry>
+<entry><p>Input DEF file. </p> <p>This is used to specify a DEF file when
+constructing a DLL and/or import library. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>defoutput=&lt;file-path&gt;</codeph>  </p> </entry>
+<entry><p>Output DEF file. </p> <p>Specifies a DEF file to be constructed
+by the tool. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>dlldata</codeph>  </p> </entry>
+<entry><p>Allow writable static data in the DLL. </p> <p>The default is that
+a DLL may not have writable static data. For more information, see <xref href="GUID-5BDE6462-E6CA-5738-A587-C7D875574789.dita">Static
+data</xref>. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>dso=&lt;file-path&gt;</codeph>  </p> </entry>
+<entry><p>Output DSO (or library) file. </p> <p>Specifies the LIB file to
+be constructed by the tool. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>dump=&lt;dump-options&gt;</codeph>  </p> </entry>
+<entry><p>Used to specify the information generated when the <codeph>e32input</codeph> option
+is used. The sections to include are specified as follows: </p> <ul>
+<li id="GUID-840C91A5-4C8A-507A-A4A3-D78BA9A370D7"><p> <codeph>h</codeph>:
+Header </p> </li>
+<li id="GUID-4BE04059-6BA5-51D2-9581-74808320B726"><p> <codeph>s</codeph>:
+Security information </p> </li>
+<li id="GUID-F61A5E32-808F-553F-B65E-6DB64270434B"><p> <codeph>c</codeph>:
+Code section </p> </li>
+<li id="GUID-B61E0C72-4DEC-5160-BC55-FE4F9094B0D9"><p> <codeph>d</codeph>:
+Data section </p> </li>
+<li id="GUID-8D16EF3E-63E0-577D-9DEE-EAD64D5B342D"><p> <codeph>e</codeph>:
+Export information </p> </li>
+<li id="GUID-158B2410-6EBF-5D09-88E7-3CFC2E46DC25"><p> <codeph>I</codeph>:
+Import table </p> </li>
+</ul> </entry>
+</row>
+<row>
+<entry><p> <codeph>e32input=&lt;file-path&gt;</codeph>  </p> </entry>
+<entry><p>Dumps a description of the specified E32Image file to standard output.
+The output describes the executable's properties such as its header, its imports
+and exports, and the contents of its code and data sections. Output options
+are specified using the <codeph>--dump</codeph> parameter. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>elfinput=&lt;file-path&gt;</codeph>  </p> </entry>
+<entry><p>Input ELF file. </p> <p>Specifies a compiler-generated executable
+in ELF format to be converted into E32Image format by the tool. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>fixedaddress</codeph>  </p> </entry>
+<entry><p>Indicates that the process must have a fixed address. </p> <p>See <xref href="GUID-A16508C2-2743-5E36-BCFB-C509ACCD372F.dita">Fixed processes</xref> for
+more information. </p> <p>The default is no fixed address. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>heap=&lt;committed-size&gt;[,&lt;reserved-size&gt;]</codeph>  </p> </entry>
+<entry><p>The committed size and reserved size of the heap for the process,
+specified in bytes. </p> <p>The first value given is the committed size, followed
+by the reserved size which is optional. </p> <p>The default committed size
+is 0x1000 and the default reserved size is 0x100000. </p> <p>See <xref href="GUID-BFEBCD57-3C83-56D7-B7A3-B8A361725645.dita">Memory
+Management concepts</xref> for more information. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>help</codeph>  </p> </entry>
+<entry><p>Displays help text for the tool. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>libpath=&lt;search-paths&gt;</codeph>  </p> </entry>
+<entry><p>A semi-colon separated list of search paths that the tool should
+use to locate import libraries. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>linkas=&lt;name&gt;</codeph>  </p> </entry>
+<entry><p>The internal name used in the image file for the executable. This
+can include information that specifies the executable version (in braces)
+and the UID3 (in square brackets). For example, <codeph>foo{00020001}[10011235].exe</codeph>,
+would be used for an executable <filepath>foo.exe</filepath>, at version 2.1,
+with UID3 <codeph>0x10011235</codeph>. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>log=&lt;file-path&gt;</codeph>  </p> </entry>
+<entry><p>Redirects console log messages to the specified file </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>compressionmethod [none | inflate | bytepair]</codeph>  </p> </entry>
+<entry><p>The compression method to be used to compress the files. The tool
+uses the <codeph>inflate</codeph> method by default. </p> <p>The following
+compression methods can be used: </p> <p><table id="GUID-66F65203-1E4F-56D9-9AB8-7D47420C0B3B">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p>none </p> </entry>
+<entry><p>The files are not compressed. This is equivalent to using the <codeph>uncompressed</codeph> keyword. </p> <p> <b>Note</b>:
+The <codeph>uncompressed</codeph> keyword, when specified, takes precedence
+over any <codeph>compressionmethod</codeph>. </p> </entry>
+</row>
+<row>
+<entry><p>inflate </p> </entry>
+<entry><p>Compresses executable files using the default (Deflate, Huffman+LZ77)
+algorithm. </p> </entry>
+</row>
+<row>
+<entry><p>bytepair </p> </entry>
+<entry><p>Compresses executable files using the bytepair algorithm. Bytepair
+compression allows faster decompression than the default Deflate, Huffman+LZ77
+algorithm and supports demand paging by performing compression and decompression
+of code in independent 4KB pages. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>namedlookup</codeph>  </p> </entry>
+<entry><p>Enables symbol lookup by name using the <xref href="http://www.opengroup.org/onlinepubs/009695399/functions/dlsym.html" scope="external">dlsym</xref> Open Group API. This option has an impact on
+the binary size as Symbian platform binaries do not include symbol information
+by default. </p> <p> <b>Note</b>: If the tool is invoked by the Symbian platform
+build toolchain, symbol lookup is enabled for the <codeph>STDEXE</codeph> and <codeph>STDDLL</codeph> target
+types only. To enable symbol lookup for other target types, the tool must
+be invoked independently. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>noexportlibrary</codeph>  </p> </entry>
+<entry><p>Suppress implicit exports. </p> <p>As part of the library exports,
+the RVCT tools generate items not marked as <codeph>EXPORT_C</codeph> in the
+source code. These include Virtual Table and Run-time Type Information entries.
+Specifying this option causes the tool not to include these exports. </p> <p>For
+background information, see <filepath>cedar\generic\tools\documentation\Migrating_from_RVCT21_build_328_to_build_416_v1.0.doc</filepath>. </p> <p>The default is to include these items generated by RVCT. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>output=&lt;file-path&gt;</codeph>  </p> </entry>
+<entry><p>Output E32 image file name. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>sid=&lt;secure-ID&gt;</codeph>  </p> </entry>
+<entry><p>Secure ID (SID) of the executable. </p> <p>An SID identifies an
+executable uniquely on a phone. This allows service providers such as servers
+to make security checks on the basis of the executable making the request. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>stack=&lt;size&gt;</codeph>  </p> </entry>
+<entry><p>Specifies the stack size for a process in bytes. </p> <p>The default
+is 0. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>sysdef=&lt;ordinal-number&gt;, &lt;symbol&gt;</codeph>  </p> </entry>
+<entry><p>This option forces the specified symbol to be exported at the specified
+ordinal position. </p> <p>This is required for some target types (polymorphic
+DLLs). </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>targettype=&lt;target-type&gt;</codeph>  </p> </entry>
+<entry><p>Target type. The vaild types are as specified by the mmp <xref href="GUID-9535CF67-7541-554E-BE5C-9FDDFDB58EA5.dita">targettype</xref> keyword. </p> <p>If <codeph>elfinput</codeph> is specified and there is no targettype,
+a <xref href="GUID-9605B59D-F9DB-4BA3-8C87-1C5205976CBB.dita#GUID-9605B59D-F9DB-4BA3-8C87-1C5205976CBB/GUID-cd54fdec-8587-4d01-b839-d23af95c76b8">Custom
+target</xref> is assumed. </p> <p>An <codeph>IMPLIB</codeph> target is assumed
+if <codeph>--elfinput</codeph> is not specified and <codeph>-deffilein</codeph> is
+specified. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>uid1=&lt;UID&gt;</codeph>  </p> </entry>
+<entry><p>UID 1 value for output executable. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>uid2=&lt;UID&gt;</codeph>  </p> </entry>
+<entry><p>UID 2 value for output executable. </p> <p>The default is 0. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>uid3=&lt;UID&gt;</codeph>  </p> </entry>
+<entry><p>UID 3 value for output executable. </p> <p>The default is 0. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>uncompressed</codeph>  </p> </entry>
+<entry><p>Specifies that the target executable must not be compressed. </p> <p>By
+default, the target executable is compressed. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>unfrozen</codeph>  </p> </entry>
+<entry><p>Specifies that the input DEF file (specified with <codeph>--definput</codeph>)
+is not treated as frozen. This means that the tool will not report errors
+if the executable does not contain symbols that are specified in the DEF file. </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>vid</codeph>  </p> </entry>
+<entry><p>Vendor ID (VID) of the executable. </p> <p>A VID allows service
+providers such as servers to make security checks on the basis of the supplier
+of the executable making the request. </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>The following table specifies whether an option is required, optional
+or not applicable (N/A) for the main use cases of the tool (namely creating
+DLLs, EXEs, EXEs with exports (EXEXP target), and import libraries (IMPLIB
+target)). </p> <table id="GUID-E566D771-4098-5A82-8FBF-4C061D76BEEF">
+<tgroup cols="5"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><colspec colname="col3"/><colspec colname="col4"/>
+<tbody>
+<row>
+<entry><p> <b>Option</b>  </p> </entry>
+<entry><p> <b>DLL (static/polymorphic)</b>  </p> </entry>
+<entry><p> <b>EXE</b>  </p> </entry>
+<entry><p> <b>EXEXP</b>  </p> </entry>
+<entry><p> <b>IMPORT LIB</b>  </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>capability</codeph>  </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>N/A </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>debuggable</codeph>  </p> </entry>
+<entry><p>N/A </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>N/A </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>dlldata</codeph>  </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>N/A </p> </entry>
+<entry><p>N/A </p> </entry>
+<entry><p>N/A </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>definput</codeph>  </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>N/A </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>required </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>defoutput</codeph>  </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>N/A </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>N/A </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>dso</codeph>  </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>N/A </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>required </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>elfinput</codeph>  </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>N/A </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>fixedaddress</codeph>  </p> </entry>
+<entry><p>N/A </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>N/A </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>heap</codeph>  </p> </entry>
+<entry><p>N/A </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>N/A </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>libpath</codeph>  </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>N/A </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>linkas</codeph>  </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>required </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>noexportlibrary</codeph>  </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>N/A </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>N/A </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>output</codeph>  </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>N/A </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>sid</codeph>  </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>N/A </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>stack</codeph>  </p> </entry>
+<entry><p>N/A </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>no </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>sysdef</codeph>  </p> </entry>
+<entry><p>Required for polymorphic DLL target types only </p> </entry>
+<entry><p>N/A </p> </entry>
+<entry><p>N/A </p> </entry>
+<entry><p>N/A </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>targettype</codeph>  </p> </entry>
+<entry><p>DLL, or polymorphic DLL target type </p> </entry>
+<entry><p>EXE </p> </entry>
+<entry><p>EXEXP </p> </entry>
+<entry><p>IMPLIB </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>uid1</codeph>  </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>N/A </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>uid2</codeph>  </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>N/A </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>uid3</codeph>  </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>N/A </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>uncompressed</codeph>  </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>N/A </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>unfrozen</codeph>  </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>N/A </p> </entry>
+<entry><p>optional </p> </entry>
+<entry><p>N/A </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>vid</codeph>  </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>required </p> </entry>
+<entry><p>N/A </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> </section>
+</conbody></concept>
\ No newline at end of file