Golang运行时重新编译

好吧,我为Golang补充了肉。 我的任务是通过此博客。</ p>


一种方法是在GO运行时(GCC-GO或GC)中更改此默认数字并重新编译 运行时。 在proc.go中,您可以将sched.maxmcount = 10000行更改为适当的数字。
</ code> </ p>

首先:重新编译整个golang。</ h3>

我遵循以下从源代码安装Go 并执行此cmd:< / p>

./ all.bash </ code> </ p>

输出为:</ p>

  正在构建Go引导程序工具。
cmd / dist
不允许导入周期
package cmd / dist
导入字节
导入错误
导入运行时
导入运行时/内部/原子
导入不安全
导入运行时
< / code> </ pre>

似乎一切正常,但是当我检查 go </ code> cmd时,它是相同的。 另外,我找不到对bin或pkg目录的任何更改。</ p>

然后,尝试构建pkg </ h3>

去安装src / 运行时</ code> </ p>

此外,它不会出现任何错误,我也找不到任何目标构建。 </ p>

我不知道该怎么做:(</ p>

任何建议都很好,很感谢!</ p>
</ div>

展开原文

原文

Well ,I sooooo flesh for the Golang . And I get a mission to recompile the Golang 's runtime via this blog.

One way is to change this default number in the GO runtime (GCC-GO or GC) and recompile the runtime. In proc.go, you can change the line sched.maxmcount = 10000 to a number that is appropriate.

First: recompile the whole golang.

I follow this Installing Go from source ,and execute this cmd:

./all.bash

Output is :

Building Go bootstrap tool.
cmd/dist
import cycle not allowed
package cmd/dist
    imports bytes
    imports errors
    imports runtime
    imports runtime/internal/atomic
    imports unsafe
    imports runtime

It seems everything work well, but while I check about the go cmd,it's the same. Also ,I can't find any change to bin or pkg dir.

Then ,try to build pkg

go install src/runtime

Also, it doesn't come out any error and I can't find any target build.

I have no any idea how to do it :(

Any suggestion well so appresiate !

dozan0001
dozan0001 是的,我知道。看来我在路径上错了;你是对的。我更改了我的GOPATH,但仍将其放置在以前的来源中。
接近 4 年之前 回复
douke8473
douke8473 否,无论您是否进行设置,都暗含GOROOT(请查看goenvGOROOT的输出,是的,您不应该进行设置)。您可以看到示例中的输出(如果需要,也可以使用-x),并检查GOROOT/pkg/GOOS_GOARCH/runtime.a上的时间戳。
接近 4 年之前 回复
duangou6446
duangou6446 如果您设置了goroot,但您实际上不应该这样做:dave.cheney.net/2013/06/14/you-dont-need-to-set-goroot-really
接近 4 年之前 回复
douweng7233
douweng7233 不,不会。Stdlib程序包是特殊情况,并安装在GOROOT中。
接近 4 年之前 回复
dongsha2792
dongsha2792 构建会将输出放置在Go路径+./src/go/bin/go的第一个目录中,该路径必须位于您的引导Go安装所在位置的前面。如果设置了IIRC,它也可以将二进制文件放入$GOBIN中。
接近 4 年之前 回复
dqxsuig64994
dqxsuig64994 all.bash是构建一切所需的全部。
接近 4 年之前 回复

1个回答



您可以通过导入路径来安装软件包,因此不必使用 src / </ code>前缀。</ p>

要重新编译运行时程序包,请使用:</ p>

  $ go install -a -v runtime 
runtime / internal / sys
runtime / internal / 原子
运行时
</ code> </ pre>
</ div>

展开原文

原文

You install packages by their import path, so you don't use the src/ prefix.

To recompile the runtime package, use:

$ go install -a -v runtime
runtime/internal/sys
runtime/internal/atomic
runtime

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问