mirror of
https://github.com/golang/go
synced 2024-11-22 02:04:40 -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:
parent
a29f3136b4
commit
cc8cfefd8a
@ -56,5 +56,7 @@ Options new in this version:
|
|||||||
Set the value of an otherwise uninitialized string variable.
|
Set the value of an otherwise uninitialized string variable.
|
||||||
The symbol name should be of the form importpath.name,
|
The symbol name should be of the form importpath.name,
|
||||||
as displayed in the symbol table printed by "go tool nm".
|
as displayed in the symbol table printed by "go tool nm".
|
||||||
|
-b
|
||||||
|
Link with race detection libraries.
|
||||||
*/
|
*/
|
||||||
package documentation
|
package documentation
|
||||||
|
@ -72,6 +72,8 @@ Lflag(char *arg)
|
|||||||
void
|
void
|
||||||
libinit(void)
|
libinit(void)
|
||||||
{
|
{
|
||||||
|
char *race;
|
||||||
|
|
||||||
fmtinstall('i', iconv);
|
fmtinstall('i', iconv);
|
||||||
fmtinstall('Y', Yconv);
|
fmtinstall('Y', Yconv);
|
||||||
fmtinstall('Z', Zconv);
|
fmtinstall('Z', Zconv);
|
||||||
@ -80,7 +82,10 @@ libinit(void)
|
|||||||
print("goarch is not known: %s\n", goarch);
|
print("goarch is not known: %s\n", goarch);
|
||||||
|
|
||||||
// add goroot to the end of the libdir list.
|
// 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,
|
// Unix doesn't like it when we write to a running (or, sometimes,
|
||||||
// recently run) binary, so remove the output file before writing it.
|
// recently run) binary, so remove the output file before writing it.
|
||||||
@ -281,6 +286,8 @@ loadlib(void)
|
|||||||
loadinternal("runtime");
|
loadinternal("runtime");
|
||||||
if(thechar == '5')
|
if(thechar == '5')
|
||||||
loadinternal("math");
|
loadinternal("math");
|
||||||
|
if(debug['b'])
|
||||||
|
loadinternal("runtime/race");
|
||||||
|
|
||||||
for(i=0; i<libraryp; i++) {
|
for(i=0; i<libraryp; i++) {
|
||||||
if(debug['v'])
|
if(debug['v'])
|
||||||
|
Loading…
Reference in New Issue
Block a user