From 8cbef79dbfae17d41d2c7220b1cf857c53e8ab15 Mon Sep 17 00:00:00 2001 From: Jake Champlin Date: Wed, 24 Aug 2016 10:56:23 -0400 Subject: [PATCH] Allow specifying ldflags via env vars Allows specifying `LD_FLAGS` during development builds. ``` $ LD_FLAGS="-linkmode=external" make dev ``` Since the version of DTrace on macOS Sierra (On the public beta's at least) has been updated, this allows DTrace to run on Terraform during development/debugging. ``` $ sudo dtrace -n 'pid$target::main.main:entry' -c "terraform apply" dtrace: description 'pid$target::main.main:entry' matched 1 probe Apply complete! Resources: 0 added, 0 changed, 0 destroyed. Outputs: foo = bar dtrace: pid 23096 has exited CPU ID FUNCTION:NAME 2 265673 main.main:entry ``` Also redirects the `@which stringer` command inside the `generate` Makefile target to `/dev/null` so we stop echoing the path to the `stringer` binary on every call to `generate`. --- Makefile | 2 +- scripts/build.sh | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 2c2a1bc11..109f32611 100644 --- a/Makefile +++ b/Makefile @@ -77,7 +77,7 @@ vet: # generate runs `go generate` to build the dynamically generated # source files. generate: - @which stringer ; if [ $$? -ne 0 ]; then \ + @which stringer > /dev/null; if [ $$? -ne 0 ]; then \ go get -u golang.org/x/tools/cmd/stringer; \ fi go generate $$(go list ./... | grep -v /terraform/vendor/) diff --git a/scripts/build.sh b/scripts/build.sh index ed2388cae..63f4c6726 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -39,7 +39,8 @@ fi # instruct gox to build statically linked binaries export CGO_ENABLED=0 -LD_FLAGS="-X main.GitCommit=${GIT_COMMIT}${GIT_DIRTY}" +# Allow LD_FLAGS to be appended during development compilations +LD_FLAGS="-X main.GitCommit=${GIT_COMMIT}${GIT_DIRTY} $LD_FLAGS" # In relase mode we don't want debug information in the binary if [[ -n "${TF_RELEASE}" ]]; then LD_FLAGS="-X main.GitCommit=${GIT_COMMIT}${GIT_DIRTY} -s -w"