Binaries contain absolute path to GOPATH files #2117

Closed
opened 2025-11-02 04:24:37 -06:00 by GiteaMirror · 3 comments
Owner

Originally created by @freswa on GitHub (Jul 30, 2018).

I build the binary with:

make clean generate
make TAGS="bindata sqlite tidb pam" build

It's build with ldflags '-s -w' but contains paths to $GOPATH files. Even if I do strip $binary they are still there.

The prebuild binaries also have these references. I wonder where they come from since they are useless on another host?

Same results if I build without any tags.

An excerpt (in total ~1440 refs)

/usr/local/go/src/code.gitea.io/gitea/main.go
/usr/local/go/src/code.gitea.io/gitea/modules/markup/orgmode/orgmode.go
/usr/local/go/src/code.gitea.io/gitea/vendor/github.com/chaseadamsio/goorgeous/header.go
/usr/local/go/src/code.gitea.io/gitea/vendor/github.com/chaseadamsio/goorgeous/goorgeous.go
/usr/local/go/src/code.gitea.io/gitea/cmd/web_graceful.go
/usr/local/go/src/code.gitea.io/gitea/cmd/web.go
/usr/local/go/src/code.gitea.io/gitea/cmd/serv.go
/usr/local/go/src/code.gitea.io/gitea/cmd/hook.go
/usr/local/go/src/code.gitea.io/gitea/cmd/dump.go
/usr/local/go/src/code.gitea.io/gitea/cmd/cmd.go
/usr/local/go/src/code.gitea.io/gitea/cmd/cert.go
/usr/local/go/src/code.gitea.io/gitea/cmd/admin.go
/usr/local/go/src/code.gitea.io/gitea/vendor/github.com/facebookgo/grace/gracehttp/http.go
/usr/local/go/src/code.gitea.io/gitea/vendor/github.com/facebookgo/httpdown/httpdown.go
/usr/local/go/src/code.gitea.io/gitea/vendor/github.com/facebookgo/stats/counter.go
/usr/local/go/src/code.gitea.io/gitea/vendor/github.com/facebookgo/stats/stats.go
/usr/local/go/src/code.gitea.io/gitea/vendor/github.com/facebookgo/clock/clock.go
/usr/local/go/src/code.gitea.io/gitea/vendor/github.com/facebookgo/grace/gracenet/net.go
Originally created by @freswa on GitHub (Jul 30, 2018). I build the binary with: ``` make clean generate make TAGS="bindata sqlite tidb pam" build ``` It's build with ```ldflags '-s -w'``` but contains paths to $GOPATH files. Even if I do ```strip $binary``` they are still there. The prebuild binaries also have these references. I wonder where they come from since they are useless on another host? Same results if I build without any tags. An excerpt (in total ~1440 refs) ``` /usr/local/go/src/code.gitea.io/gitea/main.go /usr/local/go/src/code.gitea.io/gitea/modules/markup/orgmode/orgmode.go /usr/local/go/src/code.gitea.io/gitea/vendor/github.com/chaseadamsio/goorgeous/header.go /usr/local/go/src/code.gitea.io/gitea/vendor/github.com/chaseadamsio/goorgeous/goorgeous.go /usr/local/go/src/code.gitea.io/gitea/cmd/web_graceful.go /usr/local/go/src/code.gitea.io/gitea/cmd/web.go /usr/local/go/src/code.gitea.io/gitea/cmd/serv.go /usr/local/go/src/code.gitea.io/gitea/cmd/hook.go /usr/local/go/src/code.gitea.io/gitea/cmd/dump.go /usr/local/go/src/code.gitea.io/gitea/cmd/cmd.go /usr/local/go/src/code.gitea.io/gitea/cmd/cert.go /usr/local/go/src/code.gitea.io/gitea/cmd/admin.go /usr/local/go/src/code.gitea.io/gitea/vendor/github.com/facebookgo/grace/gracehttp/http.go /usr/local/go/src/code.gitea.io/gitea/vendor/github.com/facebookgo/httpdown/httpdown.go /usr/local/go/src/code.gitea.io/gitea/vendor/github.com/facebookgo/stats/counter.go /usr/local/go/src/code.gitea.io/gitea/vendor/github.com/facebookgo/stats/stats.go /usr/local/go/src/code.gitea.io/gitea/vendor/github.com/facebookgo/clock/clock.go /usr/local/go/src/code.gitea.io/gitea/vendor/github.com/facebookgo/grace/gracenet/net.go ```
GiteaMirror added the type/question label 2025-11-02 04:24:37 -06:00
Author
Owner

@lafriks commented on GitHub (Jul 30, 2018):

-trimpath needs to be used to remove full path. See:
https://stackoverflow.com/questions/45279385/remove-file-paths-from-text-directives-in-go-binaries

@lafriks commented on GitHub (Jul 30, 2018): `-trimpath` needs to be used to remove full path. See: https://stackoverflow.com/questions/45279385/remove-file-paths-from-text-directives-in-go-binaries
Author
Owner

@freswa commented on GitHub (Aug 1, 2018):

Thx. But that solution does not work with the -i option for go build.
Since all dependencies are vendored, what do we need the -i in $GOFLAGS for?
https://github.com/go-gitea/gitea/blob/master/Makefile#L21

@freswa commented on GitHub (Aug 1, 2018): Thx. But that solution does not work with the ```-i``` option for ```go build```. Since all dependencies are vendored, what do we need the ```-i``` in ```$GOFLAGS``` for? https://github.com/go-gitea/gitea/blob/master/Makefile#L21
Author
Owner

@lafriks commented on GitHub (Aug 10, 2018):

Closing as not really related to gitea but to go compiler in general

@lafriks commented on GitHub (Aug 10, 2018): Closing as not really related to gitea but to go compiler in general
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/gitea#2117