On Sun, Aug 16, 2020 at 12:53 AM
rotusm...@gmail.com
<
rotusm...@gmail.com> wrote:
>
> i took your suggestions, tried the '-work' option it showed me the temporary directory where the build files are stored, but they didn't contain the object file. After exploring that a little, i found out out that the 'go build' command also makes a temporary link directory with the build directory but the link directory gets deleted even with the '-work' option.
Sorry, I forgot about that. I guess you don't need the -work flag.
Instead, add another flag to -ldflags: "-tmpdir=/my/tmp/dir". The
go.o file will be put into that directory. I see you figured that
out. Sorry for the confusion.
> i watched a video of gopher-os and looked through it's github repository for ways to extract the object files needed and tried his command as follows, but i'm getting these errors which i can't resolve:
>
> GOARCH=386 GOOS=linux go build -n 2>&1 | sed -e "1s|^|set -e\n|" -e "1s|^|export GOOS=linux\n|" -e "1s|^|export GOARCH=386\n|" -e "1s|^|export CGO_ENABLED=0\n|" -e "1s|^|WORK='./build'\n|" -e "1s|^|alias pack='go tool pack'\n|" -e "/^mv/d" -e "s|-extld|-tmpdir='./build' -linkmode=external -extldflags='-nostdlib' -extld|g" | sh 2>&1 | sed -e "s/^/ | /g"
>
> Errors/Warnings:
>
> | loadinternal: cannot find runtime/cgo
> | /usr/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000008049000
>
> The above command is able to produce an object file in the ./build directory i specified, i can link it without any errors, but when i try to run the executable it doesn't work.
>
> i know there is nothing wrong with the linker script because i have created object files using the gccgo cross-compiler, and they work.
> i wish to use the extra set of features the 'go build' cross-compiler is able to provide that gccgo cross-compiler cannot.
I'm not sure what's going on here. There are many possibilities. In
particular note that Go makes direct system calls; it does not use
libc. So your system has to provide a compatible system call
interface.
Ian