1
- {{- if or (eq .DEBIAN_VERSION "10") (eq .DEBIAN_VERSION "11")}}
2
1
ARG REPOSITORY
3
2
ARG VERSION
4
3
ARG TAG_EXTENSION=''
5
- FROM docker.elastic.co/beats-dev/golang-crossbuild:llvm-apple${TAG_EXTENSION} AS BUILD_LLVM_APPLE
6
- {{- end }}
7
4
8
- ARG REPOSITORY
9
- ARG VERSION
10
- ARG TAG_EXTENSION=''
5
+ {{- if or (eq .DEBIAN_VERSION "10") (eq .DEBIAN_VERSION "11")}}
6
+ FROM --platform=linux/amd64 docker.elastic.co/beats-dev/golang-crossbuild:llvm-apple-debian{{ .DEBIAN_VERSION }}-amd64 AS build-llvm-apple-amd64
7
+ FROM --platform=linux/arm64 docker.elastic.co/beats-dev/golang-crossbuild:llvm-apple-debian{{ .DEBIAN_VERSION }}-arm64 AS build-llvm-apple-arm64
8
+ # workaround to https://github.com/moby/moby/issues/34482
9
+ ARG TARGETARCH
10
+ ARG BUILDARCH
11
+ FROM build-llvm-apple-${TARGETARCH} as build-llvm-apple
12
+ ARG TARGETARCH
13
+ ARG BUILDARCH
14
+ RUN echo "Building ${TARGETARCH} on a ${BUILDARCH}"
15
+ {{- end }}
11
16
FROM ${REPOSITORY}/golang-crossbuild:${VERSION}-base${TAG_EXTENSION}
12
17
13
18
RUN \
29
34
30
35
{{- if or (eq .DEBIAN_VERSION "10") (eq .DEBIAN_VERSION "11")}}
31
36
ARG OSXCROSS_PATH=/usr/local/osxcross
32
- COPY --from=BUILD_LLVM_APPLE /osxcross.tar.gz /tmp/osxcross.tar.gz
37
+ COPY --from=build-llvm-apple /osxcross.tar.gz /tmp/osxcross.tar.gz
33
38
RUN tar -xzf /tmp/osxcross.tar.gz -C / \
34
39
&& rm /tmp/osxcross.tar.gz
35
40
{{- else }}
@@ -51,23 +56,35 @@ RUN \
51
56
52
57
ENV PATH $PATH:$OSXCROSS_PATH/bin
53
58
# Add osxcross libraries to the library PATH
54
- ENV LD_LIBRARY_PATH ${ OSXCROSS_PATH} /lib:$LD_LIBRARY_PATH
59
+ ENV LD_LIBRARY_PATH $OSXCROSS_PATH/lib:/lib:/usr/lib:/usr/local /lib:$LD_LIBRARY_PATH
55
60
56
61
COPY rootfs /
57
62
58
63
# Basic test
59
64
RUN cd / \
60
- && o64-clang helloWorld.c -o helloWorld \
61
- && file helloWorld \
62
- && file helloWorld | grep -c 'Mach-O 64-bit x86_64'
65
+ && o64-clang helloWorld.c -o helloWorld.x86_64 \
66
+ && file helloWorld.x86_64 \
67
+ && file helloWorld.x86_64 | grep -c 'Mach-O 64-bit x86_64'
68
+
69
+ {{- if or (eq .DEBIAN_VERSION "10") (eq .DEBIAN_VERSION "11")}}
70
+ RUN cd / \
71
+ && oa64-clang helloWorld.c -o helloWorld.arm64 \
72
+ && file helloWorld.arm64 \
73
+ && file helloWorld.arm64 | grep -c 'Mach-O 64-bit arm64'
74
+
75
+ RUN cd / \
76
+ && lipo -create -output helloWorld.universal helloWorld.x86_64 helloWorld.arm64 \
77
+ && file helloWorld.universal | grep 'Mach-O universal binary' \
78
+ && rm helloWorld.*
79
+ {{- end }}
63
80
64
81
# MacOSX10.14 SDK does not have 32bits compiler
65
82
{{- if and (ne .DEBIAN_VERSION "10") (ne .DEBIAN_VERSION "11")}}
66
83
RUN cd / \
67
- && o32-clang helloWorld.c -o helloWorld \
68
- && file helloWorld \
69
- && file helloWorld | grep -c 'Mach-O i386' \
70
- && rm helloWorld.c helloWorld
84
+ && o32-clang helloWorld.c -o helloWorld.i368 \
85
+ && file helloWorld.i368 \
86
+ && file helloWorld.i368 | grep -c 'Mach-O i386' \
87
+ && rm helloWorld.*
71
88
{{- end }}
72
89
73
90
# Build-time metadata as defined at http://label-schema.org.
0 commit comments