i_linux.pas 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694
  1. {
  2. Copyright (c) 1998-2008 by Peter Vreman
  3. This unit implements support information structures for linux
  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 linux. }
  18. unit i_linux;
  19. {$i fpcdefs.inc}
  20. interface
  21. uses
  22. systems, rescmn;
  23. const
  24. system_i386_linux_info : tsysteminfo =
  25. (
  26. system : system_i386_LINUX;
  27. name : 'Linux for i386';
  28. shortname : 'Linux';
  29. flags : [tf_needs_symbol_size,tf_pic_uses_got{,tf_smartlink_sections}{,tf_winlikewidestring},
  30. {$ifdef segment_threadvars}
  31. tf_section_threadvars,
  32. {$endif segment_threadvars}
  33. tf_needs_symbol_type,tf_files_case_sensitive,tf_use_function_relative_addresses,
  34. tf_smartlink_library,tf_needs_dwarf_cfi,tf_has_winlike_resources];
  35. cpu : cpu_i386;
  36. unit_env : 'LINUXUNITS';
  37. extradefines : 'UNIX;HASUNIX';
  38. exeext : '';
  39. defext : '.def';
  40. scriptext : '.sh';
  41. smartext : '.sl';
  42. unitext : '.ppu';
  43. unitlibext : '.ppl';
  44. asmext : '.s';
  45. objext : '.o';
  46. resext : '.res';
  47. resobjext : '.or';
  48. sharedlibext : '.so';
  49. staticlibext : '.a';
  50. staticlibprefix : 'libp';
  51. sharedlibprefix : 'lib';
  52. sharedClibext : '.so';
  53. staticClibext : '.a';
  54. staticClibprefix : 'lib';
  55. sharedClibprefix : 'lib';
  56. Cprefix : '';
  57. newline : #10;
  58. dirsep : '/';
  59. assem : as_i386_elf32;
  60. assemextern : as_gas;
  61. link : nil;
  62. linkextern : nil;
  63. ar : ar_gnu_ar;
  64. res : res_elf;
  65. dbg : dbg_stabs;
  66. script : script_unix;
  67. endian : endian_little;
  68. alignment :
  69. (
  70. procalign : 16;
  71. loopalign : 4;
  72. jumpalign : 0;
  73. constalignmin : 0;
  74. constalignmax : 8;
  75. varalignmin : 0;
  76. varalignmax : 16;
  77. localalignmin : 4;
  78. localalignmax : 8;
  79. recordalignmin : 0;
  80. recordalignmax : 16;
  81. maxCrecordalign : 4
  82. );
  83. first_parm_offset : 8;
  84. stacksize : 8*1024*1024;
  85. abi : abi_default
  86. );
  87. system_x86_6432_linux_info : tsysteminfo =
  88. (
  89. system : system_x86_6432_LINUX;
  90. name : 'Linux for x64_6432';
  91. shortname : 'Linux6432';
  92. flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
  93. tf_use_function_relative_addresses,tf_pic_uses_got{,tf_smartlink_sections},
  94. tf_smartlink_library,tf_has_winlike_resources];
  95. cpu : cpu_x86_64;
  96. unit_env : 'LINUXUNITS';
  97. extradefines : 'UNIX;HASUNIX';
  98. exeext : '';
  99. defext : '.def';
  100. scriptext : '.sh';
  101. smartext : '.sl';
  102. unitext : '.ppu';
  103. unitlibext : '.ppl';
  104. asmext : '.s';
  105. objext : '.o';
  106. resext : '.res';
  107. resobjext : '.or';
  108. sharedlibext : '.so';
  109. staticlibext : '.a';
  110. staticlibprefix : 'libp';
  111. sharedlibprefix : 'lib';
  112. sharedClibext : '.so';
  113. staticClibext : '.a';
  114. staticClibprefix : 'lib';
  115. sharedClibprefix : 'lib';
  116. Cprefix : '';
  117. newline : #10;
  118. dirsep : '/';
  119. assem : as_i386_elf32;
  120. assemextern : as_gas;
  121. link : nil;
  122. linkextern : nil;
  123. ar : ar_gnu_ar;
  124. res : res_elf;
  125. dbg : dbg_stabs;
  126. script : script_unix;
  127. endian : endian_little;
  128. alignment :
  129. (
  130. procalign : 16;
  131. loopalign : 4;
  132. jumpalign : 0;
  133. constalignmin : 0;
  134. constalignmax : 16;
  135. varalignmin : 0;
  136. varalignmax : 16;
  137. localalignmin : 4;
  138. localalignmax : 8;
  139. recordalignmin : 0;
  140. recordalignmax : 16;
  141. maxCrecordalign : 4
  142. );
  143. first_parm_offset : 8;
  144. stacksize : 8*1024*1024;
  145. abi : abi_default
  146. );
  147. system_m68k_linux_info : tsysteminfo =
  148. (
  149. system : system_m68k_linux;
  150. name : 'Linux for m68k';
  151. shortname : 'Linux';
  152. flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
  153. tf_use_function_relative_addresses,
  154. tf_smartlink_library,tf_has_winlike_resources];
  155. cpu : cpu_m68k;
  156. unit_env : 'LINUXUNITS';
  157. extradefines : 'UNIX;HASUNIX';
  158. exeext : '';
  159. defext : '';
  160. scriptext : '.sh';
  161. smartext : '.sl';
  162. unitext : '.ppu';
  163. unitlibext : '.ppl';
  164. asmext : '.s';
  165. objext : '.o';
  166. resext : '.res';
  167. resobjext : '.or';
  168. sharedlibext : '.so';
  169. staticlibext : '.a';
  170. staticlibprefix : 'libp';
  171. sharedlibprefix : 'lib';
  172. sharedClibext : '.so';
  173. staticClibext : '.a';
  174. staticClibprefix : 'lib';
  175. sharedClibprefix : 'lib';
  176. Cprefix : '';
  177. newline : #10;
  178. dirsep : '/';
  179. assem : as_gas;
  180. assemextern : as_gas;
  181. link : nil;
  182. linkextern : nil;
  183. ar : ar_gnu_ar;
  184. res : res_elf;
  185. dbg : dbg_stabs;
  186. script : script_unix;
  187. endian : endian_big;
  188. alignment :
  189. (
  190. procalign : 4;
  191. loopalign : 4;
  192. jumpalign : 0;
  193. constalignmin : 0;
  194. constalignmax : 4;
  195. varalignmin : 0;
  196. varalignmax : 4;
  197. localalignmin : 4;
  198. localalignmax : 4;
  199. recordalignmin : 0;
  200. recordalignmax : 2;
  201. maxCrecordalign : 4
  202. );
  203. first_parm_offset : 8;
  204. stacksize : 32*1024*1024;
  205. abi : abi_default
  206. );
  207. system_powerpc_linux_info : tsysteminfo =
  208. (
  209. system : system_powerpc_LINUX;
  210. name : 'Linux for PowerPC';
  211. shortname : 'Linux';
  212. flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
  213. tf_use_function_relative_addresses,
  214. tf_smartlink_library,tf_has_winlike_resources];
  215. cpu : cpu_powerpc;
  216. unit_env : '';
  217. extradefines : 'UNIX;HASUNIX';
  218. exeext : '';
  219. defext : '.def';
  220. scriptext : '.sh';
  221. smartext : '.sl';
  222. unitext : '.ppu';
  223. unitlibext : '.ppl';
  224. asmext : '.s';
  225. objext : '.o';
  226. resext : '.res';
  227. resobjext : '.or';
  228. sharedlibext : '.so';
  229. staticlibext : '.a';
  230. staticlibprefix : 'libp';
  231. sharedlibprefix : 'lib';
  232. sharedClibext : '.so';
  233. staticClibext : '.a';
  234. staticClibprefix : 'lib';
  235. sharedClibprefix : 'lib';
  236. Cprefix : '';
  237. newline : #10;
  238. dirsep : '/';
  239. assem : as_gas;
  240. assemextern : as_gas;
  241. link : nil;
  242. linkextern : nil;
  243. ar : ar_gnu_ar;
  244. res : res_elf;
  245. dbg : dbg_stabs;
  246. script : script_unix;
  247. endian : endian_big;
  248. alignment :
  249. (
  250. procalign : 4;
  251. loopalign : 4;
  252. jumpalign : 0;
  253. constalignmin : 0;
  254. constalignmax : 4;
  255. varalignmin : 0;
  256. varalignmax : 4;
  257. localalignmin : 4;
  258. localalignmax : 4;
  259. recordalignmin : 0;
  260. recordalignmax : 4;
  261. maxCrecordalign : 8
  262. );
  263. first_parm_offset : 8;
  264. stacksize : 32*1024*1024;
  265. abi : abi_powerpc_sysv;
  266. );
  267. system_powerpc64_linux_info : tsysteminfo =
  268. (
  269. system : system_powerpc64_LINUX;
  270. name : 'Linux for PowerPC64';
  271. shortname : 'Linux';
  272. flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
  273. tf_use_function_relative_addresses,
  274. tf_requires_proper_alignment,tf_smartlink_library,tf_has_winlike_resources];
  275. cpu : cpu_powerpc64;
  276. unit_env : '';
  277. extradefines : 'UNIX;HASUNIX';
  278. exeext : '';
  279. defext : '.def';
  280. scriptext : '.sh';
  281. smartext : '.sl';
  282. unitext : '.ppu';
  283. unitlibext : '.ppl';
  284. asmext : '.s';
  285. objext : '.o';
  286. resext : '.res';
  287. resobjext : '.or';
  288. sharedlibext : '.so';
  289. staticlibext : '.a';
  290. staticlibprefix : 'libp';
  291. sharedlibprefix : 'lib';
  292. sharedClibext : '.so';
  293. staticClibext : '.a';
  294. staticClibprefix : 'lib';
  295. sharedClibprefix : 'lib';
  296. Cprefix : '';
  297. newline : #10;
  298. dirsep : '/';
  299. assem : as_gas;
  300. assemextern : as_gas;
  301. link : nil;
  302. linkextern : nil;
  303. ar : ar_gnu_ar;
  304. res : res_elf;
  305. dbg : dbg_dwarf2;
  306. script : script_unix;
  307. endian : endian_big;
  308. alignment :
  309. (
  310. procalign : 8;
  311. loopalign : 4;
  312. jumpalign : 0;
  313. constalignmin : 4;
  314. constalignmax : 16;
  315. varalignmin : 4;
  316. varalignmax : 16;
  317. localalignmin : 0;
  318. localalignmax : 16;
  319. recordalignmin : 0;
  320. recordalignmax : 16;
  321. maxCrecordalign : 16
  322. );
  323. first_parm_offset : 8;
  324. stacksize : 10*1024*1024;
  325. abi : abi_powerpc_sysv
  326. );
  327. system_alpha_linux_info : tsysteminfo =
  328. (
  329. system : system_alpha_LINUX;
  330. name : 'Linux for Alpha';
  331. shortname : 'Linux';
  332. flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
  333. tf_use_function_relative_addresses,tf_smartlink_library,tf_has_winlike_resources];
  334. cpu : cpu_alpha;
  335. unit_env : 'LINUXUNITS';
  336. extradefines : 'UNIX;HASUNIX';
  337. exeext : '';
  338. defext : '.def';
  339. scriptext : '.sh';
  340. smartext : '.sl';
  341. unitext : '.ppu';
  342. unitlibext : '.ppl';
  343. asmext : '.s';
  344. objext : '.o';
  345. resext : '.res';
  346. resobjext : '.or';
  347. sharedlibext : '.so';
  348. staticlibext : '.a';
  349. staticlibprefix : 'libp';
  350. sharedlibprefix : 'lib';
  351. sharedClibext : '.so';
  352. staticClibext : '.a';
  353. staticClibprefix : 'lib';
  354. sharedClibprefix : 'lib';
  355. Cprefix : '';
  356. newline : #10;
  357. dirsep : '/';
  358. assem : as_gas;
  359. assemextern : as_gas;
  360. link : nil;
  361. linkextern : nil;
  362. ar : ar_gnu_ar;
  363. res : res_elf;
  364. dbg : dbg_stabs;
  365. script : script_unix;
  366. endian : endian_little;
  367. alignment :
  368. (
  369. procalign : 4;
  370. loopalign : 4;
  371. jumpalign : 0;
  372. constalignmin : 0;
  373. constalignmax : 4;
  374. varalignmin : 0;
  375. varalignmax : 4;
  376. localalignmin : 4;
  377. localalignmax : 4;
  378. recordalignmin : 0;
  379. recordalignmax : 2;
  380. maxCrecordalign : 4
  381. );
  382. first_parm_offset : 8;
  383. stacksize : 32*1024*1024;
  384. abi : abi_default
  385. );
  386. system_x86_64_linux_info : tsysteminfo =
  387. (
  388. system : system_x86_64_LINUX;
  389. name : 'Linux for x86-64';
  390. shortname : 'Linux';
  391. flags : [tf_needs_symbol_size,tf_needs_dwarf_cfi,tf_smartlink_library,
  392. tf_library_needs_pic,tf_needs_symbol_type,tf_files_case_sensitive,
  393. tf_use_function_relative_addresses,tf_has_winlike_resources];
  394. cpu : cpu_x86_64;
  395. unit_env : 'LINUXUNITS';
  396. extradefines : 'UNIX;HASUNIX';
  397. exeext : '';
  398. defext : '.def';
  399. scriptext : '.sh';
  400. smartext : '.sl';
  401. unitext : '.ppu';
  402. unitlibext : '.ppl';
  403. asmext : '.s';
  404. objext : '.o';
  405. resext : '.res';
  406. resobjext : '.or';
  407. sharedlibext : '.so';
  408. staticlibext : '.a';
  409. staticlibprefix : 'libp';
  410. sharedlibprefix : 'lib';
  411. sharedClibext : '.so';
  412. staticClibext : '.a';
  413. staticClibprefix : 'lib';
  414. sharedClibprefix : 'lib';
  415. Cprefix : '';
  416. newline : #10;
  417. dirsep : '/';
  418. assem : as_x86_64_elf64;
  419. assemextern : as_gas;
  420. link : nil;
  421. linkextern : nil;
  422. ar : ar_gnu_ar;
  423. res : res_elf;
  424. dbg : dbg_dwarf2;
  425. script : script_unix;
  426. endian : endian_little;
  427. alignment :
  428. (
  429. procalign : 8;
  430. loopalign : 4;
  431. jumpalign : 0;
  432. constalignmin : 0;
  433. constalignmax : 8;
  434. varalignmin : 0;
  435. varalignmax : 16;
  436. localalignmin : 4;
  437. localalignmax : 16;
  438. recordalignmin : 0;
  439. recordalignmax : 16;
  440. maxCrecordalign : 8
  441. );
  442. first_parm_offset : 16;
  443. stacksize : 8*1024*1024;
  444. abi : abi_default
  445. );
  446. system_sparc_linux_info : tsysteminfo =
  447. (
  448. system : system_SPARC_Linux;
  449. name : 'Linux for SPARC';
  450. shortname : 'Linux';
  451. flags : [tf_needs_symbol_size,tf_library_needs_pic,tf_smartlink_sections,
  452. tf_needs_symbol_type,tf_files_case_sensitive,tf_smartlink_library,
  453. tf_use_function_relative_addresses,tf_requires_proper_alignment,
  454. tf_has_winlike_resources];
  455. cpu : cpu_SPARC;
  456. unit_env : 'LINUXUNITS';
  457. extradefines : 'UNIX;HASUNIX';
  458. exeext : '';
  459. defext : '.def';
  460. scriptext : '.sh';
  461. smartext : '.sl';
  462. unitext : '.ppu';
  463. unitlibext : '.ppl';
  464. asmext : '.s';
  465. objext : '.o';
  466. resext : '.res';
  467. resobjext : '.or';
  468. sharedlibext : '.so';
  469. staticlibext : '.a';
  470. staticlibprefix : 'libp';
  471. sharedlibprefix : 'lib';
  472. sharedClibext : '.so';
  473. staticClibext : '.a';
  474. staticClibprefix : 'lib';
  475. sharedClibprefix : 'lib';
  476. Cprefix : '';
  477. newline : #10;
  478. dirsep : '/';
  479. assem : as_gas;
  480. assemextern : as_gas;
  481. link : nil;
  482. linkextern : nil;
  483. ar : ar_gnu_ar;
  484. res : res_elf;
  485. dbg : dbg_stabs;
  486. script : script_unix;
  487. endian : endian_big;
  488. alignment :
  489. (
  490. procalign : 4;
  491. loopalign : 4;
  492. jumpalign : 0;
  493. constalignmin : 4;
  494. constalignmax : 8;
  495. varalignmin : 4;
  496. varalignmax : 8;
  497. localalignmin : 4;
  498. localalignmax : 8;
  499. recordalignmin : 0;
  500. recordalignmax : 8;
  501. maxCrecordalign : 8
  502. );
  503. first_parm_offset : 92;
  504. stacksize : 8*1024*1024;
  505. abi : abi_default
  506. );
  507. {$ifdef FPC_ARMEL}
  508. system_arm_linux_info : tsysteminfo =
  509. (
  510. system : system_arm_Linux;
  511. name : 'Linux for ARMEL';
  512. shortname : 'Linux';
  513. flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
  514. tf_use_function_relative_addresses,tf_requires_proper_alignment,
  515. tf_smartlink_sections,tf_smartlink_library,tf_has_winlike_resources];
  516. cpu : cpu_arm;
  517. unit_env : 'LINUXUNITS';
  518. extradefines : 'UNIX;HASUNIX;CPUARMEL';
  519. exeext : '';
  520. defext : '.def';
  521. scriptext : '.sh';
  522. smartext : '.sl';
  523. unitext : '.ppu';
  524. unitlibext : '.ppl';
  525. asmext : '.s';
  526. objext : '.o';
  527. resext : '.res';
  528. resobjext : '.or';
  529. sharedlibext : '.so';
  530. staticlibext : '.a';
  531. staticlibprefix : 'libp';
  532. sharedlibprefix : 'lib';
  533. sharedClibext : '.so';
  534. staticClibext : '.a';
  535. staticClibprefix : 'lib';
  536. sharedClibprefix : 'lib';
  537. Cprefix : '';
  538. newline : #10;
  539. dirsep : '/';
  540. assem : as_gas;
  541. assemextern : as_gas;
  542. link : nil;
  543. linkextern : nil;
  544. ar : ar_gnu_ar;
  545. res : res_elf;
  546. dbg : dbg_stabs;
  547. script : script_unix;
  548. endian : endian_little;
  549. alignment :
  550. (
  551. procalign : 4;
  552. loopalign : 4;
  553. jumpalign : 0;
  554. constalignmin : 0;
  555. constalignmax : 8;
  556. varalignmin : 0;
  557. varalignmax : 8;
  558. localalignmin : 4;
  559. localalignmax : 8;
  560. recordalignmin : 0;
  561. recordalignmax : 8;
  562. maxCrecordalign : 8
  563. );
  564. first_parm_offset : 8;
  565. stacksize : 8*1024*1024;
  566. abi : abi_eabi
  567. );
  568. {$else FPC_ARMEL}
  569. system_arm_linux_info : tsysteminfo =
  570. (
  571. system : system_arm_Linux;
  572. name : 'Linux for ARM';
  573. shortname : 'Linux';
  574. flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
  575. tf_use_function_relative_addresses,tf_requires_proper_alignment,
  576. tf_smartlink_sections,tf_smartlink_library,tf_has_winlike_resources];
  577. cpu : cpu_arm;
  578. unit_env : 'LINUXUNITS';
  579. extradefines : 'UNIX;HASUNIX';
  580. exeext : '';
  581. defext : '.def';
  582. scriptext : '.sh';
  583. smartext : '.sl';
  584. unitext : '.ppu';
  585. unitlibext : '.ppl';
  586. asmext : '.s';
  587. objext : '.o';
  588. resext : '.res';
  589. resobjext : '.or';
  590. sharedlibext : '.so';
  591. staticlibext : '.a';
  592. staticlibprefix : 'libp';
  593. sharedlibprefix : 'lib';
  594. sharedClibext : '.so';
  595. staticClibext : '.a';
  596. staticClibprefix : 'lib';
  597. sharedClibprefix : 'lib';
  598. Cprefix : '';
  599. newline : #10;
  600. dirsep : '/';
  601. assem : as_gas;
  602. assemextern : as_gas;
  603. link : nil;
  604. linkextern : nil;
  605. ar : ar_gnu_ar;
  606. res : res_elf;
  607. dbg : dbg_stabs;
  608. script : script_unix;
  609. endian : endian_little;
  610. alignment :
  611. (
  612. procalign : 4;
  613. loopalign : 4;
  614. jumpalign : 0;
  615. constalignmin : 0;
  616. constalignmax : 4;
  617. varalignmin : 0;
  618. varalignmax : 4;
  619. localalignmin : 4;
  620. localalignmax : 8;
  621. recordalignmin : 0;
  622. recordalignmax : 4;
  623. maxCrecordalign : 4
  624. );
  625. first_parm_offset : 8;
  626. stacksize : 8*1024*1024;
  627. abi : abi_default
  628. );
  629. {$endif FPC_ARMEL}
  630. implementation
  631. initialization
  632. {$ifdef CPU86}
  633. {$ifdef linux}
  634. { some FreeBSD versions define linux as well }
  635. {$ifndef FreeBSD}
  636. set_source_info(system_i386_linux_info);
  637. {$endif FreeBSD}
  638. {$endif}
  639. {$endif CPU86}
  640. {$ifdef CPU68}
  641. {$ifdef linux}
  642. set_source_info(system_m68k_linux_info);
  643. {$endif linux}
  644. {$endif CPU68}
  645. {$ifdef CPUX86_64}
  646. {$ifdef linux}
  647. set_source_info(system_x86_64_linux_info);
  648. {$endif linux}
  649. {$endif CPUX86_64}
  650. {$ifdef CPUALPHA}
  651. {$ifdef linux}
  652. set_source_info(system_alpha_linux_info);
  653. {$endif linux}
  654. {$endif CPUALPHA}
  655. {$ifdef CPUSPARC}
  656. {$ifdef linux}
  657. set_source_info(system_sparc_linux_info);
  658. {$endif linux}
  659. {$endif CPUSPARC}
  660. {$ifdef CPUPOWERPC32}
  661. {$ifdef linux}
  662. set_source_info(system_powerpc_linux_info);
  663. {$endif linux}
  664. {$endif CPUPOWERPC32}
  665. {$ifdef CPUPOWERPC64}
  666. {$ifdef linux}
  667. set_source_info(system_powerpc64_linux_info);
  668. {$endif linux}
  669. {$endif CPUPOWERPC64}
  670. {$ifdef CPUARM}
  671. {$ifdef linux}
  672. set_source_info(system_arm_linux_info);
  673. {$endif linux}
  674. {$endif CPUARM}
  675. end.