Difference between revisions of "Compiler development articles"

From Free Pascal wiki
Jump to navigationJump to search
m (Updated FPC date/version etc)
 
(23 intermediate revisions by 11 users not shown)
Line 1: Line 1:
The current FPC version under developement is 1.9.x. Compiler internals are documented at the evolving [[FPC internals]] page.
+
{{Compiler development articles}}
  
= General =
+
{{Warning|''As of 2021-May-21. the current compiler version is 3.2.2, so it is possible some of the details listed below may have changed.''}}
 +
 
 +
The current FPC version under developement is 2.5.1. Compiler internals are documented at the evolving [[FPC internals]] page.
 +
 
 +
== General ==
  
 
[[How to start]]
 
[[How to start]]
Line 9: Line 13:
 
[[Language related articles]]
 
[[Language related articles]]
  
= Processor dependent =
+
[[Coding style]]
 +
 
 +
[[Porting Free Pascal]]
 +
 
 +
[[Testing FPC]]
 +
 
 +
=== Enable new style smartlinking (FreeBSD, Linux) ===
 +
 
 +
* in i_*.pas add tf_smartlink_sections to the flags field of the platform description record for your OS/CPU combo (in my case i_bsd.pas, the system_i386_freebsd_info record)
 +
* in ogelf.pas scroll down to nearly the bottom, and add af_smartlink_sections to the flags field of as_i386_elf32_info
 +
* run "(g)make all OPT='-Aas -k--gc-sections' at the toplevel to build using new smartlinking routines.
 +
 
 +
=== C++ linking ===
 +
 
 +
Note that FPC doesn't have negative VMT offsets due to GNU LD limitations.
 +
 
 +
The fundament of above C++ <-> OPas lies in COM interfaces: (quote from Rudy Velthuis)
 +
 
 +
"Well, all compilers must be able to create COM interfaces. Since in
 +
C++, these are simply pure abstract classes, and Delphi must have the
 +
same layout, for many reasons, they are all compatible. In fact, a pure
 +
abstract class pointer points to a structure of which the first entry
 +
is a VMT. This is also how interfaces are built"
  
== i386 ==
+
== Processor dependent ==
 +
 
 +
See also [[Platform list|platform list]].
 +
 
 +
[[Passing Pascal Types to C Routines]]
 +
 
 +
=== i386 ===
  
 
[[PIC information]]
 
[[PIC information]]
  
== PowerPC ==
+
=== PowerPC ===
  
 
[[PPC Calling conventions]]
 
[[PPC Calling conventions]]
  
 +
=== Internal Linker ===
 +
 +
[[Internal Linker]]
  
 +
== Packages ==
  
very hot website:
+
[[packages|Packages]]
  
