Provided by: gccgo-7_7.5.0-6ubuntu2_amd64 bug

NAME

       gccgo - A GCC-based compiler for the Go language

SYNOPSIS

       gccgo [-c|-S]
             [-g] [-pg] [-Olevel]
             [-Idir...] [-Ldir...]
             [-o outfile] infile...

       Only the most useful options are listed here; see below for the remainder.

DESCRIPTION

       The gccgo command is a frontend to gcc and supports many of the same options.    This manual only
       documents the options specific to gccgo.

       The gccgo 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.

       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 gccgo.  A
       single invocation of gccgo may only compile a single package.

       One Go package may "import" a different Go package.  The imported package must have already been
       compiled; gccgo 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.

       Go programs must generally be compiled with debugging information, and -g1 is the default as described
       below.  Stripping a Go program will generally cause it to misbehave or fail.

OPTIONS

       -Idir
           Specify a directory to use when searching for an import package at compile time.

       -Ldir
           When linking, specify a library search directory, as with gcc.

       -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 -I option.

       -fgo-prefix=string
           An alternative to -fgo-pkgpath.  The argument will be combined with the package name from the  source
           file to produce the package path.  If -fgo-pkgpath is used, -fgo-prefix will be ignored.

           Go  permits  a  single  program  to include more than one package with the same name in the "package"
           clause in the source file, though obviously  the  two  packages  must  be  imported  using  different
           pathnames.   In  order  for  this  to  work  with  gccgo,  either -fgo-pkgpath or -fgo-prefix must be
           specified when compiling a package.

           Using either -fgo-pkgpath or -fgo-prefix disables the special treatment of  the  "main"  package  and
           permits that package to be imported like any other.

       -fgo-relative-import-path=dir
           A  relative  import  is an import that starts with ./ or ../.  If this option is used, gccgo will use
           dir as a prefix for the relative import when searching for it.

       -frequire-return-statement
       -fno-require-return-statement
           By default gccgo will warn about functions which have one or  more  return  parameters  but  lack  an
           explicit "return" statement.  This warning may be disabled using -fno-require-return-statement.

       -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 "SIGFPE" signal.  Some processors,  such
           as  PowerPC,  do  not  generate a SIGFPE 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
           -fno-go-check-divide-zero.   This  option is currently on by default, but in the future may be off by
           default on systems that do not require it.

       -fgo-check-divide-overflow
           Add explicit checks for division overflow.  For example,  division  overflow  occurs  when  computing
           "INT_MIN  /  -1".  In Go this should be wrapped, to produce "INT_MIN".  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  -fno-go-check-divide-overflow.   This option is currently on by default, but in the
           future may be off by default on systems that do not require it.

       -fgo-optimize-allocs
           Use escape analysis to allocate objects on the stack rather than the  heap  when  possible.   In  the
           future this may be the default.

       -fgo-debug-escapen
           Output escape analysis debugging information.  Larger values of n generate more information.

       -fgo-c-header=file
           Write  top-level  named  Go  struct  definitions  to file as C code.  This is used when compiling the
           runtime package.

       -fgo-compiling-runtime
           Apply special rules for compiling the runtime package.   Implicit  memory  allocation  is  forbidden.
           Some additional compiler directives are supported.

       -g  This  is  the  standard gcc option.  It is mentioned here because by default gccgo turns on debugging
           information generation with the equivalent of the standard option -g1.  This is because  Go  programs
           require debugging information to be available in order to get backtrace information.  An explicit -g0
           may  be  used  to  disable  the  generation  of debugging information, in which case certain standard
           library functions, such as "runtime.Callers", will not operate correctly.

SEE ALSO

       gpl(7), gfdl(7), fsf-funding(7), gcc(1) and the Info entries for gccgo and gcc.

COPYRIGHT

       Copyright (c) 2010-2017 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document under the terms  of  the  GNU  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 gfdl(7).

       (a) The FSF's Front-Cover Text is:

            A GNU Manual

       (b) The FSF's Back-Cover Text is:

            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.

gcc-7                                              2019-11-14                                           GCCGO(1)