I wanted to edit one file from the runtime library and build golang from the source (golang version 1.10.4). Without modifying the source code, the build process finished successfully passing all the tests., but after modifying it, the following error appears.
nn@nn-B85M-D3H:~/Downloads/go/src$ ./make.bash
Building Go cmd/dist using /usr/lib/go-1.10. (go1.10.4 linux/amd64)
Building Go toolchain1 using /usr/lib/go-1.10.
Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1.
/home/nn/Downloads/go/src/runtime/lock_futex.go:152:2: ns declared but not used
go tool dist: FAILED: /home/nn/Downloads/go/pkg/tool/linux_amd64/compile -std -pack -o /tmp/go-tool-dist-527647249/runtime/_go_.a -p runtime -importcfg /tmp/go-tool-dist-527647249/runtime/importcfg -+ -asmhdr /tmp/go-tool-dist-527647249/runtime/go_asm.h -symabis /tmp/go-tool-dist-527647249/runtime/symabis /home/nn/Downloads/go/src/runtime/alg.go /home/nn/Downloads/go/src/runtime/atomic_pointer.go /home/nn/Downloads/go/src/runtime/cgo.go /home/nn/Downloads/go/src/runtime/cgo_mmap.go /home/nn/Downloads/go/src/runtime/cgo_sigaction.go /home/nn/Downloads/go/src/runtime/cgocall.go /home/nn/Downloads/go/src/runtime/cgocallback.go /home/nn/Downloads/go/src/runtime/cgocheck.go /home/nn/Downloads/go/src/runtime/chan.go /home/nn/Downloads/go/src/runtime/checkptr.go /home/nn/Downloads/go/src/runtime/compiler.go /home/nn/Downloads/go/src/runtime/complex.go /home/nn/Downloads/go/src/runtime/cpuflags.go /home/nn/Downloads/go/src/runtime/cpuflags_amd64.go /home/nn/Downloads/go/src/runtime/cpuprof.go /home/nn/Downloads/go/src/runtime/cputicks.go /home/nn/Downloads/go/src/runtime/debug.go /home/nn/Downloads/go/src/runtime/debugcall.go /home/nn/Downloads/go/src/runtime/debuglog.go /home/nn/Downloads/go/src/runtime/debuglog_off.go /home/nn/Downloads/go/src/runtime/defs_linux_amd64.go /home/nn/Downloads/go/src/runtime/env_posix.go /home/nn/Downloads/go/src/runtime/error.go /home/nn/Downloads/go/src/runtime/extern.go /home/nn/Downloads/go/src/runtime/fastlog2.go /home/nn/Downloads/go/src/runtime/fastlog2table.go /home/nn/Downloads/go/src/runtime/float.go /home/nn/Downloads/go/src/runtime/hash64.go /home/nn/Downloads/go/src/runtime/heapdump.go /home/nn/Downloads/go/src/runtime/iface.go /home/nn/Downloads/go/src/runtime/lfstack.go /home/nn/Downloads/go/src/runtime/lfstack_64bit.go /home/nn/Downloads/go/src/runtime/lock_futex.go /home/nn/Downloads/go/src/runtime/lockrank.go /home/nn/Downloads/go/src/runtime/lockrank_off.go /home/nn/Downloads/go/src/runtime/malloc.go /home/nn/Downloads/go/src/runtime/map.go /home/nn/Downloads/go/src/runtime/map_fast32.go /home/nn/Downloads/go/src/runtime/map_fast64.go /home/nn/Downloads/go/src/runtime/map_faststr.go /home/nn/Downloads/go/src/runtime/mbarrier.go /home/nn/Downloads/go/src/runtime/mbitmap.go /home/nn/Downloads/go/src/runtime/mcache.go /home/nn/Downloads/go/src/runtime/mcentral.go /home/nn/Downloads/go/src/runtime/mem_linux.go /home/nn/Downloads/go/src/runtime/mfinal.go /home/nn/Downloads/go/src/runtime/mfixalloc.go /home/nn/Downloads/go/src/runtime/mgc.go /home/nn/Downloads/go/src/runtime/mgcmark.go /home/nn/Downloads/go/src/runtime/mgcscavenge.go /home/nn/Downloads/go/src/runtime/mgcstack.go /home/nn/Downloads/go/src/runtime/mgcsweep.go /home/nn/Downloads/go/src/runtime/mgcsweepbuf.go /home/nn/Downloads/go/src/runtime/mgcwork.go /home/nn/Downloads/go/src/runtime/mheap.go /home/nn/Downloads/go/src/runtime/mpagealloc.go /home/nn/Downloads/go/src/runtime/mpagealloc_64bit.go /home/nn/Downloads/go/src/runtime/mpagecache.go /home/nn/Downloads/go/src/runtime/mpallocbits.go /home/nn/Downloads/go/src/runtime/mprof.go /home/nn/Downloads/go/src/runtime/mranges.go /home/nn/Downloads/go/src/runtime/msan0.go /home/nn/Downloads/go/src/runtime/msize.go /home/nn/Downloads/go/src/runtime/mspanset.go /home/nn/Downloads/go/src/runtime/mstats.go /home/nn/Downloads/go/src/runtime/mwbbuf.go /home/nn/Downloads/go/src/runtime/nbpipe_pipe2.go /home/nn/Downloads/go/src/runtime/netpoll.go /home/nn/Downloads/go/src/runtime/netpoll_epoll.go /home/nn/Downloads/go/src/runtime/os_linux.go /home/nn/Downloads/go/src/runtime/os_linux_generic.go /home/nn/Downloads/go/src/runtime/os_linux_noauxv.go /home/nn/Downloads/go/src/runtime/os_linux_x86.go /home/nn/Downloads/go/src/runtime/os_nonopenbsd.go /home/nn/Downloads/go/src/runtime/panic.go /home/nn/Downloads/go/src/runtime/plugin.go /home/nn/Downloads/go/src/runtime/preempt.go /home/nn/Downloads/go/src/runtime/preempt_nonwindows.go /home/nn/Downloads/go/src/runtime/print.go /home/nn/Downloads/go/src/runtime/proc.go /home/nn/Downloads/go/src/runtime/profbuf.go /home/nn/Downloads/go/src/runtime/proflabel.go /home/nn/Downloads/go/src/runtime/race0.go /home/nn/Downloads/go/src/runtime/rdebug.go /home/nn/Downloads/go/src/runtime/relax_stub.go /home/nn/Downloads/go/src/runtime/runtime.go /home/nn/Downloads/go/src/runtime/runtime1.go /home/nn/Downloads/go/src/runtime/runtime2.go /home/nn/Downloads/go/src/runtime/rwmutex.go /home/nn/Downloads/go/src/runtime/select.go /home/nn/Downloads/go/src/runtime/sema.go /home/nn/Downloads/go/src/runtime/signal_amd64.go /home/nn/Downloads/go/src/runtime/signal_linux_amd64.go /home/nn/Downloads/go/src/runtime/signal_unix.go /home/nn/Downloads/go/src/runtime/sigqueue.go /home/nn/Downloads/go/src/runtime/sigqueue_note.go /home/nn/Downloads/go/src/runtime/sigtab_linux_generic.go /home/nn/Downloads/go/src/runtime/sizeclasses.go /home/nn/Downloads/go/src/runtime/slice.go /home/nn/Downloads/go/src/runtime/softfloat64.go /home/nn/Downloads/go/src/runtime/stack.go /home/nn/Downloads/go/src/runtime/string.go /home/nn/Downloads/go/src/runtime/stubs.go /home/nn/Downloads/go/src/runtime/stubs2.go /home/nn/Downloads/go/src/runtime/stubs3.go /home/nn/Downloads/go/src/runtime/stubs_amd64.go /home/nn/Downloads/go/src/runtime/stubs_linux.go /home/nn/Downloads/go/src/runtime/symtab.go /home/nn/Downloads/go/src/runtime/sys_nonppc64x.go /home/nn/Downloads/go/src/runtime/sys_x86.go /home/nn/Downloads/go/src/runtime/time.go /home/nn/Downloads/go/src/runtime/time_nofake.go /home/nn/Downloads/go/src/runtime/timestub.go /home/nn/Downloads/go/src/runtime/timestub2.go /home/nn/Downloads/go/src/runtime/trace.go /home/nn/Downloads/go/src/runtime/traceback.go /home/nn/Downloads/go/src/runtime/type.go /home/nn/Downloads/go/src/runtime/typekind.go /home/nn/Downloads/go/src/runtime/utf8.go /home/nn/Downloads/go/src/runtime/vdso_elf64.go /home/nn/Downloads/go/src/runtime/vdso_linux.go /home/nn/Downloads/go/src/runtime/vdso_linux_amd64.go /home/nn/Downloads/go/src/runtime/write_err.go: exit status 2
go tool dist: open /tmp/go-tool-dist-527647249/runtime/_go_.a: no such file or directory
I followed the following steps:
$ git clone
https://go.googlesource.com/go go
$ cd go
$ git checkout go1.10.4
$ cd src
// Edit one line in runtime/lock_futex.go
$ ./make.bash
If there any other way to do that, or any point that I missed.
Thanks in advance