i_bsd.pas 51 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360
  1. {
  2. Copyright (c) 1998-2008 by Peter Vreman
  3. This unit implements support information structures for FreeBSD/NetBSD,
  4. OpenBSD and Darwin (Mac OS X)
  5. This program is free software; you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation; either version 2 of the License, or
  8. (at your option) any later version.
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. GNU General Public License for more details.
  13. You should have received a copy of the GNU General Public License
  14. along with this program; if not, write to the Free Software
  15. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  16. ****************************************************************************
  17. }
  18. { This unit implements support information structures for FreeBSD/NetBSD.
  19. OpenBSD is only added for i386 for now, though it exists for most
  20. other common CPU's too}
  21. unit i_bsd;
  22. {$i fpcdefs.inc}
  23. interface
  24. uses
  25. systems;
  26. const
  27. res_macho_info : tresinfo =
  28. (
  29. id : res_macho;
  30. resbin : 'fpcres';
  31. rescmd : '-o $OBJ -a $ARCH -s $SUBARCH -of mach-o $DBG';
  32. rcbin : 'windres';
  33. rccmd : '--include $INC -O res -D FPC -o $RES $RC';
  34. resourcefileclass : nil;
  35. resflags : [];
  36. );
  37. res_macosx_ext_info : tresinfo =
  38. (
  39. id : res_ext;
  40. resbin : 'fpcres';
  41. rescmd : '-o $OBJ -a $ENDIAN -of external $DBG';
  42. rcbin : 'windres';
  43. rccmd : '--include $INC -O res -D FPC -o $RES $RC';
  44. resourcefileclass : nil;
  45. resflags : [res_external_file,res_arch_in_file_name];
  46. );
  47. system_i386_freebsd_info : tsysteminfo =
  48. (
  49. system : system_i386_FreeBSD;
  50. name : 'FreeBSD/ELF for i386';
  51. shortname : 'FreeBSD';
  52. flags : [tf_pic_uses_got,tf_files_case_sensitive,
  53. {$ifdef tls_threadvars}
  54. tf_section_threadvars,
  55. {$endif tls_threadvars}
  56. tf_needs_symbol_type,tf_needs_symbol_size
  57. ,tf_smartlink_sections,tf_has_winlike_resources
  58. ,tf_supports_hidden_symbols];
  59. cpu : cpu_i386;
  60. unit_env : 'BSDUNITS';
  61. extradefines : 'UNIX;BSD;HASUNIX';
  62. exeext : '';
  63. defext : '.def';
  64. scriptext : '.sh';
  65. smartext : '.sl';
  66. unitext : '.ppu';
  67. unitlibext : '.ppl';
  68. asmext : '.s';
  69. objext : '.o';
  70. resext : '.res';
  71. resobjext : '.or';
  72. sharedlibext : '.so';
  73. staticlibext : '.a';
  74. staticlibprefix : 'libp';
  75. sharedlibprefix : 'lib';
  76. sharedClibext : '.so';
  77. staticClibext : '.a';
  78. staticClibprefix : 'lib';
  79. sharedClibprefix : 'lib';
  80. importlibprefix : 'libimp';
  81. importlibext : '.a';
  82. Cprefix : '';
  83. newline : #10;
  84. dirsep : '/';
  85. assem : as_i386_elf32;
  86. assemextern : as_gas;
  87. link : ld_none;
  88. linkextern : ld_bsd;
  89. ar : ar_gnu_ar;
  90. res : res_elf;
  91. dbg : dbg_stabs;
  92. script : script_unix;
  93. endian : endian_little;
  94. alignment :
  95. (
  96. procalign : 4;
  97. loopalign : 4;
  98. jumpalign : 0;
  99. jumpalignskipmax : 0;
  100. coalescealign : 0;
  101. coalescealignskipmax: 0;
  102. constalignmin : 0;
  103. constalignmax : 4;
  104. varalignmin : 0;
  105. varalignmax : 4;
  106. localalignmin : 0;
  107. localalignmax : 4;
  108. recordalignmin : 0;
  109. recordalignmax : 2;
  110. maxCrecordalign : 4
  111. );
  112. first_parm_offset : 8;
  113. stacksize : 262144;
  114. stackalign : 4;
  115. abi : abi_default;
  116. { note: default LLVM stack alignment is 16 bytes for this target }
  117. llvmdatalayout : 'e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S32';
  118. );
  119. system_x86_64_freebsd_info : tsysteminfo =
  120. (
  121. system : system_x86_64_freebsd;
  122. name : 'FreeBSD for x86-64';
  123. shortname : 'FreeBSD';
  124. flags : [tf_needs_symbol_size,tf_needs_dwarf_cfi,tf_library_needs_pic,tf_needs_symbol_type,
  125. tf_files_case_sensitive,
  126. tf_dwarf_only_local_labels,
  127. {tf_pic_uses_got,}tf_smartlink_sections,tf_has_winlike_resources,tf_supports_hidden_symbols];
  128. cpu : cpu_x86_64;
  129. unit_env : 'BSDUNITS';
  130. extradefines : 'UNIX;HASUNIX;BSD';
  131. exeext : '';
  132. defext : '.def';
  133. scriptext : '.sh';
  134. smartext : '.sl';
  135. unitext : '.ppu';
  136. unitlibext : '.ppl';
  137. asmext : '.s';
  138. objext : '.o';
  139. resext : '.res';
  140. resobjext : '.or';
  141. sharedlibext : '.so';
  142. staticlibext : '.a';
  143. staticlibprefix : 'libp';
  144. sharedlibprefix : 'lib';
  145. sharedClibext : '.so';
  146. staticClibext : '.a';
  147. staticClibprefix : 'lib';
  148. sharedClibprefix : 'lib';
  149. importlibprefix : 'libimp';
  150. importlibext : '.a';
  151. Cprefix : '';
  152. newline : #10;
  153. dirsep : '/';
  154. assem : as_x86_64_elf64;
  155. assemextern : as_gas;
  156. link : ld_none;
  157. linkextern : ld_bsd;
  158. ar : ar_gnu_ar;
  159. res : res_elf;
  160. dbg : dbg_dwarf2; //dbg_stabs;
  161. script : script_unix;
  162. endian : endian_little;
  163. alignment :
  164. (
  165. procalign : 8;
  166. loopalign : 4;
  167. jumpalign : 0;
  168. jumpalignskipmax : 0;
  169. coalescealign : 0;
  170. coalescealignskipmax: 0;
  171. constalignmin : 0;
  172. constalignmax : 16;
  173. varalignmin : 0;
  174. varalignmax : 16;
  175. localalignmin : 4;
  176. localalignmax : 16;
  177. recordalignmin : 0;
  178. recordalignmax : 16;
  179. maxCrecordalign : 16
  180. );
  181. first_parm_offset : 16;
  182. stacksize : 256*1024;
  183. stackalign : 16;
  184. abi : abi_default;
  185. llvmdatalayout : 'e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128';
  186. );
  187. system_x86_64_dragonfly_info : tsysteminfo =
  188. (
  189. system : system_x86_64_dragonfly;
  190. name : 'DragonFly for x86-64';
  191. shortname : 'DragonFly';
  192. flags : [tf_needs_symbol_size,tf_needs_dwarf_cfi,tf_library_needs_pic,tf_needs_symbol_type,
  193. tf_files_case_sensitive,
  194. tf_dwarf_only_local_labels,
  195. {tf_pic_uses_got,}tf_smartlink_sections,tf_has_winlike_resources,tf_supports_hidden_symbols];
  196. cpu : cpu_x86_64;
  197. unit_env : 'BSDUNITS';
  198. extradefines : 'UNIX;HASUNIX;BSD';
  199. exeext : '';
  200. defext : '.def';
  201. scriptext : '.sh';
  202. smartext : '.sl';
  203. unitext : '.ppu';
  204. unitlibext : '.ppl';
  205. asmext : '.s';
  206. objext : '.o';
  207. resext : '.res';
  208. resobjext : '.or';
  209. sharedlibext : '.so';
  210. staticlibext : '.a';
  211. staticlibprefix : 'libp';
  212. sharedlibprefix : 'lib';
  213. sharedClibext : '.so';
  214. staticClibext : '.a';
  215. staticClibprefix : 'lib';
  216. sharedClibprefix : 'lib';
  217. importlibprefix : 'libimp';
  218. importlibext : '.a';
  219. Cprefix : '';
  220. newline : #10;
  221. dirsep : '/';
  222. assem : as_x86_64_elf64;
  223. assemextern : as_gas;
  224. link : ld_none;
  225. linkextern : ld_bsd;
  226. ar : ar_gnu_ar;
  227. res : res_elf;
  228. dbg : dbg_dwarf2; //dbg_stabs;
  229. script : script_unix;
  230. endian : endian_little;
  231. alignment :
  232. (
  233. procalign : 8;
  234. loopalign : 4;
  235. jumpalign : 0;
  236. jumpalignskipmax : 0;
  237. coalescealign : 0;
  238. coalescealignskipmax: 0;
  239. constalignmin : 0;
  240. constalignmax : 16;
  241. varalignmin : 0;
  242. varalignmax : 16;
  243. localalignmin : 4;
  244. localalignmax : 16;
  245. recordalignmin : 0;
  246. recordalignmax : 16;
  247. maxCrecordalign : 16
  248. );
  249. first_parm_offset : 16;
  250. stacksize : 256*1024;
  251. stackalign : 16;
  252. abi : abi_default;
  253. llvmdatalayout : 'e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128';
  254. );
  255. system_i386_netbsd_info : tsysteminfo =
  256. (
  257. system : system_i386_NetBSD;
  258. name : 'NetBSD for i386';
  259. shortname : 'NetBSD';
  260. flags : [tf_pic_uses_got,tf_under_development,tf_files_case_sensitive,tf_smartlink_library,tf_has_winlike_resources,
  261. tf_supports_hidden_symbols];
  262. cpu : cpu_i386;
  263. unit_env : 'BSDUNITS';
  264. extradefines : 'UNIX;BSD;HASUNIX';
  265. exeext : '';
  266. defext : '.def';
  267. scriptext : '.sh';
  268. smartext : '.sl';
  269. unitext : '.ppu';
  270. unitlibext : '.ppl';
  271. asmext : '.s';
  272. objext : '.o';
  273. resext : '.res';
  274. resobjext : '.or';
  275. sharedlibext : '.so';
  276. staticlibext : '.a';
  277. staticlibprefix : 'libp';
  278. sharedlibprefix : 'lib';
  279. sharedClibext : '.so';
  280. staticClibext : '.a';
  281. staticClibprefix : 'lib';
  282. sharedClibprefix : 'lib';
  283. importlibprefix : 'libimp';
  284. importlibext : '.a';
  285. Cprefix : '';
  286. newline : #10;
  287. dirsep : '/';
  288. assem : as_i386_elf32;
  289. assemextern : as_gas;
  290. link : ld_none;
  291. linkextern : ld_bsd;
  292. ar : ar_gnu_ar;
  293. res : res_elf;
  294. dbg : dbg_stabs;
  295. script : script_unix;
  296. endian : endian_little;
  297. alignment :
  298. (
  299. procalign : 16;
  300. loopalign : 4;
  301. jumpalign : 0;
  302. jumpalignskipmax : 0;
  303. coalescealign : 0;
  304. coalescealignskipmax: 0;
  305. constalignmin : 0;
  306. constalignmax : 16;
  307. varalignmin : 0;
  308. varalignmax : 16;
  309. localalignmin : 4;
  310. localalignmax : 8;
  311. recordalignmin : 0;
  312. recordalignmax : 16;
  313. maxCrecordalign : 4
  314. );
  315. first_parm_offset : 8;
  316. stacksize : 262144;
  317. stackalign : 4;
  318. abi : abi_default;
  319. llvmdatalayout : 'e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S32';
  320. );
  321. system_i386_openbsd_info : tsysteminfo =
  322. (
  323. system : system_i386_OpenBSD;
  324. name : 'OpenBSD for i386';
  325. shortname : 'OpenBSD';
  326. flags : [tf_pic_default,tf_pic_uses_got,tf_under_development,tf_files_case_sensitive,tf_smartlink_sections,tf_has_winlike_resources,
  327. tf_supports_hidden_symbols];
  328. cpu : cpu_i386;
  329. unit_env : 'BSDUNITS';
  330. extradefines : 'UNIX;BSD;HASUNIX';
  331. exeext : '';
  332. defext : '.def';
  333. scriptext : '.sh';
  334. smartext : '.sl';
  335. unitext : '.ppu';
  336. unitlibext : '.ppl';
  337. asmext : '.s';
  338. objext : '.o';
  339. resext : '.res';
  340. resobjext : '.or';
  341. sharedlibext : '.so';
  342. staticlibext : '.a';
  343. staticlibprefix : 'libp';
  344. sharedlibprefix : 'lib';
  345. sharedClibext : '.so';
  346. staticClibext : '.a';
  347. staticClibprefix : 'lib';
  348. sharedClibprefix : 'lib';
  349. importlibprefix : 'libimp';
  350. importlibext : '.a';
  351. Cprefix : '';
  352. newline : #10;
  353. dirsep : '/';
  354. assem : as_gas;
  355. assemextern : as_gas;
  356. link : ld_none;
  357. linkextern : ld_bsd;
  358. ar : ar_gnu_ar;
  359. res : res_elf;
  360. dbg : dbg_stabs;
  361. script : script_unix;
  362. endian : endian_little;
  363. alignment :
  364. (
  365. procalign : 16;
  366. loopalign : 4;
  367. jumpalign : 0;
  368. jumpalignskipmax : 0;
  369. coalescealign : 0;
  370. coalescealignskipmax: 0;
  371. constalignmin : 0;
  372. constalignmax : 16;
  373. varalignmin : 0;
  374. varalignmax : 16;
  375. localalignmin : 4;
  376. localalignmax : 8;
  377. recordalignmin : 0;
  378. recordalignmax : 16;
  379. maxCrecordalign : 4
  380. );
  381. first_parm_offset : 8;
  382. stacksize : 262144;
  383. stackalign : 4;
  384. abi : abi_default;
  385. { note: default LLVM stack alignment is 16 bytes for this target }
  386. llvmdatalayout : 'e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S32';
  387. );
  388. system_x86_64_openbsd_info : tsysteminfo =
  389. (
  390. system : system_x86_64_openbsd;
  391. name : 'OpenBSD for x86-64';
  392. shortname : 'OpenBSD';
  393. flags : [tf_needs_symbol_size,tf_needs_dwarf_cfi,tf_library_needs_pic,tf_needs_symbol_type,
  394. tf_files_case_sensitive, tf_under_development,
  395. tf_dwarf_only_local_labels, tf_pic_default,
  396. { tf_pic_uses_got,}tf_smartlink_sections,tf_has_winlike_resources,tf_supports_hidden_symbols];
  397. cpu : cpu_x86_64;
  398. unit_env : 'BSDUNITS';
  399. extradefines : 'UNIX;HASUNIX;BSD';
  400. exeext : '';
  401. defext : '.def';
  402. scriptext : '.sh';
  403. smartext : '.sl';
  404. unitext : '.ppu';
  405. unitlibext : '.ppl';
  406. asmext : '.s';
  407. objext : '.o';
  408. resext : '.res';
  409. resobjext : '.or';
  410. sharedlibext : '.so';
  411. staticlibext : '.a';
  412. staticlibprefix : 'libp';
  413. sharedlibprefix : 'lib';
  414. sharedClibext : '.so';
  415. staticClibext : '.a';
  416. staticClibprefix : 'lib';
  417. sharedClibprefix : 'lib';
  418. importlibprefix : 'libimp';
  419. importlibext : '.a';
  420. Cprefix : '';
  421. newline : #10;
  422. dirsep : '/';
  423. assem : as_x86_64_elf64;
  424. assemextern : as_gas;
  425. link : ld_none;
  426. linkextern : ld_bsd;
  427. ar : ar_gnu_ar;
  428. res : res_elf;
  429. dbg : dbg_dwarf2; //dbg_stabs;
  430. script : script_unix;
  431. endian : endian_little;
  432. alignment :
  433. (
  434. procalign : 8;
  435. loopalign : 4;
  436. jumpalign : 0;
  437. jumpalignskipmax : 0;
  438. coalescealign : 0;
  439. coalescealignskipmax: 0;
  440. constalignmin : 0;
  441. constalignmax : 16;
  442. varalignmin : 0;
  443. varalignmax : 16;
  444. localalignmin : 4;
  445. localalignmax : 16;
  446. recordalignmin : 0;
  447. recordalignmax : 16;
  448. maxCrecordalign : 16
  449. );
  450. first_parm_offset : 16;
  451. stacksize : 256*1024;
  452. stackalign : 16;
  453. abi : abi_default;
  454. llvmdatalayout : 'e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128';
  455. );
  456. system_m68k_netbsd_info : tsysteminfo =
  457. (
  458. system : system_m68k_NetBSD;
  459. name : 'NetBSD for m68k';
  460. shortname : 'NetBSD';
  461. flags : [tf_under_development,tf_needs_symbol_size,tf_needs_symbol_type,tf_requires_proper_alignment,
  462. tf_files_case_sensitive,tf_smartlink_sections,tf_has_winlike_resources,tf_supports_hidden_symbols];
  463. cpu : cpu_m68k;
  464. unit_env : 'BSDUNITS';
  465. extradefines : 'UNIX;BSD;HASUNIX';
  466. exeext : '';
  467. defext : '.def';
  468. scriptext : '.sh';
  469. smartext : '.sl';
  470. unitext : '.ppu';
  471. unitlibext : '.ppl';
  472. asmext : '.s';
  473. objext : '.o';
  474. resext : '.res';
  475. resobjext : '.or';
  476. sharedlibext : '.so';
  477. staticlibext : '.a';
  478. staticlibprefix : 'libp';
  479. sharedlibprefix : 'lib';
  480. sharedClibext : '.so';
  481. staticClibext : '.a';
  482. staticClibprefix : 'lib';
  483. sharedClibprefix : 'lib';
  484. importlibprefix : 'libimp';
  485. importlibext : '.a';
  486. Cprefix : '';
  487. newline : #10;
  488. dirsep : '/';
  489. assem : as_gas;
  490. assemextern : as_gas;
  491. link : ld_none;
  492. linkextern : ld_bsd;
  493. ar : ar_gnu_ar;
  494. res : res_elf;
  495. dbg : dbg_stabs;
  496. script : script_unix;
  497. endian : endian_big;
  498. alignment :
  499. (
  500. procalign : 4;
  501. loopalign : 4;
  502. jumpalign : 0;
  503. jumpalignskipmax : 0;
  504. coalescealign : 0;
  505. coalescealignskipmax: 0;
  506. constalignmin : 0;
  507. constalignmax : 1;
  508. varalignmin : 0;
  509. varalignmax : 1;
  510. localalignmin : 0;
  511. localalignmax : 1;
  512. recordalignmin : 0;
  513. recordalignmax : 4;
  514. maxCrecordalign : 8
  515. );
  516. first_parm_offset : 8;
  517. stacksize : 262144;
  518. stackalign : 4;
  519. abi : abi_default;
  520. llvmdatalayout : 'todo';
  521. );
  522. system_powerpc_netbsd_info : tsysteminfo =
  523. (
  524. system : system_powerpc_netbsd;
  525. name : 'NetBSD for PowerPC';
  526. shortname : 'NetBSD';
  527. flags : [tf_under_development,tf_files_case_sensitive,tf_smartlink_library,tf_has_winlike_resources,tf_supports_hidden_symbols];
  528. cpu : cpu_powerpc;
  529. unit_env : '';
  530. extradefines : 'UNIX;BSD;HASUNIX';
  531. exeext : '';
  532. defext : '.def';
  533. scriptext : '.sh';
  534. smartext : '.sl';
  535. unitext : '.ppu';
  536. unitlibext : '.ppl';
  537. asmext : '.s';
  538. objext : '.o';
  539. resext : '.res';
  540. resobjext : '.or';
  541. sharedlibext : '.so';
  542. staticlibext : '.s';
  543. staticlibprefix : 'libp';
  544. sharedlibprefix : 'lib';
  545. sharedClibext : '.so';
  546. staticClibext : '.a';
  547. staticClibprefix : 'lib';
  548. sharedClibprefix : 'lib';
  549. importlibprefix : 'libimp';
  550. importlibext : '.a';
  551. Cprefix : '';
  552. newline : #10;
  553. dirsep : '/';
  554. assem : as_gas;
  555. assemextern : as_gas;
  556. link : ld_none;
  557. linkextern : ld_bsd;
  558. ar : ar_gnu_ar;
  559. res : res_elf;
  560. dbg : dbg_stabs;
  561. script : script_unix;
  562. endian : endian_big;
  563. alignment :
  564. (
  565. procalign : 4;
  566. loopalign : 4;
  567. jumpalign : 0;
  568. jumpalignskipmax : 0;
  569. coalescealign : 0;
  570. coalescealignskipmax: 0;
  571. constalignmin : 0;
  572. constalignmax : 4;
  573. varalignmin : 0;
  574. varalignmax : 4;
  575. localalignmin : 0;
  576. localalignmax : 4;
  577. recordalignmin : 0;
  578. recordalignmax : 2;
  579. maxCrecordalign : 4 // should be 8 probably
  580. );
  581. first_parm_offset : 8;
  582. stacksize : 32*1024*1024;
  583. stackalign : 16;
  584. { abi_powerpc_sysv doesn't work yet }
  585. abi : abi_powerpc_aix;
  586. llvmdatalayout : 'E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v128:128:128-n32';
  587. );
  588. system_x86_64_netbsd_info : tsysteminfo =
  589. (
  590. system : system_x86_64_netbsd;
  591. name : 'NetBSD for x86-64';
  592. shortname : 'NetBSD';
  593. flags : [tf_needs_symbol_size,tf_needs_dwarf_cfi,tf_library_needs_pic,tf_needs_symbol_type,
  594. tf_files_case_sensitive, tf_under_development,
  595. tf_dwarf_only_local_labels,
  596. { tf_pic_uses_got,}tf_smartlink_sections,tf_has_winlike_resources,tf_supports_hidden_symbols];
  597. cpu : cpu_x86_64;
  598. unit_env : 'BSDUNITS';
  599. extradefines : 'UNIX;HASUNIX;BSD';
  600. exeext : '';
  601. defext : '.def';
  602. scriptext : '.sh';
  603. smartext : '.sl';
  604. unitext : '.ppu';
  605. unitlibext : '.ppl';
  606. asmext : '.s';
  607. objext : '.o';
  608. resext : '.res';
  609. resobjext : '.or';
  610. sharedlibext : '.so';
  611. staticlibext : '.a';
  612. staticlibprefix : 'libp';
  613. sharedlibprefix : 'lib';
  614. sharedClibext : '.so';
  615. staticClibext : '.a';
  616. staticClibprefix : 'lib';
  617. sharedClibprefix : 'lib';
  618. importlibprefix : 'libimp';
  619. importlibext : '.a';
  620. Cprefix : '';
  621. newline : #10;
  622. dirsep : '/';
  623. assem : as_x86_64_elf64;
  624. assemextern : as_gas;
  625. link : ld_none;
  626. linkextern : ld_bsd;
  627. ar : ar_gnu_ar;
  628. res : res_elf;
  629. dbg : dbg_dwarf2; //dbg_stabs;
  630. script : script_unix;
  631. endian : endian_little;
  632. alignment :
  633. (
  634. procalign : 8;
  635. loopalign : 4;
  636. jumpalign : 0;
  637. jumpalignskipmax : 0;
  638. coalescealign : 0;
  639. coalescealignskipmax: 0;
  640. constalignmin : 0;
  641. constalignmax : 16;
  642. varalignmin : 0;
  643. varalignmax : 16;
  644. localalignmin : 4;
  645. localalignmax : 16;
  646. recordalignmin : 0;
  647. recordalignmax : 16;
  648. maxCrecordalign : 16
  649. );
  650. first_parm_offset : 16;
  651. stacksize : 256*1024;
  652. stackalign : 16;
  653. abi : abi_default;
  654. llvmdatalayout : 'e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128';
  655. );
  656. system_arm_netbsd_info : tsysteminfo =
  657. (
  658. system : system_arm_netbsd;
  659. name : 'NetBSD for ARMHF';
  660. shortname : 'NetBSD';
  661. flags : [tf_under_development,tf_requires_proper_alignment,tf_files_case_sensitive,tf_smartlink_sections,tf_has_winlike_resources,
  662. tf_supports_hidden_symbols];
  663. cpu : cpu_arm;
  664. unit_env : '';
  665. extradefines : 'UNIX;BSD;HASUNIX';
  666. exeext : '';
  667. defext : '.def';
  668. scriptext : '.sh';
  669. smartext : '.sl';
  670. unitext : '.ppu';
  671. unitlibext : '.ppl';
  672. asmext : '.s';
  673. objext : '.o';
  674. resext : '.res';
  675. resobjext : '.or';
  676. sharedlibext : '.so';
  677. staticlibext : '.s';
  678. staticlibprefix : 'libp';
  679. sharedlibprefix : 'lib';
  680. sharedClibext : '.so';
  681. staticClibext : '.a';
  682. staticClibprefix : 'lib';
  683. sharedClibprefix : 'lib';
  684. importlibprefix : 'libimp';
  685. importlibext : '.a';
  686. Cprefix : '';
  687. newline : #10;
  688. dirsep : '/';
  689. assem : as_gas; {as_arm_elf32;}
  690. assemextern : as_gas;
  691. link : ld_none;
  692. linkextern : ld_bsd;
  693. ar : ar_gnu_ar;
  694. res : res_elf;
  695. dbg : dbg_dwarf2;
  696. script : script_unix;
  697. endian : endian_big;
  698. alignment :
  699. (
  700. procalign : 4;
  701. loopalign : 4;
  702. jumpalign : 0;
  703. jumpalignskipmax : 0;
  704. coalescealign : 0;
  705. coalescealignskipmax: 0;
  706. constalignmin : 0;
  707. constalignmax : 4;
  708. varalignmin : 0;
  709. varalignmax : 4;
  710. localalignmin : 0;
  711. localalignmax : 4;
  712. recordalignmin : 0;
  713. recordalignmax : 2;
  714. maxCrecordalign : 4 // should be 8 probably
  715. );
  716. first_parm_offset : 8;
  717. stacksize : 32*1024*1024;
  718. stackalign : 16;
  719. abi : abi_eabihf;
  720. llvmdatalayout : 'todo';
  721. );
  722. system_powerpc_darwin_info : tsysteminfo =
  723. (
  724. system : system_powerpc_darwin;
  725. name : 'Darwin for PowerPC';
  726. shortname : 'Darwin';
  727. flags : [tf_p_ext_support,tf_files_case_sensitive,tf_smartlink_sections,tf_dwarf_relative_addresses,tf_dwarf_only_local_labels,tf_pic_default,tf_has_winlike_resources,
  728. tf_supports_hidden_symbols];
  729. cpu : cpu_powerpc;
  730. unit_env : 'BSDUNITS';
  731. extradefines : 'UNIX;BSD;HASUNIX';
  732. exeext : '';
  733. defext : '.def';
  734. scriptext : '.sh';
  735. smartext : '.sl';
  736. unitext : '.ppu';
  737. unitlibext : '.ppl';
  738. asmext : '.s';
  739. objext : '.o';
  740. resext : '.res';
  741. resobjext : '.or';
  742. sharedlibext : '.dylib';
  743. staticlibext : '.a';
  744. staticlibprefix : 'libp';
  745. sharedlibprefix : 'lib';
  746. sharedClibext : '.dylib';
  747. staticClibext : '.a';
  748. staticClibprefix : 'lib';
  749. sharedClibprefix : 'lib';
  750. importlibprefix : 'libimp';
  751. importlibext : '.a';
  752. Cprefix : '_';
  753. newline : #10;
  754. dirsep : '/';
  755. assem : as_darwin;
  756. assemextern : as_darwin;
  757. link : ld_none;
  758. linkextern : ld_bsd;
  759. ar : ar_gnu_ar;
  760. res : res_macho;
  761. dbg : dbg_stabs;
  762. script : script_unix;
  763. endian : endian_big;
  764. alignment :
  765. (
  766. procalign : 16;
  767. loopalign : 4;
  768. jumpalign : 0;
  769. jumpalignskipmax : 0;
  770. coalescealign : 0;
  771. coalescealignskipmax: 0;
  772. constalignmin : 0;
  773. constalignmax : 4;
  774. varalignmin : 0;
  775. varalignmax : 4;
  776. localalignmin : 0;
  777. localalignmax : 4;
  778. recordalignmin : 0;
  779. recordalignmax : 4;
  780. maxCrecordalign : 4
  781. );
  782. first_parm_offset : 24;
  783. stacksize : 262144;
  784. stackalign : 16;
  785. abi : abi_powerpc_darwin;
  786. llvmdatalayout : 'E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v128:128:128-n32';
  787. );
  788. system_i386_darwin_info : tsysteminfo =
  789. (
  790. system : system_i386_darwin;
  791. name : 'Darwin for i386';
  792. shortname : 'Darwin';
  793. flags : [tf_p_ext_support,tf_files_case_sensitive,tf_smartlink_sections,tf_dwarf_relative_addresses,tf_dwarf_only_local_labels,tf_pic_uses_got,
  794. tf_pic_default,tf_has_winlike_resources,tf_use_hlcfi,tf_supports_symbolorderfile,tf_supports_hidden_symbols];
  795. cpu : cpu_i386;
  796. unit_env : 'BSDUNITS';
  797. extradefines : 'UNIX;BSD;HASUNIX';
  798. exeext : '';
  799. defext : '.def';
  800. scriptext : '.sh';
  801. smartext : '.sl';
  802. unitext : '.ppu';
  803. unitlibext : '.ppl';
  804. asmext : '.s';
  805. objext : '.o';
  806. resext : '.res';
  807. resobjext : '.or';
  808. sharedlibext : '.dylib';
  809. staticlibext : '.a';
  810. staticlibprefix : 'libp';
  811. sharedlibprefix : 'lib';
  812. sharedClibext : '.dylib';
  813. staticClibext : '.a';
  814. staticClibprefix : 'lib';
  815. sharedClibprefix : 'lib';
  816. importlibprefix : 'libimp';
  817. importlibext : '.a';
  818. Cprefix : '_';
  819. newline : #10;
  820. dirsep : '/';
  821. assem : as_clang;
  822. assemextern : as_clang;
  823. link : ld_none;
  824. linkextern : ld_bsd;
  825. ar : ar_gnu_ar;
  826. res : res_macho;
  827. dbg : dbg_dwarf2;
  828. script : script_unix;
  829. endian : endian_little;
  830. alignment :
  831. (
  832. procalign : 16;
  833. loopalign : 8;
  834. jumpalign : 16;
  835. jumpalignskipmax : 10;
  836. coalescealign : 0;
  837. coalescealignskipmax: 0;
  838. constalignmin : 0;
  839. constalignmax : 16;
  840. varalignmin : 0;
  841. varalignmax : 16;
  842. localalignmin : 0;
  843. localalignmax : 8;
  844. recordalignmin : 0;
  845. recordalignmax : 16;
  846. maxCrecordalign : 16
  847. );
  848. first_parm_offset : 8;
  849. stacksize : 262144;
  850. stackalign : 16;
  851. abi : abi_default;
  852. llvmdatalayout : 'e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128-n8:16:32-S128';
  853. );
  854. system_i386_iphonesim_info : tsysteminfo =
  855. (
  856. system : system_i386_iphonesim;
  857. name : 'Darwin/iPhoneSim for i386';
  858. shortname : 'iPhoneSim';
  859. flags : [tf_p_ext_support,tf_files_case_sensitive,tf_smartlink_sections,tf_dwarf_relative_addresses,tf_dwarf_only_local_labels,
  860. tf_pic_uses_got,tf_pic_default,tf_has_winlike_resources,tf_use_hlcfi,tf_supports_hidden_symbols];
  861. cpu : cpu_i386;
  862. unit_env : 'BSDUNITS';
  863. extradefines : 'UNIX;BSD;HASUNIX;DARWIN'; // also define darwin for code compatibility
  864. exeext : '';
  865. defext : '.def';
  866. scriptext : '.sh';
  867. smartext : '.sl';
  868. unitext : '.ppu';
  869. unitlibext : '.ppl';
  870. asmext : '.s';
  871. objext : '.o';
  872. resext : '.res';
  873. resobjext : '.or';
  874. sharedlibext : '.dylib';
  875. staticlibext : '.a';
  876. staticlibprefix : 'libp';
  877. sharedlibprefix : 'lib';
  878. sharedClibext : '.dylib';
  879. staticClibext : '.a';
  880. staticClibprefix : 'lib';
  881. sharedClibprefix : 'lib';
  882. importlibprefix : 'libimp';
  883. importlibext : '.a';
  884. Cprefix : '_';
  885. newline : #10;
  886. dirsep : '/';
  887. assem : as_clang;
  888. assemextern : as_clang;
  889. link : ld_none;
  890. linkextern : ld_bsd;
  891. ar : ar_gnu_ar;
  892. res : res_macho;
  893. dbg : dbg_dwarf2;
  894. script : script_unix;
  895. endian : endian_little;
  896. alignment :
  897. (
  898. procalign : 16;
  899. loopalign : 8;
  900. jumpalign : 16;
  901. jumpalignskipmax : 10;
  902. coalescealign : 0;
  903. coalescealignskipmax: 0;
  904. constalignmin : 0;
  905. constalignmax : 16;
  906. varalignmin : 0;
  907. varalignmax : 16;
  908. localalignmin : 0;
  909. localalignmax : 16;
  910. recordalignmin : 0;
  911. recordalignmax : 16;
  912. maxCrecordalign : 16
  913. );
  914. first_parm_offset : 8;
  915. stacksize : 262144;
  916. stackalign : 16;
  917. abi : abi_default;
  918. llvmdatalayout : 'e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128-n8:16:32-S128';
  919. );
  920. system_powerpc64_darwin_info : tsysteminfo =
  921. (
  922. system : system_powerpc64_darwin;
  923. name : 'Darwin for PowerPC64';
  924. shortname : 'Darwin';
  925. flags : [tf_p_ext_support,tf_files_case_sensitive,tf_smartlink_sections,tf_dwarf_relative_addresses,tf_dwarf_only_local_labels,
  926. tf_pic_default,tf_has_winlike_resources,tf_supports_symbolorderfile,tf_supports_hidden_symbols];
  927. cpu : cpu_powerpc64;
  928. unit_env : 'BSDUNITS';
  929. extradefines : 'UNIX;BSD;HASUNIX';
  930. exeext : '';
  931. defext : '.def';
  932. scriptext : '.sh';
  933. smartext : '.sl';
  934. unitext : '.ppu';
  935. unitlibext : '.ppl';
  936. asmext : '.s';
  937. objext : '.o';
  938. resext : '.res';
  939. resobjext : '.or';
  940. sharedlibext : '.dylib';
  941. staticlibext : '.a';
  942. staticlibprefix : 'libp';
  943. sharedlibprefix : 'lib';
  944. sharedClibext : '.dylib';
  945. staticClibext : '.a';
  946. staticClibprefix : 'lib';
  947. sharedClibprefix : 'lib';
  948. importlibprefix : 'libimp';
  949. importlibext : '.a';
  950. Cprefix : '_';
  951. newline : #10;
  952. dirsep : '/';
  953. assem : as_darwin;
  954. assemextern : as_darwin;
  955. link : ld_none;
  956. linkextern : ld_bsd;
  957. ar : ar_gnu_ar;
  958. res : res_macho;
  959. dbg : dbg_dwarf2;
  960. script : script_unix;
  961. endian : endian_big;
  962. alignment :
  963. (
  964. procalign : 16;
  965. loopalign : 4;
  966. jumpalign : 0;
  967. jumpalignskipmax : 0;
  968. coalescealign : 0;
  969. coalescealignskipmax: 0;
  970. constalignmin : 4;
  971. constalignmax : 8;
  972. varalignmin : 4;
  973. varalignmax : 8;
  974. localalignmin : 4;
  975. localalignmax : 8;
  976. recordalignmin : 0;
  977. recordalignmax : 8;
  978. maxCrecordalign : 4
  979. );
  980. first_parm_offset : 48;
  981. stacksize : 262144;
  982. stackalign : 16;
  983. abi : abi_powerpc_darwin;
  984. llvmdatalayout : 'E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v128:128:128-n32:64';
  985. );
  986. system_x86_64_darwin_info : tsysteminfo =
  987. (
  988. system : system_x86_64_darwin;
  989. name : 'Darwin for x86_64';
  990. shortname : 'Darwin';
  991. flags : [tf_p_ext_support,tf_files_case_sensitive,tf_smartlink_sections,tf_dwarf_relative_addresses,tf_dwarf_only_local_labels,tf_pic_default,tf_has_winlike_resources,tf_use_hlcfi
  992. {$ifdef llvm},tf_use_psabieh{$endif},tf_supports_symbolorderfile,tf_supports_hidden_symbols];
  993. cpu : cpu_x86_64;
  994. unit_env : 'BSDUNITS';
  995. extradefines : 'UNIX;BSD;HASUNIX';
  996. exeext : '';
  997. defext : '.def';
  998. scriptext : '.sh';
  999. smartext : '.sl';
  1000. unitext : '.ppu';
  1001. unitlibext : '.ppl';
  1002. asmext : '.s';
  1003. objext : '.o';
  1004. resext : '.res';
  1005. resobjext : '.or';
  1006. sharedlibext : '.dylib';
  1007. staticlibext : '.a';
  1008. staticlibprefix : 'libp';
  1009. sharedlibprefix : 'lib';
  1010. sharedClibext : '.dylib';
  1011. staticClibext : '.a';
  1012. staticClibprefix : 'lib';
  1013. sharedClibprefix : 'lib';
  1014. importlibprefix : 'libimp';
  1015. importlibext : '.a';
  1016. Cprefix : '_';
  1017. newline : #10;
  1018. dirsep : '/';
  1019. assem : as_clang;
  1020. assemextern : as_clang;
  1021. link : ld_none;
  1022. linkextern : ld_bsd;
  1023. ar : ar_gnu_ar;
  1024. res : res_macho;
  1025. dbg : dbg_dwarf2;
  1026. script : script_unix;
  1027. endian : endian_little;
  1028. alignment :
  1029. (
  1030. procalign : 16;
  1031. loopalign : 8;
  1032. jumpalign : 16;
  1033. jumpalignskipmax : 10;
  1034. coalescealign : 0;
  1035. coalescealignskipmax: 0;
  1036. constalignmin : 0;
  1037. constalignmax : 16;
  1038. varalignmin : 0;
  1039. varalignmax : 16;
  1040. localalignmin : 4;
  1041. localalignmax : 16;
  1042. recordalignmin : 0;
  1043. recordalignmax : 16;
  1044. maxCrecordalign : 16
  1045. );
  1046. first_parm_offset : 16;
  1047. stacksize : 262144;
  1048. stackalign : 16;
  1049. abi : abi_default;
  1050. llvmdatalayout : 'e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128';
  1051. );
  1052. system_x86_64_iphonesim_info : tsysteminfo =
  1053. (
  1054. system : system_x86_64_iphonesim;
  1055. name : 'Darwin/iPhoneSim for x86_64';
  1056. shortname : 'iPhoneSim';
  1057. flags : [tf_p_ext_support,tf_files_case_sensitive,tf_smartlink_sections,tf_dwarf_relative_addresses,tf_dwarf_only_local_labels,
  1058. tf_pic_default,tf_has_winlike_resources,tf_use_hlcfi,tf_supports_hidden_symbols];
  1059. cpu : cpu_x86_64;
  1060. unit_env : 'BSDUNITS';
  1061. extradefines : 'UNIX;BSD;HASUNIX;DARWIN'; // also define darwin for code compatibility
  1062. exeext : '';
  1063. defext : '.def';
  1064. scriptext : '.sh';
  1065. smartext : '.sl';
  1066. unitext : '.ppu';
  1067. unitlibext : '.ppl';
  1068. asmext : '.s';
  1069. objext : '.o';
  1070. resext : '.res';
  1071. resobjext : '.or';
  1072. sharedlibext : '.dylib';
  1073. staticlibext : '.a';
  1074. staticlibprefix : 'libp';
  1075. sharedlibprefix : 'lib';
  1076. sharedClibext : '.dylib';
  1077. staticClibext : '.a';
  1078. staticClibprefix : 'lib';
  1079. sharedClibprefix : 'lib';
  1080. importlibprefix : 'libimp';
  1081. importlibext : '.a';
  1082. Cprefix : '_';
  1083. newline : #10;
  1084. dirsep : '/';
  1085. assem : as_clang;
  1086. assemextern : as_clang;
  1087. link : ld_none;
  1088. linkextern : ld_bsd;
  1089. ar : ar_gnu_ar;
  1090. res : res_macho;
  1091. dbg : dbg_dwarf2;
  1092. script : script_unix;
  1093. endian : endian_little;
  1094. alignment :
  1095. (
  1096. procalign : 16;
  1097. loopalign : 8;
  1098. jumpalign : 16;
  1099. jumpalignskipmax : 10;
  1100. coalescealign : 0;
  1101. coalescealignskipmax: 0;
  1102. constalignmin : 0;
  1103. constalignmax : 16;
  1104. varalignmin : 0;
  1105. varalignmax : 16;
  1106. localalignmin : 4;
  1107. localalignmax : 16;
  1108. recordalignmin : 0;
  1109. recordalignmax : 16;
  1110. maxCrecordalign : 16
  1111. );
  1112. first_parm_offset : 16;
  1113. stacksize : 262144;
  1114. stackalign : 16;
  1115. abi : abi_default;
  1116. llvmdatalayout : 'e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128';
  1117. );
  1118. system_arm_darwin_info : tsysteminfo =
  1119. (
  1120. system : system_arm_darwin;
  1121. name : 'Darwin for ARM';
  1122. shortname : 'Darwin';
  1123. flags : [tf_p_ext_support,tf_requires_proper_alignment,tf_files_case_sensitive,tf_smartlink_sections,tf_dwarf_relative_addresses,
  1124. tf_dwarf_only_local_labels,tf_has_winlike_resources,tf_pic_default,tf_supports_symbolorderfile,tf_supports_hidden_symbols];
  1125. cpu : cpu_arm;
  1126. unit_env : 'BSDUNITS';
  1127. extradefines : 'UNIX;BSD;HASUNIX;CPUARMEL';
  1128. exeext : '';
  1129. defext : '.def';
  1130. scriptext : '.sh';
  1131. smartext : '.sl';
  1132. unitext : '.ppu';
  1133. unitlibext : '.ppl';
  1134. asmext : '.s';
  1135. objext : '.o';
  1136. resext : '.res';
  1137. resobjext : '.or';
  1138. sharedlibext : '.dylib';
  1139. staticlibext : '.a';
  1140. staticlibprefix : 'libp';
  1141. sharedlibprefix : 'lib';
  1142. sharedClibext : '.dylib';
  1143. staticClibext : '.a';
  1144. staticClibprefix : 'lib';
  1145. sharedClibprefix : 'lib';
  1146. importlibprefix : 'libimp';
  1147. importlibext : '.a';
  1148. Cprefix : '_';
  1149. newline : #10;
  1150. dirsep : '/';
  1151. assem : as_clang;
  1152. assemextern : as_clang;
  1153. link : ld_none;
  1154. linkextern : ld_bsd;
  1155. ar : ar_gnu_ar;
  1156. res : res_macho;
  1157. dbg : dbg_dwarf2;
  1158. script : script_unix;
  1159. endian : endian_little;
  1160. alignment :
  1161. (
  1162. procalign : 16;
  1163. loopalign : 4;
  1164. jumpalign : 0;
  1165. jumpalignskipmax : 0;
  1166. coalescealign : 0;
  1167. coalescealignskipmax: 0;
  1168. constalignmin : 0;
  1169. constalignmax : 8;
  1170. varalignmin : 0;
  1171. varalignmax : 8;
  1172. localalignmin : 4;
  1173. localalignmax : 8;
  1174. recordalignmin : 0;
  1175. recordalignmax : 8;
  1176. maxCrecordalign : 8
  1177. );
  1178. first_parm_offset : 8;
  1179. stacksize : 262144;
  1180. stackalign : 4;
  1181. abi : abi_default;
  1182. { note: default LLVM stack alignment is 8 bytes for this target }
  1183. llvmdatalayout : 'e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:64:128-a0:0:64-n32-S32';
  1184. );
  1185. system_aarch64_darwin_info : tsysteminfo =
  1186. (
  1187. system : system_aarch64_darwin;
  1188. name : 'Darwin for AArch64';
  1189. shortname : 'Darwin';
  1190. flags : [tf_p_ext_support,tf_requires_proper_alignment,tf_files_case_sensitive,tf_smartlink_sections,tf_dwarf_relative_addresses,
  1191. tf_dwarf_only_local_labels,tf_pic_default,tf_has_winlike_resources,tf_supports_symbolorderfile,tf_supports_hidden_symbols];
  1192. cpu : cpu_aarch64;
  1193. unit_env : 'BSDUNITS';
  1194. extradefines : 'UNIX;BSD;HASUNIX';
  1195. exeext : '';
  1196. defext : '.def';
  1197. scriptext : '.sh';
  1198. smartext : '.sl';
  1199. unitext : '.ppu';
  1200. unitlibext : '.ppl';
  1201. asmext : '.s';
  1202. objext : '.o';
  1203. resext : '.res';
  1204. resobjext : '.or';
  1205. sharedlibext : '.dylib';
  1206. staticlibext : '.a';
  1207. staticlibprefix : 'libp';
  1208. sharedlibprefix : 'lib';
  1209. sharedClibext : '.dylib';
  1210. staticClibext : '.a';
  1211. staticClibprefix : 'lib';
  1212. sharedClibprefix : 'lib';
  1213. importlibprefix : 'libimp';
  1214. importlibext : '.a';
  1215. Cprefix : '_';
  1216. newline : #10;
  1217. dirsep : '/';
  1218. assem : as_clang;
  1219. assemextern : as_clang;
  1220. link : ld_none;
  1221. linkextern : ld_bsd;
  1222. ar : ar_gnu_ar;
  1223. res : res_macho;
  1224. dbg : dbg_dwarf2;
  1225. script : script_unix;
  1226. endian : endian_little;
  1227. alignment :
  1228. (
  1229. procalign : 16;
  1230. loopalign : 4;
  1231. jumpalign : 0;
  1232. jumpalignskipmax : 0;
  1233. coalescealign : 0;
  1234. coalescealignskipmax: 0;
  1235. constalignmin : 0;
  1236. constalignmax : 16;
  1237. varalignmin : 0;
  1238. varalignmax : 16;
  1239. localalignmin : 4;
  1240. localalignmax : 16;
  1241. recordalignmin : 0;
  1242. recordalignmax : 16;
  1243. maxCrecordalign : 16
  1244. );
  1245. first_parm_offset : 16;
  1246. stacksize : 8*1024*1024;
  1247. stackalign : 16;
  1248. abi : abi_aarch64_darwin;
  1249. llvmdatalayout : 'e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-n32:64-S128'
  1250. );
  1251. implementation
  1252. initialization
  1253. {$ifdef cpui386}
  1254. {$ifdef FreeBSD}
  1255. set_source_info(system_i386_FreeBSD_info);
  1256. {$endif}
  1257. {$ifdef NetBSD}
  1258. set_source_info(system_i386_NetBSD_info);
  1259. {$endif}
  1260. {$ifdef OpenBSD}
  1261. set_source_info(system_i386_OpenBSD_info);
  1262. {$endif}
  1263. {$ifdef Darwin}
  1264. set_source_info(system_i386_Darwin_info);
  1265. {$endif Darwin}
  1266. {$endif cpui386}
  1267. {$ifdef cpux86_64}
  1268. {$ifdef FreeBSD}
  1269. set_source_info(system_x86_64_FreeBSD_info);
  1270. {$endif}
  1271. {$ifdef DragonFly}
  1272. set_source_info(system_x86_64_DragonFly_info);
  1273. {$endif}
  1274. {$ifdef OpenBSD}
  1275. set_source_info(system_x86_64_OpenBSD_info);
  1276. {$endif}
  1277. {$ifdef NetBSD}
  1278. set_source_info(system_x86_64_NetBSD_info);
  1279. {$endif}
  1280. {$ifdef Darwin}
  1281. set_source_info(system_x86_64_darwin_info);
  1282. {$endif}
  1283. {$endif}
  1284. {$ifdef cpu68}
  1285. {$ifdef NetBSD}
  1286. set_source_info(system_m68k_NetBSD_info);
  1287. {$endif NetBSD}
  1288. {$endif cpu68}
  1289. {$ifdef cpupowerpc32}
  1290. {$ifdef Darwin}
  1291. set_source_info(system_powerpc_darwin_info);
  1292. {$endif Darwin}
  1293. {$ifdef NetBSD}
  1294. set_source_info(system_powerpc_netbsd_info);
  1295. {$endif}
  1296. {$endif cpupowerpc32}
  1297. {$ifdef cpupowerpc64}
  1298. {$ifdef Darwin}
  1299. set_source_info(system_powerpc64_darwin_info);
  1300. {$endif Darwin}
  1301. {$endif powerpc64}
  1302. {$ifdef cpuarm}
  1303. {$ifdef Darwin}
  1304. set_source_info(system_arm_darwin_info);
  1305. {$endif Darwin}
  1306. {$ifdef NetBSD}
  1307. set_source_info(system_arm_netbsd_info);
  1308. {$endif}
  1309. {$endif cpuarm}
  1310. {$ifdef cpuaarch64}
  1311. {$ifdef Darwin}
  1312. set_source_info(system_aarch64_darwin_info);
  1313. {$endif Darwin}
  1314. {$endif cpuaarch64}
  1315. end.