i_bsd.pas 48 KB

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