<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Florian Klaempfl пишет:
<blockquote cite="mid:49DCEF72.5040402@freepascal.org" type="cite">
  <pre wrap="">
This could be simply the influence of a different memory layout of the exe.
  </pre>
</blockquote>
It seams that I was wrong. So. Lets do next small test.<br>
The main program is:<br>
<code>program small_test;<br>
{$mode objfpc}{$H+}<br>
<br>
uses<br>
 Unit1;<br>
begin<br>
 Print_Hello_Word;<br>
end.</code><br>
<br>
Uni1.pas is:<br>
<code>Unit unit1;<br>
{$mode objfpc}{$H+}<br>
Interface<br>
Uses<br>
 Graphics, SysUtils;<br>
<br>
Procedure Print_Hello_Word;<br>
 <br>
Implementation<br>
Procedure Print_Hello_Word;<br>
Begin<br>
 WriteLN('Hello, word! Value is: '+IntToStr(23));<br>
End;<br>
end.</code><br>
<br>
As you see - Graphics unit is really unused here.<br>
<br>
Compiler is called this way:<br>
<code>#!/bin/bash<br>
ppc386 -Mfpc -CX -OpPENTIUM -TLinux -Pi386 -XX -Xs -vewnhim -Fu.
-Fu/usr/share/lazarus/ideintf/units/i386-linux/
-Fu/usr/share/lazarus/lcl/units/i386-linux/
-Fu/usr/share/lazarus/lcl/units/i386-linux/gtk2/
-Fu/usr/share/lazarus/packager/units/i386-linux/  -FU/tmp/
-o/tmp/small_test "./small_test.pas"</code><br>
<br>
So - the code is Smart Linkable (<b>-CX</b>), the symbols are stripped (<b>-Xs</b>)
and binary should be linked Smart (<b>-XX</b>).<br>
<br>
As a result we will see binary file with the size of <b>1 MB</b>. ;)
Without Graphics in Uses section we will see binary with the size of <b>75KB</b>.
Actually - no matter where Graphics unit is listed - the size will be
1MB both for Interface and Implementation sections.<br>
<br>
<b>So. The conclusion is:</b> <i>Smart Linking process can not remove
unused unit code</i>. No matter where it is listed - ether in <b>Interface</b>
section or in <b>Implementation</b> section. And we should check all
our sources to cleanup unused units manually.<br>
</body>
</html>