Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[25.0 backport] scripts/build/plugins: don't override CGO_ENABLED set by .variables #5397

Merged

Commits on Sep 3, 2024

  1. scripts/build/plugins: don't override CGO_ENABLED set by .variables

    The `.variables` sets `CGO_ENABLED=1` on arm; https://github.com/docker/cli/blob/b0c41b78d8c80c5f8faa736cf3c74dc31092e443/scripts/build/.variables#L57-L68
    And if enabled, it sets `-buildmode=pie`; https://github.com/docker/cli/blob/b0c41b78d8c80c5f8faa736cf3c74dc31092e443/scripts/build/.variables#L79-L88
    
    But that looks to be conflicting with the hardcoded `CGO_ENABLED=0` in
    this script, which causes the build to fail on go1.22;
    
        > [build-plugins 1/1] RUN --mount=ro --mount=type=cache,target=/root/.cache     xx-go --wrap &&     TARGET=/out ./scripts/build/plugins e2e/cli-plugins/plugins/*:
        0.127 Building static docker-helloworld
        0.127 + CGO_ENABLED=0
        0.127 + GO111MODULE=auto
        0.127 + go build -o /out/plugins-linux-arm/docker-helloworld -tags ' osusergo' -ldflags ' -X "github.com/docker/cli/cli/version.GitCommit=5c123b1" -X "github.com/docker/cli/cli/version.BuildTime=2024-09-02T13:52:17Z" -X "github.com/docker/cli/cli/version.Version=pr-5387" -extldflags -static' -buildmode=pie github.com/docker/cli/cli-plugins/examples/helloworld
        0.135 -buildmode=pie requires external (cgo) linking, but cgo is not enabled
    
    This patch sets the CGO_ENABLED variable before sourcing `.variables`,
    so that other variables which are conditionally set are handled correctly.
    
    Before this PR:
    
        docker#18 [build-plugins 1/1] RUN --mount=ro --mount=type=cache,target=/root/.cache     xx-go --wrap &&     TARGET=/out ./scripts/build/plugins e2e/cli-plugins/plugins/*
        docker#18 0.123 Building static docker-helloworld
        docker#18 0.124 + CGO_ENABLED=0
        docker#18 0.124 + GO111MODULE=auto
        docker#18 0.124 + go build -o /out/plugins-linux-arm/docker-helloworld -tags ' osusergo' -ldflags ' -X "github.com/docker/cli/cli/version.GitCommit=c8c402e" -X "github.com/docker/cli/cli/version.BuildTime=2024-09-03T08:28:25Z" -X "github.com/docker/cli/cli/version.Version=pr-5381" -extldflags -static' -buildmode=pie github.com/docker/cli/cli-plugins/examples/helloworld
        ....
    
    With this PR:
    
        docker#18 [build-plugins 1/1] RUN --mount=ro --mount=type=cache,target=/root/.cache     xx-go --wrap &&     TARGET=/out ./scripts/build/plugins e2e/cli-plugins/plugins/*
        docker#18 0.110 Building static docker-helloworld
        docker#18 0.110 + GO111MODULE=auto
        docker#18 0.110 + go build -o /out/plugins-linux-arm/docker-helloworld -tags '' -ldflags ' -X "github.com/docker/cli/cli/version.GitCommit=050d9d6" -X "github.com/docker/cli/cli/version.BuildTime=2024-09-03T09:19:05Z" -X "github.com/docker/cli/cli/version.Version=pr-5387"' github.com/docker/cli/cli-plugins/examples/helloworld
        ....
    
    Signed-off-by: Sebastiaan van Stijn <[email protected]>
    (cherry picked from commit 9e29967)
    Signed-off-by: Sebastiaan van Stijn <[email protected]>
    thaJeztah committed Sep 3, 2024
    Configuration menu
    Copy the full SHA
    06e1305 View commit details
    Browse the repository at this point in the history