Skip to content

Commit 2558eb8

Browse files
committed
[linux/arm64] Host vs foreign arch
1 parent d2f3e60 commit 2558eb8

File tree

2 files changed

+20
-17
lines changed

2 files changed

+20
-17
lines changed

Dockerfile.mri.erb

+9-6
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,10 @@ RUN rm -f /usr/local/bin/sudo && \
2323
echo "%sudo ALL=(ALL) ALL" >> /etc/sudoers
2424
<% else %>
2525
ENV DEBIAN_FRONTEND noninteractive
26-
RUN apt-get -y update && \
27-
apt-get install -y sudo wget autoconf cmake curl git-core pkg-config build-essential xz-utils unzip gnupg2 dirmngr zlib1g-dev libreadline-dev libsqlite0-dev libssl-dev libyaml-dev libffi-dev && \
26+
RUN dpkg --add-architecture <%= foreign_dpkg_arch %> && \
27+
apt-get -y update && \
28+
apt-get install -y sudo wget autoconf cmake curl git-core pkg-config build-essential xz-utils unzip gnupg2 dirmngr && \
29+
apt-get install -y zlib1g-dev:<%= foreign_dpkg_arch %> libreadline-dev:<%= foreign_dpkg_arch %> libsqlite0-dev:<%= foreign_dpkg_arch %> libssl-dev:<%= foreign_dpkg_arch %> libyaml-dev:<%= foreign_dpkg_arch %> libffi-dev:<%= foreign_dpkg_arch %> && \
2830
rm -rf /var/lib/apt/lists/*
2931
<% end %>
3032

@@ -76,10 +78,10 @@ USER root
7678

7779
<% if platform=~/x64-mingw-ucrt/ %>
7880
COPY --from=larskanis/mingw64-ucrt:20.04 \
79-
/build/binutils-mingw-w64-x86-64_2.34-6ubuntu1.3+8.8_<%= dpkg_arch %>.deb \
80-
/build/g++-mingw-w64-x86-64_9.3.0-17ubuntu1~20.04+22~exp1ubuntu4_<%= dpkg_arch %>.deb \
81-
/build/gcc-mingw-w64-base_9.3.0-17ubuntu1~20.04+22~exp1ubuntu4_<%= dpkg_arch %>.deb \
82-
/build/gcc-mingw-w64-x86-64_9.3.0-17ubuntu1~20.04+22~exp1ubuntu4_<%= dpkg_arch %>.deb \
81+
/build/binutils-mingw-w64-x86-64_2.34-6ubuntu1.3+8.8_<%= host_dpkg_arch %>.deb \
82+
/build/g++-mingw-w64-x86-64_9.3.0-17ubuntu1~20.04+22~exp1ubuntu4_<%= host_dpkg_arch %>.deb \
83+
/build/gcc-mingw-w64-base_9.3.0-17ubuntu1~20.04+22~exp1ubuntu4_<%= host_dpkg_arch %>.deb \
84+
/build/gcc-mingw-w64-x86-64_9.3.0-17ubuntu1~20.04+22~exp1ubuntu4_<%= host_dpkg_arch %>.deb \
8385
/build/mingw-w64-common_7.0.0-2_all.deb \
8486
/build/mingw-w64-x86-64-dev_7.0.0-2_all.deb \
8587
/debs/
@@ -90,6 +92,7 @@ RUN apt-get -y update && \
9092
apt-get install -y <%
9193
if platform=~/darwin/ %> clang python lzma-dev libxml2-dev libssl-dev libc++-10-dev <% end %><%
9294
if platform=~/aarch64-linux/ %> gcc-aarch64-linux-gnu g++-aarch64-linux-gnu <% end %><%
95+
if platform=~/x86_64-linux/ %> gcc-x86-64-linux-gnu g++-x86-64-linux-gnu <% end %><%
9396
if platform=~/arm-linux/ %> gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf <% end %><%
9497
if platform=~/x86-mingw32/ %> gcc-mingw-w64-i686 g++-mingw-w64-i686 <% end %><%
9598
if platform=~/x64-mingw32/ %> gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 <% end %> && \

Rakefile

+11-11
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,23 @@ DOCKERHUB_USER = ENV['DOCKERHUB_USER'] || "larskanis"
1010
docker_build_cmd = Shellwords.split(ENV['RCD_DOCKER_BUILD'] || "docker build")
1111

1212
platforms = [
13-
["x86-mingw32", "i686-w64-mingw32"],
14-
["x64-mingw32", "x86_64-w64-mingw32"],
15-
["x64-mingw-ucrt", "x86_64-w64-mingw32"],
16-
["x86-linux", "i686-redhat-linux"],
17-
["x86_64-linux", "x86_64-redhat-linux"],
18-
["x86_64-darwin", "x86_64-apple-darwin"],
19-
["arm64-darwin", "aarch64-apple-darwin"],
20-
["arm-linux", "arm-linux-gnueabihf"],
21-
["aarch64-linux", "aarch64-linux-gnu"],
13+
["x86-mingw32", "i686-w64-mingw32", "i386"],
14+
["x64-mingw32", "x86_64-w64-mingw32", "amd64"],
15+
["x64-mingw-ucrt", "x86_64-w64-mingw32", "amd64"],
16+
["x86-linux", "i686-redhat-linux", "i386"],
17+
["x86_64-linux", "x86_64-redhat-linux", "amd64"],
18+
["x86_64-darwin", "x86_64-apple-darwin", "amd64"],
19+
["arm64-darwin", "aarch64-apple-darwin", "arm64"],
20+
["arm-linux", "arm-linux-gnueabihf", "armhf"],
21+
["aarch64-linux", "aarch64-linux-gnu", "arm64"],
2222
]
2323

2424
namespace :build do
2525

26-
platforms.each do |platform, target|
26+
platforms.each do |platform, target, foreign_dpkg_arch|
2727
sdf = "Dockerfile.mri.#{platform}"
2828

29-
dpkg_arch = case ENV["DOCKER_BUILD_PLATFORM"]
29+
host_dpkg_arch = case ENV["DOCKER_BUILD_PLATFORM"]
3030
when /arm64/
3131
"arm64"
3232
when /amd64/

0 commit comments

Comments
 (0)