1
Fork 0

Auto merge of #81539 - nikic:update-armhf-gnu, r=sanxiyn

Update armhf-gnu to Ubuntu 20.04

This requires updating the used Linux kernel to avoid an assembler
error, the used busybox version to avoid a linker error, the used
rootfs to match the host version and the qemu flags to work with
the newer version.

r? `@Mark-Simulacrum`
This commit is contained in:
bors 2021-02-02 06:23:10 +00:00
commit d60b29d1ae
3 changed files with 29 additions and 23 deletions

View file

@ -1,6 +1,6 @@
FROM ubuntu:16.04 FROM ubuntu:20.04
RUN apt-get update -y && apt-get install -y --no-install-recommends \ RUN apt-get update -y && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
bc \ bc \
bzip2 \ bzip2 \
ca-certificates \ ca-certificates \
@ -33,32 +33,32 @@ WORKDIR /build
# the kernel. This file was generated by running `make vexpress_defconfig` # the kernel. This file was generated by running `make vexpress_defconfig`
# followed by `make menuconfig` and then enabling the IPv6 protocol page. # followed by `make menuconfig` and then enabling the IPv6 protocol page.
COPY host-x86_64/armhf-gnu/vexpress_config /build/.config COPY host-x86_64/armhf-gnu/vexpress_config /build/.config
RUN curl https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.42.tar.xz | \ RUN curl https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.253.tar.xz | \
tar xJf - && \ tar xJf - && \
cd /build/linux-4.4.42 && \ cd /build/linux-4.4.253 && \
cp /build/.config . && \ cp /build/.config . && \
make -j$(nproc) all && \ make -j$(nproc) all && \
cp arch/arm/boot/zImage /tmp && \ cp arch/arm/boot/zImage /tmp && \
cd /build && \ cd /build && \
rm -rf linux-4.4.42 rm -rf linux-4.4.253
# Compile an instance of busybox as this provides a lightweight system and init # Compile an instance of busybox as this provides a lightweight system and init
# binary which we will boot into. Only trick here is configuring busybox to # binary which we will boot into. Only trick here is configuring busybox to
# build static binaries. # build static binaries.
RUN curl https://www.busybox.net/downloads/busybox-1.21.1.tar.bz2 | tar xjf - && \ RUN curl https://www.busybox.net/downloads/busybox-1.32.1.tar.bz2 | tar xjf - && \
cd busybox-1.21.1 && \ cd busybox-1.32.1 && \
make defconfig && \ make defconfig && \
sed -i 's/.*CONFIG_STATIC.*/CONFIG_STATIC=y/' .config && \ sed -i 's/.*CONFIG_STATIC.*/CONFIG_STATIC=y/' .config && \
make -j$(nproc) && \ make -j$(nproc) && \
make install && \ make install && \
mv _install /tmp/rootfs && \ mv _install /tmp/rootfs && \
cd /build && \ cd /build && \
rm -rf busybox-1.12.1 rm -rf busybox-1.32.1
# Download the ubuntu rootfs, which we'll use as a chroot for all our tests. # Download the ubuntu rootfs, which we'll use as a chroot for all our tests.
WORKDIR /tmp WORKDIR /tmp
RUN mkdir rootfs/ubuntu RUN mkdir rootfs/ubuntu
RUN curl http://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release/ubuntu-base-16.04.6-base-armhf.tar.gz | \ RUN curl http://cdimage.ubuntu.com/ubuntu-base/releases/20.04/release/ubuntu-base-20.04.1-base-armhf.tar.gz | \
tar xzf - -C rootfs/ubuntu && \ tar xzf - -C rootfs/ubuntu && \
cd rootfs && mkdir proc sys dev etc etc/init.d cd rootfs && mkdir proc sys dev etc etc/init.d

View file

@ -1,6 +1,6 @@
# #
# Automatically generated file; DO NOT EDIT. # Automatically generated file; DO NOT EDIT.
# Linux/arm 4.4.42 Kernel Configuration # Linux/arm 4.4.253 Kernel Configuration
# #
CONFIG_ARM=y CONFIG_ARM=y
CONFIG_ARM_HAS_SG_CHAIN=y CONFIG_ARM_HAS_SG_CHAIN=y
@ -60,6 +60,7 @@ CONFIG_HAVE_ARCH_AUDITSYSCALL=y
CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_IRQ_SHOW_LEVEL=y CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
CONFIG_GENERIC_IRQ_MIGRATION=y
CONFIG_HARDIRQS_SW_RESEND=y CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_DOMAIN_HIERARCHY=y CONFIG_IRQ_DOMAIN_HIERARCHY=y
@ -136,6 +137,7 @@ CONFIG_RD_LZMA=y
CONFIG_RD_XZ=y CONFIG_RD_XZ=y
CONFIG_RD_LZO=y CONFIG_RD_LZO=y
CONFIG_RD_LZ4=y CONFIG_RD_LZ4=y
CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y CONFIG_ANON_INODES=y
@ -389,6 +391,8 @@ CONFIG_SWP_EMULATE=y
# CONFIG_CPU_BIG_ENDIAN is not set # CONFIG_CPU_BIG_ENDIAN is not set
# CONFIG_CPU_ICACHE_DISABLE is not set # CONFIG_CPU_ICACHE_DISABLE is not set
# CONFIG_CPU_BPREDICT_DISABLE is not set # CONFIG_CPU_BPREDICT_DISABLE is not set
CONFIG_CPU_SPECTRE=y
CONFIG_HARDEN_BRANCH_PREDICTOR=y
CONFIG_KUSER_HELPERS=y CONFIG_KUSER_HELPERS=y
CONFIG_VDSO=y CONFIG_VDSO=y
CONFIG_OUTER_CACHE=y CONFIG_OUTER_CACHE=y
@ -611,7 +615,7 @@ CONFIG_IP_PNP_BOOTP=y
# CONFIG_IP_PNP_RARP is not set # CONFIG_IP_PNP_RARP is not set
# CONFIG_NET_IPIP is not set # CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE_DEMUX is not set # CONFIG_NET_IPGRE_DEMUX is not set
CONFIG_NET_IP_TUNNEL=m CONFIG_NET_IP_TUNNEL=y
# CONFIG_SYN_COOKIES is not set # CONFIG_SYN_COOKIES is not set
# CONFIG_NET_IPVTI is not set # CONFIG_NET_IPVTI is not set
# CONFIG_NET_UDP_TUNNEL is not set # CONFIG_NET_UDP_TUNNEL is not set
@ -621,7 +625,7 @@ CONFIG_NET_IP_TUNNEL=m
# CONFIG_INET_ESP is not set # CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set # CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set # CONFIG_INET_XFRM_TUNNEL is not set
CONFIG_INET_TUNNEL=m CONFIG_INET_TUNNEL=y
CONFIG_INET_XFRM_MODE_TRANSPORT=y CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=y CONFIG_INET_XFRM_MODE_BEET=y
@ -643,12 +647,12 @@ CONFIG_IPV6=y
# CONFIG_IPV6_ILA is not set # CONFIG_IPV6_ILA is not set
# CONFIG_INET6_XFRM_TUNNEL is not set # CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set # CONFIG_INET6_TUNNEL is not set
CONFIG_INET6_XFRM_MODE_TRANSPORT=m CONFIG_INET6_XFRM_MODE_TRANSPORT=y
CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_TUNNEL=y
CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_BEET=y
# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
# CONFIG_IPV6_VTI is not set # CONFIG_IPV6_VTI is not set
CONFIG_IPV6_SIT=m CONFIG_IPV6_SIT=y
# CONFIG_IPV6_SIT_6RD is not set # CONFIG_IPV6_SIT_6RD is not set
CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_NDISC_NODETYPE=y
# CONFIG_IPV6_TUNNEL is not set # CONFIG_IPV6_TUNNEL is not set
@ -667,6 +671,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y
# CONFIG_L2TP is not set # CONFIG_L2TP is not set
# CONFIG_BRIDGE is not set # CONFIG_BRIDGE is not set
CONFIG_HAVE_NET_DSA=y CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set # CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set # CONFIG_DECNET is not set
# CONFIG_LLC2 is not set # CONFIG_LLC2 is not set
@ -682,7 +687,6 @@ CONFIG_HAVE_NET_DSA=y
# CONFIG_BATMAN_ADV is not set # CONFIG_BATMAN_ADV is not set
# CONFIG_OPENVSWITCH is not set # CONFIG_OPENVSWITCH is not set
# CONFIG_VSOCKETS is not set # CONFIG_VSOCKETS is not set
# CONFIG_NETLINK_MMAP is not set
# CONFIG_NETLINK_DIAG is not set # CONFIG_NETLINK_DIAG is not set
# CONFIG_MPLS is not set # CONFIG_MPLS is not set
# CONFIG_HSR is not set # CONFIG_HSR is not set
@ -718,6 +722,7 @@ CONFIG_NET_9P_VIRTIO=y
# CONFIG_CEPH_LIB is not set # CONFIG_CEPH_LIB is not set
# CONFIG_NFC is not set # CONFIG_NFC is not set
# CONFIG_LWTUNNEL is not set # CONFIG_LWTUNNEL is not set
CONFIG_DST_CACHE=y
CONFIG_HAVE_BPF_JIT=y CONFIG_HAVE_BPF_JIT=y
# #
@ -1267,6 +1272,7 @@ CONFIG_LEGACY_PTY_COUNT=16
# CONFIG_SERIAL_NONSTANDARD is not set # CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_N_GSM is not set # CONFIG_N_GSM is not set
# CONFIG_TRACE_SINK is not set # CONFIG_TRACE_SINK is not set
CONFIG_LDISC_AUTOLOAD=y
CONFIG_DEVMEM=y CONFIG_DEVMEM=y
CONFIG_DEVKMEM=y CONFIG_DEVKMEM=y
@ -1304,7 +1310,6 @@ CONFIG_VIRTIO_CONSOLE=y
CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM=y
# CONFIG_HW_RANDOM_TIMERIOMEM is not set # CONFIG_HW_RANDOM_TIMERIOMEM is not set
CONFIG_HW_RANDOM_VIRTIO=y CONFIG_HW_RANDOM_VIRTIO=y
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set # CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set # CONFIG_TCG_TPM is not set
# CONFIG_XILLYBUS is not set # CONFIG_XILLYBUS is not set
@ -2009,7 +2014,6 @@ CONFIG_USB_ISP1760_HOST_ROLE=y
# CONFIG_USB_EMI26 is not set # CONFIG_USB_EMI26 is not set
# CONFIG_USB_ADUTUX is not set # CONFIG_USB_ADUTUX is not set
# CONFIG_USB_SEVSEG is not set # CONFIG_USB_SEVSEG is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set # CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set # CONFIG_USB_LCD is not set
# CONFIG_USB_LED is not set # CONFIG_USB_LED is not set
@ -2318,8 +2322,6 @@ CONFIG_ARM_PMU=y
# CONFIG_ANDROID is not set # CONFIG_ANDROID is not set
# CONFIG_NVMEM is not set # CONFIG_NVMEM is not set
# CONFIG_STM is not set # CONFIG_STM is not set
# CONFIG_STM_DUMMY is not set
# CONFIG_STM_SOURCE_CONSOLE is not set
# CONFIG_INTEL_TH is not set # CONFIG_INTEL_TH is not set
# #
@ -2332,6 +2334,7 @@ CONFIG_ARM_PMU=y
# #
CONFIG_ARM_PSCI_FW=y CONFIG_ARM_PSCI_FW=y
# CONFIG_FIRMWARE_MEMMAP is not set # CONFIG_FIRMWARE_MEMMAP is not set
CONFIG_HAVE_ARM_SMCCC=y
# #
# File systems # File systems
@ -2676,6 +2679,7 @@ CONFIG_TRACING_EVENTS_GPIO=y
# CONFIG_TEST_KSTRTOX is not set # CONFIG_TEST_KSTRTOX is not set
# CONFIG_TEST_PRINTF is not set # CONFIG_TEST_PRINTF is not set
# CONFIG_TEST_RHASHTABLE is not set # CONFIG_TEST_RHASHTABLE is not set
# CONFIG_TEST_HASH is not set
# CONFIG_DMA_API_DEBUG is not set # CONFIG_DMA_API_DEBUG is not set
# CONFIG_TEST_LKM is not set # CONFIG_TEST_LKM is not set
# CONFIG_TEST_USER_COPY is not set # CONFIG_TEST_USER_COPY is not set

View file

@ -185,8 +185,10 @@ fn start_qemu_emulator(target: &str, rootfs: &Path, server: &Path, tmpdir: &Path
.arg("-append") .arg("-append")
.arg("console=ttyAMA0 root=/dev/ram rdinit=/sbin/init init=/sbin/init") .arg("console=ttyAMA0 root=/dev/ram rdinit=/sbin/init init=/sbin/init")
.arg("-nographic") .arg("-nographic")
.arg("-redir") .arg("-netdev")
.arg("tcp:12345::12345"); .arg("user,id=net0,hostfwd=tcp::12345-:12345")
.arg("-device")
.arg("virtio-net-device,netdev=net0,mac=00:00:00:00:00:00");
t!(cmd.spawn()); t!(cmd.spawn());
} }
"aarch64-unknown-linux-gnu" => { "aarch64-unknown-linux-gnu" => {