Cannot build Caddy ( flag provided but not defined: -asmflags)


(Jan Kaifer) #1

Hello, I’m trying to build caddy from source. It worked like a charm last month.
Today, however, I tried to build newer version and “go run build.go” throws this error:

 flag provided but not defined: -asmflags
usage: build [-o output] [-i] [build flags] [packages]

Build compiles the packages named by the import paths,
along with their dependencies, but it does not install the results.

If the arguments are a list of .go files, build treats them as a list
of source files specifying a single package.

When the command line specifies a single main package,
build writes the resulting executable to output.
Otherwise build compiles the packages but discards the results,
serving only as a check that the packages can be built.

The -o flag specifies the output file name. If not specified, the
output file name depends on the arguments and derives from the name
of the package, such as p.a for package p, unless p is 'main'. If
the package is main and file names are provided, the file name
derives from the first file name mentioned, such as f1 for 'go build
f1.go f2.go'; with no files provided ('go build'), the output file
name is the base name of the containing directory.

The -i flag installs the packages that are dependencies of the target.

The build flags are shared by the build, clean, get, install, list, run,
and test commands:

        -a
                force rebuilding of packages that are already up-to-date.
        -n
                print the commands but do not run them.
        -p n
                the number of builds that can be run in parallel.
                The default is the number of CPUs available.
        -race
                enable data race detection.
                Supported only on linux/amd64, darwin/amd64 and windows/amd64.
        -v
                print the names of packages as they are compiled.
        -work
                print the name of the temporary work directory and
                do not delete it when exiting.
        -x
                print the commands.

        -ccflags 'arg list'
                arguments to pass on each 5c, 6c, or 8c compiler invocation.
        -compiler name
                name of compiler to use, as in runtime.Compiler (gccgo or gc).
        -gccgoflags 'arg list'
                arguments to pass on each gccgo compiler/linker invocation.
        -gcflags 'arg list'
                arguments to pass on each 5g, 6g, or 8g compiler invocation.
        -installsuffix suffix
                a suffix to use in the name of the package installation directory,
                in order to keep output separate from default builds.
                If using the -race flag, the install suffix is automatically set to race
                or, if set explicitly, has _race appended to it.
        -ldflags 'flag list'
                arguments to pass on each 5l, 6l, or 8l linker invocation.
        -tags 'tag list'
                a list of build tags to consider satisfied during the build.
                For more information about build tags, see the description of
                build constraints in the documentation for the go/build package.

The list flags accept a space-separated list of strings. To embed spaces
in an element in the list, surround it with either single or double quotes.

For more about specifying packages, see 'go help packages'.
For more about where packages and binaries are installed,
run 'go help gopath'.  For more about calling between Go and C/C++,
run 'go help c'.

See also: go install, go get, go clean.
2018/06/28 09:03:15 exit status 2
exit status 1

Google knows nothing about this problem. I’m totally lost - If it was bug, Google would heard about this before. And I really don’t know what could I do possibly wrong with those 3 commands:

go get github.com/mholt/caddy/
go get github.com/caddyserver/builds
cd "$GOPATH/github.com/mholt/caddy/caddy"
go run build.go

(Joel) #2

What version of go are you using? -asmflags was added in go 1.5 so if you are using a version older than that I suspect you will need to ugrade.


(Pytheas) #3

I use the following commands and it works:

go get github.com/mholt/caddy/caddy

cd $GOPATH/src/github.com/mholt/caddy

git tag
Use the highest version number (at the moment v0.11.0)

git checkout -b "adding_plugins" "v0.11.0"

go install github.com/mholt/caddy/caddy

Now you have in $GOPATH/bin the compiled caddy file.