blob: ec1224e20d8fa9d861214160fda5b71d92fe324d [file] [log] [blame]
Stefan Reinauer0bece042006-09-21 13:09:22 +00001.TH ROMCC 1 "September 19, 2006"
Stefan Reinauer94b17c62006-09-08 17:44:42 +00002.SH NAME
3romcc \- compile C programs into binaries that don't use any RAM
4.SH SYNOPSIS
5.B romcc
Stefan Reinauer0bece042006-09-21 13:09:22 +00006[OPTIONS]
7<source>.c
Stefan Reinauer94b17c62006-09-08 17:44:42 +00008.SH DESCRIPTION
9.B romcc
10is a C compiler which produces binaries which do not rely on RAM, but
11instead only use CPU registers.
Stefan Reinauer0bece042006-09-21 13:09:22 +000012.PP
Stefan Reinauerf8ee1802008-01-18 15:08:58 +000013It is prominently used in the coreboot project to compile C code which
14needs to run before the firmware has initialized the RAM, but can be
Stefan Reinauer94b17c62006-09-08 17:44:42 +000015used for other purposes, too.
16.SH OPTIONS
Stefan Reinauer0bece042006-09-21 13:09:22 +000017.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000018.B "\-o" <filename>
19Output file name.
Stefan Reinauer0bece042006-09-21 13:09:22 +000020.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000021.B "\-f<option>"
22Specify a generic compiler option.
Stefan Reinauer0bece042006-09-21 13:09:22 +000023.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000024.B "\-m<option>"
25Specify an architecture-dependent compiler option.
Stefan Reinauer0bece042006-09-21 13:09:22 +000026.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000027.B "\-\-"
28Specify that this is the last option.
Stefan Reinauer94b17c62006-09-08 17:44:42 +000029.SH "GENERIC COMPILER OPTIONS"
30.B "\-O"
Stefan Reinauer0bece042006-09-21 13:09:22 +000031.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000032.B "\-O2"
Stefan Reinauer0bece042006-09-21 13:09:22 +000033.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000034.B "\-E"
Stefan Reinauer0bece042006-09-21 13:09:22 +000035.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000036.B "\-ftrigraphs"
Stefan Reinauer0bece042006-09-21 13:09:22 +000037.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000038.B "\-fno-trigraphs"
Stefan Reinauer0bece042006-09-21 13:09:22 +000039.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000040.B "\-fpp-only"
Stefan Reinauer0bece042006-09-21 13:09:22 +000041.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000042.B "\-fno-pp-only"
Stefan Reinauer0bece042006-09-21 13:09:22 +000043.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000044.B "\-feliminate-inefectual-code"
Stefan Reinauer0bece042006-09-21 13:09:22 +000045.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000046.B "\-fno-eliminate-inefectual-code"
Stefan Reinauer0bece042006-09-21 13:09:22 +000047.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000048.B "\-fsimplify"
Stefan Reinauer0bece042006-09-21 13:09:22 +000049.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000050.B "\-fno-simplify"
Stefan Reinauer0bece042006-09-21 13:09:22 +000051.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000052.B "\-fscc-transform"
Stefan Reinauer0bece042006-09-21 13:09:22 +000053.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000054.B "\-fno-scc-transform"
Stefan Reinauer0bece042006-09-21 13:09:22 +000055.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000056.B "\-fsimplify-op"
Stefan Reinauer0bece042006-09-21 13:09:22 +000057.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000058.B "\-fno-simplify-op"
Stefan Reinauer0bece042006-09-21 13:09:22 +000059.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000060.B "\-fsimplify-phi"
Stefan Reinauer0bece042006-09-21 13:09:22 +000061.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000062.B "\-fno-simplify-phi"
Stefan Reinauer0bece042006-09-21 13:09:22 +000063.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000064.B "\-fsimplify-label"
Stefan Reinauer0bece042006-09-21 13:09:22 +000065.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000066.B "\-fno-simplify-label"
Stefan Reinauer0bece042006-09-21 13:09:22 +000067.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000068.B "\-fsimplify-branch"
Stefan Reinauer0bece042006-09-21 13:09:22 +000069.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000070.B "\-fno-simplify-branch"
Stefan Reinauer0bece042006-09-21 13:09:22 +000071.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000072.B "\-fsimplify-copy"
Stefan Reinauer0bece042006-09-21 13:09:22 +000073.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000074.B "\-fno-simplify-copy"
Stefan Reinauer0bece042006-09-21 13:09:22 +000075.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000076.B "\-fsimplify-arith"
Stefan Reinauer0bece042006-09-21 13:09:22 +000077.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000078.B "\-fno-simplify-arith"
Stefan Reinauer0bece042006-09-21 13:09:22 +000079.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000080.B "\-fsimplify-shift"
Stefan Reinauer0bece042006-09-21 13:09:22 +000081.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000082.B "\-fno-simplify-shift"
Stefan Reinauer0bece042006-09-21 13:09:22 +000083.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000084.B "\-fsimplify-bitwise"
Stefan Reinauer0bece042006-09-21 13:09:22 +000085.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000086.B "\-fno-simplify-bitwise"
Stefan Reinauer0bece042006-09-21 13:09:22 +000087.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000088.B "\-fsimplify-logical"
Stefan Reinauer0bece042006-09-21 13:09:22 +000089.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000090.B "\-fno-simplify-logical"
Stefan Reinauer0bece042006-09-21 13:09:22 +000091.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000092.B "\-fsimplify-bitfield"
Stefan Reinauer0bece042006-09-21 13:09:22 +000093.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000094.B "\-fno-simplify-bitfield"
Stefan Reinauer0bece042006-09-21 13:09:22 +000095.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000096.B "\-finline-policy=always"
Stefan Reinauer0bece042006-09-21 13:09:22 +000097.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +000098.B "\-finline-policy=never"
Stefan Reinauer0bece042006-09-21 13:09:22 +000099.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000100.B "\-finline-policy=defaulton"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000101.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000102.B "\-finline-policy=defaultoff"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000103.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000104.B "\-finline-policy=nopenalty"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000105.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000106.B "\-fdebug-all"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000107.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000108.B "\-fno-debug-all"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000109.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000110.B "\-fdebug-abort-on-error"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000111.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000112.B "\-fno-debug-abort-on-error"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000113.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000114.B "\-fdebug-basic-blocks"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000115.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000116.B "\-fno-debug-basic-blocks"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000117.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000118.B "\-fdebug-fdominators"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000119.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000120.B "\-fno-debug-fdominators"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000121.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000122.B "\-fdebug-rdominators"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000123.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000124.B "\-fno-debug-rdominators"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000125.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000126.B "\-fdebug-triples"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000127.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000128.B "\-fno-debug-triples"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000129.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000130.B "\-fdebug-interference"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000131.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000132.B "\-fno-debug-interference"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000133.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000134.B "\-fdebug-scc-transform"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000135.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000136.B "\-fno-debug-scc-transform"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000137.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000138.B "\-fdebug-scc-transform2"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000139.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000140.B "\-fno-debug-scc-transform2"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000141.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000142.B "\-fdebug-rebuild-ssa-form"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000143.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000144.B "\-fno-debug-rebuild-ssa-form"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000145.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000146.B "\-fdebug-inline"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000147.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000148.B "\-fno-debug-inline"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000149.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000150.B "\-fdebug-live-range-conflicts"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000151.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000152.B "\-fno-debug-live-range-conflicts"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000153.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000154.B "\-fdebug-live-range-conflicts2"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000155.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000156.B "\-fno-debug-live-range-conflicts2"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000157.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000158.B "\-fdebug-color-graph"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000159.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000160.B "\-fno-debug-color-graph"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000161.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000162.B "\-fdebug-color-graph2"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000163.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000164.B "\-fno-debug-color-graph2"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000165.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000166.B "\-fdebug-coalescing"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000167.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000168.B "\-fno-debug-coalescing"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000169.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000170.B "\-fdebug-coalescing2"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000171.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000172.B "\-fno-debug-coalescing2"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000173.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000174.B "\-fdebug-verification"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000175.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000176.B "\-fno-debug-verification"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000177.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000178.B "\-fdebug-calls"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000179.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000180.B "\-fno-debug-calls"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000181.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000182.B "\-fdebug-calls2"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000183.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000184.B "\-fno-debug-calls2"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000185.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000186.B "\-fdebug-tokens"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000187.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000188.B "\-fno-debug-tokens"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000189.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000190.B "\-flabel-prefix=<prefix for assembly language labels>"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000191.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000192.B "\-\-label-prefix=<prefix for assembly language labels>"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000193.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000194.B "\-I<include path>"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000195.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000196.B "\-D<macro>[=defn]"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000197.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000198.B "\-U<macro>"
199.SH "ARCHITECTURE-SPECIFIC COMPILER OPTIONS"
200.B "\-mmmx"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000201.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000202.B "\-mno-mmx"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000203.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000204.B "\-msse"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000205.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000206.B "\-mno-sse"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000207.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000208.B "\-mnoop-copy"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000209.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000210.B "\-mno-noop-copy"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000211.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000212.B "\-mcpu=i386"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000213.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000214.B "\-mcpu=p2"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000215.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000216.B "\-mcpu=p3"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000217.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000218.B "\-mcpu=p4"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000219.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000220.B "\-mcpu=k7"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000221.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000222.B "\-mcpu=k8"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000223.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000224.B "\-mcpu=c3"
Stefan Reinauer0bece042006-09-21 13:09:22 +0000225.TP
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000226.B "\-mcpu=c3-2"
227.SH BUGS
228Please report any bugs to Eric W. Biederman <ebiederman@lnxi.com>.
229.SH LICENCE
230.B romcc
231is covered by the GNU General Public License (GPL), version 2.
232.SH SEE ALSO
Stefan Reinauer0bece042006-09-21 13:09:22 +0000233.BR flashrom (1),
234.BR abuild (1).
Stefan Reinauer94b17c62006-09-08 17:44:42 +0000235.SH COPYRIGHT
2362003-2006 Eric W. Biederman
237.SH AUTHORS
238Eric W. Biederman <ebiederman@lnxi.com>
239.br
240Some contributions by others.
241.PP
242This manual page was written by Uwe Hermann <uwe@hermann-uwe.de>.
Stefan Reinauer0bece042006-09-21 13:09:22 +0000243It is licensed under the terms of the GNU GPL (v2 or later).