i_bsd.pas 45 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227
  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, rescmn;
  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_files_case_sensitive,tf_smartlink_library,tf_has_winlike_resources];
  441. cpu : cpu_m68k;
  442. unit_env : 'BSDUNITS';
  443. extradefines : 'UNIX;BSD;HASUNIX';
  444. exeext : '';
  445. defext : '.def';
  446. scriptext : '.sh';
  447. smartext : '.sl';
  448. unitext : '.ppu';
  449. unitlibext : '.ppl';
  450. asmext : '.s';
  451. objext : '.o';
  452. resext : '.res';
  453. resobjext : '.or';
  454. sharedlibext : '.so';
  455. staticlibext : '.a';
  456. staticlibprefix : 'libp';
  457. sharedlibprefix : 'lib';
  458. sharedClibext : '.so';
  459. staticClibext : '.a';
  460. staticClibprefix : 'lib';
  461. sharedClibprefix : 'lib';
  462. importlibprefix : 'libimp';
  463. importlibext : '.a';
  464. Cprefix : '';
  465. newline : #10;
  466. dirsep : '/';
  467. assem : as_gas;
  468. assemextern : as_gas;
  469. link : ld_none;
  470. linkextern : ld_bsd;
  471. ar : ar_gnu_ar;
  472. res : res_elf;
  473. dbg : dbg_stabs;
  474. script : script_unix;
  475. endian : endian_big;
  476. alignment :
  477. (
  478. procalign : 4;
  479. loopalign : 4;
  480. jumpalign : 0;
  481. constalignmin : 0;
  482. constalignmax : 1;
  483. varalignmin : 0;
  484. varalignmax : 1;
  485. localalignmin : 0;
  486. localalignmax : 1;
  487. recordalignmin : 0;
  488. recordalignmax : 2;
  489. maxCrecordalign : 4
  490. );
  491. first_parm_offset : 8;
  492. stacksize : 262144;
  493. stackalign : 4;
  494. abi : abi_default;
  495. llvmdatalayout : 'todo';
  496. );
  497. system_powerpc_netbsd_info : tsysteminfo =
  498. (
  499. system : system_powerpc_netbsd;
  500. name : 'NetBSD for PowerPC';
  501. shortname : 'NetBSD';
  502. flags : [tf_under_development,tf_files_case_sensitive,tf_smartlink_library,tf_has_winlike_resources];
  503. cpu : cpu_powerpc;
  504. unit_env : '';
  505. extradefines : 'UNIX;BSD;HASUNIX';
  506. exeext : '';
  507. defext : '.def';
  508. scriptext : '.sh';
  509. smartext : '.sl';
  510. unitext : '.ppu';
  511. unitlibext : '.ppl';
  512. asmext : '.s';
  513. objext : '.o';
  514. resext : '.res';
  515. resobjext : '.or';
  516. sharedlibext : '.so';
  517. staticlibext : '.s';
  518. staticlibprefix : 'libp';
  519. sharedlibprefix : 'lib';
  520. sharedClibext : '.so';
  521. staticClibext : '.a';
  522. staticClibprefix : 'lib';
  523. sharedClibprefix : 'lib';
  524. importlibprefix : 'libimp';
  525. importlibext : '.a';
  526. Cprefix : '';
  527. newline : #10;
  528. dirsep : '/';
  529. assem : as_gas;
  530. assemextern : as_gas;
  531. link : ld_none;
  532. linkextern : ld_bsd;
  533. ar : ar_gnu_ar;
  534. res : res_elf;
  535. dbg : dbg_stabs;
  536. script : script_unix;
  537. endian : endian_big;
  538. alignment :
  539. (
  540. procalign : 4;
  541. loopalign : 4;
  542. jumpalign : 0;
  543. constalignmin : 0;
  544. constalignmax : 4;
  545. varalignmin : 0;
  546. varalignmax : 4;
  547. localalignmin : 0;
  548. localalignmax : 4;
  549. recordalignmin : 0;
  550. recordalignmax : 2;
  551. maxCrecordalign : 4 // should be 8 probably
  552. );
  553. first_parm_offset : 8;
  554. stacksize : 32*1024*1024;
  555. stackalign : 16;
  556. { abi_powerpc_sysv doesn't work yet }
  557. abi : abi_powerpc_aix;
  558. 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';
  559. );
  560. system_x86_64_netbsd_info : tsysteminfo =
  561. (
  562. system : system_x86_64_netbsd;
  563. name : 'NetBSD for x86-64';
  564. shortname : 'NetBSD';
  565. flags : [tf_needs_symbol_size,tf_needs_dwarf_cfi,tf_library_needs_pic,tf_needs_symbol_type,
  566. tf_files_case_sensitive, tf_under_development,
  567. tf_dwarf_only_local_labels,
  568. { tf_pic_uses_got,}tf_smartlink_sections,tf_has_winlike_resources];
  569. cpu : cpu_x86_64;
  570. unit_env : 'BSDUNITS';
  571. extradefines : 'UNIX;HASUNIX;BSD';
  572. exeext : '';
  573. defext : '.def';
  574. scriptext : '.sh';
  575. smartext : '.sl';
  576. unitext : '.ppu';
  577. unitlibext : '.ppl';
  578. asmext : '.s';
  579. objext : '.o';
  580. resext : '.res';
  581. resobjext : '.or';
  582. sharedlibext : '.so';
  583. staticlibext : '.a';
  584. staticlibprefix : 'libp';
  585. sharedlibprefix : 'lib';
  586. sharedClibext : '.so';
  587. staticClibext : '.a';
  588. staticClibprefix : 'lib';
  589. sharedClibprefix : 'lib';
  590. importlibprefix : 'libimp';
  591. importlibext : '.a';
  592. Cprefix : '';
  593. newline : #10;
  594. dirsep : '/';
  595. assem : as_x86_64_elf64;
  596. assemextern : as_gas;
  597. link : ld_none;
  598. linkextern : ld_bsd;
  599. ar : ar_gnu_ar;
  600. res : res_elf;
  601. dbg : dbg_dwarf2; //dbg_stabs;
  602. script : script_unix;
  603. endian : endian_little;
  604. alignment :
  605. (
  606. procalign : 8;
  607. loopalign : 4;
  608. jumpalign : 0;
  609. constalignmin : 0;
  610. constalignmax : 8;
  611. varalignmin : 0;
  612. varalignmax : 16;
  613. localalignmin : 4;
  614. localalignmax : 16;
  615. recordalignmin : 0;
  616. recordalignmax : 16;
  617. maxCrecordalign : 16
  618. );
  619. first_parm_offset : 16;
  620. stacksize : 256*1024;
  621. stackalign : 16;
  622. abi : abi_default;
  623. 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';
  624. );
  625. system_powerpc_darwin_info : tsysteminfo =
  626. (
  627. system : system_powerpc_darwin;
  628. name : 'Darwin for PowerPC';
  629. shortname : 'Darwin';
  630. 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];
  631. cpu : cpu_powerpc;
  632. unit_env : 'BSDUNITS';
  633. extradefines : 'UNIX;BSD;HASUNIX';
  634. exeext : '';
  635. defext : '.def';
  636. scriptext : '.sh';
  637. smartext : '.sl';
  638. unitext : '.ppu';
  639. unitlibext : '.ppl';
  640. asmext : '.s';
  641. objext : '.o';
  642. resext : '.res';
  643. resobjext : '.or';
  644. sharedlibext : '.dylib';
  645. staticlibext : '.a';
  646. staticlibprefix : 'libp';
  647. sharedlibprefix : 'lib';
  648. sharedClibext : '.dylib';
  649. staticClibext : '.a';
  650. staticClibprefix : 'lib';
  651. sharedClibprefix : 'lib';
  652. importlibprefix : 'libimp';
  653. importlibext : '.a';
  654. Cprefix : '_';
  655. newline : #10;
  656. dirsep : '/';
  657. assem : as_darwin;
  658. assemextern : as_darwin;
  659. link : ld_none;
  660. linkextern : ld_bsd;
  661. ar : ar_gnu_ar;
  662. res : res_macho;
  663. dbg : dbg_stabs;
  664. script : script_unix;
  665. endian : endian_big;
  666. alignment :
  667. (
  668. procalign : 16;
  669. loopalign : 4;
  670. jumpalign : 0;
  671. constalignmin : 0;
  672. constalignmax : 4;
  673. varalignmin : 0;
  674. varalignmax : 4;
  675. localalignmin : 0;
  676. localalignmax : 4;
  677. recordalignmin : 0;
  678. recordalignmax : 4;
  679. maxCrecordalign : 4
  680. );
  681. first_parm_offset : 24;
  682. stacksize : 262144;
  683. stackalign : 16;
  684. abi : abi_powerpc_darwin;
  685. 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';
  686. );
  687. system_i386_darwin_info : tsysteminfo =
  688. (
  689. system : system_i386_darwin;
  690. name : 'Darwin for i386';
  691. shortname : 'Darwin';
  692. 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];
  693. cpu : cpu_i386;
  694. unit_env : 'BSDUNITS';
  695. extradefines : 'UNIX;BSD;HASUNIX';
  696. exeext : '';
  697. defext : '.def';
  698. scriptext : '.sh';
  699. smartext : '.sl';
  700. unitext : '.ppu';
  701. unitlibext : '.ppl';
  702. asmext : '.s';
  703. objext : '.o';
  704. resext : '.res';
  705. resobjext : '.or';
  706. sharedlibext : '.dylib';
  707. staticlibext : '.a';
  708. staticlibprefix : 'libp';
  709. sharedlibprefix : 'lib';
  710. sharedClibext : '.dylib';
  711. staticClibext : '.a';
  712. staticClibprefix : 'lib';
  713. sharedClibprefix : 'lib';
  714. importlibprefix : 'libimp';
  715. importlibext : '.a';
  716. Cprefix : '_';
  717. newline : #10;
  718. dirsep : '/';
  719. assem : as_darwin;
  720. assemextern : as_darwin;
  721. link : ld_none;
  722. linkextern : ld_bsd;
  723. ar : ar_gnu_ar;
  724. res : res_macho;
  725. dbg : dbg_stabs;
  726. script : script_unix;
  727. endian : endian_little;
  728. alignment :
  729. (
  730. procalign : 16;
  731. loopalign : 4;
  732. jumpalign : 0;
  733. constalignmin : 0;
  734. constalignmax : 8;
  735. varalignmin : 0;
  736. varalignmax : 16;
  737. localalignmin : 0;
  738. localalignmax : 8;
  739. recordalignmin : 0;
  740. recordalignmax : 16;
  741. maxCrecordalign : 16
  742. );
  743. first_parm_offset : 8;
  744. stacksize : 262144;
  745. stackalign : 16;
  746. abi : abi_default;
  747. 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';
  748. );
  749. system_i386_iphonesim_info : tsysteminfo =
  750. (
  751. system : system_i386_iphonesim;
  752. name : 'Darwin/iPhoneSim for i386';
  753. shortname : 'iPhoneSim';
  754. 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];
  755. cpu : cpu_i386;
  756. unit_env : 'BSDUNITS';
  757. extradefines : 'UNIX;BSD;HASUNIX;DARWIN'; // also define darwin for code compatibility
  758. exeext : '';
  759. defext : '.def';
  760. scriptext : '.sh';
  761. smartext : '.sl';
  762. unitext : '.ppu';
  763. unitlibext : '.ppl';
  764. asmext : '.s';
  765. objext : '.o';
  766. resext : '.res';
  767. resobjext : '.or';
  768. sharedlibext : '.dylib';
  769. staticlibext : '.a';
  770. staticlibprefix : 'libp';
  771. sharedlibprefix : 'lib';
  772. sharedClibext : '.dylib';
  773. staticClibext : '.a';
  774. staticClibprefix : 'lib';
  775. sharedClibprefix : 'lib';
  776. importlibprefix : 'libimp';
  777. importlibext : '.a';
  778. Cprefix : '_';
  779. newline : #10;
  780. dirsep : '/';
  781. assem : as_darwin;
  782. assemextern : as_darwin;
  783. link : ld_none;
  784. linkextern : ld_bsd;
  785. ar : ar_gnu_ar;
  786. res : res_macho;
  787. dbg : dbg_dwarf2;
  788. script : script_unix;
  789. endian : endian_little;
  790. alignment :
  791. (
  792. procalign : 16;
  793. loopalign : 4;
  794. jumpalign : 0;
  795. constalignmin : 0;
  796. constalignmax : 8;
  797. varalignmin : 0;
  798. varalignmax : 16;
  799. localalignmin : 0;
  800. localalignmax : 8;
  801. recordalignmin : 0;
  802. recordalignmax : 16;
  803. maxCrecordalign : 16
  804. );
  805. first_parm_offset : 8;
  806. stacksize : 262144;
  807. stackalign : 16;
  808. abi : abi_default;
  809. 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';
  810. );
  811. system_powerpc64_darwin_info : tsysteminfo =
  812. (
  813. system : system_powerpc64_darwin;
  814. name : 'Darwin for PowerPC64';
  815. shortname : 'Darwin';
  816. 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];
  817. cpu : cpu_powerpc64;
  818. unit_env : 'BSDUNITS';
  819. extradefines : 'UNIX;BSD;HASUNIX';
  820. exeext : '';
  821. defext : '.def';
  822. scriptext : '.sh';
  823. smartext : '.sl';
  824. unitext : '.ppu';
  825. unitlibext : '.ppl';
  826. asmext : '.s';
  827. objext : '.o';
  828. resext : '.res';
  829. resobjext : '.or';
  830. sharedlibext : '.dylib';
  831. staticlibext : '.a';
  832. staticlibprefix : 'libp';
  833. sharedlibprefix : 'lib';
  834. sharedClibext : '.dylib';
  835. staticClibext : '.a';
  836. staticClibprefix : 'lib';
  837. sharedClibprefix : 'lib';
  838. importlibprefix : 'libimp';
  839. importlibext : '.a';
  840. Cprefix : '_';
  841. newline : #10;
  842. dirsep : '/';
  843. assem : as_darwin;
  844. assemextern : as_darwin;
  845. link : ld_none;
  846. linkextern : ld_bsd;
  847. ar : ar_gnu_ar;
  848. res : res_macho;
  849. dbg : dbg_dwarf2;
  850. script : script_unix;
  851. endian : endian_big;
  852. alignment :
  853. (
  854. procalign : 16;
  855. loopalign : 4;
  856. jumpalign : 0;
  857. constalignmin : 4;
  858. constalignmax : 8;
  859. varalignmin : 4;
  860. varalignmax : 8;
  861. localalignmin : 4;
  862. localalignmax : 8;
  863. recordalignmin : 0;
  864. recordalignmax : 8;
  865. maxCrecordalign : 4
  866. );
  867. first_parm_offset : 48;
  868. stacksize : 262144;
  869. stackalign : 16;
  870. abi : abi_powerpc_darwin;
  871. 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';
  872. );
  873. system_x86_64_darwin_info : tsysteminfo =
  874. (
  875. system : system_x86_64_darwin;
  876. name : 'Darwin for x86_64';
  877. shortname : 'Darwin';
  878. 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];
  879. cpu : cpu_x86_64;
  880. unit_env : 'BSDUNITS';
  881. extradefines : 'UNIX;BSD;HASUNIX';
  882. exeext : '';
  883. defext : '.def';
  884. scriptext : '.sh';
  885. smartext : '.sl';
  886. unitext : '.ppu';
  887. unitlibext : '.ppl';
  888. asmext : '.s';
  889. objext : '.o';
  890. resext : '.res';
  891. resobjext : '.or';
  892. sharedlibext : '.dylib';
  893. staticlibext : '.a';
  894. staticlibprefix : 'libp';
  895. sharedlibprefix : 'lib';
  896. sharedClibext : '.dylib';
  897. staticClibext : '.a';
  898. staticClibprefix : 'lib';
  899. sharedClibprefix : 'lib';
  900. importlibprefix : 'libimp';
  901. importlibext : '.a';
  902. Cprefix : '_';
  903. newline : #10;
  904. dirsep : '/';
  905. assem : as_darwin;
  906. assemextern : as_darwin;
  907. link : ld_none;
  908. linkextern : ld_bsd;
  909. ar : ar_gnu_ar;
  910. res : res_macho;
  911. dbg : dbg_dwarf2;
  912. script : script_unix;
  913. endian : endian_little;
  914. alignment :
  915. (
  916. procalign : 8;
  917. loopalign : 4;
  918. jumpalign : 0;
  919. constalignmin : 0;
  920. constalignmax : 8;
  921. varalignmin : 0;
  922. varalignmax : 16;
  923. localalignmin : 4;
  924. localalignmax : 16;
  925. recordalignmin : 0;
  926. recordalignmax : 16;
  927. maxCrecordalign : 16
  928. );
  929. first_parm_offset : 16;
  930. stacksize : 262144;
  931. stackalign : 16;
  932. abi : abi_default;
  933. 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';
  934. );
  935. system_x86_64_iphonesim_info : tsysteminfo =
  936. (
  937. system : system_x86_64_iphonesim;
  938. name : 'Darwin/iPhoneSim for x86_64';
  939. shortname : 'iPhoneSim';
  940. 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];
  941. cpu : cpu_x86_64;
  942. unit_env : 'BSDUNITS';
  943. extradefines : 'UNIX;BSD;HASUNIX;DARWIN'; // also define darwin for code compatibility
  944. exeext : '';
  945. defext : '.def';
  946. scriptext : '.sh';
  947. smartext : '.sl';
  948. unitext : '.ppu';
  949. unitlibext : '.ppl';
  950. asmext : '.s';
  951. objext : '.o';
  952. resext : '.res';
  953. resobjext : '.or';
  954. sharedlibext : '.dylib';
  955. staticlibext : '.a';
  956. staticlibprefix : 'libp';
  957. sharedlibprefix : 'lib';
  958. sharedClibext : '.dylib';
  959. staticClibext : '.a';
  960. staticClibprefix : 'lib';
  961. sharedClibprefix : 'lib';
  962. importlibprefix : 'libimp';
  963. importlibext : '.a';
  964. Cprefix : '_';
  965. newline : #10;
  966. dirsep : '/';
  967. assem : as_darwin;
  968. assemextern : as_darwin;
  969. link : ld_none;
  970. linkextern : ld_bsd;
  971. ar : ar_gnu_ar;
  972. res : res_macho;
  973. dbg : dbg_dwarf2;
  974. script : script_unix;
  975. endian : endian_little;
  976. alignment :
  977. (
  978. procalign : 8;
  979. loopalign : 4;
  980. jumpalign : 0;
  981. constalignmin : 0;
  982. constalignmax : 8;
  983. varalignmin : 0;
  984. varalignmax : 16;
  985. localalignmin : 4;
  986. localalignmax : 16;
  987. recordalignmin : 0;
  988. recordalignmax : 16;
  989. maxCrecordalign : 16
  990. );
  991. first_parm_offset : 16;
  992. stacksize : 262144;
  993. stackalign : 16;
  994. abi : abi_default;
  995. 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';
  996. );
  997. system_arm_darwin_info : tsysteminfo =
  998. (
  999. system : system_arm_darwin;
  1000. name : 'Darwin for ARM';
  1001. shortname : 'Darwin';
  1002. 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];
  1003. cpu : cpu_arm;
  1004. unit_env : 'BSDUNITS';
  1005. extradefines : 'UNIX;BSD;HASUNIX;CPUARMEL';
  1006. exeext : '';
  1007. defext : '.def';
  1008. scriptext : '.sh';
  1009. smartext : '.sl';
  1010. unitext : '.ppu';
  1011. unitlibext : '.ppl';
  1012. asmext : '.s';
  1013. objext : '.o';
  1014. resext : '.res';
  1015. resobjext : '.or';
  1016. sharedlibext : '.dylib';
  1017. staticlibext : '.a';
  1018. staticlibprefix : 'libp';
  1019. sharedlibprefix : 'lib';
  1020. sharedClibext : '.dylib';
  1021. staticClibext : '.a';
  1022. staticClibprefix : 'lib';
  1023. sharedClibprefix : 'lib';
  1024. importlibprefix : 'libimp';
  1025. importlibext : '.a';
  1026. Cprefix : '_';
  1027. newline : #10;
  1028. dirsep : '/';
  1029. assem : as_darwin;
  1030. assemextern : as_darwin;
  1031. link : ld_none;
  1032. linkextern : ld_bsd;
  1033. ar : ar_gnu_ar;
  1034. res : res_macho;
  1035. dbg : dbg_dwarf2;
  1036. script : script_unix;
  1037. endian : endian_little;
  1038. alignment :
  1039. (
  1040. procalign : 4;
  1041. loopalign : 4;
  1042. jumpalign : 0;
  1043. constalignmin : 0;
  1044. constalignmax : 8;
  1045. varalignmin : 0;
  1046. varalignmax : 8;
  1047. localalignmin : 4;
  1048. localalignmax : 8;
  1049. recordalignmin : 0;
  1050. recordalignmax : 8;
  1051. maxCrecordalign : 8
  1052. );
  1053. first_parm_offset : 8;
  1054. stacksize : 262144;
  1055. stackalign : 4;
  1056. abi : abi_default;
  1057. { note: default LLVM stack alignment is 8 bytes for this target }
  1058. 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';
  1059. );
  1060. system_aarch64_darwin_info : tsysteminfo =
  1061. (
  1062. system : system_aarch64_darwin;
  1063. name : 'Darwin for AArch64';
  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_pic_default,tf_has_winlike_resources];
  1066. cpu : cpu_aarch64;
  1067. unit_env : 'BSDUNITS';
  1068. extradefines : 'UNIX;BSD;HASUNIX';
  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_darwin;
  1093. assemextern : as_darwin;
  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 : 8;
  1104. loopalign : 4;
  1105. jumpalign : 0;
  1106. constalignmin : 0;
  1107. constalignmax : 8;
  1108. varalignmin : 0;
  1109. varalignmax : 16;
  1110. localalignmin : 4;
  1111. localalignmax : 16;
  1112. recordalignmin : 0;
  1113. recordalignmax : 16;
  1114. maxCrecordalign : 16
  1115. );
  1116. first_parm_offset : 16;
  1117. stacksize : 8*1024*1024;
  1118. stackalign : 16;
  1119. abi : abi_aarch64_darwin;
  1120. 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'
  1121. );
  1122. implementation
  1123. initialization
  1124. {$ifdef cpui386}
  1125. {$ifdef FreeBSD}
  1126. set_source_info(system_i386_FreeBSD_info);
  1127. {$endif}
  1128. {$ifdef NetBSD}
  1129. set_source_info(system_i386_NetBSD_info);
  1130. {$endif}
  1131. {$ifdef OpenBSD}
  1132. set_source_info(system_i386_OpenBSD_info);
  1133. {$endif}
  1134. {$ifdef Darwin}
  1135. set_source_info(system_i386_Darwin_info);
  1136. {$endif Darwin}
  1137. {$endif cpui386}
  1138. {$ifdef cpux86_64}
  1139. {$ifdef FreeBSD}
  1140. set_source_info(system_x86_64_FreeBSD_info);
  1141. {$endif}
  1142. {$ifdef DragonFly}
  1143. set_source_info(system_x86_64_DragonFly_info);
  1144. {$endif}
  1145. {$ifdef OpenBSD}
  1146. set_source_info(system_x86_64_OpenBSD_info);
  1147. {$endif}
  1148. {$ifdef NetBSD}
  1149. set_source_info(system_x86_64_NetBSD_info);
  1150. {$endif}
  1151. {$ifdef Darwin}
  1152. set_source_info(system_x86_64_darwin_info);
  1153. {$endif}
  1154. {$endif}
  1155. {$ifdef cpu68}
  1156. {$ifdef NetBSD}
  1157. set_source_info(system_m68k_NetBSD_info);
  1158. {$endif NetBSD}
  1159. {$endif cpu68}
  1160. {$ifdef cpupowerpc32}
  1161. {$ifdef Darwin}
  1162. set_source_info(system_powerpc_darwin_info);
  1163. {$endif Darwin}
  1164. {$ifdef NetBSD}
  1165. set_source_info(system_powerpc_netbsd_info);
  1166. {$endif}
  1167. {$endif cpupowerpc32}
  1168. {$ifdef cpupowerpc64}
  1169. {$ifdef Darwin}
  1170. set_source_info(system_powerpc64_darwin_info);
  1171. {$endif Darwin}
  1172. {$endif powerpc64}
  1173. {$ifdef cpuarm}
  1174. {$ifdef Darwin}
  1175. set_source_info(system_arm_darwin_info);
  1176. {$endif Darwin}
  1177. {$endif cpuarm}
  1178. {$ifdef cpuaarch64}
  1179. {$ifdef Darwin}
  1180. set_source_info(system_aarch64_darwin_info);
  1181. {$endif Darwin}
  1182. {$endif cpuaarch64}
  1183. end.