i_bsd.pas 50 KB

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