build: Add option to enable PIE build mode
This commit is contained in:
parent
580f90d745
commit
fcfa6f0355
1 changed files with 7 additions and 0 deletions
7
build.go
7
build.go
|
@ -70,6 +70,7 @@ var (
|
||||||
keepGopath bool
|
keepGopath bool
|
||||||
runTests bool
|
runTests bool
|
||||||
enableCGO bool
|
enableCGO bool
|
||||||
|
enablePIE bool
|
||||||
)
|
)
|
||||||
|
|
||||||
// specialDir returns true if the file begins with a special character ('.' or '_').
|
// specialDir returns true if the file begins with a special character ('.' or '_').
|
||||||
|
@ -225,6 +226,7 @@ func showUsage(output io.Writer) {
|
||||||
fmt.Fprintf(output, " -T --test run tests\n")
|
fmt.Fprintf(output, " -T --test run tests\n")
|
||||||
fmt.Fprintf(output, " -o --output set output file name\n")
|
fmt.Fprintf(output, " -o --output set output file name\n")
|
||||||
fmt.Fprintf(output, " --enable-cgo use CGO to link against libc\n")
|
fmt.Fprintf(output, " --enable-cgo use CGO to link against libc\n")
|
||||||
|
fmt.Fprintf(output, " --enable-pie use PIE buildmode\n")
|
||||||
fmt.Fprintf(output, " --goos value set GOOS for cross-compilation\n")
|
fmt.Fprintf(output, " --goos value set GOOS for cross-compilation\n")
|
||||||
fmt.Fprintf(output, " --goarch value set GOARCH for cross-compilation\n")
|
fmt.Fprintf(output, " --goarch value set GOARCH for cross-compilation\n")
|
||||||
fmt.Fprintf(output, " --goarm value set GOARM for cross-compilation\n")
|
fmt.Fprintf(output, " --goarm value set GOARM for cross-compilation\n")
|
||||||
|
@ -265,6 +267,9 @@ func build(cwd string, ver GoVersion, goos, goarch, goarm, gopath string, args .
|
||||||
a = append(a, "-asmflags", fmt.Sprintf("-trimpath=%s", gopath))
|
a = append(a, "-asmflags", fmt.Sprintf("-trimpath=%s", gopath))
|
||||||
a = append(a, "-gcflags", fmt.Sprintf("-trimpath=%s", gopath))
|
a = append(a, "-gcflags", fmt.Sprintf("-trimpath=%s", gopath))
|
||||||
}
|
}
|
||||||
|
if enablePIE {
|
||||||
|
a = append(a, "-buildmode=pie")
|
||||||
|
}
|
||||||
|
|
||||||
a = append(a, args...)
|
a = append(a, args...)
|
||||||
cmd := exec.Command("go", a...)
|
cmd := exec.Command("go", a...)
|
||||||
|
@ -486,6 +491,8 @@ func main() {
|
||||||
runTests = true
|
runTests = true
|
||||||
case "--enable-cgo":
|
case "--enable-cgo":
|
||||||
enableCGO = true
|
enableCGO = true
|
||||||
|
case "--enable-pie":
|
||||||
|
enablePIE = true
|
||||||
case "--goos":
|
case "--goos":
|
||||||
skipNext = true
|
skipNext = true
|
||||||
targetGOOS = params[i+1]
|
targetGOOS = params[i+1]
|
||||||
|
|
Loading…
Reference in a new issue