| .\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) |
| .\" |
| .\" Standard preamble: |
| .\" ======================================================================== |
| .de Sp \" Vertical space (when we can't use .PP) |
| .if t .sp .5v |
| .if n .sp |
| .. |
| .de Vb \" Begin verbatim text |
| .ft CW |
| .nf |
| .ne \\$1 |
| .. |
| .de Ve \" End verbatim text |
| .ft R |
| .fi |
| .. |
| .\" Set up some character translations and predefined strings. \*(-- will |
| .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left |
| .\" double quote, and \*(R" will give a right double quote. \*(C+ will |
| .\" give a nicer C++. Capital omega is used to do unbreakable dashes and |
| .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, |
| .\" nothing in troff, for use with C<>. |
| .tr \(*W- |
| .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' |
| .ie n \{\ |
| . ds -- \(*W- |
| . ds PI pi |
| . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch |
| . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch |
| . ds L" "" |
| . ds R" "" |
| . ds C` "" |
| . ds C' "" |
| 'br\} |
| .el\{\ |
| . ds -- \|\(em\| |
| . ds PI \(*p |
| . ds L" `` |
| . ds R" '' |
| . ds C` |
| . ds C' |
| 'br\} |
| .\" |
| .\" Escape single quotes in literal strings from groff's Unicode transform. |
| .ie \n(.g .ds Aq \(aq |
| .el .ds Aq ' |
| .\" |
| .\" If the F register is turned on, we'll generate index entries on stderr for |
| .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index |
| .\" entries marked with X<> in POD. Of course, you'll have to process the |
| .\" output yourself in some meaningful fashion. |
| .\" |
| .\" Avoid warning from groff about undefined register 'F'. |
| .de IX |
| .. |
| .nr rF 0 |
| .if \n(.g .if rF .nr rF 1 |
| .if (\n(rF:(\n(.g==0)) \{ |
| . if \nF \{ |
| . de IX |
| . tm Index:\\$1\t\\n%\t"\\$2" |
| .. |
| . if !\nF==2 \{ |
| . nr % 0 |
| . nr F 2 |
| . \} |
| . \} |
| .\} |
| .rr rF |
| .\" |
| .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). |
| .\" Fear. Run. Save yourself. No user-serviceable parts. |
| . \" fudge factors for nroff and troff |
| .if n \{\ |
| . ds #H 0 |
| . ds #V .8m |
| . ds #F .3m |
| . ds #[ \f1 |
| . ds #] \fP |
| .\} |
| .if t \{\ |
| . ds #H ((1u-(\\\\n(.fu%2u))*.13m) |
| . ds #V .6m |
| . ds #F 0 |
| . ds #[ \& |
| . ds #] \& |
| .\} |
| . \" simple accents for nroff and troff |
| .if n \{\ |
| . ds ' \& |
| . ds ` \& |
| . ds ^ \& |
| . ds , \& |
| . ds ~ ~ |
| . ds / |
| .\} |
| .if t \{\ |
| . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" |
| . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' |
| . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' |
| . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' |
| . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' |
| . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' |
| .\} |
| . \" troff and (daisy-wheel) nroff accents |
| .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' |
| .ds 8 \h'\*(#H'\(*b\h'-\*(#H' |
| .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] |
| .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' |
| .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' |
| .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] |
| .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] |
| .ds ae a\h'-(\w'a'u*4/10)'e |
| .ds Ae A\h'-(\w'A'u*4/10)'E |
| . \" corrections for vroff |
| .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' |
| .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' |
| . \" for low resolution devices (crt and lpr) |
| .if \n(.H>23 .if \n(.V>19 \ |
| \{\ |
| . ds : e |
| . ds 8 ss |
| . ds o a |
| . ds d- d\h'-1'\(ga |
| . ds D- D\h'-1'\(hy |
| . ds th \o'bp' |
| . ds Th \o'LP' |
| . ds ae ae |
| . ds Ae AE |
| .\} |
| .rm #[ #] #H #V #F C |
| .\" ======================================================================== |
| .\" |
| .IX Title "GCCGO 1" |
| .TH GCCGO 1 "2015-12-04" "gcc-5.3.0" "GNU" |
| .\" For nroff, turn off justification. Always turn off hyphenation; it makes |
| .\" way too many mistakes in technical documents. |
| .if n .ad l |
| .nh |
| .SH "NAME" |
| gccgo \- A GCC\-based compiler for the Go language |
| .SH "SYNOPSIS" |
| .IX Header "SYNOPSIS" |
| gccgo [\fB\-c\fR|\fB\-S\fR] |
| [\fB\-g\fR] [\fB\-pg\fR] [\fB\-O\fR\fIlevel\fR] |
| [\fB\-I\fR\fIdir\fR...] [\fB\-L\fR\fIdir\fR...] |
| [\fB\-o\fR \fIoutfile\fR] \fIinfile\fR... |
| .PP |
| Only the most useful options are listed here; see below for the |
| remainder. |
| .SH "DESCRIPTION" |
| .IX Header "DESCRIPTION" |
| The \fBgccgo\fR command is a frontend to \fBgcc\fR and |
| supports many of the same options. This manual |
| only documents the options specific to \fBgccgo\fR. |
| .PP |
| The \fBgccgo\fR command may be used to compile Go source code into |
| an object file, link a collection of object files together, or do both |
| in sequence. |
| .PP |
| Go source code is compiled as packages. A package consists of one or |
| more Go source files. All the files in a single package must be |
| compiled together, by passing all the files as arguments to |
| \&\fBgccgo\fR. A single invocation of \fBgccgo\fR may only |
| compile a single package. |
| .PP |
| One Go package may \f(CW\*(C`import\*(C'\fR a different Go package. The imported |
| package must have already been compiled; \fBgccgo\fR will read |
| the import data directly from the compiled package. When this package |
| is later linked, the compiled form of the package must be included in |
| the link command. |
| .PP |
| Go programs must generally be compiled with debugging information, and |
| \&\fB\-g1\fR is the default as described below. Stripping a Go |
| program will generally cause it to misbehave or fail. |
| .SH "OPTIONS" |
| .IX Header "OPTIONS" |
| .IP "\fB\-I\fR\fIdir\fR" 4 |
| .IX Item "-Idir" |
| Specify a directory to use when searching for an import package at |
| compile time. |
| .IP "\fB\-L\fR\fIdir\fR" 4 |
| .IX Item "-Ldir" |
| When linking, specify a library search directory, as with |
| \&\fBgcc\fR. |
| .IP "\fB\-fgo\-pkgpath=\fR\fIstring\fR" 4 |
| .IX Item "-fgo-pkgpath=string" |
| Set the package path to use. This sets the value returned by the |
| PkgPath method of reflect.Type objects. It is also used for the names |
| of globally visible symbols. The argument to this option should |
| normally be the string that will be used to import this package after |
| it has been installed; in other words, a pathname within the |
| directories specified by the \fB\-I\fR option. |
| .IP "\fB\-fgo\-prefix=\fR\fIstring\fR" 4 |
| .IX Item "-fgo-prefix=string" |
| An alternative to \fB\-fgo\-pkgpath\fR. The argument will be |
| combined with the package name from the source file to produce the |
| package path. If \fB\-fgo\-pkgpath\fR is used, \fB\-fgo\-prefix\fR |
| will be ignored. |
| .Sp |
| Go permits a single program to include more than one package with the |
| same name in the \f(CW\*(C`package\*(C'\fR clause in the source file, though |
| obviously the two packages must be imported using different pathnames. |
| In order for this to work with \fBgccgo\fR, either |
| \&\fB\-fgo\-pkgpath\fR or \fB\-fgo\-prefix\fR must be specified when |
| compiling a package. |
| .Sp |
| Using either \fB\-fgo\-pkgpath\fR or \fB\-fgo\-prefix\fR disables |
| the special treatment of the \f(CW\*(C`main\*(C'\fR package and permits that |
| package to be imported like any other. |
| .IP "\fB\-fgo\-relative\-import\-path=\fR\fIdir\fR" 4 |
| .IX Item "-fgo-relative-import-path=dir" |
| A relative import is an import that starts with \fI./\fR or |
| \&\fI../\fR. If this option is used, \fBgccgo\fR will use |
| \&\fIdir\fR as a prefix for the relative import when searching for it. |
| .IP "\fB\-frequire\-return\-statement\fR" 4 |
| .IX Item "-frequire-return-statement" |
| .PD 0 |
| .IP "\fB\-fno\-require\-return\-statement\fR" 4 |
| .IX Item "-fno-require-return-statement" |
| .PD |
| By default \fBgccgo\fR will warn about functions which have one or |
| more return parameters but lack an explicit \f(CW\*(C`return\*(C'\fR statement. |
| This warning may be disabled using |
| \&\fB\-fno\-require\-return\-statement\fR. |
| .IP "\fB\-fgo\-check\-divide\-zero\fR" 4 |
| .IX Item "-fgo-check-divide-zero" |
| Add explicit checks for division by zero. In Go a division (or |
| modulos) by zero causes a panic. On Unix systems this is detected in |
| the runtime by catching the \f(CW\*(C`SIGFPE\*(C'\fR signal. Some processors, |
| such as PowerPC, do not generate a \s-1SIGFPE\s0 on division by zero. Some |
| runtimes do not generate a signal that can be caught. On those |
| systems, this option may be used. Or the checks may be removed via |
| \&\fB\-fno\-go\-check\-divide\-zero\fR. This option is currently on by |
| default, but in the future may be off by default on systems that do |
| not require it. |
| .IP "\fB\-fgo\-check\-divide\-overflow\fR" 4 |
| .IX Item "-fgo-check-divide-overflow" |
| Add explicit checks for division overflow. For example, division |
| overflow occurs when computing \f(CW\*(C`INT_MIN / \-1\*(C'\fR. In Go this should |
| be wrapped, to produce \f(CW\*(C`INT_MIN\*(C'\fR. Some processors, such as x86, |
| generate a trap on division overflow. On those systems, this option |
| may be used. Or the checks may be removed via |
| \&\fB\-fno\-go\-check\-divide\-overflow\fR. This option is currently on |
| by default, but in the future may be off by default on systems that do |
| not require it. |
| .IP "\fB\-g\fR" 4 |
| .IX Item "-g" |
| This is the standard \fBgcc\fR option. It |
| is mentioned here because by default \fBgccgo\fR turns on |
| debugging information generation with the equivalent of the standard |
| option \fB\-g1\fR. This is because Go programs require debugging |
| information to be available in order to get backtrace information. An |
| explicit \fB\-g0\fR may be used to disable the generation of |
| debugging information, in which case certain standard library |
| functions, such as \f(CW\*(C`runtime.Callers\*(C'\fR, will not operate correctly. |
| .SH "SEE ALSO" |
| .IX Header "SEE ALSO" |
| \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7), \fIgcc\fR\|(1) |
| and the Info entries for \fIgccgo\fR and \fIgcc\fR. |
| .SH "COPYRIGHT" |
| .IX Header "COPYRIGHT" |
| Copyright (c) 2010\-2015 Free Software Foundation, Inc. |
| .PP |
| Permission is granted to copy, distribute and/or modify this document |
| under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3 or |
| any later version published by the Free Software Foundation; with no |
| Invariant Sections, the Front-Cover Texts being (a) (see below), and |
| with the Back-Cover Texts being (b) (see below). |
| A copy of the license is included in the |
| man page \fIgfdl\fR\|(7). |
| .PP |
| (a) The \s-1FSF\s0's Front-Cover Text is: |
| .PP |
| .Vb 1 |
| \& A GNU Manual |
| .Ve |
| .PP |
| (b) The \s-1FSF\s0's Back-Cover Text is: |
| .PP |
| .Vb 3 |
| \& You have freedom to copy and modify this GNU Manual, like GNU |
| \& software. Copies published by the Free Software Foundation raise |
| \& funds for GNU development. |
| .Ve |