From e7984de936f592be5751933836ce6a3dd465b424 Mon Sep 17 00:00:00 2001 From: satawatnack Date: Tue, 19 Sep 2023 17:22:37 +0700 Subject: [PATCH 01/19] init --- api/link_glibclinux_aarch64.go | 6 ++++++ api/link_glibclinux_x86_64.go | 6 ++++++ build/Dockerfile.linux | 32 ++++++++++++++++++++++++++++---- build/build_gnu_aarch64.sh | 19 +++++++++++++++++++ build/build_gnu_x86_64.sh | 13 +++++++++++++ build/build_linux.sh | 11 ++++++++--- 6 files changed, 80 insertions(+), 7 deletions(-) create mode 100644 api/link_glibclinux_aarch64.go create mode 100644 api/link_glibclinux_x86_64.go create mode 100644 build/build_gnu_aarch64.sh create mode 100644 build/build_gnu_x86_64.sh diff --git a/api/link_glibclinux_aarch64.go b/api/link_glibclinux_aarch64.go new file mode 100644 index 0000000..734d9ee --- /dev/null +++ b/api/link_glibclinux_aarch64.go @@ -0,0 +1,6 @@ +//go:build linux && !muslc && arm64 && !sys_wasmvm + +package api + +// #cgo LDFLAGS: -Wl,-rpath,${SRCDIR} -L${SRCDIR} -lgo_owasm.aarch64 +import "C" diff --git a/api/link_glibclinux_x86_64.go b/api/link_glibclinux_x86_64.go new file mode 100644 index 0000000..1450737 --- /dev/null +++ b/api/link_glibclinux_x86_64.go @@ -0,0 +1,6 @@ +//go:build linux && !muslc && amd64 && !sys_wasmvm + +package api + +// #cgo LDFLAGS: -Wl,-rpath,${SRCDIR} -L${SRCDIR} -lgo_owasm.x86_64 +import "C" diff --git a/build/Dockerfile.linux b/build/Dockerfile.linux index 0d900e0..bd44996 100644 --- a/build/Dockerfile.linux +++ b/build/Dockerfile.linux @@ -1,7 +1,23 @@ FROM centos:centos7 -RUN yum -y update -RUN yum -y install clang gcc gcc-c++ make wget gmp-devel +RUN yum -y update \ + && yum -y install clang gcc gcc-c++ make wget \ + # Obtain dependencies for cross compiling + # The only prebuilt glibc was done by third party Computational + && yum -y install epel-release \ + # See https://centos.pkgs.org/7/epel-aarch64/gcc-aarch64-linux-gnu-4.8.5-16.el7.1.aarch64.rpm.html + # and https://centos.pkgs.org/7/epel-aarch64/gcc-c++-aarch64-linux-gnu-4.8.5-16.el7.1.aarch64.rpm.html: + # "Support for cross-building user space programs is not currently provided as that would massively multiply + # the number of packages." + && yum -y install gcc-aarch64-linux-gnu gcc-c++-aarch64-linux-gnu \ + # See https://stackoverflow.com/a/64920961 + && wget http://springdale.princeton.edu/data/springdale/7/x86_64/os/Computational/glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm \ + && sha256sum glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm | grep 8caf8654ba0c15e1792bf0aaa1ac0cd4ad94ac905e97d6ea0f0e56e9ca1f5e78 \ + && wget http://springdale.princeton.edu/data/springdale/7/x86_64/os/Computational/glibc-aarch64-linux-gnu-devel-2.24-2.sdl7.2.noarch.rpm \ + && sha256sum glibc-aarch64-linux-gnu-devel-2.24-2.sdl7.2.noarch.rpm | grep bf050dc2389630f50e90f4cdaf6e4e1d986e89dcd2c8432f72738abe38b3bce2 \ + && yum install -y glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm \ + && yum install -y glibc-aarch64-linux-gnu-devel-2.24-2.sdl7.2.noarch.rpm \ + && rm glibc-aarch64-*.rpm # reference from https://github.com/rust-lang/docker-rust-nightly ENV RUSTUP_HOME=/usr/local/rustup \ @@ -11,12 +27,13 @@ ENV RUSTUP_HOME=/usr/local/rustup \ RUN url="https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init"; \ wget "$url"; \ chmod +x rustup-init; \ - ./rustup-init -y --no-modify-path --default-toolchain 1.60.0; \ + ./rustup-init -y --no-modify-path --default-toolchain 1.69.0; \ rm rustup-init; \ chmod -R a+w $RUSTUP_HOME $CARGO_HOME; \ rustup --version; \ cargo --version; \ - rustc --version; + rustc --version; \ + rustup target add aarch64-unknown-linux-gnu # pre-fetch many deps WORKDIR /scratch @@ -39,4 +56,11 @@ RUN mkdir /.cargo RUN chmod +rx /.cargo COPY go-owasm/build/cargo-config /.cargo/config +# Copy the missing library libgcc_s.so that gcc does not provide +RUN wget http://mirror.centos.org/altarch/7/os/aarch64/Packages/libgcc-4.8.5-44.el7.aarch64.rpm \ + && sha256sum libgcc-4.8.5-44.el7.aarch64.rpm | grep 4f44c5be70ed9d8d74c2a616cde92a842b15eefaccd766959e5fbd7fbe965d2d \ + && rpm2cpio libgcc-4.8.5-44.el7.aarch64.rpm | cpio -idmv \ + && cp /code/lib64/libgcc_s-4.8.5-20150702.so.1 /usr/lib/gcc/aarch64-linux-gnu/4.8.5/libgcc_s.so \ + && rm libgcc-*.el7.aarch64.rpm + CMD ["/opt/build_linux.sh"] diff --git a/build/build_gnu_aarch64.sh b/build/build_gnu_aarch64.sh new file mode 100644 index 0000000..c44733a --- /dev/null +++ b/build/build_gnu_aarch64.sh @@ -0,0 +1,19 @@ +#!/bin/bash +set -o errexit -o nounset -o pipefail + +export CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse + +# See https://github.com/CosmWasm/wasmvm/issues/222#issuecomment-880616953 for two approaches to +# enable stripping through cargo (if that is desired). + +echo "Starting aarch64-unknown-linux-gnu build" +export CC=clang +export CXX=clang++ +export qemu_aarch64="qemu-aarch64 -L /usr/aarch64-linux-gnu" +export CC_aarch64_unknown_linux_gnu=clang +export AR_aarch64_unknown_linux_gnu=llvm-ar +export CFLAGS_aarch64_unknown_linux_gnu="--sysroot=/usr/aarch64-linux-gnu" +export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc +export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER="$qemu_aarch64" +cargo build --release --target aarch64-unknown-linux-gnu +cp target/aarch64-unknown-linux-gnu/release/libwasmvm.so ./../api/libwasmvm.aarch64.so diff --git a/build/build_gnu_x86_64.sh b/build/build_gnu_x86_64.sh new file mode 100644 index 0000000..78067bb --- /dev/null +++ b/build/build_gnu_x86_64.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -o errexit -o nounset -o pipefail + +export CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse + +# See https://github.com/CosmWasm/wasmvm/issues/222#issuecomment-880616953 for two approaches to +# enable stripping through cargo (if that is desired). + +echo "Starting x86_64-unknown-linux-gnu build" +export CC=clang +export CXX=clang++ +cargo build --release --target x86_64-unknown-linux-gnu +cp target/x86_64-unknown-linux-gnu/release/libwasmvm.so artifacts/libwasmvm.x86_64.so diff --git a/build/build_linux.sh b/build/build_linux.sh index c577993..e6ec32b 100644 --- a/build/build_linux.sh +++ b/build/build_linux.sh @@ -1,5 +1,10 @@ #!/bin/bash - +set -o errexit -o nounset -o pipefail cd go-owasm/libgo_owasm -cargo build --release -cp target/release/deps/libgo_owasm.so ./../api + +build_gnu_x86_64.sh +build_gnu_aarch64.sh + +# cd go-owasm/libgo_owasm +# cargo build --release +# cp target/release/deps/libgo_owasm.so ./../api From ceacb990fc8b396ddde8c0f51bb87f128eb8e356 Mon Sep 17 00:00:00 2001 From: satawatnack Date: Wed, 20 Sep 2023 13:45:41 +0700 Subject: [PATCH 02/19] test1 --- api/link_glibclinux_aarch64.go | 2 +- api/link_glibclinux_x86_64.go | 2 +- build/build_gnu_aarch64.sh | 2 +- build/build_gnu_x86_64.sh | 2 +- build/build_linux.sh | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/api/link_glibclinux_aarch64.go b/api/link_glibclinux_aarch64.go index 734d9ee..8b9597e 100644 --- a/api/link_glibclinux_aarch64.go +++ b/api/link_glibclinux_aarch64.go @@ -1,4 +1,4 @@ -//go:build linux && !muslc && arm64 && !sys_wasmvm +//go:build linux && !muslc && arm64 package api diff --git a/api/link_glibclinux_x86_64.go b/api/link_glibclinux_x86_64.go index 1450737..deb4d1c 100644 --- a/api/link_glibclinux_x86_64.go +++ b/api/link_glibclinux_x86_64.go @@ -1,4 +1,4 @@ -//go:build linux && !muslc && amd64 && !sys_wasmvm +//go:build linux && !muslc && amd64 package api diff --git a/build/build_gnu_aarch64.sh b/build/build_gnu_aarch64.sh index c44733a..b5e5e5c 100644 --- a/build/build_gnu_aarch64.sh +++ b/build/build_gnu_aarch64.sh @@ -16,4 +16,4 @@ export CFLAGS_aarch64_unknown_linux_gnu="--sysroot=/usr/aarch64-linux-gnu" export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER="$qemu_aarch64" cargo build --release --target aarch64-unknown-linux-gnu -cp target/aarch64-unknown-linux-gnu/release/libwasmvm.so ./../api/libwasmvm.aarch64.so +cp target/aarch64-unknown-linux-gnu/release/libgo_owasm.so ./../api/libgo_owasm.aarch64.so diff --git a/build/build_gnu_x86_64.sh b/build/build_gnu_x86_64.sh index 78067bb..eb3a3c4 100644 --- a/build/build_gnu_x86_64.sh +++ b/build/build_gnu_x86_64.sh @@ -10,4 +10,4 @@ echo "Starting x86_64-unknown-linux-gnu build" export CC=clang export CXX=clang++ cargo build --release --target x86_64-unknown-linux-gnu -cp target/x86_64-unknown-linux-gnu/release/libwasmvm.so artifacts/libwasmvm.x86_64.so +cp target/x86_64-unknown-linux-gnu/release/libgo_owasm.so ./../api/libgo_owasm.x86_64.so diff --git a/build/build_linux.sh b/build/build_linux.sh index e6ec32b..1ac8727 100644 --- a/build/build_linux.sh +++ b/build/build_linux.sh @@ -1,10 +1,10 @@ #!/bin/bash set -o errexit -o nounset -o pipefail -cd go-owasm/libgo_owasm +cd go-owasm/libgo_owasm build_gnu_x86_64.sh build_gnu_aarch64.sh -# cd go-owasm/libgo_owasm + # cargo build --release # cp target/release/deps/libgo_owasm.so ./../api From c529cd75fedd1700a7f4b535484060f23eb697b1 Mon Sep 17 00:00:00 2001 From: satawatnack Date: Wed, 20 Sep 2023 14:18:36 +0700 Subject: [PATCH 03/19] update chmod --- build/Dockerfile.linux | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Dockerfile.linux b/build/Dockerfile.linux index bd44996..2b3979c 100644 --- a/build/Dockerfile.linux +++ b/build/Dockerfile.linux @@ -48,8 +48,8 @@ WORKDIR /code RUN rm -rf /scratch # copy build scripts -COPY go-owasm/build/build_linux.sh /opt -RUN chmod +x /opt/build* +COPY go-owasm/build/*.sh /opt/ +RUN chmod +x /opt/*.sh # add config cargo RUN mkdir /.cargo From a0483a7ea39283f86071612fe4a3ef44fac9dfbf Mon Sep 17 00:00:00 2001 From: satawatnack Date: Wed, 20 Sep 2023 14:51:01 +0700 Subject: [PATCH 04/19] remove cd --- build/build_linux.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/build_linux.sh b/build/build_linux.sh index 1ac8727..88d8627 100644 --- a/build/build_linux.sh +++ b/build/build_linux.sh @@ -1,7 +1,7 @@ #!/bin/bash set -o errexit -o nounset -o pipefail -cd go-owasm/libgo_owasm +# cd go-owasm/libgo_owasm build_gnu_x86_64.sh build_gnu_aarch64.sh From 3ff424f8204f697be1682d11bccc0a3a0c2527ac Mon Sep 17 00:00:00 2001 From: satawatnack Date: Wed, 20 Sep 2023 15:26:31 +0700 Subject: [PATCH 05/19] add cd --- Makefile | 2 ++ build/build_linux.sh | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 25d9958..4d5564e 100644 --- a/Makefile +++ b/Makefile @@ -23,6 +23,8 @@ release-alpine: # Creates a release build in a containerized build environment of the shared library for glibc Linux (.so) release-linux: rm -rf libgo_owasm/target/release + rm -rf libgo_owasm/target/x86_64-unknown-linux-gnu/release + rm -rf libgo_owasm/target/aarch64-unknown-linux-gnu/release docker run --rm -u $(USER_ID):$(USER_GROUP) -v $(shell pwd):/code/go-owasm owasm/go-ext-builder:$(DOCKER_TAG)-linux # Creates a release build in a containerized build environment of the shared library for macOS (.dylib) diff --git a/build/build_linux.sh b/build/build_linux.sh index 88d8627..474540f 100644 --- a/build/build_linux.sh +++ b/build/build_linux.sh @@ -1,10 +1,11 @@ #!/bin/bash set -o errexit -o nounset -o pipefail -# cd go-owasm/libgo_owasm -build_gnu_x86_64.sh -build_gnu_aarch64.sh +cd go-owasm/libgo_owasm +/opt/build_gnu_x86_64.sh +/opt/build_gnu_aarch64.sh +# cd go-owasm/libgo_owasm # cargo build --release # cp target/release/deps/libgo_owasm.so ./../api From 5c44225ae5c948163c91c49528765b69da51bab4 Mon Sep 17 00:00:00 2001 From: satawatnack Date: Wed, 20 Sep 2023 15:55:23 +0700 Subject: [PATCH 06/19] add gmp --- api/link_glibclinux_aarch64.go | 2 +- api/link_glibclinux_x86_64.go | 2 +- build/Dockerfile.linux | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api/link_glibclinux_aarch64.go b/api/link_glibclinux_aarch64.go index 8b9597e..d905027 100644 --- a/api/link_glibclinux_aarch64.go +++ b/api/link_glibclinux_aarch64.go @@ -2,5 +2,5 @@ package api -// #cgo LDFLAGS: -Wl,-rpath,${SRCDIR} -L${SRCDIR} -lgo_owasm.aarch64 +// #cgo LDFLAGS: -Wl,-rpath,${SRCDIR} -L${SRCDIR} -lgo_owasm.aarch64 -lgmp import "C" diff --git a/api/link_glibclinux_x86_64.go b/api/link_glibclinux_x86_64.go index deb4d1c..52b6f2a 100644 --- a/api/link_glibclinux_x86_64.go +++ b/api/link_glibclinux_x86_64.go @@ -2,5 +2,5 @@ package api -// #cgo LDFLAGS: -Wl,-rpath,${SRCDIR} -L${SRCDIR} -lgo_owasm.x86_64 +// #cgo LDFLAGS: -Wl,-rpath,${SRCDIR} -L${SRCDIR} -lgo_owasm.x86_64 -lgmp import "C" diff --git a/build/Dockerfile.linux b/build/Dockerfile.linux index 2b3979c..5f19787 100644 --- a/build/Dockerfile.linux +++ b/build/Dockerfile.linux @@ -1,7 +1,7 @@ FROM centos:centos7 RUN yum -y update \ - && yum -y install clang gcc gcc-c++ make wget \ + && yum -y install clang gcc gcc-c++ make wget gmp-devel \ # Obtain dependencies for cross compiling # The only prebuilt glibc was done by third party Computational && yum -y install epel-release \ From 71ca20d63a30c9bb0a000d1ca7f9301ed9acd168 Mon Sep 17 00:00:00 2001 From: satawatnack Date: Wed, 20 Sep 2023 16:38:55 +0700 Subject: [PATCH 07/19] test x86 --- build/build_linux.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/build_linux.sh b/build/build_linux.sh index 474540f..1ec6a71 100644 --- a/build/build_linux.sh +++ b/build/build_linux.sh @@ -3,7 +3,7 @@ set -o errexit -o nounset -o pipefail cd go-owasm/libgo_owasm /opt/build_gnu_x86_64.sh -/opt/build_gnu_aarch64.sh +# /opt/build_gnu_aarch64.sh # cd go-owasm/libgo_owasm From a8a8650203a0e336cd6276c15a2031362c31506f Mon Sep 17 00:00:00 2001 From: satawatnack Date: Wed, 20 Sep 2023 16:44:39 +0700 Subject: [PATCH 08/19] add gmp --- build/Dockerfile.linux | 1 + 1 file changed, 1 insertion(+) diff --git a/build/Dockerfile.linux b/build/Dockerfile.linux index 5f19787..407d7fa 100644 --- a/build/Dockerfile.linux +++ b/build/Dockerfile.linux @@ -10,6 +10,7 @@ RUN yum -y update \ # "Support for cross-building user space programs is not currently provided as that would massively multiply # the number of packages." && yum -y install gcc-aarch64-linux-gnu gcc-c++-aarch64-linux-gnu \ + && yum install -y gmp-6.3.0-2.1.src.rpm\ # See https://stackoverflow.com/a/64920961 && wget http://springdale.princeton.edu/data/springdale/7/x86_64/os/Computational/glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm \ && sha256sum glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm | grep 8caf8654ba0c15e1792bf0aaa1ac0cd4ad94ac905e97d6ea0f0e56e9ca1f5e78 \ From 0f696ee71101f8b7609e5e81af8a28ec15ffffe0 Mon Sep 17 00:00:00 2001 From: satawatnack Date: Wed, 20 Sep 2023 17:01:48 +0700 Subject: [PATCH 09/19] add gmp --- build/Dockerfile.linux | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Dockerfile.linux b/build/Dockerfile.linux index 407d7fa..9eddc45 100644 --- a/build/Dockerfile.linux +++ b/build/Dockerfile.linux @@ -10,7 +10,7 @@ RUN yum -y update \ # "Support for cross-building user space programs is not currently provided as that would massively multiply # the number of packages." && yum -y install gcc-aarch64-linux-gnu gcc-c++-aarch64-linux-gnu \ - && yum install -y gmp-6.3.0-2.1.src.rpm\ + && yum install -y gmp-devel-6.0.0-15.el7.aarch64.rpm\ # See https://stackoverflow.com/a/64920961 && wget http://springdale.princeton.edu/data/springdale/7/x86_64/os/Computational/glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm \ && sha256sum glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm | grep 8caf8654ba0c15e1792bf0aaa1ac0cd4ad94ac905e97d6ea0f0e56e9ca1f5e78 \ From b510858529521460c35a0a12bc09b070b700c59d Mon Sep 17 00:00:00 2001 From: satawatnack Date: Wed, 20 Sep 2023 17:13:01 +0700 Subject: [PATCH 10/19] add new link --- build/Dockerfile.linux | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Dockerfile.linux b/build/Dockerfile.linux index 9eddc45..8b39bb5 100644 --- a/build/Dockerfile.linux +++ b/build/Dockerfile.linux @@ -10,7 +10,7 @@ RUN yum -y update \ # "Support for cross-building user space programs is not currently provided as that would massively multiply # the number of packages." && yum -y install gcc-aarch64-linux-gnu gcc-c++-aarch64-linux-gnu \ - && yum install -y gmp-devel-6.0.0-15.el7.aarch64.rpm\ + && yum install -y gmp-devel-6.3.0-2.1.aarch64.rpm\ # See https://stackoverflow.com/a/64920961 && wget http://springdale.princeton.edu/data/springdale/7/x86_64/os/Computational/glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm \ && sha256sum glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm | grep 8caf8654ba0c15e1792bf0aaa1ac0cd4ad94ac905e97d6ea0f0e56e9ca1f5e78 \ From 24d71b1ae74a88f5f2e844c6fb1620813cb7e6e2 Mon Sep 17 00:00:00 2001 From: satawatnack Date: Wed, 20 Sep 2023 17:17:38 +0700 Subject: [PATCH 11/19] add space --- build/Dockerfile.linux | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Dockerfile.linux b/build/Dockerfile.linux index 8b39bb5..d5f5c4f 100644 --- a/build/Dockerfile.linux +++ b/build/Dockerfile.linux @@ -10,7 +10,7 @@ RUN yum -y update \ # "Support for cross-building user space programs is not currently provided as that would massively multiply # the number of packages." && yum -y install gcc-aarch64-linux-gnu gcc-c++-aarch64-linux-gnu \ - && yum install -y gmp-devel-6.3.0-2.1.aarch64.rpm\ + && yum install -y gmp-devel-6.3.0-2.1.aarch64.rpm \ # See https://stackoverflow.com/a/64920961 && wget http://springdale.princeton.edu/data/springdale/7/x86_64/os/Computational/glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm \ && sha256sum glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm | grep 8caf8654ba0c15e1792bf0aaa1ac0cd4ad94ac905e97d6ea0f0e56e9ca1f5e78 \ From 6f254ecb698349f456d636d43ba9f03f6ac007df Mon Sep 17 00:00:00 2001 From: satawatnack Date: Wed, 20 Sep 2023 17:25:45 +0700 Subject: [PATCH 12/19] add gmp arm --- build/Dockerfile.linux | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build/Dockerfile.linux b/build/Dockerfile.linux index d5f5c4f..c0f4bd0 100644 --- a/build/Dockerfile.linux +++ b/build/Dockerfile.linux @@ -16,8 +16,10 @@ RUN yum -y update \ && sha256sum glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm | grep 8caf8654ba0c15e1792bf0aaa1ac0cd4ad94ac905e97d6ea0f0e56e9ca1f5e78 \ && wget http://springdale.princeton.edu/data/springdale/7/x86_64/os/Computational/glibc-aarch64-linux-gnu-devel-2.24-2.sdl7.2.noarch.rpm \ && sha256sum glibc-aarch64-linux-gnu-devel-2.24-2.sdl7.2.noarch.rpm | grep bf050dc2389630f50e90f4cdaf6e4e1d986e89dcd2c8432f72738abe38b3bce2 \ + && wget https://rpmfind.net/linux/opensuse/ports/aarch64/tumbleweed/repo/oss/aarch64/gmp-devel-6.3.0-2.1.aarch64.rpm \ && yum install -y glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm \ && yum install -y glibc-aarch64-linux-gnu-devel-2.24-2.sdl7.2.noarch.rpm \ + && yum install -y gmp-devel-6.3.0-2.1.aarch64.rpm \ && rm glibc-aarch64-*.rpm # reference from https://github.com/rust-lang/docker-rust-nightly From 28297ba731317b294c4abeff071cf2f3ff0f5cae Mon Sep 17 00:00:00 2001 From: satawatnack Date: Wed, 20 Sep 2023 17:28:42 +0700 Subject: [PATCH 13/19] update docker --- build/Dockerfile.linux | 1 - 1 file changed, 1 deletion(-) diff --git a/build/Dockerfile.linux b/build/Dockerfile.linux index c0f4bd0..555af7d 100644 --- a/build/Dockerfile.linux +++ b/build/Dockerfile.linux @@ -10,7 +10,6 @@ RUN yum -y update \ # "Support for cross-building user space programs is not currently provided as that would massively multiply # the number of packages." && yum -y install gcc-aarch64-linux-gnu gcc-c++-aarch64-linux-gnu \ - && yum install -y gmp-devel-6.3.0-2.1.aarch64.rpm \ # See https://stackoverflow.com/a/64920961 && wget http://springdale.princeton.edu/data/springdale/7/x86_64/os/Computational/glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm \ && sha256sum glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm | grep 8caf8654ba0c15e1792bf0aaa1ac0cd4ad94ac905e97d6ea0f0e56e9ca1f5e78 \ From 749326ca16882bb4ed4d11e86daaf64d332b25d0 Mon Sep 17 00:00:00 2001 From: satawatnack Date: Wed, 20 Sep 2023 17:55:43 +0700 Subject: [PATCH 14/19] add docker --- build/Dockerfile.linux | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Dockerfile.linux b/build/Dockerfile.linux index 555af7d..1cc73e5 100644 --- a/build/Dockerfile.linux +++ b/build/Dockerfile.linux @@ -15,10 +15,10 @@ RUN yum -y update \ && sha256sum glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm | grep 8caf8654ba0c15e1792bf0aaa1ac0cd4ad94ac905e97d6ea0f0e56e9ca1f5e78 \ && wget http://springdale.princeton.edu/data/springdale/7/x86_64/os/Computational/glibc-aarch64-linux-gnu-devel-2.24-2.sdl7.2.noarch.rpm \ && sha256sum glibc-aarch64-linux-gnu-devel-2.24-2.sdl7.2.noarch.rpm | grep bf050dc2389630f50e90f4cdaf6e4e1d986e89dcd2c8432f72738abe38b3bce2 \ - && wget https://rpmfind.net/linux/opensuse/ports/aarch64/tumbleweed/repo/oss/aarch64/gmp-devel-6.3.0-2.1.aarch64.rpm \ + && wget https://rpmfind.net/linux/fedora/linux/development/rawhide/Everything/aarch64/os/Packages/g/gmp-devel-6.2.1-5.fc39.aarch64.rpm \ && yum install -y glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm \ && yum install -y glibc-aarch64-linux-gnu-devel-2.24-2.sdl7.2.noarch.rpm \ - && yum install -y gmp-devel-6.3.0-2.1.aarch64.rpm \ + && yum install -y gmp-devel-6.2.1-5.fc39.aarch64.rpm \ && rm glibc-aarch64-*.rpm # reference from https://github.com/rust-lang/docker-rust-nightly From 8d0d57e05408b7a39054d6dbce18ba9582d7c8c0 Mon Sep 17 00:00:00 2001 From: satawatnack Date: Thu, 21 Sep 2023 11:48:35 +0700 Subject: [PATCH 15/19] change gmp-devel version --- build/Dockerfile.linux | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Dockerfile.linux b/build/Dockerfile.linux index 1cc73e5..bb33792 100644 --- a/build/Dockerfile.linux +++ b/build/Dockerfile.linux @@ -15,10 +15,10 @@ RUN yum -y update \ && sha256sum glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm | grep 8caf8654ba0c15e1792bf0aaa1ac0cd4ad94ac905e97d6ea0f0e56e9ca1f5e78 \ && wget http://springdale.princeton.edu/data/springdale/7/x86_64/os/Computational/glibc-aarch64-linux-gnu-devel-2.24-2.sdl7.2.noarch.rpm \ && sha256sum glibc-aarch64-linux-gnu-devel-2.24-2.sdl7.2.noarch.rpm | grep bf050dc2389630f50e90f4cdaf6e4e1d986e89dcd2c8432f72738abe38b3bce2 \ - && wget https://rpmfind.net/linux/fedora/linux/development/rawhide/Everything/aarch64/os/Packages/g/gmp-devel-6.2.1-5.fc39.aarch64.rpm \ + && wget http://mirror.centos.org/altarch/7/os/aarch64/Packages/gmp-devel-6.0.0-15.el7.aarch64.rpm \ && yum install -y glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm \ && yum install -y glibc-aarch64-linux-gnu-devel-2.24-2.sdl7.2.noarch.rpm \ - && yum install -y gmp-devel-6.2.1-5.fc39.aarch64.rpm \ + && yum install -y gmp-devel-6.0.0-15.el7.aarch64.rpm \ && rm glibc-aarch64-*.rpm # reference from https://github.com/rust-lang/docker-rust-nightly From b28c6e0b529365bf9b4a2db0786c558cf08ef84d Mon Sep 17 00:00:00 2001 From: satawatnack Date: Fri, 29 Sep 2023 15:53:06 +0700 Subject: [PATCH 16/19] test gmp-devel --- build/Dockerfile.linux | 11 ++++++++--- build/build_linux.sh | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/build/Dockerfile.linux b/build/Dockerfile.linux index bb33792..ca3b7a3 100644 --- a/build/Dockerfile.linux +++ b/build/Dockerfile.linux @@ -1,7 +1,7 @@ FROM centos:centos7 RUN yum -y update \ - && yum -y install clang gcc gcc-c++ make wget gmp-devel \ + && yum -y install clang gcc gmake wget gmp-devel zlib-devel \ # Obtain dependencies for cross compiling # The only prebuilt glibc was done by third party Computational && yum -y install epel-release \ @@ -15,10 +15,8 @@ RUN yum -y update \ && sha256sum glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm | grep 8caf8654ba0c15e1792bf0aaa1ac0cd4ad94ac905e97d6ea0f0e56e9ca1f5e78 \ && wget http://springdale.princeton.edu/data/springdale/7/x86_64/os/Computational/glibc-aarch64-linux-gnu-devel-2.24-2.sdl7.2.noarch.rpm \ && sha256sum glibc-aarch64-linux-gnu-devel-2.24-2.sdl7.2.noarch.rpm | grep bf050dc2389630f50e90f4cdaf6e4e1d986e89dcd2c8432f72738abe38b3bce2 \ - && wget http://mirror.centos.org/altarch/7/os/aarch64/Packages/gmp-devel-6.0.0-15.el7.aarch64.rpm \ && yum install -y glibc-aarch64-linux-gnu-2.24-2.sdl7.2.noarch.rpm \ && yum install -y glibc-aarch64-linux-gnu-devel-2.24-2.sdl7.2.noarch.rpm \ - && yum install -y gmp-devel-6.0.0-15.el7.aarch64.rpm \ && rm glibc-aarch64-*.rpm # reference from https://github.com/rust-lang/docker-rust-nightly @@ -58,6 +56,13 @@ RUN mkdir /.cargo RUN chmod +rx /.cargo COPY go-owasm/build/cargo-config /.cargo/config +# Download and install gmp-devel for AArch64 +RUN yum install -y wget \ + && wget http://mirror.centos.org/altarch/7/os/aarch64/Packages/gmp-devel-6.0.0-15.el7.aarch64.rpm \ + && rpm2cpio gmp-devel-6.0.0-15.el7.aarch64.rpm | cpio -idmv && \ + mv usr/* /usr/ && \ + && rm gmp-devel-6.0.0-15.el7.aarch64.rpm + # Copy the missing library libgcc_s.so that gcc does not provide RUN wget http://mirror.centos.org/altarch/7/os/aarch64/Packages/libgcc-4.8.5-44.el7.aarch64.rpm \ && sha256sum libgcc-4.8.5-44.el7.aarch64.rpm | grep 4f44c5be70ed9d8d74c2a616cde92a842b15eefaccd766959e5fbd7fbe965d2d \ diff --git a/build/build_linux.sh b/build/build_linux.sh index 1ec6a71..474540f 100644 --- a/build/build_linux.sh +++ b/build/build_linux.sh @@ -3,7 +3,7 @@ set -o errexit -o nounset -o pipefail cd go-owasm/libgo_owasm /opt/build_gnu_x86_64.sh -# /opt/build_gnu_aarch64.sh +/opt/build_gnu_aarch64.sh # cd go-owasm/libgo_owasm From 7619a01d9cd6de6cc913962a717c4fa775d34d89 Mon Sep 17 00:00:00 2001 From: satawatnack Date: Fri, 29 Sep 2023 16:47:01 +0700 Subject: [PATCH 17/19] update cmd --- build/Dockerfile.linux | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build/Dockerfile.linux b/build/Dockerfile.linux index ca3b7a3..5077a3e 100644 --- a/build/Dockerfile.linux +++ b/build/Dockerfile.linux @@ -57,8 +57,7 @@ RUN chmod +rx /.cargo COPY go-owasm/build/cargo-config /.cargo/config # Download and install gmp-devel for AArch64 -RUN yum install -y wget \ - && wget http://mirror.centos.org/altarch/7/os/aarch64/Packages/gmp-devel-6.0.0-15.el7.aarch64.rpm \ +RUN wget http://mirror.centos.org/altarch/7/os/aarch64/Packages/gmp-devel-6.0.0-15.el7.aarch64.rpm \ && rpm2cpio gmp-devel-6.0.0-15.el7.aarch64.rpm | cpio -idmv && \ mv usr/* /usr/ && \ && rm gmp-devel-6.0.0-15.el7.aarch64.rpm From 7d6f15cae5d06bcfdb6ecc9f5be5477bea99a09b Mon Sep 17 00:00:00 2001 From: satawatnack Date: Fri, 29 Sep 2023 16:59:35 +0700 Subject: [PATCH 18/19] update cmd --- build/Dockerfile.linux | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Dockerfile.linux b/build/Dockerfile.linux index 5077a3e..258487e 100644 --- a/build/Dockerfile.linux +++ b/build/Dockerfile.linux @@ -58,8 +58,8 @@ COPY go-owasm/build/cargo-config /.cargo/config # Download and install gmp-devel for AArch64 RUN wget http://mirror.centos.org/altarch/7/os/aarch64/Packages/gmp-devel-6.0.0-15.el7.aarch64.rpm \ - && rpm2cpio gmp-devel-6.0.0-15.el7.aarch64.rpm | cpio -idmv && \ - mv usr/* /usr/ && \ + && rpm2cpio gmp-devel-6.0.0-15.el7.aarch64.rpm | cpio -idmv \ + && mv usr/* /usr/ \ && rm gmp-devel-6.0.0-15.el7.aarch64.rpm # Copy the missing library libgcc_s.so that gcc does not provide From 6591db2a64ec209d37e7dc82a2ea03037354c603 Mon Sep 17 00:00:00 2001 From: satawatnack Date: Fri, 29 Sep 2023 17:23:21 +0700 Subject: [PATCH 19/19] not move --- build/Dockerfile.linux | 1 - 1 file changed, 1 deletion(-) diff --git a/build/Dockerfile.linux b/build/Dockerfile.linux index 258487e..5624bb1 100644 --- a/build/Dockerfile.linux +++ b/build/Dockerfile.linux @@ -59,7 +59,6 @@ COPY go-owasm/build/cargo-config /.cargo/config # Download and install gmp-devel for AArch64 RUN wget http://mirror.centos.org/altarch/7/os/aarch64/Packages/gmp-devel-6.0.0-15.el7.aarch64.rpm \ && rpm2cpio gmp-devel-6.0.0-15.el7.aarch64.rpm | cpio -idmv \ - && mv usr/* /usr/ \ && rm gmp-devel-6.0.0-15.el7.aarch64.rpm # Copy the missing library libgcc_s.so that gcc does not provide