i_bsd.pas 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705
  1. {
  2. Copyright (c) 1998-2008 by Peter Vreman
  3. This unit implements support information structures for FreeBSD/NetBSD
  4. This program is free software; you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation; either version 2 of the License, or
  7. (at your option) any later version.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. GNU General Public License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with this program; if not, write to the Free Software
  14. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  15. ****************************************************************************
  16. }
  17. { This unit implements support information structures for FreeBSD/NetBSD.
  18. OpenBSD is only added for i386 for now, though it exists for most
  19. other common CPU's too}
  20. unit i_bsd;
  21. interface
  22. uses
  23. systems, rescmn;
  24. const
  25. res_macho_info : tresinfo =
  26. (
  27. id : res_macho;
  28. resbin : 'fpcres';
  29. rescmd : '-o $OBJ -a $ARCH -of mach-o $DBG';
  30. rcbin : 'windres';
  31. rccmd : '--include $INC -O res -o $RES $RC';
  32. resourcefileclass : nil;
  33. resflags : [];
  34. );
  35. res_macosx_ext_info : tresinfo =
  36. (
  37. id : res_ext;
  38. resbin : 'fpcres';
  39. rescmd : '-o $OBJ -a $ENDIAN -of external $DBG';
  40. rcbin : 'windres';
  41. rccmd : '--include $INC -O res -o $RES $RC';
  42. resourcefileclass : nil;
  43. resflags : [res_external_file,res_arch_in_file_name];
  44. );
  45. system_i386_freebsd_info : tsysteminfo =
  46. (
  47. system : system_i386_FreeBSD;
  48. name : 'FreeBSD/ELF for i386';
  49. shortname : 'FreeBSD';
  50. flags : [tf_pic_uses_got,tf_files_case_sensitive,tf_use_function_relative_addresses,
  51. {$ifdef segment_threadvars}
  52. tf_section_threadvars,
  53. {$endif segment_threadvars}
  54. tf_needs_symbol_type,tf_needs_symbol_size,tf_smartlink_library {,tf_smartlink_sections},tf_has_winlike_resources];
  55. cpu : cpu_i386;
  56. unit_env : 'BSDUNITS';
  57. extradefines : 'UNIX;BSD;HASUNIX';
  58. exeext : '';
  59. defext : '.def';
  60. scriptext : '.sh';
  61. smartext : '.sl';
  62. unitext : '.ppu';
  63. unitlibext : '.ppl';
  64. asmext : '.s';
  65. objext : '.o';
  66. resext : '.res';
  67. resobjext : '.or';
  68. sharedlibext : '.so';
  69. staticlibext : '.a';
  70. staticlibprefix : 'libp';
  71. sharedlibprefix : 'lib';
  72. sharedClibext : '.so';
  73. staticClibext : '.a';
  74. staticClibprefix : 'lib';
  75. sharedClibprefix : 'lib';
  76. Cprefix : '';
  77. newline : #10;
  78. dirsep : '/';
  79. assem : as_i386_elf32;
  80. assemextern : as_gas;
  81. link : nil;
  82. linkextern : nil;
  83. ar : ar_gnu_ar;
  84. res : res_elf;
  85. dbg : dbg_stabs;
  86. script : script_unix;
  87. endian : endian_little;
  88. alignment :
  89. (
  90. procalign : 4;
  91. loopalign : 4;
  92. jumpalign : 0;
  93. constalignmin : 0;
  94. constalignmax : 4;
  95. varalignmin : 0;
  96. varalignmax : 4;
  97. localalignmin : 0;
  98. localalignmax : 4;
  99. recordalignmin : 0;
  100. recordalignmax : 2;
  101. maxCrecordalign : 4
  102. );
  103. first_parm_offset : 8;
  104. stacksize : 262144;
  105. abi : abi_default;
  106. );
  107. system_x86_64_freebsd_info : tsysteminfo =
  108. (
  109. system : system_x86_64_freebsd;
  110. name : 'FreeBSD for x86-64';
  111. shortname : 'FreeBSD';
  112. flags : [tf_needs_symbol_size,tf_needs_dwarf_cfi,{Linux: tf_library_needs_pic,}tf_needs_symbol_type,
  113. tf_files_case_sensitive,tf_use_function_relative_addresses,tf_smartlink_library
  114. { tf_pic_uses_got,tf_smartlink_sections},tf_has_winlike_resources];
  115. cpu : cpu_x86_64;
  116. unit_env : 'BSDUNITS';
  117. extradefines : 'UNIX;HASUNIX;BSD';
  118. exeext : '';
  119. defext : '.def';
  120. scriptext : '.sh';
  121. smartext : '.sl';
  122. unitext : '.ppu';
  123. unitlibext : '.ppl';
  124. asmext : '.s';
  125. objext : '.o';
  126. resext : '.res';
  127. resobjext : '.or';
  128. sharedlibext : '.so';
  129. staticlibext : '.a';
  130. staticlibprefix : 'libp';
  131. sharedlibprefix : 'lib';
  132. sharedClibext : '.so';
  133. staticClibext : '.a';
  134. staticClibprefix : 'lib';
  135. sharedClibprefix : 'lib';
  136. Cprefix : '';
  137. newline : #10;
  138. dirsep : '/';
  139. assem : as_x86_64_elf64;
  140. assemextern : as_gas;
  141. link : nil;
  142. linkextern : nil;
  143. ar : ar_gnu_ar;
  144. res : res_elf;
  145. dbg : dbg_dwarf2; //dbg_stabs;
  146. script : script_unix;
  147. endian : endian_little;
  148. alignment :
  149. (
  150. procalign : 8;
  151. loopalign : 4;
  152. jumpalign : 0;
  153. constalignmin : 0;
  154. constalignmax : 8;
  155. varalignmin : 0;
  156. varalignmax : 16;
  157. localalignmin : 4;
  158. localalignmax : 16;
  159. recordalignmin : 0;
  160. recordalignmax : 16;
  161. maxCrecordalign : 8
  162. );
  163. first_parm_offset : 16;
  164. stacksize : 256*1024;
  165. abi : abi_default;
  166. );
  167. system_i386_netbsd_info : tsysteminfo =
  168. (
  169. system : system_i386_NetBSD;
  170. name : 'NetBSD for i386';
  171. shortname : 'NetBSD';
  172. flags : [tf_under_development,tf_files_case_sensitive,tf_smartlink_library,tf_use_function_relative_addresses,tf_has_winlike_resources];
  173. cpu : cpu_i386;
  174. unit_env : 'BSDUNITS';
  175. extradefines : 'UNIX;BSD;HASUNIX';
  176. exeext : '';
  177. defext : '.def';
  178. scriptext : '.sh';
  179. smartext : '.sl';
  180. unitext : '.ppu';
  181. unitlibext : '.ppl';
  182. asmext : '.s';
  183. objext : '.o';
  184. resext : '.res';
  185. resobjext : '.or';
  186. sharedlibext : '.so';
  187. staticlibext : '.a';
  188. staticlibprefix : 'libp';
  189. sharedlibprefix : 'lib';
  190. sharedClibext : '.so';
  191. staticClibext : '.a';
  192. staticClibprefix : 'lib';
  193. sharedClibprefix : 'lib';
  194. Cprefix : '_';
  195. newline : #10;
  196. dirsep : '/';
  197. assem : as_gas;
  198. assemextern : as_gas;
  199. link : nil;
  200. linkextern : nil;
  201. ar : ar_gnu_ar;
  202. res : res_elf;
  203. dbg : dbg_stabs;
  204. script : script_unix;
  205. endian : endian_little;
  206. alignment :
  207. (
  208. procalign : 4;
  209. loopalign : 4;
  210. jumpalign : 0;
  211. constalignmin : 0;
  212. constalignmax : 1;
  213. varalignmin : 0;
  214. varalignmax : 1;
  215. localalignmin : 0;
  216. localalignmax : 1;
  217. recordalignmin : 0;
  218. recordalignmax : 2;
  219. maxCrecordalign : 4
  220. );
  221. first_parm_offset : 8;
  222. stacksize : 262144;
  223. abi : abi_default;
  224. );
  225. system_i386_openbsd_info : tsysteminfo =
  226. (
  227. system : system_i386_OpenBSD;
  228. name : 'OpenBSD for i386';
  229. shortname : 'OpenBSD';
  230. flags : [tf_under_development,tf_files_case_sensitive,tf_use_function_relative_addresses,tf_smartlink_library,tf_has_winlike_resources];
  231. cpu : cpu_i386;
  232. unit_env : 'BSDUNITS';
  233. extradefines : 'UNIX;BSD;HASUNIX';
  234. exeext : '';
  235. defext : '.def';
  236. scriptext : '.sh';
  237. smartext : '.sl';
  238. unitext : '.ppu';
  239. unitlibext : '.ppl';
  240. asmext : '.s';
  241. objext : '.o';
  242. resext : '.res';
  243. resobjext : '.or';
  244. sharedlibext : '.so';
  245. staticlibext : '.a';
  246. staticlibprefix : 'libp';
  247. sharedlibprefix : 'lib';
  248. sharedClibext : '.so';
  249. staticClibext : '.a';
  250. staticClibprefix : 'lib';
  251. sharedClibprefix : 'lib';
  252. Cprefix : '_';
  253. newline : #10;
  254. dirsep : '/';
  255. assem : as_gas;
  256. assemextern : as_gas;
  257. link : nil;
  258. linkextern : nil;
  259. ar : ar_gnu_ar;
  260. res : res_elf;
  261. dbg : dbg_stabs;
  262. script : script_unix;
  263. endian : endian_little;
  264. alignment :
  265. (
  266. procalign : 4;
  267. loopalign : 4;
  268. jumpalign : 0;
  269. constalignmin : 0;
  270. constalignmax : 1;
  271. varalignmin : 0;
  272. varalignmax : 1;
  273. localalignmin : 0;
  274. localalignmax : 1;
  275. recordalignmin : 0;
  276. recordalignmax : 2;
  277. maxCrecordalign : 4
  278. );
  279. first_parm_offset : 8;
  280. stacksize : 262144;
  281. abi : abi_default;
  282. );
  283. system_m68k_netbsd_info : tsysteminfo =
  284. (
  285. system : system_m68k_NetBSD;
  286. name : 'NetBSD for m68k';
  287. shortname : 'NetBSD';
  288. flags : [tf_under_development,tf_files_case_sensitive,tf_use_function_relative_addresses,tf_smartlink_library,tf_has_winlike_resources];
  289. cpu : cpu_m68k;
  290. unit_env : 'BSDUNITS';
  291. extradefines : 'UNIX;BSD;HASUNIX';
  292. exeext : '';
  293. defext : '.def';
  294. scriptext : '.sh';
  295. smartext : '.sl';
  296. unitext : '.ppu';
  297. unitlibext : '.ppl';
  298. asmext : '.s';
  299. objext : '.o';
  300. resext : '.res';
  301. resobjext : '.or';
  302. sharedlibext : '.so';
  303. staticlibext : '.a';
  304. staticlibprefix : 'libp';
  305. sharedlibprefix : 'lib';
  306. sharedClibext : '.so';
  307. staticClibext : '.a';
  308. staticClibprefix : 'lib';
  309. sharedClibprefix : 'lib';
  310. Cprefix : '';
  311. newline : #10;
  312. dirsep : '/';
  313. assem : as_gas;
  314. assemextern : as_gas;
  315. link : nil;
  316. linkextern : nil;
  317. ar : ar_gnu_ar;
  318. res : res_elf;
  319. dbg : dbg_stabs;
  320. script : script_unix;
  321. endian : endian_big;
  322. alignment :
  323. (
  324. procalign : 4;
  325. loopalign : 4;
  326. jumpalign : 0;
  327. constalignmin : 0;
  328. constalignmax : 1;
  329. varalignmin : 0;
  330. varalignmax : 1;
  331. localalignmin : 0;
  332. localalignmax : 1;
  333. recordalignmin : 0;
  334. recordalignmax : 2;
  335. maxCrecordalign : 4
  336. );
  337. first_parm_offset : 8;
  338. stacksize : 262144;
  339. abi : abi_default;
  340. );
  341. system_powerpc_netbsd_info : tsysteminfo =
  342. (
  343. system : system_powerpc_netbsd;
  344. name : 'NetBSD for PowerPC';
  345. shortname : 'NetBSD';
  346. flags : [tf_under_development,tf_files_case_sensitive,tf_use_function_relative_addresses,tf_smartlink_library,tf_has_winlike_resources];
  347. cpu : cpu_powerpc;
  348. unit_env : '';
  349. extradefines : 'UNIX;BSD;HASUNIX';
  350. exeext : '';
  351. defext : '.def';
  352. scriptext : '.sh';
  353. smartext : '.sl';
  354. unitext : '.ppu';
  355. unitlibext : '.ppl';
  356. asmext : '.s';
  357. objext : '.o';
  358. resext : '.res';
  359. resobjext : '.or';
  360. sharedlibext : '.so';
  361. staticlibext : '.s';
  362. staticlibprefix : 'libp';
  363. sharedlibprefix : 'lib';
  364. sharedClibext : '.so';
  365. staticClibext : '.a';
  366. staticClibprefix : 'lib';
  367. sharedClibprefix : 'lib';
  368. Cprefix : '';
  369. newline : #10;
  370. dirsep : '/';
  371. assem : as_gas;
  372. assemextern : as_gas;
  373. link : nil;
  374. linkextern : nil;
  375. ar : ar_gnu_ar;
  376. res : res_elf;
  377. dbg : dbg_stabs;
  378. script : script_unix;
  379. endian : endian_big;
  380. alignment :
  381. (
  382. procalign : 4;
  383. loopalign : 4;
  384. jumpalign : 0;
  385. constalignmin : 0;
  386. constalignmax : 4;
  387. varalignmin : 0;
  388. varalignmax : 4;
  389. localalignmin : 0;
  390. localalignmax : 4;
  391. recordalignmin : 0;
  392. recordalignmax : 2;
  393. maxCrecordalign : 4 // should be 8 probably
  394. );
  395. first_parm_offset : 8;
  396. stacksize : 32*1024*1024;
  397. { abi_powerpc_sysv doesn't work yet }
  398. abi : abi_powerpc_aix;
  399. );
  400. system_powerpc_darwin_info : tsysteminfo =
  401. (
  402. system : system_powerpc_darwin;
  403. name : 'Darwin for PowerPC';
  404. shortname : 'Darwin';
  405. 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];
  406. cpu : cpu_powerpc;
  407. unit_env : 'BSDUNITS';
  408. extradefines : 'UNIX;BSD;HASUNIX';
  409. exeext : '';
  410. defext : '.def';
  411. scriptext : '.sh';
  412. smartext : '.sl';
  413. unitext : '.ppu';
  414. unitlibext : '.ppl';
  415. asmext : '.s';
  416. objext : '.o';
  417. resext : '.res';
  418. resobjext : '.or';
  419. sharedlibext : '.dylib';
  420. staticlibext : '.a';
  421. staticlibprefix : 'libp';
  422. sharedlibprefix : 'lib';
  423. sharedClibext : '.dylib';
  424. staticClibext : '.a';
  425. staticClibprefix : 'lib';
  426. sharedClibprefix : 'lib';
  427. Cprefix : '_';
  428. newline : #10;
  429. dirsep : '/';
  430. assem : as_darwin;
  431. assemextern : as_darwin;
  432. link : nil;
  433. linkextern : nil;
  434. ar : ar_gnu_ar;
  435. res : res_macho;
  436. dbg : dbg_stabs;
  437. script : script_unix;
  438. endian : endian_big;
  439. alignment :
  440. (
  441. procalign : 16;
  442. loopalign : 4;
  443. jumpalign : 0;
  444. constalignmin : 0;
  445. constalignmax : 4;
  446. varalignmin : 0;
  447. varalignmax : 4;
  448. localalignmin : 0;
  449. localalignmax : 4;
  450. recordalignmin : 0;
  451. recordalignmax : 4;
  452. maxCrecordalign : 4
  453. );
  454. first_parm_offset : 24;
  455. stacksize : 262144;
  456. abi : abi_powerpc_aix;
  457. );
  458. system_i386_darwin_info : tsysteminfo =
  459. (
  460. system : system_i386_darwin;
  461. name : 'Darwin for i386';
  462. shortname : 'Darwin';
  463. 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];
  464. cpu : cpu_i386;
  465. unit_env : 'BSDUNITS';
  466. extradefines : 'UNIX;BSD;HASUNIX';
  467. exeext : '';
  468. defext : '.def';
  469. scriptext : '.sh';
  470. smartext : '.sl';
  471. unitext : '.ppu';
  472. unitlibext : '.ppl';
  473. asmext : '.s';
  474. objext : '.o';
  475. resext : '.res';
  476. resobjext : '.or';
  477. sharedlibext : '.dylib';
  478. staticlibext : '.a';
  479. staticlibprefix : 'libp';
  480. sharedlibprefix : 'lib';
  481. sharedClibext : '.dylib';
  482. staticClibext : '.a';
  483. staticClibprefix : 'lib';
  484. sharedClibprefix : 'lib';
  485. Cprefix : '_';
  486. newline : #10;
  487. dirsep : '/';
  488. assem : as_darwin;
  489. assemextern : as_darwin;
  490. link : nil;
  491. linkextern : nil;
  492. ar : ar_gnu_ar;
  493. res : res_macho;
  494. dbg : dbg_stabs;
  495. script : script_unix;
  496. endian : endian_little;
  497. alignment :
  498. (
  499. procalign : 16;
  500. loopalign : 4;
  501. jumpalign : 0;
  502. constalignmin : 0;
  503. constalignmax : 8;
  504. varalignmin : 0;
  505. varalignmax : 16;
  506. localalignmin : 0;
  507. localalignmax : 8;
  508. recordalignmin : 0;
  509. recordalignmax : 16;
  510. maxCrecordalign : 16
  511. );
  512. first_parm_offset : 8;
  513. stacksize : 262144;
  514. abi : abi_default;
  515. );
  516. system_powerpc64_darwin_info : tsysteminfo =
  517. (
  518. system : system_powerpc64_darwin;
  519. name : 'Darwin for PowerPC64';
  520. shortname : 'Darwin';
  521. 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];
  522. cpu : cpu_powerpc64;
  523. unit_env : 'BSDUNITS';
  524. extradefines : 'UNIX;BSD;HASUNIX';
  525. exeext : '';
  526. defext : '.def';
  527. scriptext : '.sh';
  528. smartext : '.sl';
  529. unitext : '.ppu';
  530. unitlibext : '.ppl';
  531. asmext : '.s';
  532. objext : '.o';
  533. resext : '.res';
  534. resobjext : '.or';
  535. sharedlibext : '.dylib';
  536. staticlibext : '.a';
  537. staticlibprefix : 'libp';
  538. sharedlibprefix : 'lib';
  539. sharedClibext : '.dylib';
  540. staticClibext : '.a';
  541. staticClibprefix : 'lib';
  542. sharedClibprefix : 'lib';
  543. Cprefix : '_';
  544. newline : #10;
  545. dirsep : '/';
  546. assem : as_darwin;
  547. assemextern : as_darwin;
  548. link : nil;
  549. linkextern : nil;
  550. ar : ar_gnu_ar;
  551. res : res_macho;
  552. dbg : dbg_dwarf2;
  553. script : script_unix;
  554. endian : endian_big;
  555. alignment :
  556. (
  557. procalign : 16;
  558. loopalign : 4;
  559. jumpalign : 0;
  560. constalignmin : 4;
  561. constalignmax : 8;
  562. varalignmin : 4;
  563. varalignmax : 8;
  564. localalignmin : 4;
  565. localalignmax : 8;
  566. recordalignmin : 0;
  567. recordalignmax : 8;
  568. maxCrecordalign : 8
  569. );
  570. first_parm_offset : 48;
  571. stacksize : 262144;
  572. abi : abi_powerpc_aix;
  573. );
  574. system_x86_64_darwin_info : tsysteminfo =
  575. (
  576. system : system_x86_64_darwin;
  577. name : 'Darwin for x86_64';
  578. shortname : 'Darwin';
  579. 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];
  580. cpu : cpu_x86_64;
  581. unit_env : 'BSDUNITS';
  582. extradefines : 'UNIX;BSD;HASUNIX';
  583. exeext : '';
  584. defext : '.def';
  585. scriptext : '.sh';
  586. smartext : '.sl';
  587. unitext : '.ppu';
  588. unitlibext : '.ppl';
  589. asmext : '.s';
  590. objext : '.o';
  591. resext : '.res';
  592. resobjext : '.or';
  593. sharedlibext : '.dylib';
  594. staticlibext : '.a';
  595. staticlibprefix : 'libp';
  596. sharedlibprefix : 'lib';
  597. sharedClibext : '.dylib';
  598. staticClibext : '.a';
  599. staticClibprefix : 'lib';
  600. sharedClibprefix : 'lib';
  601. Cprefix : '_';
  602. newline : #10;
  603. dirsep : '/';
  604. assem : as_darwin;
  605. assemextern : as_darwin;
  606. link : nil;
  607. linkextern : nil;
  608. ar : ar_gnu_ar;
  609. res : res_macho;
  610. dbg : dbg_dwarf2;
  611. script : script_unix;
  612. endian : endian_little;
  613. alignment :
  614. (
  615. procalign : 8;
  616. loopalign : 4;
  617. jumpalign : 0;
  618. constalignmin : 0;
  619. constalignmax : 8;
  620. varalignmin : 0;
  621. varalignmax : 16;
  622. localalignmin : 4;
  623. localalignmax : 8;
  624. recordalignmin : 0;
  625. recordalignmax : 8;
  626. maxCrecordalign : 8
  627. );
  628. first_parm_offset : 16;
  629. stacksize : 262144;
  630. abi : abi_default;
  631. );
  632. implementation
  633. initialization
  634. {$ifdef cpu86}
  635. {$ifdef FreeBSD}
  636. set_source_info(system_i386_FreeBSD_info);
  637. {$endif}
  638. {$ifdef NetBSD}
  639. set_source_info(system_i386_NetBSD_info);
  640. {$endif}
  641. {$ifdef OpenBSD}
  642. set_source_info(system_i386_NetBSD_info);
  643. {$endif}
  644. {$ifdef Darwin}
  645. set_source_info(system_i386_Darwin_info);
  646. {$endif Darwin}
  647. {$endif cpu86}
  648. {$ifdef cpux86_64}
  649. {$ifdef FreeBSD}
  650. set_source_info(system_x86_64_FreeBSD_info);
  651. {$endif}
  652. {$ifdef Darwin}
  653. set_source_info(system_x86_64_darwin_info);
  654. {$endif}
  655. {$endif}
  656. {$ifdef cpu68}
  657. {$ifdef NetBSD}
  658. set_source_info(system_m68k_NetBSD_info);
  659. {$endif NetBSD}
  660. {$endif cpu68}
  661. {$ifdef cpupowerpc32}
  662. {$ifdef Darwin}
  663. set_source_info(system_powerpc_darwin_info);
  664. {$endif Darwin}
  665. {$ifdef NetBSD}
  666. set_source_info(system_powerpc_netbsd_info);
  667. {$endif}
  668. {$endif cpupowerpc32}
  669. {$ifdef cpupowerpc64}
  670. {$ifdef Darwin}
  671. set_source_info(system_powerpc64_darwin_info);
  672. {$endif Darwin}
  673. {$endif powerpc64}
  674. end.