From 406a5ac9774a58e312c7252a0f06b5bf077c0662 Mon Sep 17 00:00:00 2001 From: Nick Owens Date: Wed, 22 Jun 2016 11:27:13 -0700 Subject: [PATCH 1/4] app-emulation/runc: import 0.1.0 from upstream portage --- .../app-emulation/runc/Manifest | 1 + .../app-emulation/runc/metadata.xml | 20 ++++++++ .../app-emulation/runc/runc-0.1.0.ebuild | 48 +++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 sdk_container/src/third_party/coreos-overlay/app-emulation/runc/Manifest create mode 100644 sdk_container/src/third_party/coreos-overlay/app-emulation/runc/metadata.xml create mode 100644 sdk_container/src/third_party/coreos-overlay/app-emulation/runc/runc-0.1.0.ebuild diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/runc/Manifest b/sdk_container/src/third_party/coreos-overlay/app-emulation/runc/Manifest new file mode 100644 index 0000000000..6a23ea9eac --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/app-emulation/runc/Manifest @@ -0,0 +1 @@ +DIST runc-0.1.0.tar.gz 496358 SHA256 681d6d89541ae2e06757f999a242a1f97bbcb1ad6e10f4cdee287ec4a9d2bff9 SHA512 8a9ff02b0161eda0a730194b0fbf7ad76e8f379992e74061ef49302da3492fd0c53f06db9153ded4d934d67bbf6f4291d6154254f1b924ef73c97c44cd14ffcf WHIRLPOOL 81f488a4f1e23e8704a9fa8404965b2f12f74a875ba8e67dc15de93f43b075dc538cd0d89c7a1187cb74ac6320317b5985855945fb8bf8f749d6736df47b844a diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/runc/metadata.xml b/sdk_container/src/third_party/coreos-overlay/app-emulation/runc/metadata.xml new file mode 100644 index 0000000000..5dc82f3cb5 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/app-emulation/runc/metadata.xml @@ -0,0 +1,20 @@ + + + + + runc is a CLI tool for spawning and running containers according + to the OCF (Open Container Format) specification. + + + cardoe@gentoo.org + Doug Goldstein + + + + Enable AppArmor support. + + + + opencontainers/runc + + diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/runc/runc-0.1.0.ebuild b/sdk_container/src/third_party/coreos-overlay/app-emulation/runc/runc-0.1.0.ebuild new file mode 100644 index 0000000000..dc7f12579c --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/app-emulation/runc/runc-0.1.0.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +inherit eutils multilib + +DESCRIPTION="runc container cli tools" +HOMEPAGE="http://runc.io" + +GITHUB_URI="github.com/opencontainers/runc" + +if [[ ${PV} == *9999* ]]; then + EGIT_REPO_URI="git://${GITHUB_URI}.git" + inherit git-r3 +else + SRC_URI="https://${GITHUB_URI}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="amd64" +fi + +LICENSE="Apache-2.0" +SLOT="0" +IUSE="+seccomp" + +DEPEND=">=dev-lang/go-1.4:=" +RDEPEND="seccomp? ( sys-libs/libseccomp )" + +src_compile() { + # Taken from app-emulation/docker-1.7.0-r1 + export CGO_CFLAGS="-I${ROOT}/usr/include" + export CGO_LDFLAGS="-L${ROOT}/usr/$(get_libdir)" + + # Setup GOPATH so things build + rm -rf .gopath + mkdir -p .gopath/src/"$(dirname "${GITHUB_URI}")" + ln -sf ../../../.. .gopath/src/"${GITHUB_URI}" + export GOPATH="${PWD}/.gopath:${PWD}/vendor" + + # build up optional flags + local options=( $(usex seccomp "seccomp") ) + + emake BUILDTAGS="${options[@]}" +} + +src_install() { + dobin runc +} From 1f415cbdbf8c7dd84b1fba0b7677a7e6c21905e1 Mon Sep 17 00:00:00 2001 From: Nick Owens Date: Wed, 22 Jun 2016 11:34:39 -0700 Subject: [PATCH 2/4] app-emulation/runc: fix ebuild for cross-compilation --- .../app-emulation/runc/runc-0.1.0.ebuild | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/runc/runc-0.1.0.ebuild b/sdk_container/src/third_party/coreos-overlay/app-emulation/runc/runc-0.1.0.ebuild index dc7f12579c..97810fc889 100644 --- a/sdk_container/src/third_party/coreos-overlay/app-emulation/runc/runc-0.1.0.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/app-emulation/runc/runc-0.1.0.ebuild @@ -2,21 +2,22 @@ # Distributed under the terms of the GNU General Public License v2 # $Id$ -EAPI=6 +EAPI=5 -inherit eutils multilib +GITHUB_URI="github.com/opencontainers/runc" +COREOS_GO_PACKAGE="${GITHUB_URI}" + +inherit eutils multilib coreos-go DESCRIPTION="runc container cli tools" HOMEPAGE="http://runc.io" -GITHUB_URI="github.com/opencontainers/runc" - if [[ ${PV} == *9999* ]]; then EGIT_REPO_URI="git://${GITHUB_URI}.git" inherit git-r3 else SRC_URI="https://${GITHUB_URI}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64" + KEYWORDS="amd64 arm64" fi LICENSE="Apache-2.0" @@ -27,6 +28,12 @@ DEPEND=">=dev-lang/go-1.4:=" RDEPEND="seccomp? ( sys-libs/libseccomp )" src_compile() { + # fix up cross-compiling variables + export GOARCH=$(go_get_arch) + export CGO_ENABLED=1 + export CC=$(tc-getCC) + export CXX=$(tc-getCXX) + # Taken from app-emulation/docker-1.7.0-r1 export CGO_CFLAGS="-I${ROOT}/usr/include" export CGO_LDFLAGS="-L${ROOT}/usr/$(get_libdir)" From 4b22ea1c82eca6c6bf906f7a7808b4cbb9a35a86 Mon Sep 17 00:00:00 2001 From: Nick Owens Date: Wed, 22 Jun 2016 11:37:36 -0700 Subject: [PATCH 3/4] app-emulation/containerd: import 0.2.0 from upstream portage --- .../app-emulation/containerd/Manifest | 5 +++ .../containerd/containerd-0.2.0.ebuild | 43 +++++++++++++++++++ .../app-emulation/containerd/metadata.xml | 22 ++++++++++ 3 files changed, 70 insertions(+) create mode 100644 sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/Manifest create mode 100644 sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/containerd-0.2.0.ebuild create mode 100644 sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/metadata.xml diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/Manifest b/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/Manifest new file mode 100644 index 0000000000..0fdcbd9802 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/Manifest @@ -0,0 +1,5 @@ +DIST containerd-0.2.0.tar.gz 635248 SHA256 1462e0c233763800b91ac2a670d82994ba1988560928e153f751fb1c0a6608c0 SHA512 381c0a21733fb79e90364649b46cbdadbc32d07245bd7a320465f6619ee5895e9552b7cc4393cb8d409295a7b867b7e461c079715cf1938e6313d4b888d81518 WHIRLPOOL d4e70a8be832227be671c13b77242a790cdf8645ff294c31d72e8cf01de2b30b9d78c691a156624adb004de42af6f133cb88b46aff37a33bc94d72bf87a0ee8a +EBUILD containerd-0.2.0.ebuild 872 SHA256 3489ed392df85fb20d79c7642b5d8ffc4e27bee998bbff94924cd096b45b4ff8 SHA512 2be6d72181de2b17a63f193215a55ae7e4641428ed701720e1eeb4f52d77d3fcc709660c3bdf0315ac3cf29b5bdd39c4eb8d90e3672167dcd28ce9947c0a8462 WHIRLPOOL af8a90feff38580e190f24659d52f85da2f3d77589a82cf771a8aed91e2c9600d05311e1f30badadc1561884256f7465ba201b3613d510a2cb888909289b2558 +EBUILD containerd-9999.ebuild 873 SHA256 37689bdf98b0c26caf73768b628fb5b247c99ac936fc71b9515518fbeaec0ee8 SHA512 a9dcb7eeb0929717572f181143135f35c316b9a2111d2e84c1b0e3de58fb3cdb5be4b1d838a4496c6baa00bcf0d11e55848d6c6faf3c3e4b5d22762423c582d2 WHIRLPOOL 4ce7ccf1c2beee6f489012fa5bfcbf9f0700a680d964be2561438b2a7dd5c506dd020507c7ab3b8728e92f0e40afd044f8838b41111585f32f7c8f8745bfc41c +MISC ChangeLog 907 SHA256 e4c5c82016826389ac30d0f6c6abbd21d68ee4305bf5081c4042c935128d077a SHA512 5fa4260862c25b7e89050f0f89e4a4cdbce7e633c7ec99fa68ef7cd9c87d3f1bf9627da0bf2217a42b3e9d36009093db7e037b45d136c128915b3d11e13b5ff6 WHIRLPOOL 3a3cbf24e9ffe67575d95b9113ffbec4208eaa9a0f274d6adc87c92b6b278ea167f7139b49406b4b66e5c4e0e2d600f1d23ae9fe0a388d40c29ffeaa0e2d0d6e +MISC metadata.xml 806 SHA256 0e405066fe37fcb61860b427329725ad643f44ca8c51ce3155155f9804364e9e SHA512 2fdec9a5625e9c7339988704a60f1e4dc337d05cd510199a3228402f8e4b67b685afee44c87b035895791312e269d84e1821f7b1b2ebcc2f011d036bf7eeb9de WHIRLPOOL 8dc5aea92a5fcc73dd4f6bfcd2d4ece9ee27770000c66ad0fadfe3c78dac0c8261fb9016b8a0abf76a58c8236cd7a25c117356df86e38a8ec09dffdb6eeb64d1 diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/containerd-0.2.0.ebuild b/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/containerd-0.2.0.ebuild new file mode 100644 index 0000000000..cbd948b705 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/containerd-0.2.0.ebuild @@ -0,0 +1,43 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 +EGO_PN="github.com/docker/${PN}" + +if [[ ${PV} == *9999 ]]; then + inherit golang-vcs +else + MY_PV="${PV/_/-}" + EGIT_COMMIT="v${MY_PV}" + SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" + KEYWORDS="amd64" + inherit golang-vcs-snapshot +fi + +DESCRIPTION="A daemon to control runC" +HOMEPAGE="https://containerd.tools" + +LICENSE="Apache-2.0" +SLOT="0" +IUSE="+seccomp" + +DEPEND="" +RDEPEND="app-emulation/runc + seccomp? ( sys-libs/libseccomp )" + +S=${WORKDIR}/${P}/src/${EGO_PN} + +src_prepare() { + eapply_user +} + +src_compile() { + local options=( $(usex seccomp "seccomp") ) + export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor + LDFLAGS= emake GIT_COMMIT="$EGIT_COMMIT" BUILDTAGS="${options[@]}" +} + +src_install() { + dobin bin/containerd* bin/ctr +} diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/metadata.xml b/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/metadata.xml new file mode 100644 index 0000000000..95132700bf --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/metadata.xml @@ -0,0 +1,22 @@ + + + + + Containerd is a daemon with an API and a command line client, to manage + containers on one machine. It uses runC to run containers according to + the OCI specification. Containerd has advanced features such as seccomp + and user namespace support as well as checkpoint and restore for cloning + and live migration of containers. + + + admwiggin@gmail.com + Tianon + + + xarthisius@gentoo.org + Kacper Kowalik + + + docker/containerd + + From 500038f2dea44b45f4d0109d29bedf7f902f4e50 Mon Sep 17 00:00:00 2001 From: Nick Owens Date: Wed, 22 Jun 2016 12:46:35 -0700 Subject: [PATCH 4/4] app-emulation/containerd: fix ebuild for cross-compilation --- .../containerd/containerd-0.2.0.ebuild | 21 +- ...01-Use-flag-for-aarch64-EpollCreate1.patch | 45 +++++ ...utils-epoll_aarch64-fix-C-formatting.patch | 80 ++++++++ .../0003-archutils-fix-build-on-aarch64.patch | 39 ++++ .../0004-Correct-build-flag-for-arm64.patch | 183 ++++++++++++++++++ 5 files changed, 365 insertions(+), 3 deletions(-) create mode 100644 sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/files/0001-Use-flag-for-aarch64-EpollCreate1.patch create mode 100644 sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/files/0002-archutils-epoll_aarch64-fix-C-formatting.patch create mode 100644 sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/files/0003-archutils-fix-build-on-aarch64.patch create mode 100644 sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/files/0004-Correct-build-flag-for-arm64.patch diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/containerd-0.2.0.ebuild b/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/containerd-0.2.0.ebuild index cbd948b705..d04d9e3d56 100644 --- a/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/containerd-0.2.0.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/containerd-0.2.0.ebuild @@ -2,8 +2,9 @@ # Distributed under the terms of the GNU General Public License v2 # $Id$ -EAPI=6 +EAPI=5 EGO_PN="github.com/docker/${PN}" +COREOS_GO_PACKAGE="${EGO_PN}" if [[ ${PV} == *9999 ]]; then inherit golang-vcs @@ -11,10 +12,12 @@ else MY_PV="${PV/_/-}" EGIT_COMMIT="v${MY_PV}" SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64" + KEYWORDS="amd64 arm64" inherit golang-vcs-snapshot fi +inherit coreos-go + DESCRIPTION="A daemon to control runC" HOMEPAGE="https://containerd.tools" @@ -28,11 +31,23 @@ RDEPEND="app-emulation/runc S=${WORKDIR}/${P}/src/${EGO_PN} +PATCHES=( + "${FILESDIR}"/0001-Use-flag-for-aarch64-EpollCreate1.patch + "${FILESDIR}"/0002-archutils-epoll_aarch64-fix-C-formatting.patch + "${FILESDIR}"/0003-archutils-fix-build-on-aarch64.patch + "${FILESDIR}"/0004-Correct-build-flag-for-arm64.patch +) + src_prepare() { - eapply_user + epatch "${PATCHES[@]}" } src_compile() { + export GOARCH=$(go_get_arch) + export CGO_ENABLED=1 + export CC=$(tc-getCC) + export CXX=$(tc-getCXX) + local options=( $(usex seccomp "seccomp") ) export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor LDFLAGS= emake GIT_COMMIT="$EGIT_COMMIT" BUILDTAGS="${options[@]}" diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/files/0001-Use-flag-for-aarch64-EpollCreate1.patch b/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/files/0001-Use-flag-for-aarch64-EpollCreate1.patch new file mode 100644 index 0000000000..00aab87015 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/files/0001-Use-flag-for-aarch64-EpollCreate1.patch @@ -0,0 +1,45 @@ +From e419be223f415008f313e95d6d19f20398bdec9b Mon Sep 17 00:00:00 2001 +From: Qiang Huang +Date: Mon, 11 Apr 2016 15:01:36 +0800 +Subject: [PATCH] Use flag for aarch64 EpollCreate1 + +Signed-off-by: Qiang Huang +--- + archutils/epoll_aarch64.go | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/archutils/epoll_aarch64.go b/archutils/epoll_aarch64.go +index b0ea48c..3984ac4 100644 +--- a/archutils/epoll_aarch64.go ++++ b/archutils/epoll_aarch64.go +@@ -5,15 +5,15 @@ package archutils + // #include + /* + int EpollCreate1(int flag) { +- return epoll_create1(0); ++ return epoll_create1(flag); + } + +-int EpollCtl(int efd, int op,int sfd, int Events, int Fd) { ++int EpollCtl(int efd, int op, int sfd, int Events, int Fd) { + struct epoll_event event; + event.events = Events; + event.data.fd = Fd; + +- return epoll_ctl(efd,op,sfd,&event); ++ return epoll_ctl(efd, op, sfd, &event); + } + + typedef struct Event{ +@@ -41,7 +41,7 @@ import ( + ) + + func EpollCreate1(flag int) (int, error) { +- fd := int(C.EpollCreate1(0)) ++ fd := int(C.EpollCreate1(C.int(flag))) + if fd < 0 { + return fd, fmt.Errorf("failed to create epoll, errno is %d", fd) + } +-- +2.8.3 + diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/files/0002-archutils-epoll_aarch64-fix-C-formatting.patch b/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/files/0002-archutils-epoll_aarch64-fix-C-formatting.patch new file mode 100644 index 0000000000..1f58214f4e --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/files/0002-archutils-epoll_aarch64-fix-C-formatting.patch @@ -0,0 +1,80 @@ +From 1e617aaab4942faf8a354c7239f061300637e5b8 Mon Sep 17 00:00:00 2001 +From: Aleksa Sarai +Date: Wed, 13 Apr 2016 16:08:28 +1000 +Subject: [PATCH 2/2] archutils: epoll_aarch64: fix C formatting + +Use proper C formatting to make the cgo code much easier to read. Also +remove the pointless typedef. + +Signed-off-by: Aleksa Sarai +--- + archutils/epoll_aarch64.go | 38 +++++++++++++++++++------------------- + 1 file changed, 19 insertions(+), 19 deletions(-) + +diff --git a/archutils/epoll_aarch64.go b/archutils/epoll_aarch64.go +index 3984ac4..73cd8ed 100644 +--- a/archutils/epoll_aarch64.go ++++ b/archutils/epoll_aarch64.go +@@ -5,31 +5,31 @@ package archutils + // #include + /* + int EpollCreate1(int flag) { +- return epoll_create1(flag); ++ return epoll_create1(flag); + } + +-int EpollCtl(int efd, int op, int sfd, int Events, int Fd) { +- struct epoll_event event; +- event.events = Events; +- event.data.fd = Fd; ++int EpollCtl(int efd, int op,int sfd, int events, int fd) { ++ struct epoll_event event; ++ event.events = events; ++ event.data.fd = fd; + +- return epoll_ctl(efd, op, sfd, &event); ++ return epoll_ctl(efd, op, sfd, &event); + } + +-typedef struct Event{ +- uint32_t events; +- int fd; ++struct event_t { ++ uint32_t events; ++ int fd; + }; + + struct epoll_event events[128]; +-int run_epoll_wait(int fd, struct Event *event) { +- int n, i; +- n = epoll_wait(fd, events, 128, -1); +- for (i = 0; i < n; i++) { +- event[i].events = events[i].events; +- event[i].fd = events[i].data.fd; +- } +- return n; ++int run_epoll_wait(int fd, struct event_t *event) { ++ int n, i; ++ n = epoll_wait(fd, events, 128, -1); ++ for (i = 0; i < n; i++) { ++ event[i].events = events[i].events; ++ event[i].fd = events[i].data.fd; ++ } ++ return n; + } + */ + import "C" +@@ -57,8 +57,8 @@ func EpollCtl(epfd int, op int, fd int, event *syscall.EpollEvent) error { + } + + func EpollWait(epfd int, events []syscall.EpollEvent, msec int) (int, error) { +- var c_events [128]C.struct_Event +- n := int(C.run_epoll_wait(C.int(epfd), (*C.struct_Event)(unsafe.Pointer(&c_events)))) ++ var c_events [128]C.struct_event_t ++ n := int(C.run_epoll_wait(C.int(epfd), (*C.struct_event_t)(unsafe.Pointer(&c_events)))) + if n < 0 { + return int(n), fmt.Errorf("Failed to wait epoll") + } +-- +2.8.3 + diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/files/0003-archutils-fix-build-on-aarch64.patch b/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/files/0003-archutils-fix-build-on-aarch64.patch new file mode 100644 index 0000000000..72f90c9127 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/files/0003-archutils-fix-build-on-aarch64.patch @@ -0,0 +1,39 @@ +From 7c572f16734b69134b17c5f6c563d6d6a595e606 Mon Sep 17 00:00:00 2001 +From: Aleksa Sarai +Date: Wed, 13 Apr 2016 19:29:20 +1000 +Subject: [PATCH 3/3] archutils: fix build on aarch64 + +Due to an invalid architecture name (arm64), containerd could not build +on aarch64 machines. Fix this by using the correct name of the +architecture for conditional building. + +Signed-off-by: Aleksa Sarai +--- + archutils/epoll.go | 3 ++- + archutils/epoll_aarch64.go | 2 +- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/archutils/epoll.go b/archutils/epoll.go +index 6922b52..6bb6047 100644 +--- a/archutils/epoll.go ++++ b/archutils/epoll.go +@@ -1,4 +1,5 @@ +-//+build !arm64,linux ++// +build linux,!aarch64 ++ + package archutils + + import ( +diff --git a/archutils/epoll_aarch64.go b/archutils/epoll_aarch64.go +index 73cd8ed..3d63147 100644 +--- a/archutils/epoll_aarch64.go ++++ b/archutils/epoll_aarch64.go +@@ -1,4 +1,4 @@ +-// +build arm64,linux ++// +build linux,aarch64 + + package archutils + +-- +2.8.3 + diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/files/0004-Correct-build-flag-for-arm64.patch b/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/files/0004-Correct-build-flag-for-arm64.patch new file mode 100644 index 0000000000..7d8527c047 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/files/0004-Correct-build-flag-for-arm64.patch @@ -0,0 +1,183 @@ +From 313db3df26b12293e7d99eab0647f5222f195648 Mon Sep 17 00:00:00 2001 +From: Qiang Huang +Date: Fri, 29 Apr 2016 11:42:41 +0000 +Subject: [PATCH 4/4] Correct build flag for arm64 + +On arm64, the default build flag is the same as the one from +`go env` which is arm64. So we should use arm64 instead of +aarch64 for both build flag and file name. + +Signed-off-by: Qiang Huang +--- + archutils/epoll.go | 2 +- + archutils/epoll_aarch64.go | 70 ---------------------------------------------- + archutils/epoll_arm64.go | 70 ++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 71 insertions(+), 71 deletions(-) + delete mode 100644 archutils/epoll_aarch64.go + create mode 100644 archutils/epoll_arm64.go + +diff --git a/archutils/epoll.go b/archutils/epoll.go +index 6bb6047..c8ade64 100644 +--- a/archutils/epoll.go ++++ b/archutils/epoll.go +@@ -1,4 +1,4 @@ +-// +build linux,!aarch64 ++// +build linux,!arm64 + + package archutils + +diff --git a/archutils/epoll_aarch64.go b/archutils/epoll_aarch64.go +deleted file mode 100644 +index 3d63147..0000000 +--- a/archutils/epoll_aarch64.go ++++ /dev/null +@@ -1,70 +0,0 @@ +-// +build linux,aarch64 +- +-package archutils +- +-// #include +-/* +-int EpollCreate1(int flag) { +- return epoll_create1(flag); +-} +- +-int EpollCtl(int efd, int op,int sfd, int events, int fd) { +- struct epoll_event event; +- event.events = events; +- event.data.fd = fd; +- +- return epoll_ctl(efd, op, sfd, &event); +-} +- +-struct event_t { +- uint32_t events; +- int fd; +-}; +- +-struct epoll_event events[128]; +-int run_epoll_wait(int fd, struct event_t *event) { +- int n, i; +- n = epoll_wait(fd, events, 128, -1); +- for (i = 0; i < n; i++) { +- event[i].events = events[i].events; +- event[i].fd = events[i].data.fd; +- } +- return n; +-} +-*/ +-import "C" +- +-import ( +- "fmt" +- "syscall" +- "unsafe" +-) +- +-func EpollCreate1(flag int) (int, error) { +- fd := int(C.EpollCreate1(C.int(flag))) +- if fd < 0 { +- return fd, fmt.Errorf("failed to create epoll, errno is %d", fd) +- } +- return fd, nil +-} +- +-func EpollCtl(epfd int, op int, fd int, event *syscall.EpollEvent) error { +- errno := C.EpollCtl(C.int(epfd), C.int(syscall.EPOLL_CTL_ADD), C.int(fd), C.int(event.Events), C.int(event.Fd)) +- if errno < 0 { +- return fmt.Errorf("Failed to ctl epoll") +- } +- return nil +-} +- +-func EpollWait(epfd int, events []syscall.EpollEvent, msec int) (int, error) { +- var c_events [128]C.struct_event_t +- n := int(C.run_epoll_wait(C.int(epfd), (*C.struct_event_t)(unsafe.Pointer(&c_events)))) +- if n < 0 { +- return int(n), fmt.Errorf("Failed to wait epoll") +- } +- for i := 0; i < n; i++ { +- events[i].Fd = int32(c_events[i].fd) +- events[i].Events = uint32(c_events[i].events) +- } +- return int(n), nil +-} +diff --git a/archutils/epoll_arm64.go b/archutils/epoll_arm64.go +new file mode 100644 +index 0000000..00abc68 +--- /dev/null ++++ b/archutils/epoll_arm64.go +@@ -0,0 +1,70 @@ ++// +build linux,arm64 ++ ++package archutils ++ ++// #include ++/* ++int EpollCreate1(int flag) { ++ return epoll_create1(flag); ++} ++ ++int EpollCtl(int efd, int op,int sfd, int events, int fd) { ++ struct epoll_event event; ++ event.events = events; ++ event.data.fd = fd; ++ ++ return epoll_ctl(efd, op, sfd, &event); ++} ++ ++struct event_t { ++ uint32_t events; ++ int fd; ++}; ++ ++struct epoll_event events[128]; ++int run_epoll_wait(int fd, struct event_t *event) { ++ int n, i; ++ n = epoll_wait(fd, events, 128, -1); ++ for (i = 0; i < n; i++) { ++ event[i].events = events[i].events; ++ event[i].fd = events[i].data.fd; ++ } ++ return n; ++} ++*/ ++import "C" ++ ++import ( ++ "fmt" ++ "syscall" ++ "unsafe" ++) ++ ++func EpollCreate1(flag int) (int, error) { ++ fd := int(C.EpollCreate1(C.int(flag))) ++ if fd < 0 { ++ return fd, fmt.Errorf("failed to create epoll, errno is %d", fd) ++ } ++ return fd, nil ++} ++ ++func EpollCtl(epfd int, op int, fd int, event *syscall.EpollEvent) error { ++ errno := C.EpollCtl(C.int(epfd), C.int(syscall.EPOLL_CTL_ADD), C.int(fd), C.int(event.Events), C.int(event.Fd)) ++ if errno < 0 { ++ return fmt.Errorf("Failed to ctl epoll") ++ } ++ return nil ++} ++ ++func EpollWait(epfd int, events []syscall.EpollEvent, msec int) (int, error) { ++ var c_events [128]C.struct_event_t ++ n := int(C.run_epoll_wait(C.int(epfd), (*C.struct_event_t)(unsafe.Pointer(&c_events)))) ++ if n < 0 { ++ return int(n), fmt.Errorf("Failed to wait epoll") ++ } ++ for i := 0; i < n; i++ { ++ events[i].Fd = int32(c_events[i].fd) ++ events[i].Events = uint32(c_events[i].events) ++ } ++ return int(n), nil ++} +-- +2.8.3 +