[http://www.funasia.cn &#35013;&#20462;]
+
[[Category:FPC]]
[http://www.funasia.cn http://www.funasia.cn]
+
[[Category:FPC development]]
[http://www.funasia.cn &#22242;&#36141;]
 
[http://www.funasia.cn http://www.funasia.cn]
 
[http://www.haishun.net &#38376;&#31105;]
 
[http://www.haishun.net http://www.haishun.net]
 
[http://haishun11.51.net &#34394;&#25311;&#20027;&#26426;]
 
[http://haishun11.51.net http://haishun11.51.net]
 
[http://fireworks.garrywa.com fireworks]
 
[http://fireworks.garrywa.com http://fireworks.garrywa.com]
 
[http://global.garrywa.com/index1.htm gemstone globe]
 
[http://global.garrywa.com/index1.htm http://global.garrywa.com/index1.htm]
 
[http://www.haishun.net &#30417;&#25511;]
 
[http://www.haishun.net http://www.haishun.net]
 
[http://www.fm360.net &#32593;&#22336;&#22823;&#20840;]
 
[http://www.fm360.net http://www.fm360.net]
 
[http://www.tjwatch.com &#25163;&#34920;]
 
[http://www.tjwatch.com http://www.tjwatch.com]
 
[http://www.hdfix.com.cn &#25968;&#25454;&#24674;&#22797;]
 
[http://www.hdfix.com.cn http://www.hdfix.com.cn]
 
[http://www.conjhost.com &#34394;&#25311;&#20027;&#26426;]
 
[http://www.conjhost.com http://www.conjhost.com]
 
[http://fireworks.garrywa.com/fireworks/fireworks.htm fireworks]
 
[http://fireworks.garrywa.com/fireworks/fireworks.htm http://fireworks.garrywa.com/fireworks/fireworks.htm]
 
[http://www.feilun.com.cn &#31163;&#24515;&#26426;]
 
[http://www.feilun.com.cn http://www.feilun.com.cn]
 
[http://www.3335555.com &#21270;&#23398;&#35797;&#21058;]
 
[http://www.3335555.com http://www.3335555.com]
 
[http://www.33335556.com &#23186;&#20307;]
 
[http://www.33335556.com http://www.33335556.com]
 
[http://www.3332226.com &#20108;&#25163;&#31508;&#35760;&#26412;]
 
[http://www.3332226.com http://www.3332226.com]
 
[http://www.3335558.com &#25163;&#22871;]
 
[http://www.3335558.com http://www.3335558.com]
 
[http://www.3332228.com &#21457;&#21160;&#26426;]
 
[http://www.3332228.com http://www.3332228.com]
 
[http://www.3336668.com &#20813;&#36153;&#19979;&#36733;&#30005;&#24433;]
 
[http://www.3336668.com &#20813;&#36153;&#19979;&#36733;&#30005;&#24433;]
 
[http://www.3332228.com http://www.3332228.com]
 
[http://www.3332228.com &#21457;&#21160;&#26426;]
 
[http://www.3332228.com http://www.3332228.com]
 
[http://www.5556661.com &#27700;&#27877;]
 
[http://www.5556661.com http://www.5556661.com]
 
[http://www.5556663.com &#22609;&#26009;&#21046;&#21697;]
 
[http://www.5556663.com http://www.5556663.com]
 
[http://www.5556668.com &#26426;&#24202;]
 
[http://www.5556668.com http://www.5556668.com]
 
[http://www.5556669.com &#20813;&#36153;&#38899;&#20048;&#19979;&#36733;]
 
[http://www.5556669.com http://www.5556669.com]
 
[http://www.5558881.com &#38543;&#36523;&#21548;]
 
[http://www.5558881.com http://www.5558881.com]
 
[http://www.5558882.com &#38450;&#27700;&#26448;&#26009;]
 
[http://www.5558882.com http://www.5558882.com]
 
[http://www.5558883.com &#32442;&#32455;&#26426;&#26800;]
 
[http://www.5558883.com http://www.5558883.com]
 
[http://www.5558886.com &#32784;&#28779;&#26448;&#26009; ]
 
[http://www.5558886.com http://www.5558886.com]
 
[http://www.5558889.com http://www.5558889.com]
 
[http://www.5558889.com &#32954;&#32467;&#26680;]
 
[http://www.6668883.com &#32954;&#28814;]
 
[http://www.6668883.com http://www.6668883.com]
 
[http://www.6668886.com &#39118;&#26426;]
 
[http://www.6668886.com http://www.6668886.com]
 
[http://www.6668889.com &#23478;&#23621;&#35013;&#39280;]
 
[http://www.6668889.com http://www.6668889.com]
 
[http://www.7773336.com &#21860;&#37202;]
 
[http://www.7773336.com http://www.7773336.com]
 
[http://www.7775556.com &#33073;&#21457;]
 
[http://www.7775556.com http://www.7775556.com]
 
[http://www.7775558.com &#38050;&#26495;]
 
[http://www.7775558.com http://www.7775558.com]
 
[http://www.7775559.com &#27773;&#36710;&#32654;&#23481;]
 
[http://www.7775559.com http://www.7775559.com]
 
[http://www.6667773.com &#32593;&#32476;&#30005;&#35805;]
 
[http://www.6667773.com http://www.6667773.com]
 
[http://www.6667775.com &#30417;&#29702;]
 
[http://www.6667775.com http://www.6667775.com ]
 
[http://www.6667776.com &#20943;&#36895;&#26426;]
 
[http://www.6667776.com http://www.6667776.com]
 
[http://www.6667777.com &#38050;&#26495;&#32593;]
 
[http://www.6667777.com http://www.6667777.com]
 
[http://www.6667778.com &#38050;&#31649;]
 
[http://www.6667778.com http://www.6667778.com]
 
[http://www.6667779.com &#32593;&#32476;&#35774;&#22791;]
 
[http://www.6667779.com http://www.6667779.com]
 
[http://www.8883335.com &#27927;&#34915;&#26426;]
 
[http://www.8883335.com http://www.8883335.com]
 
[http://www.8883336.com &#26174;&#21345;]
 
[http://www.8883336.com http://www.8883336.com]
 
[http://www.8883338.com &#26174;&#31034;&#22120;]
 
[http://www.8883338.com http://www.8883338.com]
 
[http://www.8883339.com &#27233;&#33014;]
 
[http://www.8883339.com http://www.8883339.com]
 
[http://www.8885553.com &#20992;&#20855;]
 
[http://www.8885553.com http://www.8885553.com]
 
[http://www.8885556.com &#30005;&#35270;&#26426;]
 
[http://www.8885556.com http://www.8885556.com]
 
[http://www.8885558.com &#38149;&#28809;]
 
[http://www.8885558.com http://www.8885558.com]
 
[http://www.8886663.com &#20108;&#25163;&#36710;]
 
[http://www.8886663.com http://www.8886663.com]
 
[http://www.8886665.com &#28369;&#26495;]
 
[http://www.8886665.com http://www.8886665.com]
 
[http://www.8886668.com &#30524;&#38236;]
 
[http://www.8886668.com http://www.8886668.com]
 
[http://www.8886669.com &#21150;&#20844;&#29992;&#21697;]
 
[http://www.8886669.com http://www.8886669.com]
 
[http://www.8888886.com &#38450;&#30423;&#38376;]
 
[http://www.8888886.com http://www.8888886.com]
 
[http://www.8888885.com &#21253;&#35013;&#26426;]
 
[http://www.8888885.com http://www.8888885.com]
 
[http://www.9993333.com &#20202;&#22120;]
 
[http://www.9993333.com http://www.9993333.com]
 
[http://www.9993335.com &#20445;&#28201;&#26448;&#26009;]
 
[http://www.9993335.com http://www.9993335.com]
 
[http://www.9993336.com &#32487;&#30005;&#22120;]
 
[http://www.9993336.com http://www.9993336.com]
 
[http://www.9993338.com &#21464;&#39057;&#22120;]
 
[http://www.9993338.com http://www.9993338.com]
 
[http://www.9993339.com &#21253;&#35013;&#26426;&#26800;]
 
[http://www.9993339.com http://www.9993339.com]
 
[http://www.9995555.com &#21150;&#20844;&#23478;&#20855;]
 
[http://www.9995555.com http://www.9995555.com]
 
[http://www.9995556.com &#22797;&#21360;&#26426;]
 
[http://www.9995556.com http://www.9995556.com]
 
[http://www.9995558.com &#36135;&#36816;]
 
[http://www.9995558.com http://www.9995558.com]
 
[http://www.9995559.com &#39640;&#23572;&#22827;]
 
[http://www.9995559.com http://www.9995559.com]
 
[http://shipintj.51.net &#35270;&#39057;]
 
[http://shipintj.51.net http://shipintj.51.net]
 
[http://tjunderwear.51.net &#20869;&#34915;]
 
[http://tjunderwear.51.net http://tjunderwear.51.net]
 
[http://jessica00.51.net &#31958;&#23615;&#30149;]
 
[http://jessica00.51.net http://jessica00.51.net]
 
[http://ticai.51.net &#20307;&#32946;&#24425;&#31080;]
 
[http://ticai.51.net http://ticai.51.net]
 
[http://e2008net.51.net &#32593;&#39029;&#21046;&#20316;]
 
[http://e2008net.51.net http://e2008net.51.net]
 
[http://tomcat00.51.net &#24615;&#30149;]
 
[http://tomcat00.51.net http://tomcat00.51.net]
 
[http://cisco00.51.net CISCO]
 
[http://cisco00.51.net http://cisco00.51.net]
 
[http://ohmyvod.51.net VOD]
 
[http://ohmyvod.51.net http://ohmyvod.51.net]
 
[http://notebook1.51.net &#31508;&#35760;&#26412;]
 
[http://notebook1.51.net http://notebook1.51.net]
 
[http://notebook2.51.net &#31508;&#35760;&#26412;&#30005;&#33041;]
 
[http://notebook2.51.net http://notebook2.51.net]
 
[http://adult001.51.net &#25104;&#20154;&#29992;&#21697;]
 
[http://adult001.51.net http://adult001.51.net]
 
[http://cancer007.51.net &#30284;&#30151;]
 
[http://cancer007.51.net http://cancer007.51.net]
 
[http://translateone.51.net &#32763;&#35793;]
 
[http://translateone.51.net http://translateone.51.net]
 
[http://drinkery.51.net &#37202;&#24215;]
 
[http://drinkery.51.net http://drinkery.51.net]
 
[http://manager007.51.net &#31649;&#29702;&#21672;&#35810;]
 
[http://manager007.51.net http://manager007.51.net]
 
[http://bigscreen.51.net &#22823;&#23631;&#24149;]
 
[http://bigscreen.51.net http://bigscreen.51.net]
 
[http://mp3first.51.net mp3]
 
[http://mp3first.51.net http://mp3first.51.net]
 
[http://present.51.net &#31036;&#21697;]
 
[http://present.51.net http://present.51.net]
 
[http://studyabroad.51.net &#30041;&#23398;]
 
[http://studyabroad.51.net http://studyabroad.51.net]
 
[http://tour123.51.net &#26053;&#28216;]
 
[http://tour123.51.net http://tour123.51.net]
 
[http://train123.51.net &#22521;&#35757;]
 
[http://train123.51.net http://train123.51.net]
 
[http://ourauto.51.net &#27773;&#36710;]
 
[http://ourauto.51.net http://ourauto.51.net]
 
[http://mobiletele.51.net &#25163;&#26426;]
 
[http://mobiletele.51.net http://mobiletele.51.net]
 
[http://freshflowers.51.net &#40092;&#33457;]
 
[http://freshflowers.51.net http://freshflowers.51.net]
 
[http://migration.51.net &#31227;&#27665;]
 
[http://migration.51.net http://migration.51.net]
 
[http://myapply.51.net &#25307;&#32856;]
 
[http://myapply.51.net http://myapply.51.net]
 
[http://decorate.51.net &#35013;&#20462;]
 
[http://decorate.51.net http://decorate.51.net]
 
[http://zufang001.51.net &#31199;&#25151;]
 
[http://zufang001.51.net http://zufang001.51.net]
 
[http://videomarket.51.net MBA]
 
[http://videomarket.51.net http://videomarket.51.net]
 
[http://email8888bada.51.net &#38376;&#31105;]
 
[http://email8888bada.51.net http://email8888bada.51.net]
 
[http://asp169.51.net &#20057;&#32925;]
 
[http://asp169.51.net http://asp169.51.net]
 
[http://cnnet21.51.net &#28216;&#25103;]
 
[http://cnnet21.51.net http://cnnet21.51.net]
 
[http://asp169net.51.net &#28216;&#25103;&#19979;&#36733;]
 
[http://asp169net.51.net http://asp169net.51.net]
 
[http://guanghui16.51.net &#20202;&#22120;]
 
[http://guanghui16.51.net http://guanghui16.51.net]
 
[http://juyolo.51.net &#25968;&#30721;&#30456;&#26426;]
 
[http://juyolo.51.net http://juyolo.51.net]
 
[http://guanghui6.51.net &#32593;&#31449;&#24314;&#35774;]
 
[http://guanghui6.51.net http://guanghui6.51.net]
 
[http://guanghui1.51.net erp]
 
[http://guanghui1.51.net http://guanghui1.51.net]
 
[http://guanghui4.51.net flash]
 
[http://guanghui4.51.net thttp://guanghui4.51.net]
 
[http://guanghui5.51.net mp3&#19979;&#36733;]
 
[http://guanghui5.51.net http://guanghui5.51.net]
 
[http://guanghui7.51.net &#29233;&#28363;&#30149;]
 
[http://guanghui7.51.net http://guanghui7.51.net]
 
[http://guanghui8.51.net &#21150;&#20844;&#33258;&#21160;&#21270;]
 
[http://guanghui8.51.net http://guanghui8.51.net]
 
[http://guanghui9.51.net &#20986;&#22269;]
 
[http://guanghui9.51.net http://guanghui9.51.net]
 
[http://guanghui11.51.net &#30701;&#20449;]
 
[http://guanghui11.51.net http://guanghui11.51.net]
 
[http://guanghui12.51.net &#23545;&#35762;&#26426;]
 
[http://guanghui12.51.net http://guanghui12.51.net]
 
[http://guanghui13.51.net &#24178;&#29157;&#35774;&#22791;]
 
[http://guanghui13.51.net http://guanghui13.51.net]
 
[http://guanghui14.51.net &#20250;&#35745;&#24072;&#20107;&#21153;&#25152;]
 
[http://guanghui14.51.net http://guanghui14.51.net]
 
[http://guanghui15.51.net &#36135;&#26550;]
 
[http://guanghui15.51.net http://guanghui15.51.net]
 
[http://guanhui21.51.net &#20132;&#21451;]
 
[http://guanhui21.51.net http://guanhui21.51.net]
 
[http://guanghui71.51.net &#32842;&#22825;]
 
[http://guanghui71.51.net http://guanghui71.51.net]
 
[http://guanhui585.51.net &#32654;&#22899;]
 
[http://guanhui585.51.net http://guanhui585.51.net]
 
[http://www.haishun.net &#30417;&#25511;]
 
[http://www.haishun.net http://www.haishun.net]
 
[http://www.haishun.net &#38376;&#31105;]
 
[http://www.haishun.net http://www.haishun.net]
 
[http://www.tjwatch.com &#25163;&#34920;]
 
[http://www.tjwatch.com http://www.tjwatch.com]
 
[http://www.fm360.net &#32593;&#22336;&#22823;&#20840;]
 
[http://www.fm360.net http://www.fm360.net]
 
[http://www.ss-cn.com &#19981;&#38152;&#38050;]
 
[http://www.ss-cn.com http://www.ss-cn.com]
 
[http://www.printer-cn.com &#25171;&#21360;&#26426;]
 
[http://www.printer-cn.com http://www.printer-cn.com]
 
[http://www.stst-cn.com &#38050;&#32467;&#26500;]
 
[http://www.stst-cn.com http://www.stst-cn.com]
 
[http://www.cn-computer.com &#35745;&#31639;&#26426;]
 
[http://www.cn-computer.com http://www.cn-computer.com]
 
[http://www.joinin-cn.com &#21152;&#30431;]
 
[http://www.joinin-cn.com http://www.joinin-cn.com]
 
[http://www.coma-cn.com &#24314;&#31569;&#26448;&#26009;]
 
[http://www.coma-cn.com http://www.coma-cn.com]
 
[http://www.t-agency.com &#26053;&#34892;&#31038;]
 
[http://www.t-agency.com http://www.t-agency.com]
 
[http://www.cor-admin.com &#20225;&#19994;&#31649;&#29702;]
 
[http://www.cor-admin.com http://www.cor-admin.com]
 
[http://www.human-cn.com &#20154;&#21147;&#36164;&#28304;]
 
[http://www.human-cn.com http://www.human-cn.com]
 
[http://www.webpage-cn.com &#32593;&#39029;&#35774;&#35745;]
 
[http://www.webpage-cn.com http://www.webpage-cn.com]
 
[http://www.168marketing.com &#24066;&#22330;&#33829;&#38144;]
 
[http://www.168marketing.com http://www.168marketing.com]
 
[http://www.66interior.com &#23460;&#20869;&#35774;&#35745;]
 
[http://www.66interior.com http://www.66interior.com]
 
[http://www.66cellphone.com &#25163;&#26426;]
 
[http://www.66cellphone.com http://www.66cellphone.com]
 
[http://www.88feedstuff.com &#39282;&#26009;]
 
[http://www.88feedstuff.com http://www.88feedstuff.com]
 
[http://www.china-dope.com &#28034;&#26009;]
 
[http://www.china-dope.com http://www.china-dope.com]
 
[http://www.cn-Satellite-tv.com &#21355;&#26143;&#30005;&#35270;]
 
[http://www.cn-Satellite-tv.com http://www.cn-Satellite-tv.com]
 
[http://www.66logistics.com &#29289;&#27969;]
 
[http://www.66logistics.com http://www.66logistics.com]
 
[http://www.168Education.com &#36828;&#31243;&#25945;&#32946;]
 
[http://www.168Education.com http://www.168Education.com]
 
[http://www.cn-exhibition.com &#23637;&#35272;]
 
[http://www.cn-exhibition.com http://www.cn-exhibition.com]
 
[http://www.66machine.com &#21253;&#35013;&#26426;&#26800;]
 
[http://www.66machine.com http://www.66machine.com]
 
[http://www.66packing.com &#21253;&#35013;&#35774;&#35745;]
 
[http://www.66packing.com http://www.66packing.com]
 
[http://www.88fiber.com &#29627;&#29827;&#38050;]
 
[http://www.88fiber.com http://www.88fiber.com]
 
[http://www.66ceramic.com &#29943;&#30742;]
 
[http://www.66ceramic.com http://www.66ceramic.com]
 
[http://www.66floor.com &#22320;&#26495;]
 
[http://www.66floor.com http://www.66floor.com]
 
[http://www.66battery.com &#30005;&#27744;]
 
[http://www.66battery.com http://www.66battery.com]
 
[http://www.66tools.com &#30005;&#21160;&#24037;&#20855;]
 
[http://www.66tools.com http://www.66tools.com]
 
[http://www.88telephone.com &#30005;&#35805;]
 
[http://www.88telephone.com http://www.88telephone.com]
 
[http://www.66cable.com &#30005;&#32518;]
 
[http://www.66cable.com http://www.66cable.com]
 
[http://www.appliances66.com &#30005;&#22120;]
 
[http://www.appliances66.com http://www.appliances66.com]
 
[http://www.168wire.com &#30005;&#32447;&#30005;&#32518;]
 
[http://www.168wire.com http://www.168wire.com]
 
[http://www.66supply.com &#30005;&#28304;]
 
[http://www.66supply.com http://www.66supply.com]
 
[http://www.66sculpture.com &#38613;&#22609;]
 
[http://www.66sculpture.com http://www.66sculpture.com]
 
[http://www.earphone168.com &#32819;&#26426;]
 
[http://www.earphone168.com http://www.earphone168.com]
 
[http://www.computer666.com &#20108;&#25163;&#30005;&#33041;]
 
[http://www.computer666.com http://www.computer666.com]
 
[http://www.house222.com &#20108;&#25163;&#25151;]
 
[http://www.house222.com http://www.house222.com]
 
[http://www.cn-dynamotor.com &#21457;&#30005;&#26426;]
 
[http://www.cn-dynamotor.com http://www.cn-dynamotor.com]
 
[http://www.door168.com &#38450;&#30423;&#38376;]
 
[http://www.door168.com http://www.door168.com]
 
[http://www.textile88.com &#32442;&#32455;]
 
[http://www.textile88.com http://www.textile88.com]
 
[http://www.ticket88.com &#26426;&#31080;]
 
[http://www.ticket88.com http://www.ticket88.com]
 
[http://www.copy168.com &#22797;&#21360;&#26426;]
 
[http://www.copy168.com http://www.copy168.com]
 
[http://www.888steel.com &#38050;&#38081;]
 
[http://www.888steel.com http://www.888steel.com]
 
[http://www.machine88.com &#24037;&#31243;&#26426;&#26800;]
 
[http://www.machine88.com http://www.machine88.com]
 
[http://www.chinaad-design.com &#24191;&#21578;&#35774;&#35745;]
 
[http://www.chinaad-design.com http://www.chinaad-design.com]
 
[http://www.relay888.com &#32487;&#30005;&#22120;]
 
[http://www.relay888.com http://www.relay888.com]
 
[http://www.jiadian666.com &#23478;&#30005;]
 
[http://www.jiadian666.com http://www.jiadian666.com]
 
[http://www.551111.com &#24314;&#31569;&#35774;&#35745;]
 
[http://www.551111.com http://www.551111.com]
 
[http://www.switch88.com &#20132;&#25442;&#26426;]
 
[http://www.switch88.com http://www.switch88.com]
 
[http://www.jieju-china.com &#27905;&#20855;]
 
[http://www.jieju-china.com http://www.jieju-china.com]
 
[http://www.switch168.com &#24320;&#20851;]
 
[http://www.switch168.com http://www.switch168.com]
 
[http://www.musical88.com &#20048;&#22120;]
 
[http://www.musical88.com http://www.musical88.com]
 
[http://www.china-wood-floor.com &#26408;&#22320;&#26495;]
 
[http://www.china-wood-floor.com http://www.china-wood-floor.com]
 
[http://www.leather168.com &#30382;&#38761;]
 
[http://www.leather168.com http://www.leather168.com]
 
[http://www.beer-china.com &#21860;&#37202;]
 
[http://www.beer-china.com http://www.beer-china.com]
 
[http://www.cn-vcr.com &#28070;&#28369;&#27833;]
 
[http://www.cn-vcr.com http://www.cn-vcr.com]
 
[http://www.china-vcr.com &#25668;&#20687;&#26426;]
 
[http://www.china-vcr.com http://www.china-vcr.com]
 
[http://www.331111.com &#25668;&#20687;&#22836;]
 
[http://www.331111.com http://www.331111.com]
 
[http://www.china-digital-camera.com &#25968;&#30721;&#25668;&#20687;&#26426;]
 
[http://www.china-digital-camera.com http://www.china-digital-camera.com]
 
[http://www.661111.com &#22609;&#26009;&#26426;&#26800;]
 
[http://www.661111.com http://www.661111.com]
 
[http://www.china-sports-kit.com &#20307;&#32946;&#29992;&#21697;]
 
[http://www.china-sports-kit.com http://www.china-sports-kit.com]
 
[http://www.665555.com &#32593;&#32476;&#30005;&#35805;]
 
[http://www.665555.com http://www.665555.com]
 
[http://www.663333.com &#26395;&#36828;&#38236;]
 
[http://www.663333.com http://www.663333.com]
 
[http://www.662222.com &#25991;&#20855;]
 
[http://www.662222.com http://www.662222.com]
 
[http://www.885555.com &#20116;&#37329;&#24037;&#20855;]
 
[http://www.885555.com http://www.885555.com]
 
[http://www.8881111.com &#26174;&#31034;&#22120;]
 
[http://www.8881111.com http://www.8881111.com]
 
[http://www.8887777.com &#30456;&#26426;]
 
[http://www.8887777.com http://www.8887777.com]
 
[http://www.8886666.com &#39321;&#27700;]
 
[http://www.8886666.com http://www.8886666.com]
 
[http://www.8885555.com http://www.8885555.com]
 
[http://www.8883333.com &#20202;&#34920;]
 
[http://www.8883333.com http://www.8883333.com]
 
[http://www.8882222.com &#20013;&#22830;&#31354;&#35843;]
 
[http://www.8882222.com http://www.8882222.com]
 
[http://www.36788.com &#29664;&#23453;]
 
[http://www.36788.com http://www.36788.com]
 
[http://www.26788.com &#24179;&#38754;&#35774;&#35745;]
 
[http://www.26788.com http://www.26788.com]
 
[http://www.sensor168.com &#20256;&#24863;&#22120;]
 
[http://www.sensor168.com http://www.sensor168.com]
 
[http://www.moto-cn.com &#25705;&#25176;&#36710;]
 
[http://www.moto-cn.com http://www.moto-cn.com]
 
[http://www.glass8888.com &#29627;&#29827;]
 
[http://www.glass8888.com http://www.glass8888.com]
 
[http://www.motor2008.com &#30005;&#26426;]
 
[http://www.motor2008.com http://www.motor2008.com]
 
[http://www.craftwork2008.com &#24037;&#33402;&#21697;]
 
[http://www.craftwork2008.com http://www.craftwork2008.com]
 
[http://www.chem888.com &#21270;&#24037;]
 
[http://www.chem888.com http://www.chem888.com]
 
[http://www.cosmetics2008.com &#21270;&#22918;&#21697;]
 
[http://www.cosmetics2008.com http://www.cosmetics2008.com]
 
[http://www.machine168.com &#26426;&#26800;]
 
[http://www.machine168.com http://www.machine168.com]
 
[http://www.ac8888.com &#31354;&#35843;]
 
[http://www.ac8888.com http://www.ac8888.com]
 
[http://www.cn-fashion.com &#26102;&#35013;]
 
[http://www.cn-fashion.com http://www.cn-fashion.com]
 
[http://www.food-cn.com &#39135;&#21697;]
 
[http://www.food-cn.com http://www.food-cn.com]
 
[http://www.plastic168.com &#22609;&#26009;]
 
[http://www.plastic168.com http://www.plastic168.com]
 
[http://www.ceramic168.com &#38518;&#29943;]
 
[http://www.ceramic168.com http://www.ceramic168.com]
 
[http://www.toy-china.com &#29609;&#20855;]
 
[http://www.toy-china.com http://www.toy-china.com]
 
[http://www.hardware888.com &#20116;&#37329;]
 
[http://www.hardware888.com http://www.hardware888.com]
 
[http://www.cn-press.com &#21360;&#21047;]
 
[http://www.cn-press.com http://www.cn-press.com]
 
[http://www.chinaaxletree.com &#36724;&#25215;]
 
[http://www.chinaaxletree.com http://www.chinaaxletree.com]
 
[http://www.steel168.com &#38050;&#26448;]
 
[http://www.steel168.com http://www.steel168.com]
 
[http://www.china-af.com &#27773;&#36710;&#37197;&#20214;]
 
[http://www.china-af.com http://www.china-af.com]
 
[http://www.chinalatex.com &#27233;&#33014;]
 
[http://www.chinalatex.com http://www.chinalatex.com]
 
[http://www.china-transformer.com &#21464;&#21387;&#22120;]
 
[http://www.china-transformer.com http://www.china-transformer.com]
 
[http://www.booking-room.com &#35746;&#25151;]
 
[http://www.booking-room.com http://www.booking-room.com]
 
[http://www.tb-china.com &#35746;&#31080;]
 
[http://www.tb-china.com http://www.tb-china.com]
 
[http://www.china-wp.com &#27700;&#22788;&#29702;]
 
[http://www.china-wp.com http://www.china-wp.com]
 
[http://www.screencn.com &#26174;&#31034;&#23631;]
 
[http://www.screencn.com http://www.screencn.com]
 
[http://www.cn-present.com &#31036;&#21697;]
 
[http://www.cn-present.com http://www.cn-present.com]
 
[http://www.2008travel.com &#26053;&#28216;]
 
[http://www.2008travel.com http://www.2008travel.com]
 
[http://www.china-am.com &#27773;&#36710;]
 
[http://www.china-am.com http://www.china-am.com]
 
[http://www.cn-clothing.com &#26381;&#35013;]
 
[http://www.cn-clothing.com http://www.cn-clothing.com]
 
[http://www.commovie-china.com &#30005;&#24433;]
 
[http://www.commovie-china.com http://www.commovie-china.com]
 
[http://www.china-cp.com &#25163;&#26426;]
 
[http://www.china-cp.com http://www.china-cp.com]
 
[http://www.stst-cn.com &#38050;&#32467;&#26500;]
 
[http://www.stst-cn.com http://www.stst-cn.com]
 
[http://www.coma-cn.com &#24314;&#31569;&#26448;&#26009;]
 
[http://www.coma-cn.com http://www.coma-cn.com]
 
[http://www.cor-admin.com &#20225;&#19994;&#31649;&#29702;]
 
[http://www.cor-admin.com http://www.cor-admin.co]
 
[http://www.88feedstuff.com &#39282;&#26009;]
 
[http://www.88feedstuff.com &#39282;&#26009;]
 
[http://www.china-dope.com &#28034;&#26009;]
 
[http://www.china-dope.com http://www.china-dope.com]
 
[http://www.cn-Satellite-tv.com &#21355;&#26143;&#30005;&#35270;]  
 
[http://www.cn-Satellite-tv.com http://www.cn-Satellite-tv.com]
 
[http://www.66packing.com &#21253;&#35013;&#35774;&#35745;]  
 
[http://www.66packing.com http://www.66packing.com]
 
[http://www.88fiber.com &#29627;&#29827;&#38050;]
 
[http://www.88fiber.com http://www.88fiber.com]
 
[http://www.66ceramic.com &#29943;&#30742;]
 
[http://www.66ceramic.com http://www.66ceramic.com]
 
[http://www.66floor.com &#22320;&#26495;]
 
[http://www.66floor.com http://www.66floor.com]
 
[http://www.66cable.com &#30005;&#32518; http://www.66cable.com&#30005;&#32518;]
 
[http://www.66cable.com http://www.66cable.com]
 
[http://www.168wire.com &#30005;&#32447;&#30005;&#32518;]
 
[http://www.168wire.com http://www.168wire.com]
 
[http://www.66supply.com &#30005;&#28304;]
 
[http://www.66supply.com http://www.66supply.com]
 
[http://www.66sculpture.com &#38613;&#22609;]
 
[http://www.66sculpture.com http://www.66sculpture.com]
 
[http://www.551111.com &#24314;&#31569;&#35774;&#35745;]
 
[http://www.551111.com http://www.551111.com]
 
[http://www.jieju-china.com &#27905;&#20855;]
 
[http://www.jieju-china.com http://www.jieju-china.com]
 
[http://www.switch168.com &#24320;&#20851;]
 
[http://www.switch168.com http://www.switch168.com]
 
[http://www.leather168.com &#30382;&#38761;]
 
[http://www.leather168.com http://www.leather168.com]
 
[http://www.beer-china.com &#21860;&#37202;]
 
[http://www.beer-china.com http://www.beer-china.com]
 
[http://www.661111.com &#22609;&#26009;&#26426;&#26800;]
 
[http://www.661111.com http://www.661111.com]
 
[http://www.china-transformer.com &#21464;&#21387;&#22120;]
 
[http://www.china-transformer.com http://www.china-transformer.com]
 
[http://www.screencn.com &#26174;&#31034;&#23631;]
 
[http://www.screencn.com http://www.screencn.com]
 
[http://www.camera-cn.com &#25968;&#30721;&#30456;&#26426;]
 
[http://www.camera-cn.com http://www.camera-cn.com]
 
[http://www.pre-machine.com &#31283;&#21387;&#22120;]
 
[http://www.pre-machine.com http://www.pre-machine.com]
 
[http://www.Invite-cn.com &#25307;&#32856;]
 
[http://www.Invite-cn.com http://www.Invite-cn.com]
 
[http://www.hold-screen.com &#35302;&#25720;&#23631;]
 
[http://www.hold-screen.com http://www.hold-screen.com]
 
[http://www.ma-cabinet.com &#26426;&#26588;]
 
[http://www.ma-cabinet.com http://www.ma-cabinet.com]
 
[http://www.screen-cn.com &#26174;&#31034;&#23631;]
 
[http://www.screen-cn.com http://www.screen-cn.com]
 
[http://www.wine-booking.com &#37202;&#24215;&#39044;&#23450;]
 
[http://www.wine-booking.com http://www.wine-booking.com]
 
[http://www.molding-tool.com &#27169;&#20855;]
 
[http://www.molding-tool.com http://www.molding-tool.com]
 
[http://www.movie-online123.com &#22312;&#32447;&#30005;&#24433;]
 
[http://www.movie-online123.com http://www.movie-online123.com]
 
[http://www.notebook555.com &#31508;&#35760;&#26412;]
 
[http://www.notebook555.com http://www.notebook555.com]
 
[http://haishun11.51.net &#34394;&#25311;&#20027;&#26426;]
 
[http://haishun11.51.net http://haishun11.51.net]
 
[http://www.management666.com &#31649;&#29702;&#21672;&#35810;]
 
[http://www.management666.com http://www.management666.com]
 
[http://www.dn-register.com &#22495;&#21517;&#27880;&#20876;]
 
[http://www.dn-register.com http://www.dn-register.com]
 
[http://www.ki-disease.com &#32958;&#30149;]
 
[http://www.ki-disease.com http://www.ki-disease.com]
 
[http://www.freemovie-cn.com &#20813;&#36153;&#30005;&#24433;]
 
[http://www.freemovie-cn.com http://www.freemovie-cn.com]
 
[http://www.tumor-cn.com &#32959;&#30244;]
 
[http://www.tumor-cn.com http://www.tumor-cn.com]
 
[http://www.microscope-cn.com &#26174;&#24494;&#38236;]
 
[http://www.microscope-cn.com http://www.microscope-cn.com]
 
[http://www.marriage666.com &#23130;&#20171;]
 
[http://www.marriage666.com http://www.marriage666.com]
 
[http://www.stock-cn.com &#32929;&#31080;]
 
[http://www.stock-cn.com http://www.stock-cn.com]
 
[http://www.ex-machine.com &#20132;&#25442;&#26426;]
 
[http://www.ex-machine.com http://www.ex-machine.com]
 
[http://www.diabetes-cn.com &#31958;&#23615;&#30149;]
 
[http://www.diabetes-cn.com http://www.diabetes-cn.com]
 
[http://www.b-mailbox.com &#20225;&#19994;&#37038;&#31665;]
 
[http://www.b-mailbox.com http://www.b-mailbox.com]
 
[http://www.hardware123.com &#20116;&#37329;]
 
[http://www.hardware123.com http://www.hardware123.com]
 
[http://www.b-liver.com &#20057;&#32925;]
 
[http://www.b-liver.com http://www.b-liver.com]
 
[http://www.interphone555.com &#23545;&#35762;&#26426;]
 
[http://www.interphone555.com http://www.interphone555.com]
 
[http://www.cosmetics666.com &#21270;&#22918;&#21697;]
 
[http://www.cosmetics666.com http://www.cosmetics666.com]
 
[http://www.bdi-bone.com &#32929;&#39592;&#22836;&#22351;&#27515;]
 
[http://www.bdi-bone.com http://www.bdi-bone.com]
 
[http://www.website-expansion.com &#32593;&#31449;&#25512;&#24191;]
 
[http://www.website-expansion.com http://www.website-expansion.com]
 
[http://www.beauty333.com &#32654;&#22899;]
 
[http://www.beauty333.com http://www.beauty333.com]
 
[http://www.ups123.com UPS]
 
[http://www.ups123.com http://www.ups123.com]
 
[http://www.lcd-cn.com &#28082;&#26230;]
 
[http://www.lcd-cn.com http://www.lcd-cn.com]
 
[http://www.stationery555.com &#25991;&#20855;]
 
[http://www.stationery555.com http://www.stationery555.com]
 
[http://www.upoisoning.com &#23615;&#27602;&#30151;]
 
[http://www.upoisoning.com http://www.upoisoning.com]
 
[http://www.room-ordering.com &#35746;&#25151;]
 
[http://www.room-ordering.com http://www.room-ordering.com]
 
[http://www.bc-printer.com &#26465;&#30721;&#25171;&#21360;&#26426;]
 
[http://www.bc-printer.com http://www.bc-printer.com]
 
[http://www.wine-shop001.com &#37202;&#24215;]
 
[http://www.wine-shop001.com http://www.wine-shop001.com]
 
[http://www.computer888.com &#30005;&#33041;]
 
[http://www.computer888.com http://www.computer888.com]
 
[http://www.jewelry666.com &#29664;&#23453;]
 
[http://www.jewelry666.com http://www.jewelry666.com]
 
[http://www.furniture135.com &#23478;&#20855;]
 
[http://www.furniture135.com http://www.furniture135.com]
 
[http://www.cast-shadow.com &#25237;&#24433;&#24149;]
 
[http://www.cast-shadow.com http://www.cast-shadow.com]
 
[http://www.dress-cn.com &#26381;&#39280;]
 
[http://www.dress-cn.com http://www.dress-cn.com]
 
[http://www.websitespace-cn.com &#32593;&#31449;&#31354;&#38388;]
 
[http://www.websitespace-cn.com http://www.websitespace-cn.com]
 
[http://www.tire-cn.com &#36718;&#32974;]
 
[http://www.tire-cn.com http://www.tire-cn.com]
 
[http://www.shopping-cn.com http://www.shopping-cn.com]
 
[http://www.shopping-cn.com &#32593;&#19978;&#36141;&#29289;]
 
[http://www.packing-machine.com &#21253;&#35013;&#26426;&#26800;]
 
[http://www.packing-machine.com http://www.packing-machine.com]
 
[http://www.barcode555.com &#26465;&#30721;]
 
[http://www.barcode555.com http://www.barcode555.com]
 

Latest revision as of 00:54, 11 June 2021

English (en) Bahasa Indonesia (id)

Warning-icon.png

Warning: As of 2021-May-21. the current compiler version is 3.2.2, so it is possible some of the details listed below may have changed.

The current FPC version under developement is 2.5.1. Compiler internals are documented at the evolving FPC internals page.

General

How to start

FPC internals

Language related articles

Coding style

Porting Free Pascal

Testing FPC

Enable new style smartlinking (FreeBSD, Linux)

  • in i_*.pas add tf_smartlink_sections to the flags field of the platform description record for your OS/CPU combo (in my case i_bsd.pas, the system_i386_freebsd_info record)
  • in ogelf.pas scroll down to nearly the bottom, and add af_smartlink_sections to the flags field of as_i386_elf32_info
  • run "(g)make all OPT='-Aas -k--gc-sections' at the toplevel to build using new smartlinking routines.

C++ linking

Note that FPC doesn't have negative VMT offsets due to GNU LD limitations.

The fundament of above C++ <-> OPas lies in COM interfaces: (quote from Rudy Velthuis)

"Well, all compilers must be able to create COM interfaces. Since in C++, these are simply pure abstract classes, and Delphi must have the same layout, for many reasons, they are all compatible. In fact, a pure abstract class pointer points to a structure of which the first entry is a VMT. This is also how interfaces are built"

Processor dependent

See also platform list.

Passing Pascal Types to C Routines

i386

PIC information

PowerPC

PPC Calling conventions

Internal Linker

Internal Linker

Packages

Packages