whatcanGOwrong
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# This Dockerfile generates a build environment for generating ELFs
|
||||
# of testdata programs. Run `make build` in this directory to build it.
|
||||
FROM golang:buster
|
||||
|
||||
COPY llvm-snapshot.gpg.key .
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get -y --no-install-recommends install ca-certificates gnupg && \
|
||||
apt-key add llvm-snapshot.gpg.key && \
|
||||
rm llvm-snapshot.gpg.key && \
|
||||
apt-get remove -y gnupg && \
|
||||
apt-get autoremove -y && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY llvm.list /etc/apt/sources.list.d
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get -y --no-install-recommends install \
|
||||
make git \
|
||||
clang-format \
|
||||
clang-7 llvm-7 \
|
||||
clang-9 llvm-9 \
|
||||
clang-14 llvm-14 && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN GOBIN=/usr/local/bin go install golang.org/x/tools/cmd/stringer@latest && rm -rf /go/pkg
|
||||
@@ -0,0 +1 @@
|
||||
ghcr.io/cilium/ebpf-builder
|
||||
@@ -0,0 +1,18 @@
|
||||
# Makefile to build and push the `cilium/ebpf` llvm builder Docker image.
|
||||
CONTAINER_ENGINE ?= docker
|
||||
|
||||
IMAGE := $(shell cat IMAGE)
|
||||
EPOCH := $(shell date +'%s')
|
||||
|
||||
ifndef IMAGE
|
||||
$(error IMAGE file not present in Makefile directory)
|
||||
endif
|
||||
|
||||
.PHONY: build push
|
||||
|
||||
build:
|
||||
${CONTAINER_ENGINE} build --no-cache . -t "$(IMAGE):$(EPOCH)"
|
||||
echo $(EPOCH) > VERSION
|
||||
|
||||
push:
|
||||
${CONTAINER_ENGINE} push "$(IMAGE):$(shell cat VERSION)"
|
||||
@@ -0,0 +1,32 @@
|
||||
# `cilium/ebpf` LLVM Builder Image
|
||||
|
||||
This is a simple Docker image to provide reproducible eBPF ELF builds across
|
||||
contributors' workstations. This standardizes on a single environment used to
|
||||
regenerate e.g. testdata ELFs and does not depend on the toolchain installed
|
||||
on the host machine.
|
||||
|
||||
Additionally, it reduces drift in the bytecode committed to the repository over
|
||||
time as the same exact clang + llc version is used throughout the development
|
||||
lifecycle. Only when upgrading or rebuilding the Docker image would changes in
|
||||
.elf files be expected (assuming the .c files are untouched).
|
||||
|
||||
## Building
|
||||
|
||||
Building the image requires Docker. Run the build with:
|
||||
|
||||
`make build`
|
||||
|
||||
This updates the `VERSION` file. Commit it and submit a PR upstream.
|
||||
|
||||
### Regeneration Testdata on non-x86 platforms
|
||||
|
||||
Before running `make`, ensure [Docker buildx](https://docs.docker.com/buildx/working-with-buildx/)
|
||||
is enabled. Additionally `QEMU user` and `binfmt` should be installed. On a Debian based distribution
|
||||
the command to add them is `apt install qemu-user-static binfmt-support`.
|
||||
|
||||
|
||||
## Pushing
|
||||
|
||||
After building, push the image to the Docker registry specified in `IMAGE` with:
|
||||
|
||||
`make push`
|
||||
@@ -0,0 +1 @@
|
||||
1666886595
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1.4.12 (GNU/Linux)
|
||||
|
||||
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
|
||||
bXb5c6gCHESH5PXwPU4jQEE7Ib9J6sbk7ZT2Mw==
|
||||
=j+4q
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
@@ -0,0 +1,13 @@
|
||||
# Taken from https://apt.llvm.org.
|
||||
|
||||
deb http://apt.llvm.org/buster/ llvm-toolchain-buster main
|
||||
deb-src http://apt.llvm.org/buster/ llvm-toolchain-buster main
|
||||
|
||||
deb http://apt.llvm.org/buster/ llvm-toolchain-buster-7 main
|
||||
deb-src http://apt.llvm.org/buster/ llvm-toolchain-buster-7 main
|
||||
|
||||
deb http://apt.llvm.org/buster/ llvm-toolchain-buster-9 main
|
||||
deb-src http://apt.llvm.org/buster/ llvm-toolchain-buster-9 main
|
||||
|
||||
deb http://apt.llvm.org/buster/ llvm-toolchain-buster-14 main
|
||||
deb-src http://apt.llvm.org/buster/ llvm-toolchain-buster-14 main
|
||||
Reference in New Issue
Block a user