summaryrefslogtreecommitdiff
path: root/src/cmd/dist
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2014-08-12 17:04:45 -0700
committerRob Pike <r@golang.org>2014-08-12 17:04:45 -0700
commit02573c02d6a6f5f2fc291c18cbca0c6bfeea1ab9 (patch)
tree941cd76be82e2c18216d8003cee4dac29004e657 /src/cmd/dist
parentc36198b3f166e5c266a690ae07e44b9c5ff5496c (diff)
downloadgo-02573c02d6a6f5f2fc291c18cbca0c6bfeea1ab9.tar.gz
all: copy cmd/ld/textflag.h into pkg/GOOS_GOARCH
The file is used by assembly code to define symbols like NOSPLIT. Having it hidden inside the cmd directory makes it hard to access outside the standard repository. Solution: As with a couple of other files used by cgo, copy the file into the pkg directory and add a -I argument to the assembler to access it. Thus one can write just #include "textflag.h" in .s files. The names in runtime are not updated because in the boot sequence the file has not been copied yet when runtime is built. All other .s files in the repository are updated. Changes to doc/asm.html, src/cmd/dist/build.c, and src/cmd/go/build.go are hand-made. The rest are just the renaming done by a global substitution. (Yay sam). LGTM=rsc R=rsc CC=golang-codereviews https://codereview.appspot.com/128050043
Diffstat (limited to 'src/cmd/dist')
-rw-r--r--src/cmd/dist/build.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/cmd/dist/build.c b/src/cmd/dist/build.c
index a99436735..2e857559b 100644
--- a/src/cmd/dist/build.c
+++ b/src/cmd/dist/build.c
@@ -1115,12 +1115,15 @@ install(char *dir)
nobuild:
// In package runtime, we install runtime.h and cgocall.h too,
- // for use by cgo compilation.
+ // for use by cgo compilation. For assembler source, we also
+ // copy cmd/ld/textflag.h.
if(streq(dir, "pkg/runtime")) {
copy(bpathf(&b, "%s/pkg/%s_%s/cgocall.h", goroot, goos, goarch),
bpathf(&b1, "%s/src/pkg/runtime/cgocall.h", goroot), 0);
copy(bpathf(&b, "%s/pkg/%s_%s/runtime.h", goroot, goos, goarch),
bpathf(&b1, "%s/src/pkg/runtime/runtime.h", goroot), 0);
+ copy(bpathf(&b, "%s/pkg/%s_%s/textflag.h", goroot, goos, goarch),
+ bpathf(&b1, "%s/src/cmd/ld/textflag.h", goroot), 0);
}