Skip to content

cmd/link: -X flag fails when used with non-deprecated = syntax #12152

Closed
@joeshaw

Description

@joeshaw

With go 1.5rc1 on darwin/amd64:

Test source:

package main

import "fmt"

var buildTime string

func main() {
    fmt.Println(buildTime)
}
$ go build -ldflags "-X main.buildTime \"$(date -u)\""
# _/tmp/bar
link: warning: option -X main.buildTime Fri Aug 14 19:50:25 UTC 2015 may not work in future releases; use -X main.buildTime=Fri Aug 14 19:50:25 UTC 2015

-x output:

/usr/local/Cellar/go/1.5rc1/libexec/pkg/tool/darwin_amd64/link -o $WORK/_/tmp/bar/_obj/exe/a.out -L $WORK -extld=clang -buildmode=exe -buildid=1583c81ada6eb4c112c3f8767eea388203667aa3 -X main.buildTime "Fri Aug 14 19:51:24 UTC 2015" $WORK/_/tmp/bar.a
$ go build -ldflags "-X main.buildTime=\"$(date -u)\""
# _/tmp/bar
usage: link [options] main.o
...

-x output:

/usr/local/Cellar/go/1.5rc1/libexec/pkg/tool/darwin_amd64/link -o $WORK/_/tmp/bar/_obj/exe/a.out -L $WORK -extld=clang -buildmode=exe -buildid=1583c81ada6eb4c112c3f8767eea388203667aa3 -X "main.buildTime=\"Fri" Aug 14 19:52:14 UTC "2015\"" $WORK/_/tmp/bar.a

The shell quoting is wrong in the latter case: "main.buildTime=\"Fri" Aug 14 19:52:14 UTC "2015\""

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions