1
0
mirror of https://github.com/golang/go synced 2024-11-21 15:04:44 -07:00

race: linker changes

This is the second part of a bigger change that adds data race detection feature:
https://golang.org/cl/6456044
This change makes the linker emit dependency on runtime/race package when supplied with -b flag.

R=rsc, minux.ma
CC=golang-dev
https://golang.org/cl/6488074
This commit is contained in:
Dmitriy Vyukov 2012-09-19 01:05:25 +04:00
parent a29f3136b4
commit cc8cfefd8a
2 changed files with 10 additions and 1 deletions

View File

@ -56,5 +56,7 @@ Options new in this version:
Set the value of an otherwise uninitialized string variable.
The symbol name should be of the form importpath.name,
as displayed in the symbol table printed by "go tool nm".
-b
Link with race detection libraries.
*/
package documentation

View File

@ -72,6 +72,8 @@ Lflag(char *arg)
void
libinit(void)
{
char *race;
fmtinstall('i', iconv);
fmtinstall('Y', Yconv);
fmtinstall('Z', Zconv);
@ -80,7 +82,10 @@ libinit(void)
print("goarch is not known: %s\n", goarch);
// add goroot to the end of the libdir list.
Lflag(smprint("%s/pkg/%s_%s", goroot, goos, goarch));
race = "";
if(debug['b'])
race = "_race";
Lflag(smprint("%s/pkg/%s_%s%s", goroot, goos, goarch, race));
// Unix doesn't like it when we write to a running (or, sometimes,
// recently run) binary, so remove the output file before writing it.
@ -281,6 +286,8 @@ loadlib(void)
loadinternal("runtime");
if(thechar == '5')
loadinternal("math");
if(debug['b'])
loadinternal("runtime/race");
for(i=0; i<libraryp; i++) {
if(debug['v'])