Modifying Source code and build go from the source.

62 views
Skip to first unread message

Yosef Yo

unread,
Aug 7, 2020, 3:54:23 AM8/7/20
to golang-nuts
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 

Carla Pfaff

unread,
Aug 7, 2020, 5:43:33 AM8/7/20
to golang-nuts
Well, it says "lock_futex.go:152:2: ns declared but not used". An unused variable is a compile error in Go.
Reply all
Reply to author
Forward
0 new messages