mirror of
https://github.com/golang/go
synced 2024-11-20 10:04:45 -07:00
041fc8bf96
This is the first part of a bigger change that adds data race detection feature: https://golang.org/cl/6456044 This change makes gc compiler instrument memory accesses when supplied with -b flag. R=rsc, nigeltao, lvd CC=golang-dev https://golang.org/cl/6497074
65 lines
2.2 KiB
Go
65 lines
2.2 KiB
Go
// Copyright 2009 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
/*
|
|
|
|
Gc is the generic label for the family of Go compilers
|
|
that function as part of the (modified) Plan 9 tool chain. The C compiler
|
|
documentation at
|
|
|
|
http://plan9.bell-labs.com/sys/doc/comp.pdf (Tools overview)
|
|
http://plan9.bell-labs.com/sys/doc/compiler.pdf (C compiler architecture)
|
|
|
|
gives the overall design of the tool chain. Aside from a few adapted pieces,
|
|
such as the optimizer, the Go compilers are wholly new programs.
|
|
|
|
The compiler reads in a set of Go files, typically suffixed ".go". They
|
|
must all be part of one package. The output is a single intermediate file
|
|
representing the "binary assembly" of the compiled package, ready as input
|
|
for the linker (6l, etc.).
|
|
|
|
The generated files contain type information about the symbols exported by
|
|
the package and about types used by symbols imported by the package from
|
|
other packages. It is therefore not necessary when compiling client C of
|
|
package P to read the files of P's dependencies, only the compiled output
|
|
of P.
|
|
|
|
Usage:
|
|
go tool 6g [flags] file...
|
|
The specified files must be Go source files and all part of the same package.
|
|
Substitute 6g with 8g or 5g where appropriate.
|
|
|
|
Flags:
|
|
-o file
|
|
output file, default file.6 for 6g, etc.
|
|
-e
|
|
normally the compiler quits after 10 errors; -e prints all errors
|
|
-p path
|
|
assume that path is the eventual import path for this code,
|
|
and diagnose any attempt to import a package that depends on it.
|
|
-D path
|
|
treat a relative import as relative to path
|
|
-L
|
|
show entire file path when printing line numbers in errors
|
|
-I dir1 -I dir2
|
|
add dir1 and dir2 to the list of paths to check for imported packages
|
|
-N
|
|
disable optimizations
|
|
-S
|
|
write assembly language text to standard output (code only)
|
|
-SS
|
|
write assembly language text to standard output (code and data)
|
|
-u
|
|
disallow importing packages not marked as safe
|
|
-V
|
|
print the compiler version
|
|
-b
|
|
compile with race detection enabled
|
|
|
|
There are also a number of debugging flags; run the command with no arguments
|
|
to get a usage message.
|
|
|
|
*/
|
|
package documentation
|