Skip to content

Commit 3de8db8

Browse files
committed
Fix errors with cross-build build flags and CGO
1 parent 8fbbf27 commit 3de8db8

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

Makefile

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ GO_MOD_FLAGS = -mod=readonly
2626
GO_BUILD_PACKAGES := ./cmd/oc-mirror
2727
GO_PACKAGE = github.com/openshift/oc-mirror/v2
2828

29+
# Due to the complexity of managing C cross-compiler toolchains, cross-building with CGO_ENABLED on the non-native architecture is not supported.
30+
CGO_ENABLED ?= 0
31+
2932
LIBDM_BUILD_TAG = $(shell ./hack/libdm_tag.sh)
3033
LIBSUBID_BUILD_TAG = $(shell ./hack/libsubid_tag.sh)
3134
BTRFS_BUILD_TAG = $(shell ./hack/btrfs_tag.sh) $(shell ./hack/btrfs_installed_tag.sh)
@@ -81,25 +84,25 @@ clean:
8184

8285
build:
8386
make -C v1 build
84-
@cp v1/bin/oc-mirror ./cmd/oc-mirror/data/oc-mirror-v1
87+
@cp v1/$(GO_BUILD_BINDIR)/oc-mirror ./cmd/oc-mirror/data/oc-mirror-v1
8588
mkdir -p $(GO_BUILD_BINDIR)
8689
go build $(GO_MOD_FLAGS) $(GO_BUILD_FLAGS) $(GO_LD_FLAGS) -o $(GO_BUILD_BINDIR) ./...
8790
.PHONY: build
8891

8992
cross-build-linux-amd64:
90-
+@GOOS=linux GOARCH=amd64 $(MAKE) "$(GO_BUILD_FLAGS)" --no-print-directory build GO_BUILD_BINDIR=$(GO_BUILD_BINDIR)/linux-amd64
93+
+@CGO_ENABLED=$(CGO_ENABLED) GOOS=linux GOARCH=amd64 $(MAKE) --no-print-directory build GO_BUILD_BINDIR=$(GO_BUILD_BINDIR)/linux-amd64
9194
.PHONY: cross-build-linux-amd64
9295

9396
cross-build-linux-ppc64le:
94-
+@GOOS=linux GOARCH=ppc64le $(MAKE) "$(GO_BUILD_FLAGS)" --no-print-directory build GO_BUILD_BINDIR=$(GO_BUILD_BINDIR)/linux-ppc64le
97+
+@CGO_ENABLED=$(CGO_ENABLED) GOOS=linux GOARCH=ppc64le $(MAKE) --no-print-directory build GO_BUILD_BINDIR=$(GO_BUILD_BINDIR)/linux-ppc64le
9598
.PHONY: cross-build-linux-ppc64le
9699

97100
cross-build-linux-s390x:
98-
+@GOOS=linux GOARCH=s390x $(MAKE) "$(GO_BUILD_FLAGS)" --no-print-directory build GO_BUILD_BINDIR=$(GO_BUILD_BINDIR)/linux-s390x
101+
+@CGO_ENABLED=$(CGO_ENABLED) GOOS=linux GOARCH=s390x $(MAKE) --no-print-directory build GO_BUILD_BINDIR=$(GO_BUILD_BINDIR)/linux-s390x
99102
.PHONY: cross-build-linux-s390x
100103

101104
cross-build-linux-arm64:
102-
+@GOOS=linux GOARCH=arm64 $(MAKE) "$(GO_BUILD_FLAGS)" --no-print-directory build GO_BUILD_BINDIR=$(GO_BUILD_BINDIR)/linux-arm64
105+
+@CGO_ENABLED=$(CGO_ENABLED) GOOS=linux GOARCH=arm64 $(MAKE) --no-print-directory build GO_BUILD_BINDIR=$(GO_BUILD_BINDIR)/linux-arm64
103106
.PHONY: cross-build-linux-arm64
104107

105108
cross-build: cross-build-linux-amd64 cross-build-linux-ppc64le cross-build-linux-s390x cross-build-linux-arm64

0 commit comments

Comments
 (0)