summaryrefslogtreecommitdiffstats
path: root/src/ci
diff options
context:
space:
mode:
Diffstat (limited to 'src/ci')
-rw-r--r--src/ci/docker/README.md3
-rw-r--r--src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile5
-rw-r--r--src/ci/docker/host-x86_64/armhf-gnu/Dockerfile14
-rw-r--r--src/ci/docker/host-x86_64/armhf-gnu/vexpress_config617
-rw-r--r--src/ci/docker/host-x86_64/disabled/dist-m68k-linux/Dockerfile2
-rw-r--r--src/ci/docker/host-x86_64/disabled/riscv64gc-linux/Dockerfile4
-rw-r--r--src/ci/docker/host-x86_64/dist-i686-linux/Dockerfile6
-rw-r--r--src/ci/docker/host-x86_64/dist-powerpc64le-linux/Dockerfile5
-rw-r--r--src/ci/docker/host-x86_64/dist-riscv64-linux/riscv64-unknown-linux-gnu.defconfig2
-rw-r--r--src/ci/docker/host-x86_64/dist-various-1/Dockerfile11
-rw-r--r--src/ci/docker/host-x86_64/dist-various-2/Dockerfile29
-rwxr-xr-xsrc/ci/docker/host-x86_64/dist-various-2/build-wasi-threads-toolchain.sh24
-rwxr-xr-xsrc/ci/docker/host-x86_64/dist-various-2/build-wasi-toolchain.sh8
-rw-r--r--src/ci/docker/host-x86_64/dist-x86_64-linux/Dockerfile14
-rw-r--r--src/ci/docker/host-x86_64/dist-x86_64-musl/Dockerfile10
-rw-r--r--src/ci/docker/host-x86_64/dist-x86_64-netbsd/Dockerfile9
-rw-r--r--src/ci/docker/host-x86_64/i686-gnu/Dockerfile10
-rw-r--r--src/ci/docker/host-x86_64/mingw-check-tidy/Dockerfile6
-rw-r--r--src/ci/docker/host-x86_64/test-various/Dockerfile18
-rwxr-xr-xsrc/ci/docker/host-x86_64/test-various/uefi_qemu_test/run.py7
-rw-r--r--src/ci/docker/host-x86_64/wasm32/Dockerfile9
-rw-r--r--src/ci/docker/host-x86_64/x86_64-gnu-debug/Dockerfile2
-rw-r--r--src/ci/docker/host-x86_64/x86_64-gnu-llvm-14/Dockerfile54
-rw-r--r--src/ci/docker/host-x86_64/x86_64-gnu-llvm-15/Dockerfile24
-rwxr-xr-xsrc/ci/docker/host-x86_64/x86_64-gnu-llvm-15/script.sh (renamed from src/ci/docker/host-x86_64/x86_64-gnu-llvm-14/script.sh)4
-rw-r--r--src/ci/docker/host-x86_64/x86_64-gnu-llvm-16/Dockerfile20
-rw-r--r--src/ci/docker/host-x86_64/x86_64-gnu-nopt/Dockerfile5
-rw-r--r--src/ci/docker/host-x86_64/x86_64-gnu/Dockerfile2
-rwxr-xr-xsrc/ci/docker/run.sh16
-rwxr-xr-xsrc/ci/docker/scripts/cmake.sh6
-rwxr-xr-xsrc/ci/docker/scripts/fuchsia-test-runner.py6
-rw-r--r--src/ci/github-actions/ci.yml22
-rwxr-xr-xsrc/ci/run.sh25
-rwxr-xr-xsrc/ci/scripts/install-clang.sh5
-rwxr-xr-xsrc/ci/scripts/setup-environment.sh2
-rwxr-xr-xsrc/ci/stage-build.py1037
36 files changed, 626 insertions, 1417 deletions
diff --git a/src/ci/docker/README.md b/src/ci/docker/README.md
index 852f2e209..b83b19878 100644
--- a/src/ci/docker/README.md
+++ b/src/ci/docker/README.md
@@ -14,7 +14,8 @@ for example:
./src/ci/docker/run.sh x86_64-gnu
```
-Images will output artifacts in an `obj` dir at the root of a repository.
+Images will output artifacts in an `obj` dir at the root of a repository. Note
+that the script will overwrite the contents of this directory.
To match conditions in rusts CI, also set the environment variable `DEPLOY=1`, e.g.:
```
diff --git a/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile b/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile
index 699938c37..85b0f3b10 100644
--- a/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile
+++ b/src/ci/docker/host-aarch64/aarch64-gnu/Dockerfile
@@ -1,6 +1,7 @@
-FROM ubuntu:20.04
+FROM ubuntu:22.04
-RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+ARG DEBIAN_FRONTEND=noninteractive
+RUN apt-get update && apt-get install -y --no-install-recommends \
g++ \
make \
ninja-build \
diff --git a/src/ci/docker/host-x86_64/armhf-gnu/Dockerfile b/src/ci/docker/host-x86_64/armhf-gnu/Dockerfile
index 57e63cd39..015caafc5 100644
--- a/src/ci/docker/host-x86_64/armhf-gnu/Dockerfile
+++ b/src/ci/docker/host-x86_64/armhf-gnu/Dockerfile
@@ -1,6 +1,7 @@
-FROM ubuntu:20.04
+FROM ubuntu:22.04
-RUN apt-get update -y && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+ARG DEBIAN_FRONTEND=noninteractive
+RUN apt-get update -y && apt-get install -y --no-install-recommends \
bc \
bzip2 \
ca-certificates \
@@ -13,6 +14,7 @@ RUN apt-get update -y && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-
git \
libc6-dev \
libc6-dev-armhf-cross \
+ libssl-dev \
make \
ninja-build \
python3 \
@@ -33,14 +35,14 @@ WORKDIR /build
# the kernel. This file was generated by running `make vexpress_defconfig`
# followed by `make menuconfig` and then enabling the IPv6 protocol page.
COPY host-x86_64/armhf-gnu/vexpress_config /build/.config
-RUN curl https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.253.tar.xz | \
+RUN curl https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.14.320.tar.xz | \
tar xJf - && \
- cd /build/linux-4.4.253 && \
+ cd /build/linux-4.14.320 && \
cp /build/.config . && \
make -j$(nproc) all && \
cp arch/arm/boot/zImage /tmp && \
cd /build && \
- rm -rf linux-4.4.253
+ rm -rf linux-4.14.320
# 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
@@ -58,7 +60,7 @@ RUN curl https://www.busybox.net/downloads/busybox-1.32.1.tar.bz2 | tar xjf - &&
# Download the ubuntu rootfs, which we'll use as a chroot for all our tests.
WORKDIR /tmp
RUN mkdir rootfs/ubuntu
-RUN curl https://cdimage.ubuntu.com/ubuntu-base/releases/20.04/release/ubuntu-base-20.04.1-base-armhf.tar.gz | \
+RUN curl https://cdimage.ubuntu.com/ubuntu-base/releases/22.04/release/ubuntu-base-22.04.2-base-armhf.tar.gz | \
tar xzf - -C rootfs/ubuntu && \
cd rootfs && mkdir proc sys dev etc etc/init.d
diff --git a/src/ci/docker/host-x86_64/armhf-gnu/vexpress_config b/src/ci/docker/host-x86_64/armhf-gnu/vexpress_config
index b39e5dcf3..54c3ae18d 100644
--- a/src/ci/docker/host-x86_64/armhf-gnu/vexpress_config
+++ b/src/ci/docker/host-x86_64/armhf-gnu/vexpress_config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/arm 4.4.253 Kernel Configuration
+# Linux/arm 4.14.320 Kernel Configuration
#
CONFIG_ARM=y
CONFIG_ARM_HAS_SG_CHAIN=y
@@ -49,8 +49,8 @@ CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_POSIX_MQUEUE is not set
CONFIG_CROSS_MEMORY_ATTACH=y
-# CONFIG_FHANDLE is not set
-CONFIG_USELIB=y
+CONFIG_FHANDLE=y
+# CONFIG_USELIB is not set
# CONFIG_AUDIT is not set
CONFIG_HAVE_ARCH_AUDITSYSCALL=y
@@ -60,6 +60,7 @@ CONFIG_HAVE_ARCH_AUDITSYSCALL=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
+CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
CONFIG_GENERIC_IRQ_MIGRATION=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_IRQ_DOMAIN=y
@@ -68,6 +69,8 @@ CONFIG_HANDLE_DOMAIN_IRQ=y
# CONFIG_IRQ_DOMAIN_DEBUG is not set
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
+# CONFIG_GENERIC_IRQ_DEBUGFS is not set
+CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_ARCH_HAS_TICK_BROADCAST=y
@@ -97,28 +100,31 @@ CONFIG_TICK_CPU_ACCOUNTING=y
CONFIG_TREE_RCU=y
# CONFIG_RCU_EXPERT is not set
CONFIG_SRCU=y
+CONFIG_TREE_SRCU=y
# CONFIG_TASKS_RCU is not set
CONFIG_RCU_STALL_COMMON=y
-# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_RCU_EXPEDITE_BOOT is not set
+CONFIG_RCU_NEED_SEGCBLIST=y
CONFIG_BUILD_BIN2C=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
+CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
CONFIG_GENERIC_SCHED_CLOCK=y
CONFIG_CGROUPS=y
-# CONFIG_CGROUP_DEBUG is not set
-# CONFIG_CGROUP_FREEZER is not set
+# CONFIG_MEMCG is not set
+# CONFIG_BLK_CGROUP is not set
+# CONFIG_CGROUP_SCHED is not set
# CONFIG_CGROUP_PIDS is not set
-# CONFIG_CGROUP_DEVICE is not set
+# CONFIG_CGROUP_RDMA is not set
+# CONFIG_CGROUP_FREEZER is not set
CONFIG_CPUSETS=y
CONFIG_PROC_PID_CPUSET=y
+# CONFIG_CGROUP_DEVICE is not set
# CONFIG_CGROUP_CPUACCT is not set
-# CONFIG_MEMCG is not set
# CONFIG_CGROUP_PERF is not set
-# CONFIG_CGROUP_SCHED is not set
-# CONFIG_BLK_CGROUP is not set
+# CONFIG_CGROUP_DEBUG is not set
+# CONFIG_SOCK_CGROUP_DATA is not set
# CONFIG_CHECKPOINT_RESTORE is not set
CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set
@@ -149,13 +155,19 @@ CONFIG_MULTIUSER=y
# CONFIG_SGETMASK_SYSCALL is not set
CONFIG_SYSFS_SYSCALL=y
# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_POSIX_TIMERS=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set
+CONFIG_KALLSYMS_BASE_RELATIVE=y
CONFIG_PRINTK=y
+CONFIG_PRINTK_NMI=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
+CONFIG_FUTEX_PI=y
+CONFIG_HAVE_FUTEX_CMPXCHG=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
@@ -169,6 +181,7 @@ CONFIG_MEMBARRIER=y
# CONFIG_EMBEDDED is not set
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_PERF_USE_VMALLOC=y
+# CONFIG_PC104 is not set
#
# Kernel Performance Events And Counters
@@ -180,25 +193,30 @@ CONFIG_SLUB_DEBUG=y
CONFIG_COMPAT_BRK=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
+CONFIG_SLAB_MERGE_DEFAULT=y
+# CONFIG_SLAB_FREELIST_RANDOM is not set
+# CONFIG_SLAB_FREELIST_HARDENED is not set
CONFIG_SLUB_CPU_PARTIAL=y
# CONFIG_SYSTEM_DATA_VERIFICATION is not set
CONFIG_PROFILING=y
+CONFIG_TRACEPOINTS=y
CONFIG_OPROFILE=y
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
# CONFIG_JUMP_LABEL is not set
-# CONFIG_UPROBES is not set
+CONFIG_UPROBES=y
# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_ARCH_USE_BUILTIN_BSWAP=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_NMI=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_ATTRS=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_ARCH_HAS_SET_MEMORY=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_CLK=y
CONFIG_HAVE_DMA_API_DEBUG=y
@@ -208,20 +226,39 @@ CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_HAVE_GCC_PLUGINS=y
+# CONFIG_GCC_PLUGINS is not set
CONFIG_HAVE_CC_STACKPROTECTOR=y
# CONFIG_CC_STACKPROTECTOR is not set
CONFIG_CC_STACKPROTECTOR_NONE=y
# CONFIG_CC_STACKPROTECTOR_REGULAR is not set
# CONFIG_CC_STACKPROTECTOR_STRONG is not set
+CONFIG_THIN_ARCHIVES=y
CONFIG_HAVE_CONTEXT_TRACKING=y
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
CONFIG_MODULES_USE_ELF_REL=y
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
+CONFIG_HAVE_EXIT_THREAD=y
+CONFIG_ARCH_MMAP_RND_BITS_MIN=8
+CONFIG_ARCH_MMAP_RND_BITS_MAX=15
+CONFIG_ARCH_MMAP_RND_BITS=8
+# CONFIG_HAVE_ARCH_HASH is not set
+# CONFIG_ISA_BUS_API is not set
CONFIG_CLONE_BACKWARDS=y
CONFIG_OLD_SIGSUSPEND3=y
CONFIG_OLD_SIGACTION=y
+# CONFIG_CPU_NO_EFFICIENT_FFS is not set
+# CONFIG_HAVE_ARCH_VMAP_STACK is not set
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
+CONFIG_STRICT_KERNEL_RWX=y
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
+CONFIG_STRICT_MODULE_RWX=y
+# CONFIG_REFCOUNT_FULL is not set
#
# GCOV-based kernel profiling
@@ -240,13 +277,19 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set
+# CONFIG_TRIM_UNUSED_KSYMS is not set
CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y
# CONFIG_LBDAF is not set
+CONFIG_BLK_SCSI_REQUEST=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_BLK_DEV_BSGLIB is not set
# CONFIG_BLK_DEV_INTEGRITY is not set
+# CONFIG_BLK_DEV_ZONED is not set
# CONFIG_BLK_CMDLINE_PARSER is not set
+# CONFIG_BLK_WBT is not set
+CONFIG_BLK_DEBUG_FS=y
+# CONFIG_BLK_SED_OPAL is not set
#
# Partition Types
@@ -254,6 +297,7 @@ CONFIG_BLOCK=y
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
CONFIG_EFI_PARTITION=y
+CONFIG_BLK_MQ_VIRTIO=y
#
# IO Schedulers
@@ -263,6 +307,9 @@ CONFIG_IOSCHED_NOOP=y
# CONFIG_IOSCHED_CFQ is not set
CONFIG_DEFAULT_NOOP=y
CONFIG_DEFAULT_IOSCHED="noop"
+CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=y
+# CONFIG_IOSCHED_BFQ is not set
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
CONFIG_INLINE_READ_UNLOCK=y
CONFIG_INLINE_READ_UNLOCK_IRQ=y
@@ -279,10 +326,6 @@ CONFIG_FREEZER=y
#
CONFIG_MMU=y
CONFIG_ARCH_MULTIPLATFORM=y
-# CONFIG_ARCH_REALVIEW is not set
-# CONFIG_ARCH_VERSATILE is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_GEMINI is not set
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_EP93XX is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
@@ -292,9 +335,6 @@ CONFIG_ARCH_MULTIPLATFORM=y
# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_DOVE is not set
-# CONFIG_ARCH_MV78XX0 is not set
-# CONFIG_ARCH_ORION5X is not set
-# CONFIG_ARCH_MMP is not set
# CONFIG_ARCH_KS8695 is not set
# CONFIG_ARCH_W90X900 is not set
# CONFIG_ARCH_LPC32XX is not set
@@ -302,7 +342,6 @@ CONFIG_ARCH_MULTIPLATFORM=y
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C24XX is not set
-# CONFIG_ARCH_S3C64XX is not set
# CONFIG_ARCH_DAVINCI is not set
# CONFIG_ARCH_OMAP1 is not set
@@ -319,7 +358,9 @@ CONFIG_ARCH_MULTI_V6_V7=y
# CONFIG_ARCH_MULTI_CPU_AUTO is not set
# CONFIG_ARCH_VIRT is not set
# CONFIG_ARCH_MVEBU is not set
+# CONFIG_ARCH_ACTIONS is not set
# CONFIG_ARCH_ALPINE is not set
+# CONFIG_ARCH_ARTPEC is not set
# CONFIG_ARCH_AT91 is not set
# CONFIG_ARCH_BCM is not set
# CONFIG_ARCH_BERLIN is not set
@@ -340,16 +381,19 @@ CONFIG_ARCH_MULTI_V6_V7=y
# CONFIG_SOC_AM33XX is not set
# CONFIG_SOC_AM43XX is not set
# CONFIG_SOC_DRA7XX is not set
+# CONFIG_ARCH_MMP is not set
# CONFIG_ARCH_QCOM is not set
+# CONFIG_ARCH_REALVIEW is not set
# CONFIG_ARCH_ROCKCHIP is not set
# CONFIG_ARCH_SOCFPGA is not set
# CONFIG_PLAT_SPEAR is not set
# CONFIG_ARCH_STI is not set
# CONFIG_ARCH_S5PV210 is not set
# CONFIG_ARCH_EXYNOS is not set
-# CONFIG_ARCH_SHMOBILE_MULTI is not set
+# CONFIG_ARCH_RENESAS is not set
# CONFIG_ARCH_SUNXI is not set
# CONFIG_ARCH_SIRF is not set
+# CONFIG_ARCH_TANGO is not set
# CONFIG_ARCH_TEGRA is not set
# CONFIG_ARCH_UNIPHIER is not set
# CONFIG_ARCH_U8500 is not set
@@ -367,6 +411,7 @@ CONFIG_PLAT_VERSATILE=y
# Processor Type
#
CONFIG_CPU_V7=y
+CONFIG_CPU_THUMB_CAPABLE=y
CONFIG_CPU_32v6K=y
CONFIG_CPU_32v7=y
CONFIG_CPU_ABRT_EV7=y
@@ -393,12 +438,14 @@ CONFIG_SWP_EMULATE=y
# CONFIG_CPU_BPREDICT_DISABLE is not set
CONFIG_CPU_SPECTRE=y
CONFIG_HARDEN_BRANCH_PREDICTOR=y
+CONFIG_HARDEN_BRANCH_HISTORY=y
CONFIG_KUSER_HELPERS=y
CONFIG_VDSO=y
CONFIG_OUTER_CACHE=y
CONFIG_OUTER_CACHE_SYNC=y
CONFIG_MIGHT_HAVE_CACHE_L2X0=y
CONFIG_CACHE_L2X0=y
+# CONFIG_CACHE_L2X0_PMU is not set
# CONFIG_PL310_ERRATA_588369 is not set
# CONFIG_PL310_ERRATA_727915 is not set
CONFIG_PL310_ERRATA_753970=y
@@ -408,7 +455,7 @@ CONFIG_ARM_L1_CACHE_SHIFT=6
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
CONFIG_ARM_HEAVY_MB=y
CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
-# CONFIG_ARM_KERNMEM_PERMS is not set
+CONFIG_DEBUG_ALIGN_RODATA=y
CONFIG_MULTI_IRQ_HANDLER=y
# CONFIG_ARM_ERRATA_430973 is not set
CONFIG_ARM_ERRATA_643719=y
@@ -419,7 +466,11 @@ CONFIG_ARM_ERRATA_720789=y
# CONFIG_ARM_ERRATA_775420 is not set
# CONFIG_ARM_ERRATA_798181 is not set
# CONFIG_ARM_ERRATA_773022 is not set
-CONFIG_ICST=y
+# CONFIG_ARM_ERRATA_818325_852422 is not set
+# CONFIG_ARM_ERRATA_821420 is not set
+# CONFIG_ARM_ERRATA_825619 is not set
+# CONFIG_ARM_ERRATA_852421 is not set
+# CONFIG_ARM_ERRATA_852423 is not set
#
# Bus support
@@ -427,6 +478,15 @@ CONFIG_ICST=y
# CONFIG_PCI is not set
# CONFIG_PCI_DOMAINS_GENERIC is not set
# CONFIG_PCI_SYSCALL is not set
+
+#
+# DesignWare PCI Core Support
+#
+
+#
+# PCI Endpoint
+#
+# CONFIG_PCI_ENDPOINT is not set
# CONFIG_PCCARD is not set
#
@@ -465,6 +525,7 @@ CONFIG_HZ_100=y
CONFIG_HZ=100
# CONFIG_SCHED_HRTICK is not set
# CONFIG_THUMB2_KERNEL is not set
+CONFIG_ARM_PATCH_IDIV=y
CONFIG_AEABI=y
# CONFIG_OABI_COMPAT is not set
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
@@ -487,9 +548,9 @@ CONFIG_BALLOON_COMPACTION=y
CONFIG_COMPACTION=y
CONFIG_MIGRATION=y
# CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=0
# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+# CONFIG_ARCH_WANTS_THP_SWAP is not set
# CONFIG_CLEANCACHE is not set
# CONFIG_FRONTSWAP is not set
CONFIG_CMA=y
@@ -499,13 +560,17 @@ CONFIG_CMA_AREAS=7
# CONFIG_ZPOOL is not set
# CONFIG_ZBUD is not set
# CONFIG_ZSMALLOC is not set
+CONFIG_GENERIC_EARLY_IOREMAP=y
# CONFIG_IDLE_PAGE_TRACKING is not set
+# CONFIG_PERCPU_STATS is not set
CONFIG_FORCE_MAX_ZONEORDER=11
CONFIG_ALIGNMENT_TRAP=y
# CONFIG_UACCESS_WITH_MEMCPY is not set
# CONFIG_SECCOMP is not set
CONFIG_SWIOTLB=y
CONFIG_IOMMU_HELPER=y
+# CONFIG_PARAVIRT is not set
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
# CONFIG_XEN is not set
#
@@ -524,6 +589,7 @@ CONFIG_CMDLINE_FROM_BOOTLOADER=y
# CONFIG_KEXEC is not set
# CONFIG_CRASH_DUMP is not set
CONFIG_AUTO_ZRELADDR=y
+# CONFIG_EFI is not set
#
# CPU Power Management
@@ -539,7 +605,7 @@ CONFIG_AUTO_ZRELADDR=y
#
CONFIG_CPU_IDLE=y
CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_IDLE_GOV_MENU=y
+# CONFIG_CPU_IDLE_GOV_MENU is not set
#
# ARM CPU Idle Drivers
@@ -565,8 +631,10 @@ CONFIG_NEON=y
# Userspace binary formats
#
CONFIG_BINFMT_ELF=y
+CONFIG_ELFCORE=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_SCRIPT=y
+# CONFIG_BINFMT_FLAT is not set
# CONFIG_HAVE_AOUT is not set
# CONFIG_BINFMT_MISC is not set
CONFIG_COREDUMP=y
@@ -599,7 +667,9 @@ CONFIG_NET=y
CONFIG_PACKET=y
# CONFIG_PACKET_DIAG is not set
CONFIG_UNIX=y
+CONFIG_UNIX_SCM=y
# CONFIG_UNIX_DIAG is not set
+# CONFIG_TLS is not set
CONFIG_XFRM=y
# CONFIG_XFRM_USER is not set
# CONFIG_XFRM_SUB_POLICY is not set
@@ -624,15 +694,17 @@ CONFIG_NET_IP_TUNNEL=y
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TABLE_PERTURB_ORDER=16
# CONFIG_INET_XFRM_TUNNEL is not set
CONFIG_INET_TUNNEL=y
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=y
-# CONFIG_INET_LRO is not set
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_INET_UDP_DIAG is not set
+# CONFIG_INET_RAW_DIAG is not set
+# CONFIG_INET_DIAG_DESTROY is not set
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
@@ -644,7 +716,6 @@ CONFIG_IPV6=y
# CONFIG_INET6_ESP is not set
# CONFIG_INET6_IPCOMP is not set
# CONFIG_IPV6_MIP6 is not set
-# CONFIG_IPV6_ILA is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
CONFIG_INET6_XFRM_MODE_TRANSPORT=y
@@ -656,9 +727,12 @@ CONFIG_IPV6_SIT=y
# CONFIG_IPV6_SIT_6RD is not set
CONFIG_IPV6_NDISC_NODETYPE=y
# CONFIG_IPV6_TUNNEL is not set
-# CONFIG_IPV6_GRE is not set
+# CONFIG_IPV6_FOU is not set
+# CONFIG_IPV6_FOU_TUNNEL is not set
# CONFIG_IPV6_MULTIPLE_TABLES is not set
# CONFIG_IPV6_MROUTE is not set
+# CONFIG_IPV6_SEG6_LWTUNNEL is not set
+# CONFIG_IPV6_SEG6_HMAC is not set
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NET_PTP_CLASSIFY is not set
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
@@ -673,7 +747,6 @@ CONFIG_IPV6_NDISC_NODETYPE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
-# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
@@ -689,9 +762,11 @@ CONFIG_HAVE_NET_DSA=y
# CONFIG_VSOCKETS is not set
# CONFIG_NETLINK_DIAG is not set
# CONFIG_MPLS is not set
+# CONFIG_NET_NSH is not set
# CONFIG_HSR is not set
# CONFIG_NET_SWITCHDEV is not set
# CONFIG_NET_L3_MASTER_DEV is not set
+# CONFIG_NET_NCSI is not set
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
CONFIG_XPS=y
@@ -706,30 +781,35 @@ CONFIG_NET_FLOW_LIMIT=y
# Network testing
#
# CONFIG_NET_PKTGEN is not set
+# CONFIG_NET_DROP_MONITOR is not set
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
-# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
+# CONFIG_AF_KCM is not set
+# CONFIG_STREAM_PARSER is not set
# CONFIG_WIRELESS is not set
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
-# CONFIG_RFKILL_REGULATOR is not set
CONFIG_NET_9P=y
CONFIG_NET_9P_VIRTIO=y
# CONFIG_NET_9P_DEBUG is not set
# CONFIG_CAIF is not set
# CONFIG_CEPH_LIB is not set
# CONFIG_NFC is not set
+# CONFIG_PSAMPLE is not set
+# CONFIG_NET_IFE is not set
# CONFIG_LWTUNNEL is not set
CONFIG_DST_CACHE=y
-CONFIG_HAVE_BPF_JIT=y
+CONFIG_GRO_CELLS=y
+# CONFIG_NET_DEVLINK is not set
+CONFIG_MAY_USE_DEVLINK=y
+CONFIG_HAVE_EBPF_JIT=y
#
# Device Drivers
#
CONFIG_ARM_AMBA=y
-# CONFIG_TEGRA_AHB is not set
#
# Generic Driver Options
@@ -747,12 +827,18 @@ CONFIG_EXTRA_FIRMWARE=""
CONFIG_ALLOW_DEV_COREDUMP=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
+# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_GENERIC_CPU_DEVICES is not set
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_GENERIC_CPU_VULNERABILITIES=y
CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
CONFIG_REGMAP_MMIO=y
# CONFIG_DMA_SHARED_BUFFER is not set
# CONFIG_DMA_CMA is not set
+CONFIG_GENERIC_ARCH_TOPOLOGY=y
#
# Bus devices
@@ -761,9 +847,10 @@ CONFIG_ARM_CCI=y
CONFIG_ARM_CCI400_COMMON=y
# CONFIG_ARM_CCI400_PMU is not set
CONFIG_ARM_CCI400_PORT_CTRL=y
-# CONFIG_ARM_CCI500_PMU is not set
+# CONFIG_ARM_CCI5xx_PMU is not set
# CONFIG_ARM_CCN is not set
# CONFIG_BRCMSTB_GISB_ARB is not set
+# CONFIG_SIMPLE_PM_BUS is not set
CONFIG_VEXPRESS_CONFIG=y
# CONFIG_CONNECTOR is not set
CONFIG_MTD=y
@@ -775,6 +862,10 @@ CONFIG_MTD_OF_PARTS=y
# CONFIG_MTD_AR7_PARTS is not set
#
+# Partition parsers
+#
+
+#
# User Modules And Translation Layers
#
CONFIG_MTD_BLKDEVS=y
@@ -821,6 +912,8 @@ CONFIG_MTD_RAM=y
CONFIG_MTD_PHYSMAP=y
# CONFIG_MTD_PHYSMAP_COMPAT is not set
CONFIG_MTD_PHYSMAP_OF=y
+# CONFIG_MTD_PHYSMAP_OF_VERSATILE is not set
+# CONFIG_MTD_PHYSMAP_OF_GEMINI is not set
CONFIG_MTD_PLATRAM=y
#
@@ -859,7 +952,6 @@ CONFIG_OF_ADDRESS=y
CONFIG_OF_IRQ=y
CONFIG_OF_NET=y
CONFIG_OF_MDIO=y
-CONFIG_OF_MTD=y
CONFIG_OF_RESERVED_MEM=y
# CONFIG_OF_OVERLAY is not set
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
@@ -873,9 +965,10 @@ CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
-# CONFIG_MG_DISK is not set
CONFIG_VIRTIO_BLK=y
+# CONFIG_VIRTIO_BLK_SCSI is not set
# CONFIG_BLK_DEV_RBD is not set
+# CONFIG_NVME_FC is not set
#
# Misc devices
@@ -889,13 +982,10 @@ CONFIG_VIRTIO_BLK=y
# CONFIG_ISL29003 is not set
# CONFIG_ISL29020 is not set
# CONFIG_SENSORS_TSL2550 is not set
-# CONFIG_SENSORS_BH1780 is not set
# CONFIG_SENSORS_BH1770 is not set
# CONFIG_SENSORS_APDS990X is not set
# CONFIG_HMC6352 is not set
# CONFIG_DS1682 is not set
-# CONFIG_ARM_CHARLCD is not set
-# CONFIG_BMP085_I2C is not set
# CONFIG_USB_SWITCH_FSA9480 is not set
# CONFIG_SRAM is not set
CONFIG_VEXPRESS_SYSCFG=y
@@ -908,6 +998,7 @@ CONFIG_VEXPRESS_SYSCFG=y
# CONFIG_EEPROM_LEGACY is not set
# CONFIG_EEPROM_MAX6875 is not set
# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_EEPROM_IDT_89HPESX is not set
#
# Texas Instruments shared transport line discipline
@@ -929,6 +1020,10 @@ CONFIG_VEXPRESS_SYSCFG=y
#
#
+# VOP Bus Driver
+#
+
+#
# Intel MIC Host Driver
#
@@ -943,10 +1038,14 @@ CONFIG_VEXPRESS_SYSCFG=y
#
# Intel MIC Coprocessor State Management (COSM) Drivers
#
+
+#
+# VOP Driver
+#
# CONFIG_ECHO is not set
# CONFIG_CXL_BASE is not set
-# CONFIG_CXL_KERNEL_API is not set
-# CONFIG_CXL_EEH is not set
+# CONFIG_CXL_AFU_DRIVER_OPS is not set
+# CONFIG_CXL_LIB is not set
#
# SCSI device support
@@ -1034,8 +1133,9 @@ CONFIG_NET_CORE=y
# CONFIG_EQUALIZER is not set
# CONFIG_NET_TEAM is not set
# CONFIG_MACVLAN is not set
-# CONFIG_IPVLAN is not set
# CONFIG_VXLAN is not set
+# CONFIG_GTP is not set
+# CONFIG_MACSEC is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
@@ -1052,13 +1152,12 @@ CONFIG_VIRTIO_NET=y
#
# Distributed Switch Architecture drivers
#
-# CONFIG_NET_DSA_MV88E6XXX is not set
-# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set
CONFIG_ETHERNET=y
+CONFIG_NET_VENDOR_ALACRITECH=y
# CONFIG_ALTERA_TSE is not set
+CONFIG_NET_VENDOR_AMAZON=y
+CONFIG_NET_VENDOR_AQUANTIA=y
CONFIG_NET_VENDOR_ARC=y
-# CONFIG_ARC_EMAC is not set
-# CONFIG_EMAC_ROCKCHIP is not set
# CONFIG_NET_VENDOR_AURORA is not set
CONFIG_NET_CADENCE=y
# CONFIG_MACB is not set
@@ -1077,26 +1176,36 @@ CONFIG_NET_VENDOR_FARADAY=y
# CONFIG_FTGMAC100 is not set
CONFIG_NET_VENDOR_HISILICON=y
# CONFIG_HIX5HD2_GMAC is not set
+# CONFIG_HISI_FEMAC is not set
# CONFIG_HIP04_ETH is not set
# CONFIG_HNS is not set
# CONFIG_HNS_DSAF is not set
# CONFIG_HNS_ENET is not set
+CONFIG_NET_VENDOR_HUAWEI=y
CONFIG_NET_VENDOR_INTEL=y
CONFIG_NET_VENDOR_I825XX=y
CONFIG_NET_VENDOR_MARVELL=y
# CONFIG_MVMDIO is not set
+# CONFIG_MVNETA_BM is not set
+CONFIG_NET_VENDOR_MELLANOX=y
+# CONFIG_MLXSW_CORE is not set
+# CONFIG_MLXFW is not set
CONFIG_NET_VENDOR_MICREL=y
# CONFIG_KS8851_MLL is not set
CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NET_VENDOR_NETRONOME=y
CONFIG_NET_VENDOR_8390=y
# CONFIG_AX88796 is not set
# CONFIG_ETHOC is not set
CONFIG_NET_VENDOR_QUALCOMM=y
+# CONFIG_QCOM_EMAC is not set
+# CONFIG_RMNET is not set
CONFIG_NET_VENDOR_RENESAS=y
CONFIG_NET_VENDOR_ROCKER=y
CONFIG_NET_VENDOR_SAMSUNG=y
# CONFIG_SXGBE_ETH is not set
CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_NET_VENDOR_SOLARFLARE=y
CONFIG_NET_VENDOR_SMSC=y
CONFIG_SMC91X=y
# CONFIG_SMC911X is not set
@@ -1104,47 +1213,58 @@ CONFIG_SMSC911X=y
# CONFIG_SMSC911X_ARCH_HOOKS is not set
CONFIG_NET_VENDOR_STMICRO=y
# CONFIG_STMMAC_ETH is not set
-CONFIG_NET_VENDOR_SYNOPSYS=y
-# CONFIG_SYNOPSYS_DWC_ETH_QOS is not set
CONFIG_NET_VENDOR_VIA=y
# CONFIG_VIA_RHINE is not set
# CONFIG_VIA_VELOCITY is not set
CONFIG_NET_VENDOR_WIZNET=y
# CONFIG_WIZNET_W5100 is not set
# CONFIG_WIZNET_W5300 is not set
+CONFIG_NET_VENDOR_SYNOPSYS=y
+# CONFIG_DWC_XLGMAC is not set
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_BUS=y
+# CONFIG_MDIO_BCM_UNIMAC is not set
+# CONFIG_MDIO_BITBANG is not set
+# CONFIG_MDIO_BUS_MUX_GPIO is not set
+# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
+# CONFIG_MDIO_HISI_FEMAC is not set
CONFIG_PHYLIB=y
+CONFIG_SWPHY=y
+# CONFIG_LED_TRIGGER_PHY is not set
#
# MII PHY device drivers
#
+# CONFIG_AMD_PHY is not set
# CONFIG_AQUANTIA_PHY is not set
# CONFIG_AT803X_PHY is not set
-# CONFIG_AMD_PHY is not set
-# CONFIG_MARVELL_PHY is not set
-# CONFIG_DAVICOM_PHY is not set
-# CONFIG_QSEMI_PHY is not set
-# CONFIG_LXT_PHY is not set
-# CONFIG_CICADA_PHY is not set
-# CONFIG_VITESSE_PHY is not set
-# CONFIG_TERANETICS_PHY is not set
-# CONFIG_SMSC_PHY is not set
-# CONFIG_BROADCOM_PHY is not set
# CONFIG_BCM7XXX_PHY is not set
# CONFIG_BCM87XX_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_CORTINA_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_DP83848_PHY is not set
+# CONFIG_DP83867_PHY is not set
+CONFIG_FIXED_PHY=y
# CONFIG_ICPLUS_PHY is not set
-# CONFIG_REALTEK_PHY is not set
-# CONFIG_NATIONAL_PHY is not set
-# CONFIG_STE10XP is not set
+# CONFIG_INTEL_XWAY_PHY is not set
# CONFIG_LSI_ET1011C_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_MARVELL_10G_PHY is not set
# CONFIG_MICREL_PHY is not set
-# CONFIG_DP83848_PHY is not set
-# CONFIG_DP83867_PHY is not set
# CONFIG_MICROCHIP_PHY is not set
-# CONFIG_FIXED_PHY is not set
-# CONFIG_MDIO_BITBANG is not set
-# CONFIG_MDIO_BUS_MUX_GPIO is not set
-# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
-# CONFIG_MDIO_BCM_UNIMAC is not set
+# CONFIG_MICROSEMI_PHY is not set
+# CONFIG_NATIONAL_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_REALTEK_PHY is not set
+# CONFIG_ROCKCHIP_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_STE10XP is not set
+# CONFIG_TERANETICS_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_XILINX_GMII2RGMII is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
CONFIG_USB_NET_DRIVERS=y
@@ -1163,7 +1283,6 @@ CONFIG_USB_NET_DRIVERS=y
#
# CONFIG_WAN is not set
# CONFIG_ISDN is not set
-# CONFIG_NVM is not set
#
# Input device support
@@ -1178,10 +1297,7 @@ CONFIG_INPUT_LEDS=y
#
# Userland interfaces
#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_JOYDEV is not set
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set
@@ -1195,6 +1311,7 @@ CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_QT1070 is not set
# CONFIG_KEYBOARD_QT2160 is not set
+# CONFIG_KEYBOARD_DLINK_DIR685 is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_GPIO is not set
# CONFIG_KEYBOARD_GPIO_POLLED is not set
@@ -1212,20 +1329,24 @@ CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_OMAP4 is not set
+# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_CAP11XX is not set
# CONFIG_KEYBOARD_BCM is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_BYD=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
CONFIG_MOUSE_PS2_CYPRESS=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_ELANTECH is not set
# CONFIG_MOUSE_PS2_SENTELIC is not set
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
CONFIG_MOUSE_PS2_FOCALTECH=y
+CONFIG_MOUSE_PS2_SMBUS=y
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_APPLETOUCH is not set
# CONFIG_MOUSE_BCM5974 is not set
@@ -1239,6 +1360,7 @@ CONFIG_MOUSE_PS2_FOCALTECH=y
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set
+# CONFIG_RMI4_CORE is not set
#
# Hardware I/O ports
@@ -1252,6 +1374,7 @@ CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_PS2MULT is not set
# CONFIG_SERIO_ARC_PS2 is not set
# CONFIG_SERIO_APBPS2 is not set
+# CONFIG_SERIO_GPIO_PS2 is not set
# CONFIG_USERIO is not set
# CONFIG_GAMEPORT is not set
@@ -1266,7 +1389,6 @@ CONFIG_VT_CONSOLE_SLEEP=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=16
# CONFIG_SERIAL_NONSTANDARD is not set
@@ -1274,7 +1396,7 @@ CONFIG_LEGACY_PTY_COUNT=16
# CONFIG_TRACE_SINK is not set
CONFIG_LDISC_AUTOLOAD=y
CONFIG_DEVMEM=y
-CONFIG_DEVKMEM=y
+# CONFIG_DEVKMEM is not set
#
# Serial drivers
@@ -1302,7 +1424,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_FSL_LPUART is not set
# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
# CONFIG_SERIAL_ST_ASC is not set
-# CONFIG_SERIAL_STM32 is not set
+# CONFIG_SERIAL_DEV_BUS is not set
CONFIG_HVC_DRIVER=y
# CONFIG_HVC_DCC is not set
CONFIG_VIRTIO_CONSOLE=y
@@ -1313,6 +1435,7 @@ CONFIG_HW_RANDOM_VIRTIO=y
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
# CONFIG_XILLYBUS is not set
+CONFIG_RANDOM_TRUST_BOOTLOADER=y
#
# I2C support
@@ -1365,17 +1488,9 @@ CONFIG_I2C_VERSATILE=y
# CONFIG_SPI is not set
# CONFIG_SPMI is not set
# CONFIG_HSI is not set
-
-#
-# PPS support
-#
# CONFIG_PPS is not set
#
-# PPS generators support
-#
-
-#
# PTP clock support
#
# CONFIG_PTP_1588_CLOCK is not set
@@ -1384,10 +1499,7 @@ CONFIG_I2C_VERSATILE=y
# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
#
CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
-CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
-CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
-CONFIG_GPIO_DEVRES=y
CONFIG_OF_GPIO=y
# CONFIG_DEBUG_GPIO is not set
# CONFIG_GPIO_SYSFS is not set
@@ -1399,14 +1511,15 @@ CONFIG_GPIO_GENERIC=y
# CONFIG_GPIO_74XX_MMIO is not set
# CONFIG_GPIO_ALTERA is not set
# CONFIG_GPIO_DWAPB is not set
-# CONFIG_GPIO_EM is not set
+# CONFIG_GPIO_FTGPIO010 is not set
CONFIG_GPIO_GENERIC_PLATFORM=y
# CONFIG_GPIO_GRGPIO is not set
+# CONFIG_GPIO_MOCKUP is not set
+# CONFIG_GPIO_MPC8XXX is not set
# CONFIG_GPIO_PL061 is not set
# CONFIG_GPIO_SYSCON is not set
# CONFIG_GPIO_XILINX is not set
# CONFIG_GPIO_ZEVIO is not set
-# CONFIG_GPIO_ZX is not set
#
# I2C GPIO expanders
@@ -1417,21 +1530,30 @@ CONFIG_GPIO_GENERIC_PLATFORM=y
# CONFIG_GPIO_MAX732X is not set
# CONFIG_GPIO_PCA953X is not set
# CONFIG_GPIO_PCF857X is not set
-# CONFIG_GPIO_SX150X is not set
+# CONFIG_GPIO_TPIC2810 is not set
#
# MFD GPIO expanders
#
-
-#
-# SPI or I2C GPIO expanders
-#
-# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_HTC_EGPIO is not set
#
# USB GPIO expanders
#
# CONFIG_W1 is not set
+# CONFIG_POWER_AVS is not set
+CONFIG_POWER_RESET=y
+# CONFIG_POWER_RESET_BRCMKONA is not set
+# CONFIG_POWER_RESET_BRCMSTB is not set
+# CONFIG_POWER_RESET_GPIO is not set
+# CONFIG_POWER_RESET_GPIO_RESTART is not set
+# CONFIG_POWER_RESET_LTC2952 is not set
+# CONFIG_POWER_RESET_RESTART is not set
+# CONFIG_POWER_RESET_VERSATILE is not set
+CONFIG_POWER_RESET_VEXPRESS=y
+# CONFIG_POWER_RESET_SYSCON is not set
+# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set
+# CONFIG_SYSCON_REBOOT_MODE is not set
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
# CONFIG_PDA_POWER is not set
@@ -1440,6 +1562,7 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_SBS is not set
+# CONFIG_CHARGER_SBS is not set
# CONFIG_BATTERY_BQ27XXX is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
@@ -1447,24 +1570,16 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_CHARGER_LP8727 is not set
# CONFIG_CHARGER_GPIO is not set
# CONFIG_CHARGER_MANAGER is not set
+# CONFIG_CHARGER_LTC3651 is not set
+# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
# CONFIG_CHARGER_BQ2415X is not set
-# CONFIG_CHARGER_BQ24190 is not set
+# CONFIG_CHARGER_BQ24257 is not set
# CONFIG_CHARGER_BQ24735 is not set
# CONFIG_CHARGER_BQ25890 is not set
# CONFIG_CHARGER_SMB347 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_RT5033 is not set
# CONFIG_CHARGER_RT9455 is not set
-CONFIG_POWER_RESET=y
-# CONFIG_POWER_RESET_BRCMSTB is not set
-# CONFIG_POWER_RESET_GPIO is not set
-# CONFIG_POWER_RESET_GPIO_RESTART is not set
-# CONFIG_POWER_RESET_LTC2952 is not set
-# CONFIG_POWER_RESET_RESTART is not set
-# CONFIG_POWER_RESET_VERSATILE is not set
-CONFIG_POWER_RESET_VEXPRESS=y
-# CONFIG_POWER_RESET_SYSCON is not set
-# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set
-# CONFIG_POWER_AVS is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -1486,6 +1601,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_ADT7470 is not set
# CONFIG_SENSORS_ADT7475 is not set
# CONFIG_SENSORS_ASC7621 is not set
+# CONFIG_SENSORS_ASPEED is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_DS620 is not set
# CONFIG_SENSORS_DS1621 is not set
@@ -1503,6 +1619,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_POWR1220 is not set
# CONFIG_SENSORS_LINEAGE is not set
# CONFIG_SENSORS_LTC2945 is not set
+# CONFIG_SENSORS_LTC2990 is not set
# CONFIG_SENSORS_LTC4151 is not set
# CONFIG_SENSORS_LTC4215 is not set
# CONFIG_SENSORS_LTC4222 is not set
@@ -1518,8 +1635,8 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_MAX6650 is not set
# CONFIG_SENSORS_MAX6697 is not set
# CONFIG_SENSORS_MAX31790 is not set
-# CONFIG_SENSORS_HTU21 is not set
# CONFIG_SENSORS_MCP3021 is not set
+# CONFIG_SENSORS_TC654 is not set
# CONFIG_SENSORS_LM63 is not set
# CONFIG_SENSORS_LM73 is not set
# CONFIG_SENSORS_LM75 is not set
@@ -1546,6 +1663,7 @@ CONFIG_HWMON=y
# CONFIG_PMBUS is not set
# CONFIG_SENSORS_SHT15 is not set
# CONFIG_SENSORS_SHT21 is not set
+# CONFIG_SENSORS_SHT3x is not set
# CONFIG_SENSORS_SHTC1 is not set
# CONFIG_SENSORS_DME1737 is not set
# CONFIG_SENSORS_EMC1403 is not set
@@ -1555,6 +1673,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_SMSC47M192 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_SCH56XX_COMMON is not set
+# CONFIG_SENSORS_STTS751 is not set
# CONFIG_SENSORS_SMM665 is not set
# CONFIG_SENSORS_ADC128D818 is not set
# CONFIG_SENSORS_ADS1015 is not set
@@ -1562,10 +1681,12 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_AMC6821 is not set
# CONFIG_SENSORS_INA209 is not set
# CONFIG_SENSORS_INA2XX is not set
+# CONFIG_SENSORS_INA3221 is not set
# CONFIG_SENSORS_TC74 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_TMP102 is not set
# CONFIG_SENSORS_TMP103 is not set
+# CONFIG_SENSORS_TMP108 is not set
# CONFIG_SENSORS_TMP401 is not set
# CONFIG_SENSORS_TMP421 is not set
CONFIG_SENSORS_VEXPRESS=y
@@ -1588,16 +1709,13 @@ CONFIG_SSB_POSSIBLE=y
#
# CONFIG_SSB is not set
CONFIG_BCMA_POSSIBLE=y
-
-#
-# Broadcom specific AMBA
-#
# CONFIG_BCMA is not set
#
# Multifunction device drivers
#
CONFIG_MFD_CORE=y
+# CONFIG_MFD_ACT8945A is not set
# CONFIG_MFD_AS3711 is not set
# CONFIG_MFD_AS3722 is not set
# CONFIG_PMIC_ADP5520 is not set
@@ -1605,7 +1723,8 @@ CONFIG_MFD_CORE=y
# CONFIG_MFD_ATMEL_FLEXCOM is not set
# CONFIG_MFD_ATMEL_HLCDC is not set
# CONFIG_MFD_BCM590XX is not set
-# CONFIG_MFD_AXP20X is not set
+# CONFIG_MFD_BD9571MWV is not set
+# CONFIG_MFD_AXP20X_I2C is not set
# CONFIG_MFD_CROS_EC is not set
# CONFIG_MFD_ASIC3 is not set
# CONFIG_PMIC_DA903X is not set
@@ -1617,15 +1736,14 @@ CONFIG_MFD_CORE=y
# CONFIG_MFD_DLN2 is not set
# CONFIG_MFD_MC13XXX_I2C is not set
# CONFIG_MFD_HI6421_PMIC is not set
-# CONFIG_HTC_EGPIO is not set
# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_I2CPLD is not set
-# CONFIG_INTEL_SOC_PMIC is not set
# CONFIG_MFD_KEMPLD is not set
# CONFIG_MFD_88PM800 is not set
# CONFIG_MFD_88PM805 is not set
# CONFIG_MFD_88PM860X is not set
# CONFIG_MFD_MAX14577 is not set
+# CONFIG_MFD_MAX77620 is not set
# CONFIG_MFD_MAX77686 is not set
# CONFIG_MFD_MAX77693 is not set
# CONFIG_MFD_MAX77843 is not set
@@ -1639,7 +1757,7 @@ CONFIG_MFD_CORE=y
# CONFIG_MFD_RETU is not set
# CONFIG_MFD_PCF50633 is not set
# CONFIG_UCB1400_CORE is not set
-# CONFIG_MFD_PM8921_CORE is not set
+# CONFIG_MFD_PM8XXX is not set
# CONFIG_MFD_RT5033 is not set
# CONFIG_MFD_RTSX_USB is not set
# CONFIG_MFD_RC5T583 is not set
@@ -1656,16 +1774,19 @@ CONFIG_MFD_SYSCON=y
# CONFIG_MFD_TI_AM335X_TSCADC is not set
# CONFIG_MFD_LP3943 is not set
# CONFIG_MFD_LP8788 is not set
+# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_PALMAS is not set
# CONFIG_TPS6105X is not set
# CONFIG_TPS65010 is not set
# CONFIG_TPS6507X is not set
+# CONFIG_MFD_TPS65086 is not set
# CONFIG_MFD_TPS65090 is not set
# CONFIG_MFD_TPS65217 is not set
+# CONFIG_MFD_TI_LP873X is not set
+# CONFIG_MFD_TI_LP87565 is not set
# CONFIG_MFD_TPS65218 is not set
# CONFIG_MFD_TPS6586X is not set
# CONFIG_MFD_TPS65910 is not set
-# CONFIG_MFD_TPS65912 is not set
# CONFIG_MFD_TPS65912_I2C is not set
# CONFIG_MFD_TPS80031 is not set
# CONFIG_TWL4030_CORE is not set
@@ -1702,31 +1823,57 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y
# CONFIG_REGULATOR_LP872X is not set
# CONFIG_REGULATOR_LP8755 is not set
# CONFIG_REGULATOR_LTC3589 is not set
+# CONFIG_REGULATOR_LTC3676 is not set
# CONFIG_REGULATOR_MAX1586 is not set
# CONFIG_REGULATOR_MAX8649 is not set
# CONFIG_REGULATOR_MAX8660 is not set
# CONFIG_REGULATOR_MAX8952 is not set
-# CONFIG_REGULATOR_MAX8973 is not set
# CONFIG_REGULATOR_MT6311 is not set
# CONFIG_REGULATOR_PFUZE100 is not set
+# CONFIG_REGULATOR_PV88060 is not set
+# CONFIG_REGULATOR_PV88080 is not set
+# CONFIG_REGULATOR_PV88090 is not set
# CONFIG_REGULATOR_TPS51632 is not set
# CONFIG_REGULATOR_TPS62360 is not set
# CONFIG_REGULATOR_TPS65023 is not set
# CONFIG_REGULATOR_TPS6507X is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+# CONFIG_REGULATOR_VCTRL is not set
CONFIG_REGULATOR_VEXPRESS=y
+CONFIG_RC_CORE=y
+CONFIG_RC_MAP=y
+CONFIG_RC_DECODERS=y
+# CONFIG_LIRC is not set
+CONFIG_IR_NEC_DECODER=y
+CONFIG_IR_RC5_DECODER=y
+CONFIG_IR_RC6_DECODER=y
+CONFIG_IR_JVC_DECODER=y
+CONFIG_IR_SONY_DECODER=y
+CONFIG_IR_SANYO_DECODER=y
+CONFIG_IR_SHARP_DECODER=y
+CONFIG_IR_MCE_KBD_DECODER=y
+CONFIG_IR_XMP_DECODER=y
+# CONFIG_RC_DEVICES is not set
# CONFIG_MEDIA_SUPPORT is not set
#
# Graphics support
#
+# CONFIG_IMX_IPUV3_CORE is not set
# CONFIG_DRM is not set
#
+# ACP (Audio CoProcessor) Configuration
+#
+# CONFIG_DRM_LIB_RANDOM is not set
+
+#
# Frame buffer Devices
#
CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
CONFIG_FB_CMDLINE=y
+CONFIG_FB_NOTIFY=y
# CONFIG_FB_DDC is not set
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
CONFIG_FB_CFB_FILLRECT=y
@@ -1736,6 +1883,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_SYS_FILLRECT is not set
# CONFIG_FB_SYS_COPYAREA is not set
# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set
# CONFIG_FB_FOREIGN_ENDIAN is not set
# CONFIG_FB_SYS_FOPS is not set
# CONFIG_FB_SVGALIB is not set
@@ -1760,7 +1908,19 @@ CONFIG_PLAT_VERSATILE_CLCD=y
# CONFIG_FB_AUO_K190X is not set
# CONFIG_FB_SIMPLE is not set
# CONFIG_FB_SSD1307 is not set
-# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+# CONFIG_LCD_PLATFORM is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=y
+# CONFIG_BACKLIGHT_PM8941_WLED is not set
+# CONFIG_BACKLIGHT_ADP8860 is not set
+# CONFIG_BACKLIGHT_ADP8870 is not set
+# CONFIG_BACKLIGHT_LM3639 is not set
+# CONFIG_BACKLIGHT_GPIO is not set
+# CONFIG_BACKLIGHT_LV5207LP is not set
+# CONFIG_BACKLIGHT_BD6107 is not set
+# CONFIG_BACKLIGHT_ARCXCNN is not set
# CONFIG_VGASTATE is not set
CONFIG_VIDEOMODE_HELPERS=y
@@ -1776,16 +1936,11 @@ CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_LOGO_LINUX_CLUT224=y
CONFIG_SOUND=y
-CONFIG_SOUND_OSS_CORE=y
-CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+# CONFIG_SOUND_OSS_CORE is not set
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
-# CONFIG_SND_SEQUENCER is not set
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=y
-CONFIG_SND_PCM_OSS=y
-CONFIG_SND_PCM_OSS_PLUGINS=y
+# CONFIG_SND_OSSEMUL is not set
CONFIG_SND_PCM_TIMER=y
# CONFIG_SND_DYNAMIC_MINORS is not set
CONFIG_SND_SUPPORT_OLD_API=y
@@ -1794,11 +1949,9 @@ CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
CONFIG_SND_VMASTER=y
-# CONFIG_SND_RAWMIDI_SEQ is not set
+# CONFIG_SND_SEQUENCER is not set
# CONFIG_SND_OPL3_LIB_SEQ is not set
# CONFIG_SND_OPL4_LIB_SEQ is not set
-# CONFIG_SND_SBAWE_SEQ is not set
-# CONFIG_SND_EMU10K1_SEQ is not set
CONFIG_SND_AC97_CODEC=y
# CONFIG_SND_DRIVERS is not set
@@ -1820,7 +1973,6 @@ CONFIG_SND_USB=y
# CONFIG_SND_USB_TONEPORT is not set
# CONFIG_SND_USB_VARIAX is not set
# CONFIG_SND_SOC is not set
-# CONFIG_SOUND_PRIME is not set
CONFIG_AC97_BUS=y
#
@@ -1836,9 +1988,11 @@ CONFIG_HID_GENERIC=y
# Special HID drivers
#
CONFIG_HID_A4TECH=y
+# CONFIG_HID_ACCUTOUCH is not set
# CONFIG_HID_ACRUX is not set
CONFIG_HID_APPLE=y
# CONFIG_HID_APPLEIR is not set
+# CONFIG_HID_ASUS is not set
# CONFIG_HID_AUREAL is not set
CONFIG_HID_BELKIN=y
# CONFIG_HID_BETOP_FF is not set
@@ -1846,7 +2000,7 @@ CONFIG_HID_CHERRY=y
CONFIG_HID_CHICONY=y
# CONFIG_HID_CORSAIR is not set
# CONFIG_HID_PRODIKEYS is not set
-# CONFIG_HID_CP2112 is not set
+# CONFIG_HID_CMEDIA is not set
CONFIG_HID_CYPRESS=y
CONFIG_HID_DRAGONRISE=y
# CONFIG_DRAGONRISE_FF is not set
@@ -1864,9 +2018,11 @@ CONFIG_HID_EZKEY=y
# CONFIG_HID_WALTOP is not set
CONFIG_HID_GYRATION=y
# CONFIG_HID_ICADE is not set
+CONFIG_HID_ITE=y
CONFIG_HID_TWINHAN=y
CONFIG_HID_KENSINGTON=y
# CONFIG_HID_LCPOWER is not set
+# CONFIG_HID_LED is not set
# CONFIG_HID_LENOVO is not set
CONFIG_HID_LOGITECH=y
# CONFIG_HID_LOGITECH_HIDPP is not set
@@ -1875,9 +2031,11 @@ CONFIG_HID_LOGITECH=y
# CONFIG_LOGIG940_FF is not set
# CONFIG_LOGIWHEELS_FF is not set
# CONFIG_HID_MAGICMOUSE is not set
+# CONFIG_HID_MAYFLASH is not set
CONFIG_HID_MICROSOFT=y
CONFIG_HID_MONTEREY=y
# CONFIG_HID_MULTITOUCH is not set
+# CONFIG_HID_NTI is not set
CONFIG_HID_NTRIG=y
# CONFIG_HID_ORTEK is not set
CONFIG_HID_PANTHERLORD=y
@@ -1887,6 +2045,7 @@ CONFIG_HID_PETALYNX=y
# CONFIG_HID_PICOLCD is not set
# CONFIG_HID_PLANTRONICS is not set
# CONFIG_HID_PRIMAX is not set
+# CONFIG_HID_RETRODE is not set
# CONFIG_HID_ROCCAT is not set
# CONFIG_HID_SAITEK is not set
CONFIG_HID_SAMSUNG=y
@@ -1905,6 +2064,7 @@ CONFIG_HID_TOPSEED=y
# CONFIG_HID_THINGM is not set
CONFIG_HID_THRUSTMASTER=y
# CONFIG_THRUSTMASTER_FF is not set
+# CONFIG_HID_UDRAW_PS3 is not set
# CONFIG_HID_WACOM is not set
# CONFIG_HID_WIIMOTE is not set
# CONFIG_HID_XINMO is not set
@@ -1912,6 +2072,7 @@ CONFIG_HID_ZEROPLUS=y
# CONFIG_ZEROPLUS_FF is not set
# CONFIG_HID_ZYDACRON is not set
# CONFIG_HID_SENSOR_HUB is not set
+# CONFIG_HID_ALPS is not set
#
# USB HID support
@@ -1938,7 +2099,7 @@ CONFIG_USB_DEFAULT_PERSIST=y
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_ULPI_BUS is not set
+# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set
CONFIG_USB_MON=y
# CONFIG_USB_WUSB_CBAF is not set
@@ -2016,7 +2177,6 @@ CONFIG_USB_ISP1760_HOST_ROLE=y
# CONFIG_USB_SEVSEG is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
-# CONFIG_USB_LED is not set
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_IDMOUSE is not set
@@ -2030,7 +2190,9 @@ CONFIG_USB_ISP1760_HOST_ROLE=y
# CONFIG_USB_ISIGHTFW is not set
# CONFIG_USB_YUREX is not set
# CONFIG_USB_EZUSB_FX2 is not set
+# CONFIG_USB_HUB_USB251XB is not set
# CONFIG_USB_HSIC_USB3503 is not set
+# CONFIG_USB_HSIC_USB4604 is not set
# CONFIG_USB_LINK_LAYER_TEST is not set
# CONFIG_USB_CHAOSKEY is not set
@@ -2039,28 +2201,30 @@ CONFIG_USB_ISP1760_HOST_ROLE=y
#
# CONFIG_USB_PHY is not set
# CONFIG_NOP_USB_XCEIV is not set
-# CONFIG_AM335X_PHY_USB is not set
# CONFIG_USB_GPIO_VBUS is not set
# CONFIG_USB_ISP1301 is not set
# CONFIG_USB_ULPI is not set
# CONFIG_USB_GADGET is not set
-# CONFIG_USB_LED_TRIG is not set
-# CONFIG_UWB is not set
-CONFIG_MMC=y
-# CONFIG_MMC_DEBUG is not set
#
-# MMC/SD/SDIO Card Drivers
+# USB Power Delivery and Type-C drivers
#
+# CONFIG_TYPEC_UCSI is not set
+# CONFIG_USB_LED_TRIG is not set
+# CONFIG_USB_ULPI_BUS is not set
+# CONFIG_UWB is not set
+CONFIG_MMC=y
+CONFIG_PWRSEQ_EMMC=y
+CONFIG_PWRSEQ_SIMPLE=y
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_MINORS=8
-CONFIG_MMC_BLOCK_BOUNCE=y
# CONFIG_SDIO_UART is not set
# CONFIG_MMC_TEST is not set
#
# MMC/SD/SDIO Host Controller Drivers
#
+# CONFIG_MMC_DEBUG is not set
CONFIG_MMC_ARMMMCI=y
# CONFIG_MMC_SDHCI is not set
# CONFIG_MMC_DW is not set
@@ -2072,6 +2236,7 @@ CONFIG_MMC_ARMMMCI=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
# CONFIG_LEDS_CLASS_FLASH is not set
+# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
#
# LED drivers
@@ -2083,6 +2248,7 @@ CONFIG_LEDS_CLASS=y
# CONFIG_LEDS_PCA9532 is not set
CONFIG_LEDS_GPIO=y
# CONFIG_LEDS_LP3944 is not set
+# CONFIG_LEDS_LP3952 is not set
# CONFIG_LEDS_LP5521 is not set
# CONFIG_LEDS_LP5523 is not set
# CONFIG_LEDS_LP5562 is not set
@@ -2096,12 +2262,15 @@ CONFIG_LEDS_GPIO=y
# CONFIG_LEDS_TCA6507 is not set
# CONFIG_LEDS_TLC591XX is not set
# CONFIG_LEDS_LM355x is not set
+# CONFIG_LEDS_IS31FL319X is not set
+# CONFIG_LEDS_IS31FL32XX is not set
#
# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
#
# CONFIG_LEDS_BLINKM is not set
# CONFIG_LEDS_SYSCON is not set
+# CONFIG_LEDS_USER is not set
#
# LED Triggers
@@ -2109,6 +2278,8 @@ CONFIG_LEDS_GPIO=y
CONFIG_LEDS_TRIGGERS=y
# CONFIG_LEDS_TRIGGER_TIMER is not set
# CONFIG_LEDS_TRIGGER_ONESHOT is not set
+# CONFIG_LEDS_TRIGGER_DISK is not set
+# CONFIG_LEDS_TRIGGER_MTD is not set
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
CONFIG_LEDS_TRIGGER_CPU=y
@@ -2120,10 +2291,10 @@ CONFIG_LEDS_TRIGGER_CPU=y
#
# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
# CONFIG_LEDS_TRIGGER_CAMERA is not set
+# CONFIG_LEDS_TRIGGER_PANIC is not set
# CONFIG_ACCESSIBILITY is not set
CONFIG_EDAC_ATOMIC_SCRUB=y
CONFIG_EDAC_SUPPORT=y
-# CONFIG_EDAC is not set
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
@@ -2131,6 +2302,7 @@ CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
CONFIG_RTC_SYSTOHC=y
CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set
+CONFIG_RTC_NVMEM=y
#
# RTC interfaces
@@ -2149,32 +2321,37 @@ CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_DRV_DS1307 is not set
# CONFIG_RTC_DRV_DS1374 is not set
# CONFIG_RTC_DRV_DS1672 is not set
-# CONFIG_RTC_DRV_DS3232 is not set
# CONFIG_RTC_DRV_HYM8563 is not set
# CONFIG_RTC_DRV_MAX6900 is not set
# CONFIG_RTC_DRV_RS5C372 is not set
# CONFIG_RTC_DRV_ISL1208 is not set
# CONFIG_RTC_DRV_ISL12022 is not set
-# CONFIG_RTC_DRV_ISL12057 is not set
# CONFIG_RTC_DRV_X1205 is not set
-# CONFIG_RTC_DRV_PCF2127 is not set
# CONFIG_RTC_DRV_PCF8523 is not set
-# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_PCF85063 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set
# CONFIG_RTC_DRV_BQ32K is not set
# CONFIG_RTC_DRV_S35390A is not set
# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8010 is not set
# CONFIG_RTC_DRV_RX8581 is not set
# CONFIG_RTC_DRV_RX8025 is not set
# CONFIG_RTC_DRV_EM3027 is not set
-# CONFIG_RTC_DRV_RV3029C2 is not set
# CONFIG_RTC_DRV_RV8803 is not set
#
# SPI RTC drivers
#
+CONFIG_RTC_I2C_AND_SPI=y
+
+#
+# SPI and I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS3232 is not set
+# CONFIG_RTC_DRV_PCF2127 is not set
+# CONFIG_RTC_DRV_RV3029C2 is not set
#
# Platform RTC drivers
@@ -2201,13 +2378,20 @@ CONFIG_RTC_INTF_DEV=y
#
# CONFIG_RTC_DRV_PL030 is not set
CONFIG_RTC_DRV_PL031=y
+# CONFIG_RTC_DRV_FTRTC010 is not set
# CONFIG_RTC_DRV_SNVS is not set
+# CONFIG_RTC_DRV_R7301 is not set
#
# HID Sensor RTC drivers
#
# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
# CONFIG_DMADEVICES is not set
+
+#
+# DMABUF options
+#
+# CONFIG_SYNC_FILE is not set
# CONFIG_AUXDISPLAY is not set
# CONFIG_UIO is not set
# CONFIG_VIRT_DRIVERS is not set
@@ -2224,7 +2408,9 @@ CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
#
# Microsoft Hyper-V guest support
#
+# CONFIG_HYPERV_TSCPAGE is not set
# CONFIG_STAGING is not set
+# CONFIG_GOLDFISH is not set
# CONFIG_CHROME_PLATFORMS is not set
CONFIG_CLKDEV_LOOKUP=y
CONFIG_HAVE_CLK_PREPARE=y
@@ -2233,26 +2419,29 @@ CONFIG_COMMON_CLK=y
#
# Common Clock Framework
#
+CONFIG_ICST=y
CONFIG_COMMON_CLK_VERSATILE=y
CONFIG_CLK_SP810=y
CONFIG_CLK_VEXPRESS_OSC=y
+# CONFIG_CLK_HSDK is not set
# CONFIG_COMMON_CLK_SI5351 is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI570 is not set
+# CONFIG_COMMON_CLK_CDCE706 is not set
# CONFIG_COMMON_CLK_CDCE925 is not set
+# CONFIG_COMMON_CLK_CS2000_CP is not set
# CONFIG_CLK_QORIQ is not set
+# CONFIG_COMMON_CLK_NXP is not set
# CONFIG_COMMON_CLK_PXA is not set
-# CONFIG_COMMON_CLK_CDCE706 is not set
-
-#
-# Hardware Spinlock drivers
-#
+# CONFIG_COMMON_CLK_PIC32 is not set
+# CONFIG_COMMON_CLK_VC5 is not set
+# CONFIG_HWSPINLOCK is not set
#
# Clock Source drivers
#
-CONFIG_CLKSRC_OF=y
-CONFIG_CLKSRC_PROBE=y
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
CONFIG_CLKSRC_MMIO=y
CONFIG_ARM_ARCH_TIMER=y
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
@@ -2272,12 +2461,13 @@ CONFIG_IOMMU_SUPPORT=y
# Generic IOMMU Pagetable Support
#
# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set
+# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
# CONFIG_ARM_SMMU is not set
#
# Remoteproc drivers
#
-# CONFIG_STE_MODEM_RPROC is not set
+# CONFIG_REMOTEPROC is not set
#
# Rpmsg drivers
@@ -2286,7 +2476,23 @@ CONFIG_IOMMU_SUPPORT=y
#
# SOC (System On Chip) specific Drivers
#
+
+#
+# Amlogic SoC drivers
+#
+
+#
+# Broadcom SoC drivers
+#
# CONFIG_SOC_BRCMSTB is not set
+
+#
+# i.MX SoC drivers
+#
+
+#
+# Qualcomm SoC drivers
+#
# CONFIG_SUNXI_SRAM is not set
# CONFIG_SOC_TI is not set
# CONFIG_PM_DEVFREQ is not set
@@ -2296,6 +2502,7 @@ CONFIG_IOMMU_SUPPORT=y
# CONFIG_PWM is not set
CONFIG_IRQCHIP=y
CONFIG_ARM_GIC=y
+CONFIG_ARM_GIC_MAX_NR=1
# CONFIG_IPACK_BUS is not set
# CONFIG_RESET_CONTROLLER is not set
# CONFIG_FMC is not set
@@ -2304,9 +2511,9 @@ CONFIG_ARM_GIC=y
# PHY Subsystem
#
# CONFIG_GENERIC_PHY is not set
+# CONFIG_BCM_KONA_USB2_PHY is not set
# CONFIG_PHY_PXA_28NM_HSIC is not set
# CONFIG_PHY_PXA_28NM_USB2 is not set
-# CONFIG_BCM_KONA_USB2_PHY is not set
# CONFIG_POWERCAP is not set
# CONFIG_MCB is not set
@@ -2320,21 +2527,30 @@ CONFIG_ARM_PMU=y
# Android
#
# CONFIG_ANDROID is not set
-# CONFIG_NVMEM is not set
+# CONFIG_DAX is not set
+CONFIG_NVMEM=y
# CONFIG_STM is not set
# CONFIG_INTEL_TH is not set
+# CONFIG_FPGA is not set
#
-# FPGA Configuration Support
+# FSI support
#
-# CONFIG_FPGA is not set
+# CONFIG_FSI is not set
+# CONFIG_TEE is not set
#
# Firmware Drivers
#
CONFIG_ARM_PSCI_FW=y
+# CONFIG_ARM_PSCI_CHECKER is not set
# CONFIG_FIRMWARE_MEMMAP is not set
CONFIG_HAVE_ARM_SMCCC=y
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# Tegra firmware driver
+#
#
# File systems
@@ -2359,7 +2575,11 @@ CONFIG_FS_MBCACHE=y
# CONFIG_NILFS2_FS is not set
# CONFIG_F2FS_FS is not set
# CONFIG_FS_POSIX_ACL is not set
+CONFIG_EXPORTFS=y
+# CONFIG_EXPORTFS_BLOCK_OPS is not set
CONFIG_FILE_LOCKING=y
+CONFIG_MANDATORY_FILE_LOCKING=y
+# CONFIG_FS_ENCRYPTION is not set
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_INOTIFY_USER=y
@@ -2389,6 +2609,7 @@ CONFIG_FAT_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_FAT_DEFAULT_UTF8 is not set
# CONFIG_NTFS_FS is not set
#
@@ -2406,6 +2627,7 @@ CONFIG_TMPFS=y
# CONFIG_HUGETLB_PAGE is not set
# CONFIG_CONFIGFS_FS is not set
CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ORANGEFS_FS is not set
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
@@ -2429,7 +2651,8 @@ CONFIG_UBIFS_FS=y
CONFIG_UBIFS_FS_LZO=y
CONFIG_UBIFS_FS_ZLIB=y
# CONFIG_UBIFS_ATIME_SUPPORT is not set
-# CONFIG_LOGFS is not set
+# CONFIG_UBIFS_FS_ENCRYPTION is not set
+CONFIG_UBIFS_FS_SECURITY=y
CONFIG_CRAMFS=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_FILE_CACHE=y
@@ -2442,6 +2665,7 @@ CONFIG_SQUASHFS_ZLIB=y
# CONFIG_SQUASHFS_LZ4 is not set
CONFIG_SQUASHFS_LZO=y
# CONFIG_SQUASHFS_XZ is not set
+# CONFIG_SQUASHFS_ZSTD is not set
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
# CONFIG_SQUASHFS_EMBEDDED is not set
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
@@ -2538,6 +2762,7 @@ CONFIG_NLS_ISO8859_1=y
# printk and dmesg options
#
# CONFIG_PRINTK_TIME is not set
+CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_DYNAMIC_DEBUG is not set
@@ -2564,6 +2789,7 @@ CONFIG_SECTION_MISMATCH_WARN_ONLY=y
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
CONFIG_MAGIC_SYSRQ=y
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
+CONFIG_MAGIC_SYSRQ_SERIAL=y
CONFIG_DEBUG_KERNEL=y
#
@@ -2571,6 +2797,9 @@ CONFIG_DEBUG_KERNEL=y
#
# CONFIG_PAGE_EXTENSION is not set
# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_PAGE_POISONING is not set
+# CONFIG_DEBUG_PAGE_REF is not set
+# CONFIG_DEBUG_RODATA_TEST is not set
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SLUB_STATS is not set
@@ -2578,6 +2807,8 @@ CONFIG_HAVE_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_KMEMLEAK is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_VM is not set
+CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
+# CONFIG_DEBUG_VIRTUAL is not set
CONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_DEBUG_PER_CPU_MAPS is not set
# CONFIG_DEBUG_SHIRQ is not set
@@ -2585,11 +2816,12 @@ CONFIG_DEBUG_MEMORY_INIT=y
#
# Debug Lockups and Hangs
#
-# CONFIG_LOCKUP_DETECTOR is not set
+# CONFIG_SOFTLOCKUP_DETECTOR is not set
CONFIG_DETECT_HUNG_TASK=y
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+# CONFIG_WQ_WATCHDOG is not set
# CONFIG_PANIC_ON_OOPS is not set
CONFIG_PANIC_ON_OOPS_VALUE=0
CONFIG_PANIC_TIMEOUT=0
@@ -2598,7 +2830,6 @@ CONFIG_PANIC_TIMEOUT=0
# CONFIG_SCHEDSTATS is not set
# CONFIG_SCHED_STACK_END_CHECK is not set
# CONFIG_DEBUG_TIMEKEEPING is not set
-# CONFIG_TIMER_STATS is not set
#
# Lock Debugging (spinlocks, mutexes, etc...)
@@ -2613,7 +2844,9 @@ CONFIG_PANIC_TIMEOUT=0
# CONFIG_DEBUG_ATOMIC_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_LOCK_TORTURE_TEST is not set
-# CONFIG_STACKTRACE is not set
+# CONFIG_WW_MUTEX_SELFTEST is not set
+CONFIG_STACKTRACE=y
+# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_LIST is not set
@@ -2626,29 +2859,38 @@ CONFIG_DEBUG_BUGVERBOSE=y
# RCU Debugging
#
# CONFIG_PROVE_RCU is not set
-# CONFIG_SPARSE_RCU_POINTER is not set
# CONFIG_TORTURE_TEST is not set
+# CONFIG_RCU_PERF_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=21
-# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_TRACE=y
# CONFIG_RCU_EQS_DEBUG is not set
+# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
# CONFIG_NOTIFIER_ERROR_INJECTION is not set
# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_NOP_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACE_CLOCK=y
CONFIG_RING_BUFFER=y
+CONFIG_EVENT_TRACING=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
CONFIG_RING_BUFFER_ALLOW_SWAP=y
+CONFIG_TRACING=y
CONFIG_TRACING_SUPPORT=y
CONFIG_FTRACE=y
# CONFIG_FUNCTION_TRACER is not set
# CONFIG_IRQSOFF_TRACER is not set
# CONFIG_SCHED_TRACER is not set
+# CONFIG_HWLAT_TRACER is not set
# CONFIG_ENABLE_DEFAULT_TRACERS is not set
# CONFIG_FTRACE_SYSCALLS is not set
# CONFIG_TRACER_SNAPSHOT is not set
@@ -2657,18 +2899,21 @@ CONFIG_BRANCH_PROFILE_NONE=y
# CONFIG_PROFILE_ALL_BRANCHES is not set
# CONFIG_STACK_TRACER is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
-# CONFIG_UPROBE_EVENT is not set
-# CONFIG_PROBE_EVENTS is not set
+CONFIG_UPROBE_EVENTS=y
+CONFIG_PROBE_EVENTS=y
# CONFIG_TRACEPOINT_BENCHMARK is not set
# CONFIG_RING_BUFFER_BENCHMARK is not set
# CONFIG_RING_BUFFER_STARTUP_TEST is not set
+# CONFIG_TRACE_EVAL_MAP_FILE is not set
CONFIG_TRACING_EVENTS_GPIO=y
+# CONFIG_DMA_API_DEBUG is not set
#
# Runtime Testing
#
# CONFIG_LKDTM is not set
# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_TEST_SORT is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_RBTREE_TEST is not set
# CONFIG_INTERVAL_TREE_TEST is not set
@@ -2678,21 +2923,29 @@ CONFIG_TRACING_EVENTS_GPIO=y
# CONFIG_TEST_STRING_HELPERS is not set
# CONFIG_TEST_KSTRTOX is not set
# CONFIG_TEST_PRINTF is not set
+# CONFIG_TEST_BITMAP is not set
+# CONFIG_TEST_UUID is not set
# CONFIG_TEST_RHASHTABLE is not set
# CONFIG_TEST_HASH is not set
-# CONFIG_DMA_API_DEBUG is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_USER_COPY is not set
# CONFIG_TEST_BPF is not set
# CONFIG_TEST_FIRMWARE is not set
+# CONFIG_TEST_SYSCTL is not set
# CONFIG_TEST_UDELAY is not set
-# CONFIG_MEMTEST is not set
# CONFIG_TEST_STATIC_KEYS is not set
+# CONFIG_MEMTEST is not set
+# CONFIG_BUG_ON_DATA_CORRUPTION is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
-# CONFIG_ARM_PTDUMP is not set
+# CONFIG_ARCH_WANTS_UBSAN_NO_NULL is not set
+# CONFIG_UBSAN is not set
+CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
# CONFIG_STRICT_DEVMEM is not set
+# CONFIG_ARM_PTDUMP is not set
+# CONFIG_UNWINDER_FRAME_POINTER is not set
+CONFIG_UNWINDER_ARM=y
CONFIG_ARM_UNWIND=y
CONFIG_DEBUG_USER=y
# CONFIG_DEBUG_LL is not set
@@ -2700,7 +2953,6 @@ CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
# CONFIG_DEBUG_UART_8250 is not set
CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
# CONFIG_PID_IN_CONTEXTIDR is not set
-# CONFIG_DEBUG_SET_MODULE_RONX is not set
# CONFIG_CORESIGHT is not set
#
@@ -2710,6 +2962,9 @@ CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
# CONFIG_SECURITY_DMESG_RESTRICT is not set
# CONFIG_SECURITY is not set
# CONFIG_SECURITYFS is not set
+CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
+# CONFIG_HARDENED_USERCOPY is not set
+# CONFIG_STATIC_USERMODEHELPER is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
CONFIG_CRYPTO=y
@@ -2727,9 +2982,12 @@ CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG=m
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_RNG_DEFAULT=m
-CONFIG_CRYPTO_PCOMP2=y
CONFIG_CRYPTO_AKCIPHER2=y
+CONFIG_CRYPTO_KPP2=y
+CONFIG_CRYPTO_ACOMP2=y
# CONFIG_CRYPTO_RSA is not set
+# CONFIG_CRYPTO_DH is not set
+# CONFIG_CRYPTO_ECDH is not set
CONFIG_CRYPTO_MANAGER=m
CONFIG_CRYPTO_MANAGER2=y
# CONFIG_CRYPTO_USER is not set
@@ -2791,6 +3049,7 @@ CONFIG_CRYPTO_CRC32C=y
# CONFIG_CRYPTO_SHA1 is not set
CONFIG_CRYPTO_SHA256=m
# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_SHA3 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_WP512 is not set
@@ -2798,6 +3057,7 @@ CONFIG_CRYPTO_SHA256=m
# Ciphers
#
CONFIG_CRYPTO_AES=y
+# CONFIG_CRYPTO_AES_TI is not set
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_ARC4 is not set
# CONFIG_CRYPTO_BLOWFISH is not set
@@ -2818,7 +3078,6 @@ CONFIG_CRYPTO_AES=y
# Compression
#
CONFIG_CRYPTO_DEFLATE=y
-# CONFIG_CRYPTO_ZLIB is not set
CONFIG_CRYPTO_LZO=y
# CONFIG_CRYPTO_842 is not set
# CONFIG_CRYPTO_LZ4 is not set
@@ -2831,7 +3090,6 @@ CONFIG_CRYPTO_LZO=y
CONFIG_CRYPTO_DRBG_MENU=m
CONFIG_CRYPTO_DRBG_HMAC=y
# CONFIG_CRYPTO_DRBG_HASH is not set
-# CONFIG_CRYPTO_DRBG_CTR is not set
CONFIG_CRYPTO_DRBG=m
CONFIG_CRYPTO_JITTERENTROPY=m
# CONFIG_CRYPTO_USER_API_HASH is not set
@@ -2844,7 +3102,7 @@ CONFIG_CRYPTO_JITTERENTROPY=m
# Certificates for signature checking
#
# CONFIG_ARM_CRYPTO is not set
-# CONFIG_BINARY_PRINTF is not set
+CONFIG_BINARY_PRINTF=y
#
# Library routines
@@ -2868,6 +3126,7 @@ CONFIG_CRC32_SLICEBY8=y
# CONFIG_CRC32_SLICEBY4 is not set
# CONFIG_CRC32_SARWATE is not set
# CONFIG_CRC32_BIT is not set
+# CONFIG_CRC4 is not set
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
# CONFIG_CRC8 is not set
@@ -2896,19 +3155,25 @@ CONFIG_DECOMPRESS_LZ4=y
CONFIG_GENERIC_ALLOCATOR=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_DMA=y
+# CONFIG_SGL_ALLOC is not set
+# CONFIG_DMA_NOOP_OPS is not set
+# CONFIG_DMA_VIRT_OPS is not set
CONFIG_CPU_RMAP=y
CONFIG_DQL=y
CONFIG_GLOB=y
# CONFIG_GLOB_SELFTEST is not set
CONFIG_NLATTR=y
-CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
# CONFIG_CORDIC is not set
# CONFIG_DDR is not set
+# CONFIG_IRQ_POLL is not set
CONFIG_LIBFDT=y
CONFIG_FONT_SUPPORT=y
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
# CONFIG_SG_SPLIT is not set
+CONFIG_SG_POOL=y
CONFIG_ARCH_HAS_SG_CHAIN=y
+CONFIG_SBITMAP=y
+# CONFIG_STRING_SELFTEST is not set
# CONFIG_VIRTUALIZATION is not set
diff --git a/src/ci/docker/host-x86_64/disabled/dist-m68k-linux/Dockerfile b/src/ci/docker/host-x86_64/disabled/dist-m68k-linux/Dockerfile
index 17203994c..cbac2310d 100644
--- a/src/ci/docker/host-x86_64/disabled/dist-m68k-linux/Dockerfile
+++ b/src/ci/docker/host-x86_64/disabled/dist-m68k-linux/Dockerfile
@@ -16,6 +16,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
libssl-dev \
pkg-config
+COPY scripts/cmake.sh /scripts/
+RUN /scripts/cmake.sh
COPY scripts/sccache.sh /scripts/
RUN sh /scripts/sccache.sh
diff --git a/src/ci/docker/host-x86_64/disabled/riscv64gc-linux/Dockerfile b/src/ci/docker/host-x86_64/disabled/riscv64gc-linux/Dockerfile
index 437760870..07260be35 100644
--- a/src/ci/docker/host-x86_64/disabled/riscv64gc-linux/Dockerfile
+++ b/src/ci/docker/host-x86_64/disabled/riscv64gc-linux/Dockerfile
@@ -19,6 +19,7 @@ RUN apt-get update -y && apt-get install -y --no-install-recommends \
g++ \
libc6-dev \
libc6-dev-riscv64-cross \
+ libssl-dev \
make \
ninja-build \
patch \
@@ -94,6 +95,9 @@ RUN mkdir build && cd build && \
WORKDIR /tmp
RUN rm -rf /tmp/riscv-pk
+COPY scripts/cmake.sh /scripts/
+RUN /scripts/cmake.sh
+
COPY scripts/sccache.sh /scripts/
RUN sh /scripts/sccache.sh
diff --git a/src/ci/docker/host-x86_64/dist-i686-linux/Dockerfile b/src/ci/docker/host-x86_64/dist-i686-linux/Dockerfile
index ea4a2a242..f5274104d 100644
--- a/src/ci/docker/host-x86_64/dist-i686-linux/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-i686-linux/Dockerfile
@@ -12,7 +12,6 @@ RUN yum upgrade -y && \
automake \
bzip2 \
file \
- cmake3 \
gcc \
gcc-c++ \
git \
@@ -35,7 +34,7 @@ RUN yum upgrade -y && \
zlib-devel.x86_64 \
&& yum clean all
-RUN mkdir -p /rustroot/bin && ln -s /usr/bin/cmake3 /rustroot/bin/cmake
+RUN mkdir -p /rustroot/bin
ENV PATH=/rustroot/bin:$PATH
ENV LD_LIBRARY_PATH=/rustroot/lib64:/rustroot/lib32:/rustroot/lib
@@ -48,6 +47,9 @@ COPY host-x86_64/dist-x86_64-linux/shared.sh /tmp/
COPY host-x86_64/dist-x86_64-linux/build-gcc.sh /tmp/
RUN ./build-gcc.sh && yum remove -y gcc gcc-c++
+COPY scripts/cmake.sh /tmp/
+RUN ./cmake.sh
+
# Now build LLVM+Clang, afterwards configuring further compilations to use the
# clang/clang++ compilers.
COPY host-x86_64/dist-x86_64-linux/build-clang.sh /tmp/
diff --git a/src/ci/docker/host-x86_64/dist-powerpc64le-linux/Dockerfile b/src/ci/docker/host-x86_64/dist-powerpc64le-linux/Dockerfile
index 6b7b32a8b..5dc282403 100644
--- a/src/ci/docker/host-x86_64/dist-powerpc64le-linux/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-powerpc64le-linux/Dockerfile
@@ -1,15 +1,12 @@
-FROM ubuntu:20.04
+FROM ubuntu:22.04
COPY scripts/cross-apt-packages.sh /scripts/
RUN sh /scripts/cross-apt-packages.sh
COPY scripts/rustbuild-setup.sh /scripts/
RUN sh /scripts/rustbuild-setup.sh
-USER rustbuild
WORKDIR /tmp
-USER root
-
RUN apt-get install -y --no-install-recommends rpm2cpio cpio
COPY host-x86_64/dist-powerpc64le-linux/shared.sh host-x86_64/dist-powerpc64le-linux/build-powerpc64le-toolchain.sh /tmp/
RUN ./build-powerpc64le-toolchain.sh
diff --git a/src/ci/docker/host-x86_64/dist-riscv64-linux/riscv64-unknown-linux-gnu.defconfig b/src/ci/docker/host-x86_64/dist-riscv64-linux/riscv64-unknown-linux-gnu.defconfig
index 10075907b..470cef1a8 100644
--- a/src/ci/docker/host-x86_64/dist-riscv64-linux/riscv64-unknown-linux-gnu.defconfig
+++ b/src/ci/docker/host-x86_64/dist-riscv64-linux/riscv64-unknown-linux-gnu.defconfig
@@ -10,7 +10,7 @@ CT_ARCH_64=y
CT_ARCH_ARCH="rv64gc"
CT_KERNEL_LINUX=y
CT_LINUX_V_4_20=y
-CT_BINUTILS_V_2_32=y
+CT_BINUTILS_V_2_36=y
CT_GLIBC_V_2_29=y
CT_GCC_V_8=y
CT_CC_LANG_CXX=y
diff --git a/src/ci/docker/host-x86_64/dist-various-1/Dockerfile b/src/ci/docker/host-x86_64/dist-various-1/Dockerfile
index 4576e6d4f..8f4ad0f4e 100644
--- a/src/ci/docker/host-x86_64/dist-various-1/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-various-1/Dockerfile
@@ -1,6 +1,7 @@
-FROM ubuntu:20.04
+FROM ubuntu:22.04
-RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+ARG DEBIAN_FRONTEND=noninteractive
+RUN apt-get update && apt-get install -y --no-install-recommends \
g++ \
automake \
bison \
@@ -73,8 +74,8 @@ RUN env \
CXX=arm-linux-gnueabihf-g++ CXXFLAGS="-march=armv6 -marm -mfpu=vfp" \
bash musl.sh armhf && \
env \
- CC=arm-linux-gnueabihf-gcc CFLAGS="-march=armv7-a" \
- CXX=arm-linux-gnueabihf-g++ CXXFLAGS="-march=armv7-a" \
+ CC=arm-linux-gnueabihf-gcc CFLAGS="-march=armv7-a+fp" \
+ CXX=arm-linux-gnueabihf-g++ CXXFLAGS="-march=armv7-a+fp" \
bash musl.sh armv7hf && \
env \
CC=mips-openwrt-linux-gcc \
@@ -147,7 +148,7 @@ ENV TARGETS=$TARGETS,armv7a-none-eabi
ENV CFLAGS_armv5te_unknown_linux_musleabi="-march=armv5te -marm -mfloat-abi=soft" \
CFLAGS_arm_unknown_linux_musleabi="-march=armv6 -marm" \
CFLAGS_arm_unknown_linux_musleabihf="-march=armv6 -marm -mfpu=vfp" \
- CFLAGS_armv7_unknown_linux_musleabihf="-march=armv7-a" \
+ CFLAGS_armv7_unknown_linux_musleabihf="-march=armv7-a+fp" \
CC_mipsel_unknown_linux_musl=mipsel-openwrt-linux-gcc \
CC_mips_unknown_linux_musl=mips-openwrt-linux-gcc \
CC_mips64el_unknown_linux_muslabi64=mips64el-linux-gnuabi64-gcc \
diff --git a/src/ci/docker/host-x86_64/dist-various-2/Dockerfile b/src/ci/docker/host-x86_64/dist-various-2/Dockerfile
index 0f5df95a0..670e37b9d 100644
--- a/src/ci/docker/host-x86_64/dist-various-2/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-various-2/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:20.04
+FROM ubuntu:22.04
COPY scripts/cross-apt-packages.sh /scripts/
RUN sh /scripts/cross-apt-packages.sh
@@ -9,7 +9,7 @@ RUN sed -i 's/^# deb-src/deb-src/' /etc/apt/sources.list
RUN apt-get update && apt-get build-dep -y clang llvm && apt-get install -y --no-install-recommends \
build-essential \
# gcc-multilib can not be installed together with gcc-arm-linux-gnueabi
- g++-8-multilib \
+ g++-9-multilib \
libedit-dev \
libgmp-dev \
libisl-dev \
@@ -24,7 +24,7 @@ RUN apt-get update && apt-get build-dep -y clang llvm && apt-get install -y --no
# Needed for apt-key to work:
dirmngr \
gpg-agent \
- g++-8-arm-linux-gnueabi
+ g++-9-arm-linux-gnueabi
RUN apt-key adv --batch --yes --keyserver keyserver.ubuntu.com --recv-keys 74DA7924C5513486
RUN add-apt-repository -y 'deb https://apt.dilos.org/dilos dilos2 main'
@@ -51,8 +51,8 @@ ENV \
AR_x86_64_sun_solaris=x86_64-sun-solaris2.10-ar \
CC_x86_64_sun_solaris=x86_64-sun-solaris2.10-gcc \
CXX_x86_64_sun_solaris=x86_64-sun-solaris2.10-g++ \
- CC_armv7_unknown_linux_gnueabi=arm-linux-gnueabi-gcc-8 \
- CXX_armv7_unknown_linux_gnueabi=arm-linux-gnueabi-g++-8 \
+ CC_armv7_unknown_linux_gnueabi=arm-linux-gnueabi-gcc-9 \
+ CXX_armv7_unknown_linux_gnueabi=arm-linux-gnueabi-g++-9 \
AR_x86_64_fortanix_unknown_sgx=ar \
CC_x86_64_fortanix_unknown_sgx=clang-11 \
CFLAGS_x86_64_fortanix_unknown_sgx="-D__ELF__ -isystem/usr/include/x86_64-linux-gnu -mlvi-hardening -mllvm -x86-experimental-lvi-inline-asm-hardening" \
@@ -67,14 +67,14 @@ ENV \
CXX_i686_unknown_uefi=clang++-11 \
CC_x86_64_unknown_uefi=clang-11 \
CXX_x86_64_unknown_uefi=clang++-11 \
- CC=gcc-8 \
- CXX=g++-8
+ CC=gcc-9 \
+ CXX=g++-9
WORKDIR /build
COPY scripts/musl.sh /build
RUN env \
- CC=arm-linux-gnueabi-gcc-8 CFLAGS="-march=armv7-a" \
- CXX=arm-linux-gnueabi-g++-8 CXXFLAGS="-march=armv7-a" \
+ CC=arm-linux-gnueabi-gcc-9 CFLAGS="-march=armv7-a" \
+ CXX=arm-linux-gnueabi-g++-9 CXXFLAGS="-march=armv7-a" \
bash musl.sh armv7 && \
rm -rf /build/*
@@ -93,6 +93,9 @@ RUN /tmp/build-x86_64-fortanix-unknown-sgx-toolchain.sh
COPY host-x86_64/dist-various-2/build-wasi-toolchain.sh /tmp/
RUN /tmp/build-wasi-toolchain.sh
+COPY host-x86_64/dist-various-2/build-wasi-threads-toolchain.sh /tmp/
+RUN /tmp/build-wasi-threads-toolchain.sh
+
COPY scripts/freebsd-toolchain.sh /tmp/
RUN /tmp/freebsd-toolchain.sh i686
@@ -114,6 +117,7 @@ ENV TARGETS=x86_64-unknown-fuchsia
ENV TARGETS=$TARGETS,aarch64-unknown-fuchsia
ENV TARGETS=$TARGETS,wasm32-unknown-unknown
ENV TARGETS=$TARGETS,wasm32-wasi
+ENV TARGETS=$TARGETS,wasm32-wasi-preview1-threads
ENV TARGETS=$TARGETS,sparcv9-sun-solaris
ENV TARGETS=$TARGETS,x86_64-pc-solaris
ENV TARGETS=$TARGETS,x86_64-sun-solaris
@@ -129,13 +133,14 @@ ENV TARGETS=$TARGETS,i686-unknown-uefi
ENV TARGETS=$TARGETS,x86_64-unknown-uefi
# As per https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/1300211
-# we need asm in the search path for gcc-8 (for gnux32) but not in the search path of the
+# we need asm in the search path for gcc-9 (for gnux32) but not in the search path of the
# cross compilers.
-# Luckily one of the folders is /usr/local/include so symlink /usr/include/asm-generic there
-RUN ln -s /usr/include/asm-generic /usr/local/include/asm
+# Luckily one of the folders is /usr/local/include so symlink /usr/include/x86_64-linux-gnu/asm there
+RUN ln -s /usr/include/x86_64-linux-gnu/asm /usr/local/include/asm
ENV RUST_CONFIGURE_ARGS --enable-extended --enable-lld --disable-docs \
--set target.wasm32-wasi.wasi-root=/wasm32-wasi \
+ --set target.wasm32-wasi-preview1-threads.wasi-root=/wasm32-wasi-preview1-threads \
--musl-root-armv7=/musl-armv7
ENV SCRIPT python3 ../x.py dist --host='' --target $TARGETS
diff --git a/src/ci/docker/host-x86_64/dist-various-2/build-wasi-threads-toolchain.sh b/src/ci/docker/host-x86_64/dist-various-2/build-wasi-threads-toolchain.sh
new file mode 100755
index 000000000..689fe5286
--- /dev/null
+++ b/src/ci/docker/host-x86_64/dist-various-2/build-wasi-threads-toolchain.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+set -ex
+
+# Originally from https://github.com/llvm/llvm-project/releases/download/llvmorg-16.0.4/clang+llvm-16.0.4-x86_64-linux-gnu-ubuntu-22.04.tar.xz
+curl https://ci-mirrors.rust-lang.org/rustc/2023-05-17-clang%2Bllvm-16.0.4-x86_64-linux-gnu-ubuntu-22.04.tar.xz | \
+ tar xJf -
+bin="$PWD/clang+llvm-16.0.4-x86_64-linux-gnu-ubuntu-22.04/bin"
+
+git clone https://github.com/WebAssembly/wasi-libc
+
+cd wasi-libc
+git reset --hard ec4566beae84e54952637f0bf61bee4b4cacc087
+make -j$(nproc) \
+ CC="$bin/clang" \
+ NM="$bin/llvm-nm" \
+ AR="$bin/llvm-ar" \
+ THREAD_MODEL=posix \
+ INSTALL_DIR=/wasm32-wasi-preview1-threads \
+ install
+
+cd ..
+rm -rf wasi-libc
+rm -rf clang+llvm*
diff --git a/src/ci/docker/host-x86_64/dist-various-2/build-wasi-toolchain.sh b/src/ci/docker/host-x86_64/dist-various-2/build-wasi-toolchain.sh
index b867db6a1..4b0d36068 100755
--- a/src/ci/docker/host-x86_64/dist-various-2/build-wasi-toolchain.sh
+++ b/src/ci/docker/host-x86_64/dist-various-2/build-wasi-toolchain.sh
@@ -2,15 +2,15 @@
set -ex
-# Originally from https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.6/clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04.tar.xz
-curl https://ci-mirrors.rust-lang.org/rustc/2022-12-06-clang%2Bllvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04.tar.xz | \
+# Originally from https://github.com/llvm/llvm-project/releases/download/llvmorg-16.0.4/clang+llvm-16.0.4-x86_64-linux-gnu-ubuntu-22.04.tar.xz
+curl https://ci-mirrors.rust-lang.org/rustc/2023-05-17-clang%2Bllvm-16.0.4-x86_64-linux-gnu-ubuntu-22.04.tar.xz | \
tar xJf -
-bin="$PWD/clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04/bin"
+bin="$PWD/clang+llvm-16.0.4-x86_64-linux-gnu-ubuntu-22.04/bin"
git clone https://github.com/WebAssembly/wasi-libc
cd wasi-libc
-git reset --hard 7018e24d8fe248596819d2e884761676f3542a04
+git reset --hard ec4566beae84e54952637f0bf61bee4b4cacc087
make -j$(nproc) \
CC="$bin/clang" \
NM="$bin/llvm-nm" \
diff --git a/src/ci/docker/host-x86_64/dist-x86_64-linux/Dockerfile b/src/ci/docker/host-x86_64/dist-x86_64-linux/Dockerfile
index c2fd2e3a9..319989df3 100644
--- a/src/ci/docker/host-x86_64/dist-x86_64-linux/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-x86_64-linux/Dockerfile
@@ -12,7 +12,6 @@ RUN yum upgrade -y && \
automake \
bzip2 \
file \
- cmake3 \
gcc \
gcc-c++ \
git \
@@ -35,7 +34,7 @@ RUN yum upgrade -y && \
zlib-devel.x86_64 \
&& yum clean all
-RUN mkdir -p /rustroot/bin && ln -s /usr/bin/cmake3 /rustroot/bin/cmake
+RUN mkdir -p /rustroot/bin
ENV PATH=/rustroot/bin:$PATH
ENV LD_LIBRARY_PATH=/rustroot/lib64:/rustroot/lib32:/rustroot/lib
@@ -48,13 +47,18 @@ COPY host-x86_64/dist-x86_64-linux/shared.sh /tmp/
COPY host-x86_64/dist-x86_64-linux/build-gcc.sh /tmp/
RUN ./build-gcc.sh && yum remove -y gcc gcc-c++
+# LLVM 17 needs cmake 3.20 or higher.
+COPY scripts/cmake.sh /tmp/
+RUN ./cmake.sh
+
# Now build LLVM+Clang, afterwards configuring further compilations to use the
# clang/clang++ compilers.
COPY host-x86_64/dist-x86_64-linux/build-clang.sh /tmp/
RUN ./build-clang.sh
ENV CC=clang CXX=clang++
-# rustc-perf version from 2023-03-15
+# rustc-perf version from 2023-05-30
+# Should also be changed in the opt-dist tool for other environments.
ENV PERF_COMMIT 8b2ac3042e1ff2c0074455a0a3618adef97156b1
RUN curl -LS -o perf.zip https://github.com/rust-lang/rustc-perf/archive/$PERF_COMMIT.zip && \
unzip perf.zip && \
@@ -81,7 +85,9 @@ ENV RUST_CONFIGURE_ARGS \
--set rust.jemalloc \
--set rust.use-lld=true \
--set rust.lto=thin
-ENV SCRIPT python3 ../src/ci/stage-build.py python3 ../x.py dist \
+
+ENV SCRIPT python3 ../x.py build --set rust.debug=true opt-dist && \
+ ./build/$HOSTS/stage0-tools-bin/opt-dist python3 ../x.py dist \
--host $HOSTS --target $HOSTS \
--include-default-paths \
build-manifest bootstrap
diff --git a/src/ci/docker/host-x86_64/dist-x86_64-musl/Dockerfile b/src/ci/docker/host-x86_64/dist-x86_64-musl/Dockerfile
index 6f04dcad9..c9a6a2dd0 100644
--- a/src/ci/docker/host-x86_64/dist-x86_64-musl/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-x86_64-musl/Dockerfile
@@ -1,6 +1,7 @@
-FROM ubuntu:20.04
+FROM ubuntu:22.04
-RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+ARG DEBIAN_FRONTEND=noninteractive
+RUN apt-get update && apt-get install -y --no-install-recommends \
g++ \
make \
ninja-build \
@@ -11,6 +12,7 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-ins
python3 \
git \
cmake \
+ bzip2 \
xz-utils \
sudo \
gdb \
@@ -21,10 +23,6 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-ins
WORKDIR /build/
-# Build cmake before musl toolchain, as we replace the compiler during that step.
-COPY scripts/cmake.sh /scripts/
-RUN /scripts/cmake.sh
-
COPY scripts/musl-toolchain.sh /build/
# We need to mitigate rust-lang/rust#34978 when compiling musl itself as well
RUN CFLAGS="-Wa,-mrelax-relocations=no -Wa,--compress-debug-sections=none -Wl,--compress-debug-sections=none" \
diff --git a/src/ci/docker/host-x86_64/dist-x86_64-netbsd/Dockerfile b/src/ci/docker/host-x86_64/dist-x86_64-netbsd/Dockerfile
index d03c36454..effdc99d9 100644
--- a/src/ci/docker/host-x86_64/dist-x86_64-netbsd/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-x86_64-netbsd/Dockerfile
@@ -1,11 +1,14 @@
-FROM ubuntu:20.04
+FROM ubuntu:22.04
+ARG DEBIAN_FRONTEND=noninteractive
COPY scripts/cross-apt-packages.sh /scripts/
RUN sh /scripts/cross-apt-packages.sh
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -y zlib1g-dev
+RUN apt-get install -y zlib1g-dev
COPY host-x86_64/dist-x86_64-netbsd/build-netbsd-toolchain.sh /tmp/
-RUN /tmp/build-netbsd-toolchain.sh
+# GCC 10 changed the default to -fno-common, which causes errors with the NetBSD-9.0 sources like:
+# /usr/bin/ld: buf.o:(.bss+0x0): multiple definition of `debug_file'; arch.o:(.bss+0x0): first defined here
+RUN env HOST_CFLAGS="-O -fcommon" /tmp/build-netbsd-toolchain.sh
COPY scripts/sccache.sh /scripts/
RUN sh /scripts/sccache.sh
diff --git a/src/ci/docker/host-x86_64/i686-gnu/Dockerfile b/src/ci/docker/host-x86_64/i686-gnu/Dockerfile
index b5abf6564..61811c419 100644
--- a/src/ci/docker/host-x86_64/i686-gnu/Dockerfile
+++ b/src/ci/docker/host-x86_64/i686-gnu/Dockerfile
@@ -24,10 +24,10 @@ COPY scripts/sccache.sh /scripts/
RUN sh /scripts/sccache.sh
ENV RUST_CONFIGURE_ARGS --build=i686-unknown-linux-gnu
-# Exclude some tests that are unlikely to be platform specific, to speed up
+# Skip some tests that are unlikely to be platform specific, to speed up
# this slow job.
ENV SCRIPT python3 ../x.py --stage 2 test \
- --exclude src/bootstrap \
- --exclude tests/rustdoc-js \
- --exclude src/tools/error_index_generator \
- --exclude src/tools/linkchecker
+ --skip src/bootstrap \
+ --skip tests/rustdoc-js \
+ --skip src/tools/error_index_generator \
+ --skip src/tools/linkchecker
diff --git a/src/ci/docker/host-x86_64/mingw-check-tidy/Dockerfile b/src/ci/docker/host-x86_64/mingw-check-tidy/Dockerfile
index 34b93be41..0a49eab4d 100644
--- a/src/ci/docker/host-x86_64/mingw-check-tidy/Dockerfile
+++ b/src/ci/docker/host-x86_64/mingw-check-tidy/Dockerfile
@@ -26,11 +26,13 @@ COPY scripts/sccache.sh /scripts/
RUN sh /scripts/sccache.sh
COPY host-x86_64/mingw-check/reuse-requirements.txt /tmp/
-RUN pip3 install --no-deps --no-cache-dir --require-hashes -r /tmp/reuse-requirements.txt
+RUN pip3 install --no-deps --no-cache-dir --require-hashes -r /tmp/reuse-requirements.txt \
+ && pip3 install virtualenv
COPY host-x86_64/mingw-check/validate-toolstate.sh /scripts/
COPY host-x86_64/mingw-check/validate-error-codes.sh /scripts/
# NOTE: intentionally uses python2 for x.py so we can test it still works.
# validate-toolstate only runs in our CI, so it's ok for it to only support python3.
-ENV SCRIPT python2.7 ../x.py test --stage 0 src/tools/tidy tidyselftest
+ENV SCRIPT TIDY_PRINT_DIFF=1 python2.7 ../x.py test \
+ --stage 0 src/tools/tidy tidyselftest --extra-checks=py:lint
diff --git a/src/ci/docker/host-x86_64/test-various/Dockerfile b/src/ci/docker/host-x86_64/test-various/Dockerfile
index 1dc7b7987..4fe66014c 100644
--- a/src/ci/docker/host-x86_64/test-various/Dockerfile
+++ b/src/ci/docker/host-x86_64/test-various/Dockerfile
@@ -1,6 +1,7 @@
-FROM ubuntu:20.04
+FROM ubuntu:22.04
-RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+ARG DEBIAN_FRONTEND=noninteractive
+RUN apt-get update && apt-get install -y --no-install-recommends \
clang-11 \
g++ \
make \
@@ -15,23 +16,20 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-ins
gdb \
libssl-dev \
pkg-config \
+ bzip2 \
xz-utils \
wget \
patch \
ovmf \
+ ovmf-ia32 \
qemu-efi-aarch64 \
qemu-system-arm \
qemu-system-x86 \
&& rm -rf /var/lib/apt/lists/*
-RUN curl -sL https://nodejs.org/dist/v15.14.0/node-v15.14.0-linux-x64.tar.xz | \
+RUN curl -sL https://nodejs.org/dist/v18.12.0/node-v18.12.0-linux-x64.tar.xz | \
tar -xJ
-# Install 32-bit OVMF files for the i686-unknown-uefi test. This package
-# is not available in ubuntu 20.04, so download a 22.04 package.
-RUN curl -sL --output ovmf-ia32.deb http://mirrors.kernel.org/ubuntu/pool/universe/e/edk2/ovmf-ia32_2022.02-3_all.deb
-RUN dpkg -i ovmf-ia32.deb && rm ovmf-ia32.deb
-
WORKDIR /build/
COPY scripts/musl-toolchain.sh /build/
RUN bash musl-toolchain.sh x86_64 && rm -rf build
@@ -42,7 +40,7 @@ RUN sh /scripts/sccache.sh
ENV RUST_CONFIGURE_ARGS \
--musl-root-x86_64=/usr/local/x86_64-linux-musl \
- --set build.nodejs=/node-v15.14.0-linux-x64/bin/node \
+ --set build.nodejs=/node-v18.12.0-linux-x64/bin/node \
--set rust.lld
# Some run-make tests have assertions about code size, and enabling debug
@@ -58,6 +56,8 @@ ENV WASM_SCRIPT python3 /checkout/x.py --stage 2 test --host='' --target $WASM_T
tests/ui \
tests/mir-opt \
tests/codegen-units \
+ tests/codegen \
+ tests/assembly \
library/core
ENV NVPTX_TARGETS=nvptx64-nvidia-cuda
diff --git a/src/ci/docker/host-x86_64/test-various/uefi_qemu_test/run.py b/src/ci/docker/host-x86_64/test-various/uefi_qemu_test/run.py
index ffae7b0d4..3577643ca 100755
--- a/src/ci/docker/host-x86_64/test-various/uefi_qemu_test/run.py
+++ b/src/ci/docker/host-x86_64/test-various/uefi_qemu_test/run.py
@@ -109,12 +109,7 @@ def build_and_run(tmp_dir, target):
'-drive',
f'format=raw,file=fat:rw:{esp}',
capture=True,
- # Ubuntu 20.04 (which is what the Dockerfile currently
- # uses) provides QEMU 4.2.1, which segfaults on
- # shutdown under some circumstances. That has been
- # fixed in newer versions of QEMU, but for now just
- # don't check the exit status.
- check=False,
+ check=True,
# Set a timeout to kill the VM in case something goes wrong.
timeout=60).stdout
diff --git a/src/ci/docker/host-x86_64/wasm32/Dockerfile b/src/ci/docker/host-x86_64/wasm32/Dockerfile
index ef1fde1c3..02b4664eb 100644
--- a/src/ci/docker/host-x86_64/wasm32/Dockerfile
+++ b/src/ci/docker/host-x86_64/wasm32/Dockerfile
@@ -1,6 +1,7 @@
-FROM ubuntu:20.04
+FROM ubuntu:22.04
-RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+ARG DEBIAN_FRONTEND=noninteractive
+RUN apt-get update && apt-get install -y --no-install-recommends \
g++ \
make \
ninja-build \
@@ -13,6 +14,7 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-ins
sudo \
gdb \
xz-utils \
+ libssl-dev \
bzip2 \
&& rm -rf /var/lib/apt/lists/*
@@ -53,7 +55,8 @@ COPY static/gitconfig /etc/gitconfig
# Emscripten installation is user-specific
ENV NO_CHANGE_USER=1
+RUN chown 10719 -R /emsdk-portable/
# Exclude library/alloc due to OOM in benches.
ENV SCRIPT python3 ../x.py test --stage 2 --host='' --target $TARGETS \
- --exclude library/alloc
+ --skip library/alloc
diff --git a/src/ci/docker/host-x86_64/x86_64-gnu-debug/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu-debug/Dockerfile
index 735d4d4df..e4534d0f8 100644
--- a/src/ci/docker/host-x86_64/x86_64-gnu-debug/Dockerfile
+++ b/src/ci/docker/host-x86_64/x86_64-gnu-debug/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:20.04
+FROM ubuntu:22.04
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
diff --git a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-14/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-14/Dockerfile
deleted file mode 100644
index 93d18bcf1..000000000
--- a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-14/Dockerfile
+++ /dev/null
@@ -1,54 +0,0 @@
-FROM ubuntu:22.04
-
-ARG DEBIAN_FRONTEND=noninteractive
-
-RUN apt-get update && apt-get install -y --no-install-recommends \
- g++ \
- gcc-multilib \
- make \
- ninja-build \
- file \
- curl \
- ca-certificates \
- python3.11 \
- git \
- cmake \
- sudo \
- gdb \
- llvm-14-tools \
- llvm-14-dev \
- libedit-dev \
- libssl-dev \
- pkg-config \
- zlib1g-dev \
- xz-utils \
- nodejs \
- mingw-w64 \
- && rm -rf /var/lib/apt/lists/*
-
-# Install powershell (universal package) so we can test x.ps1 on Linux
-RUN curl -sL "https://github.com/PowerShell/PowerShell/releases/download/v7.3.1/powershell_7.3.1-1.deb_amd64.deb" > powershell.deb && \
- dpkg -i powershell.deb && \
- rm -f powershell.deb
-
-COPY scripts/sccache.sh /scripts/
-RUN sh /scripts/sccache.sh
-
-# We are disabling CI LLVM since this builder is intentionally using a host
-# LLVM, rather than the typical src/llvm-project LLVM.
-ENV NO_DOWNLOAD_CI_LLVM 1
-
-# This is not the latest LLVM version, so some components required by tests may
-# be missing.
-ENV IS_NOT_LATEST_LLVM 1
-
-# Using llvm-link-shared due to libffi issues -- see #34486
-ENV RUST_CONFIGURE_ARGS \
- --build=x86_64-unknown-linux-gnu \
- --llvm-root=/usr/lib/llvm-14 \
- --enable-llvm-link-shared \
- --set rust.thin-lto-import-instr-limit=10
-
-COPY host-x86_64/x86_64-gnu-llvm-14/script.sh /tmp/
-
-ENV SCRIPT /tmp/script.sh
diff --git a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-15/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-15/Dockerfile
index 06a8f7eeb..444e0275d 100644
--- a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-15/Dockerfile
+++ b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-15/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:23.04
+FROM ubuntu:22.04
ARG DEBIAN_FRONTEND=noninteractive
@@ -10,7 +10,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
file \
curl \
ca-certificates \
- python3 \
+ python3.11 \
git \
cmake \
sudo \
@@ -49,20 +49,6 @@ ENV RUST_CONFIGURE_ARGS \
--enable-llvm-link-shared \
--set rust.thin-lto-import-instr-limit=10
-# NOTE: intentionally uses all of `x.py`, `x`, and `x.ps1` to make sure they all work on Linux.
-ENV SCRIPT ../x.py --stage 2 test --exclude src/tools/tidy && \
- # Run the `mir-opt` tests again but this time for a 32-bit target.
- # This enforces that tests using `// EMIT_MIR_FOR_EACH_BIT_WIDTH` have
- # both 32-bit and 64-bit outputs updated by the PR author, before
- # the PR is approved and tested for merging.
- # It will also detect tests lacking `// EMIT_MIR_FOR_EACH_BIT_WIDTH`,
- # despite having different output on 32-bit vs 64-bit targets.
- ../x --stage 2 test tests/mir-opt \
- --host='' --target=i686-unknown-linux-gnu && \
- # Run the UI test suite again, but in `--pass=check` mode
- #
- # This is intended to make sure that both `--pass=check` continues to
- # work.
- #
- ../x.ps1 --stage 2 test tests/ui --pass=check \
- --host='' --target=i686-unknown-linux-gnu
+COPY host-x86_64/x86_64-gnu-llvm-15/script.sh /tmp/
+
+ENV SCRIPT /tmp/script.sh
diff --git a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-14/script.sh b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-15/script.sh
index 0120fd982..390304b6a 100755
--- a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-14/script.sh
+++ b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-15/script.sh
@@ -4,7 +4,7 @@ set -ex
# Only run the stage 1 tests on merges, not on PR CI jobs.
if [[ -z "${PR_CI_JOB}" ]]; then
-../x.py --stage 1 test --exclude src/tools/tidy && \
+../x.py --stage 1 test --skip src/tools/tidy && \
# Run the `mir-opt` tests again but this time for a 32-bit target.
# This enforces that tests using `// EMIT_MIR_FOR_EACH_BIT_WIDTH` have
# both 32-bit and 64-bit outputs updated by the PR author, before
@@ -16,7 +16,7 @@ if [[ -z "${PR_CI_JOB}" ]]; then
fi
# NOTE: intentionally uses all of `x.py`, `x`, and `x.ps1` to make sure they all work on Linux.
-../x.py --stage 2 test --exclude src/tools/tidy && \
+../x.py --stage 2 test --skip src/tools/tidy && \
# Run the `mir-opt` tests again but this time for a 32-bit target.
# This enforces that tests using `// EMIT_MIR_FOR_EACH_BIT_WIDTH` have
# both 32-bit and 64-bit outputs updated by the PR author, before
diff --git a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-16/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-16/Dockerfile
index 7c75d0df5..1e2b802e6 100644
--- a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-16/Dockerfile
+++ b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-16/Dockerfile
@@ -45,20 +45,6 @@ ENV RUST_CONFIGURE_ARGS \
--enable-llvm-link-shared \
--set rust.thin-lto-import-instr-limit=10
-# NOTE: intentionally uses all of `x.py`, `x`, and `x.ps1` to make sure they all work on Linux.
-ENV SCRIPT ../x.py --stage 2 test --exclude src/tools/tidy && \
- # Run the `mir-opt` tests again but this time for a 32-bit target.
- # This enforces that tests using `// EMIT_MIR_FOR_EACH_BIT_WIDTH` have
- # both 32-bit and 64-bit outputs updated by the PR author, before
- # the PR is approved and tested for merging.
- # It will also detect tests lacking `// EMIT_MIR_FOR_EACH_BIT_WIDTH`,
- # despite having different output on 32-bit vs 64-bit targets.
- ../x --stage 2 test tests/mir-opt \
- --host='' --target=i686-unknown-linux-gnu && \
- # Run the UI test suite again, but in `--pass=check` mode
- #
- # This is intended to make sure that both `--pass=check` continues to
- # work.
- #
- ../x.ps1 --stage 2 test tests/ui --pass=check \
- --host='' --target=i686-unknown-linux-gnu
+COPY host-x86_64/x86_64-gnu-llvm-15/script.sh /tmp/
+
+ENV SCRIPT /tmp/script.sh
diff --git a/src/ci/docker/host-x86_64/x86_64-gnu-nopt/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu-nopt/Dockerfile
index 9fdc78406..d8113e067 100644
--- a/src/ci/docker/host-x86_64/x86_64-gnu-nopt/Dockerfile
+++ b/src/ci/docker/host-x86_64/x86_64-gnu-nopt/Dockerfile
@@ -1,7 +1,8 @@
-FROM ubuntu:20.04
+FROM ubuntu:22.04
# Avoid interactive prompts while installing `tzdata` dependency with `DEBIAN_FRONTEND`.
-RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+ARG DEBIAN_FRONTEND=noninteractive
+RUN apt-get update && apt-get install -y --no-install-recommends \
g++ \
make \
ninja-build \
diff --git a/src/ci/docker/host-x86_64/x86_64-gnu/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu/Dockerfile
index fbec368c9..9025e9bb0 100644
--- a/src/ci/docker/host-x86_64/x86_64-gnu/Dockerfile
+++ b/src/ci/docker/host-x86_64/x86_64-gnu/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:20.04
+FROM ubuntu:22.04
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
diff --git a/src/ci/docker/run.sh b/src/ci/docker/run.sh
index 4b218d577..8bd8beb87 100755
--- a/src/ci/docker/run.sh
+++ b/src/ci/docker/run.sh
@@ -63,6 +63,11 @@ if [ -f "$docker_dir/$image/Dockerfile" ]; then
uname -m >> $hash_key
docker --version >> $hash_key
+
+ # Include cache version. Currently it is needed to bust Docker
+ # cache key after opting in into the old Docker build backend.
+ echo "1" >> $hash_key
+
cksum=$(sha512sum $hash_key | \
awk '{print $1}')
@@ -79,7 +84,7 @@ if [ -f "$docker_dir/$image/Dockerfile" ]; then
loaded_images=$(/usr/bin/timeout -k 720 600 docker load -i /tmp/rustci_docker_cache \
| sed 's/.* sha/sha/')
set -e
- echo "Downloaded containers:\n$loaded_images"
+ printf "Downloaded containers:\n$loaded_images\n"
fi
dockerfile="$docker_dir/$image/Dockerfile"
@@ -89,12 +94,20 @@ if [ -f "$docker_dir/$image/Dockerfile" ]; then
else
context="$script_dir"
fi
+ echo "::group::Building docker image for $image"
+
+ # As of August 2023, Github Actions have updated Docker to 23.X,
+ # which uses the BuildKit by default. It currently throws aways all
+ # intermediate layers, which breaks our usage of S3 layer caching.
+ # Therefore we opt-in to the old build backend for now.
+ export DOCKER_BUILDKIT=0
retry docker \
build \
--rm \
-t rust-ci \
-f "$dockerfile" \
"$context"
+ echo "::endgroup::"
if [ "$CI" != "" ]; then
s3url="s3://$SCCACHE_BUCKET/docker/$cksum"
@@ -264,6 +277,7 @@ docker \
--env BASE_COMMIT="$BASE_COMMIT" \
--env DIST_TRY_BUILD \
--env PR_CI_JOB \
+ --env OBJDIR_ON_HOST="$objdir" \
--init \
--rm \
rust-ci \
diff --git a/src/ci/docker/scripts/cmake.sh b/src/ci/docker/scripts/cmake.sh
index f124dbdaa..822666c89 100755
--- a/src/ci/docker/scripts/cmake.sh
+++ b/src/ci/docker/scripts/cmake.sh
@@ -18,9 +18,9 @@ exit 1
set -x
}
-# LLVM 12 requires CMake 3.13.4 or higher.
-# This script is not necessary for images using Ubuntu 20.04 or newer.
-CMAKE=3.13.4
+# LLVM 17 requires CMake 3.20 or higher.
+# This script is not necessary for images using Ubuntu 22.04 or newer.
+CMAKE=3.20.3
curl -L https://github.com/Kitware/CMake/releases/download/v$CMAKE/cmake-$CMAKE.tar.gz | tar xzf -
mkdir cmake-build
diff --git a/src/ci/docker/scripts/fuchsia-test-runner.py b/src/ci/docker/scripts/fuchsia-test-runner.py
index af01f9ccb..f78d446c8 100755
--- a/src/ci/docker/scripts/fuchsia-test-runner.py
+++ b/src/ci/docker/scripts/fuchsia-test-runner.py
@@ -15,12 +15,10 @@ import hashlib
import json
import os
import platform
-import re
import shutil
-import signal
import subprocess
import sys
-from typing import ClassVar, List, Optional
+from typing import ClassVar, List
@dataclass
@@ -523,7 +521,7 @@ class TestEnvironment:
env_vars += '\n "RUST_BACKTRACE=0",'
# Use /tmp as the test temporary directory
- env_vars += f'\n "RUST_TEST_TMPDIR=/tmp",'
+ env_vars += '\n "RUST_TEST_TMPDIR=/tmp",'
cml.write(
self.CML_TEMPLATE.format(env_vars=env_vars, exe_name=exe_name)
diff --git a/src/ci/github-actions/ci.yml b/src/ci/github-actions/ci.yml
index 8027e6996..2cc0bfd9d 100644
--- a/src/ci/github-actions/ci.yml
+++ b/src/ci/github-actions/ci.yml
@@ -14,7 +14,6 @@
# step CI will fail.
---
-
###############################
# YAML Anchors Definition #
###############################
@@ -30,7 +29,6 @@
# The expand-yaml-anchors tool will automatically remove this block from the
# output YAML file.
x--expand-yaml-anchors--remove:
-
- &shared-ci-variables
CI_JOB_NAME: ${{ matrix.name }}
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
@@ -90,7 +88,7 @@ x--expand-yaml-anchors--remove:
<<: *base-job
- &job-macos-xl
- os: macos-latest # We use the standard runner for now
+ os: macos-13 # We use the standard runner for now
<<: *base-job
- &job-windows-8c
@@ -318,12 +316,12 @@ jobs:
matrix:
include:
- name: mingw-check
- <<: *job-linux-16c
+ <<: *job-linux-4c
- name: mingw-check-tidy
- <<: *job-linux-16c
+ <<: *job-linux-4c
- - name: x86_64-gnu-llvm-14
+ - name: x86_64-gnu-llvm-15
<<: *job-linux-16c
- name: x86_64-gnu-tools
@@ -469,11 +467,6 @@ jobs:
RUST_BACKTRACE: 1
<<: *job-linux-8c
- - name: x86_64-gnu-llvm-14
- env:
- RUST_BACKTRACE: 1
- <<: *job-linux-8c
-
- name: x86_64-gnu-nopt
<<: *job-linux-4c
@@ -525,7 +518,7 @@ jobs:
- name: x86_64-apple-1
env: &env-x86_64-apple-tests
- SCRIPT: ./x.py --stage 2 test --exclude tests/ui --exclude tests/rustdoc --exclude tests/run-make-fulldeps
+ SCRIPT: ./x.py --stage 2 test --skip tests/ui --skip tests/rustdoc --skip tests/run-make-fulldeps
RUST_CONFIGURE_ARGS: --build=x86_64-apple-darwin --enable-sanitizers --enable-profiler --set rust.jemalloc --set llvm.ninja=false
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
MACOSX_DEPLOYMENT_TARGET: 10.8
@@ -643,7 +636,7 @@ jobs:
--target=x86_64-pc-windows-msvc
--enable-full-tools
--enable-profiler
- SCRIPT: PGO_HOST=x86_64-pc-windows-msvc python src/ci/stage-build.py python x.py dist bootstrap --include-default-paths
+ SCRIPT: python x.py build --set rust.debug=true opt-dist && PGO_HOST=x86_64-pc-windows-msvc ./build/x86_64-pc-windows-msvc/stage0-tools-bin/opt-dist python x.py dist bootstrap --include-default-paths
DIST_REQUIRE_ALL_TOOLS: 1
<<: *job-windows-8c
@@ -668,9 +661,6 @@ jobs:
--enable-profiler
SCRIPT: python x.py dist bootstrap --include-default-paths
DIST_REQUIRE_ALL_TOOLS: 1
- # Hack around this SDK version, because it doesn't work with clang.
- # See https://github.com/rust-lang/rust/issues/88796
- WINDOWS_SDK_20348_HACK: 1
<<: *job-windows-8c
- name: dist-i686-mingw
diff --git a/src/ci/run.sh b/src/ci/run.sh
index 48fb40d6a..b8cb758bf 100755
--- a/src/ci/run.sh
+++ b/src/ci/run.sh
@@ -8,7 +8,7 @@ fi
if [ "$NO_CHANGE_USER" = "" ]; then
if [ "$LOCAL_USER_ID" != "" ]; then
- useradd --shell /bin/bash -u $LOCAL_USER_ID -o -c "" -m user
+ id -u user &>/dev/null || useradd --shell /bin/bash -u $LOCAL_USER_ID -o -c "" -m user
export HOME=/home/user
unset LOCAL_USER_ID
@@ -154,13 +154,25 @@ fi
# check for clock drifts. An HTTP URL is used instead of HTTPS since on Azure
# Pipelines it happened that the certificates were marked as expired.
datecheck() {
- echo "== clock drift check =="
+ # If an error has happened, we do not want to start a new group, because that will collapse
+ # a previous group that might have contained the error log.
+ exit_code=$?
+
+ if [ $exit_code -eq 0 ]
+ then
+ echo "::group::Clock drift check"
+ fi
+
echo -n " local time: "
date
echo -n " network time: "
curl -fs --head http://ci-caches.rust-lang.org | grep ^Date: \
| sed 's/Date: //g' || true
- echo "== end clock drift check =="
+
+ if [ $exit_code -eq 0 ]
+ then
+ echo "::endgroup::"
+ fi
}
datecheck
trap datecheck EXIT
@@ -171,12 +183,16 @@ trap datecheck EXIT
# sccache server at the start of the build, but no need to worry if this fails.
SCCACHE_IDLE_TIMEOUT=10800 sccache --start-server || true
+# Our build may overwrite config.toml, so we remove it here
+rm -f config.toml
+
$SRC/configure $RUST_CONFIGURE_ARGS
retry make prepare
# Display the CPU and memory information. This helps us know why the CI timing
# is fluctuating.
+echo "::group::Display CPU and Memory information"
if isMacOS; then
system_profiler SPHardwareDataType || true
sysctl hw || true
@@ -186,6 +202,7 @@ else
cat /proc/meminfo || true
ncpus=$(grep processor /proc/cpuinfo | wc -l)
fi
+echo "::endgroup::"
if [ ! -z "$SCRIPT" ]; then
echo "Executing ${SCRIPT}"
@@ -218,4 +235,6 @@ if [ "$RUN_CHECK_WITH_PARALLEL_QUERIES" != "" ]; then
CARGO_INCREMENTAL=0 ../x check
fi
+echo "::group::sccache stats"
sccache --show-stats || true
+echo "::endgroup::"
diff --git a/src/ci/scripts/install-clang.sh b/src/ci/scripts/install-clang.sh
index 02b72625d..cbb4d5765 100755
--- a/src/ci/scripts/install-clang.sh
+++ b/src/ci/scripts/install-clang.sh
@@ -39,11 +39,6 @@ if isMacOS; then
ciCommandSetEnv AR "ar"
elif isWindows && [[ ${CUSTOM_MINGW-0} -ne 1 ]]; then
- if [[ ${WINDOWS_SDK_20348_HACK-0} -eq 1 ]]; then
- rm -rf '/c/Program Files (x86)/Windows Kits/10/include/10.0.20348.0'
- mv '/c/Program Files (x86)/Windows Kits/10/include/'10.0.{19041,20348}.0
- fi
-
# If we're compiling for MSVC then we, like most other distribution builders,
# switch to clang as the compiler. This'll allow us eventually to enable LTO
# amongst LLVM and rustc. Note that we only do this on MSVC as I don't think
diff --git a/src/ci/scripts/setup-environment.sh b/src/ci/scripts/setup-environment.sh
index 0bc35f932..d3c55a4d6 100755
--- a/src/ci/scripts/setup-environment.sh
+++ b/src/ci/scripts/setup-environment.sh
@@ -10,7 +10,7 @@ source "$(cd "$(dirname "$0")" && pwd)/../shared.sh"
# Load extra environment variables
vars="${EXTRA_VARIABLES-}"
-echo "${vars}" | jq '' >/dev/null # Validate JSON and exit on errors
+echo "${vars}" | jq '.' >/dev/null # Validate JSON and exit on errors
for key in $(echo "${vars}" | jq "keys[]" -r); do
# On Windows, for whatever reason, $key contains the BOM character in it,
# and that messes up `jq ".${key}"`. This line strips the BOM from the key.
diff --git a/src/ci/stage-build.py b/src/ci/stage-build.py
deleted file mode 100755
index 3bb3b1418..000000000
--- a/src/ci/stage-build.py
+++ /dev/null
@@ -1,1037 +0,0 @@
-#!/usr/bin/env python3
-# ignore-tidy-linelength
-
-# Compatible with Python 3.6+
-
-import contextlib
-import getpass
-import glob
-import json
-import logging
-import os
-import pprint
-import shutil
-import subprocess
-import sys
-import time
-import traceback
-import urllib.request
-from io import StringIO
-from pathlib import Path
-from typing import Callable, ContextManager, Dict, Iterable, Iterator, List, Optional, \
- Tuple, Union
-
-PGO_HOST = os.environ["PGO_HOST"]
-CHANNEL = os.environ.get("RUST_RELEASE_CHANNEL", "")
-
-LOGGER = logging.getLogger("stage-build")
-
-LLVM_PGO_CRATES = [
- "syn-1.0.89",
- "cargo-0.60.0",
- "serde-1.0.136",
- "ripgrep-13.0.0",
- "regex-1.5.5",
- "clap-3.1.6",
- "hyper-0.14.18"
-]
-
-RUSTC_PGO_CRATES = [
- "externs",
- "ctfe-stress-5",
- "cargo-0.60.0",
- "token-stream-stress",
- "match-stress",
- "tuple-stress",
- "diesel-1.4.8",
- "bitmaps-3.1.0"
-]
-
-LLVM_BOLT_CRATES = LLVM_PGO_CRATES
-
-
-def is_try_build() -> bool:
- return os.environ.get("DIST_TRY_BUILD", "0") != "0"
-
-
-class Pipeline:
- # Paths
- def checkout_path(self) -> Path:
- """
- The root checkout, where the source is located.
- """
- raise NotImplementedError
-
- def downloaded_llvm_dir(self) -> Path:
- """
- Directory where the host LLVM is located.
- """
- raise NotImplementedError
-
- def build_root(self) -> Path:
- """
- The main directory where the build occurs.
- """
- raise NotImplementedError
-
- def build_artifacts(self) -> Path:
- return self.build_root() / "build" / PGO_HOST
-
- def rustc_stage_0(self) -> Path:
- return self.build_artifacts() / "stage0" / "bin" / "rustc"
-
- def cargo_stage_0(self) -> Path:
- return self.build_artifacts() / "stage0" / "bin" / "cargo"
-
- def rustc_stage_2(self) -> Path:
- return self.build_artifacts() / "stage2" / "bin" / "rustc"
-
- def opt_artifacts(self) -> Path:
- raise NotImplementedError
-
- def llvm_profile_dir_root(self) -> Path:
- return self.opt_artifacts() / "llvm-pgo"
-
- def llvm_profile_merged_file(self) -> Path:
- return self.opt_artifacts() / "llvm-pgo.profdata"
-
- def rustc_perf_dir(self) -> Path:
- return self.opt_artifacts() / "rustc-perf"
-
- def build_rustc_perf(self):
- raise NotImplementedError()
-
- def rustc_profile_dir_root(self) -> Path:
- return self.opt_artifacts() / "rustc-pgo"
-
- def rustc_profile_merged_file(self) -> Path:
- return self.opt_artifacts() / "rustc-pgo.profdata"
-
- def rustc_profile_template_path(self) -> Path:
- """
- The profile data is written into a single filepath that is being repeatedly merged when each
- rustc invocation ends. Empirically, this can result in some profiling data being lost. That's
- why we override the profile path to include the PID. This will produce many more profiling
- files, but the resulting profile will produce a slightly faster rustc binary.
- """
- return self.rustc_profile_dir_root() / "default_%m_%p.profraw"
-
- def supports_bolt(self) -> bool:
- raise NotImplementedError
-
- def llvm_bolt_profile_merged_file(self) -> Path:
- return self.opt_artifacts() / "bolt.profdata"
-
- def metrics_path(self) -> Path:
- return self.build_root() / "build" / "metrics.json"
-
- def executable_extension(self) -> str:
- raise NotImplementedError
-
- def skipped_tests(self) -> Iterable[str]:
- return ()
-
-
-class LinuxPipeline(Pipeline):
- def checkout_path(self) -> Path:
- return Path("/checkout")
-
- def downloaded_llvm_dir(self) -> Path:
- return Path("/rustroot")
-
- def build_root(self) -> Path:
- return self.checkout_path() / "obj"
-
- def opt_artifacts(self) -> Path:
- return Path("/tmp/tmp-multistage/opt-artifacts")
-
- def build_rustc_perf(self):
- # /tmp/rustc-perf comes from the Dockerfile
- shutil.copytree("/tmp/rustc-perf", self.rustc_perf_dir())
- cmd(["chown", "-R", f"{getpass.getuser()}:", self.rustc_perf_dir()])
-
- with change_cwd(self.rustc_perf_dir()):
- cmd([self.cargo_stage_0(), "build", "-p", "collector"], env=dict(
- RUSTC=str(self.rustc_stage_0()),
- RUSTC_BOOTSTRAP="1"
- ))
-
- def supports_bolt(self) -> bool:
- return True
-
- def executable_extension(self) -> str:
- return ""
-
- def skipped_tests(self) -> Iterable[str]:
- # This test fails because of linker errors, as of June 2023.
- yield "tests/ui/process/nofile-limit.rs"
-
-
-class WindowsPipeline(Pipeline):
- def __init__(self):
- self.checkout_dir = Path(os.getcwd())
-
- def checkout_path(self) -> Path:
- return self.checkout_dir
-
- def downloaded_llvm_dir(self) -> Path:
- return self.checkout_path() / "citools" / "clang-rust"
-
- def build_root(self) -> Path:
- return self.checkout_path()
-
- def opt_artifacts(self) -> Path:
- return self.checkout_path() / "opt-artifacts"
-
- def rustc_stage_0(self) -> Path:
- return super().rustc_stage_0().with_suffix(".exe")
-
- def cargo_stage_0(self) -> Path:
- return super().cargo_stage_0().with_suffix(".exe")
-
- def rustc_stage_2(self) -> Path:
- return super().rustc_stage_2().with_suffix(".exe")
-
- def build_rustc_perf(self):
- # rustc-perf version from 2023-03-15
- perf_commit = "8b2ac3042e1ff2c0074455a0a3618adef97156b1"
- rustc_perf_zip_path = self.opt_artifacts() / "perf.zip"
-
- def download_rustc_perf():
- download_file(
- f"https://github.com/rust-lang/rustc-perf/archive/{perf_commit}.zip",
- rustc_perf_zip_path
- )
- with change_cwd(self.opt_artifacts()):
- unpack_archive(rustc_perf_zip_path)
- move_path(Path(f"rustc-perf-{perf_commit}"), self.rustc_perf_dir())
- delete_file(rustc_perf_zip_path)
-
- retry_action(download_rustc_perf, "Download rustc-perf")
-
- with change_cwd(self.rustc_perf_dir()):
- cmd([self.cargo_stage_0(), "build", "-p", "collector"], env=dict(
- RUSTC=str(self.rustc_stage_0()),
- RUSTC_BOOTSTRAP="1"
- ))
-
- def rustc_profile_template_path(self) -> Path:
- """
- On Windows, we don't have enough space to use separate files for each rustc invocation.
- Therefore, we use a single file for the generated profiles.
- """
- return self.rustc_profile_dir_root() / "default_%m.profraw"
-
- def supports_bolt(self) -> bool:
- return False
-
- def executable_extension(self) -> str:
- return ".exe"
-
- def skipped_tests(self) -> Iterable[str]:
- # This test fails as of June 2023
- yield "tests\\codegen\\vec-shrink-panik.rs"
-
-
-def get_timestamp() -> float:
- return time.time()
-
-
-Duration = float
-
-
-def iterate_timers(timer: "Timer", name: str, level: int = 0) -> Iterator[
- Tuple[int, str, Duration]]:
- """
- Hierarchically iterate the children of a timer, in a depth-first order.
- """
- yield (level, name, timer.total_duration())
- for (child_name, child_timer) in timer.children:
- yield from iterate_timers(child_timer, child_name, level=level + 1)
-
-
-class Timer:
- def __init__(self, parent_names: Tuple[str, ...] = ()):
- self.children: List[Tuple[str, Timer]] = []
- self.section_active = False
- self.parent_names = parent_names
- self.duration_excluding_children: Duration = 0
-
- @contextlib.contextmanager
- def section(self, name: str) -> ContextManager["Timer"]:
- assert not self.section_active
- self.section_active = True
-
- start = get_timestamp()
- exc = None
-
- child_timer = Timer(parent_names=self.parent_names + (name,))
- full_name = " > ".join(child_timer.parent_names)
- try:
- LOGGER.info(f"Section `{full_name}` starts")
- yield child_timer
- except BaseException as exception:
- exc = exception
- raise
- finally:
- end = get_timestamp()
- duration = end - start
-
- child_timer.duration_excluding_children = duration - child_timer.total_duration()
- self.add_child(name, child_timer)
- if exc is None:
- LOGGER.info(f"Section `{full_name}` ended: OK ({duration:.2f}s)")
- else:
- LOGGER.info(f"Section `{full_name}` ended: FAIL ({duration:.2f}s)")
- self.section_active = False
-
- def total_duration(self) -> Duration:
- return self.duration_excluding_children + sum(
- c.total_duration() for (_, c) in self.children)
-
- def has_children(self) -> bool:
- return len(self.children) > 0
-
- def print_stats(self):
- rows = []
- for (child_name, child_timer) in self.children:
- for (level, name, duration) in iterate_timers(child_timer, child_name, level=0):
- label = f"{' ' * level}{name}:"
- rows.append((label, duration))
-
- # Empty row
- rows.append(("", ""))
-
- total_duration_label = "Total duration:"
- total_duration = self.total_duration()
- rows.append((total_duration_label, humantime(total_duration)))
-
- space_after_label = 2
- max_label_length = max(16, max(len(label) for (label, _) in rows)) + space_after_label
-
- table_width = max_label_length + 23
- divider = "-" * table_width
-
- with StringIO() as output:
- print(divider, file=output)
- for (label, duration) in rows:
- if isinstance(duration, Duration):
- pct = (duration / total_duration) * 100
- value = f"{duration:>12.2f}s ({pct:>5.2f}%)"
- else:
- value = f"{duration:>{len(total_duration_label) + 7}}"
- print(f"{label:<{max_label_length}} {value}", file=output)
- print(divider, file=output, end="")
- LOGGER.info(f"Timer results\n{output.getvalue()}")
-
- def add_child(self, name: str, timer: "Timer"):
- self.children.append((name, timer))
-
- def add_duration(self, name: str, duration: Duration):
- timer = Timer(parent_names=self.parent_names + (name,))
- timer.duration_excluding_children = duration
- self.add_child(name, timer)
-
-
-class BuildStep:
- def __init__(self, type: str, children: List["BuildStep"], duration: float):
- self.type = type
- self.children = children
- self.duration = duration
-
- def find_all_by_type(self, type: str) -> Iterator["BuildStep"]:
- if type == self.type:
- yield self
- for child in self.children:
- yield from child.find_all_by_type(type)
-
- def __repr__(self):
- return f"BuildStep(type={self.type}, duration={self.duration}, children={len(self.children)})"
-
-
-def load_last_metrics(path: Path) -> BuildStep:
- """
- Loads the metrics of the most recent bootstrap execution from a metrics.json file.
- """
- with open(path, "r") as f:
- metrics = json.load(f)
- invocation = metrics["invocations"][-1]
-
- def parse(entry) -> Optional[BuildStep]:
- if "kind" not in entry or entry["kind"] != "rustbuild_step":
- return None
- type = entry.get("type", "")
- duration = entry.get("duration_excluding_children_sec", 0)
- children = []
-
- for child in entry.get("children", ()):
- step = parse(child)
- if step is not None:
- children.append(step)
- duration += step.duration
- return BuildStep(type=type, children=children, duration=duration)
-
- children = [parse(child) for child in invocation.get("children", ())]
- return BuildStep(
- type="root",
- children=children,
- duration=invocation.get("duration_including_children_sec", 0)
- )
-
-
-@contextlib.contextmanager
-def change_cwd(dir: Path):
- """
- Temporarily change working directory to `dir`.
- """
- cwd = os.getcwd()
- LOGGER.debug(f"Changing working dir from `{cwd}` to `{dir}`")
- os.chdir(dir)
- try:
- yield
- finally:
- LOGGER.debug(f"Reverting working dir to `{cwd}`")
- os.chdir(cwd)
-
-
-def humantime(time_s: float) -> str:
- hours = time_s // 3600
- time_s = time_s % 3600
- minutes = time_s // 60
- seconds = time_s % 60
-
- result = ""
- if hours > 0:
- result += f"{int(hours)}h "
- if minutes > 0:
- result += f"{int(minutes)}m "
- result += f"{round(seconds)}s"
- return result
-
-
-def move_path(src: Path, dst: Path):
- LOGGER.info(f"Moving `{src}` to `{dst}`")
- shutil.move(src, dst)
-
-
-def delete_file(path: Path):
- LOGGER.info(f"Deleting file `{path}`")
- os.unlink(path)
-
-
-def delete_directory(path: Path):
- LOGGER.info(f"Deleting directory `{path}`")
- shutil.rmtree(path)
-
-
-def unpack_archive(archive: Path, target_dir: Optional[Path] = None):
- LOGGER.info(f"Unpacking archive `{archive}`")
- shutil.unpack_archive(str(archive), extract_dir=str(target_dir) if target_dir is not None else None)
-
-
-def download_file(src: str, target: Path):
- LOGGER.info(f"Downloading `{src}` into `{target}`")
- urllib.request.urlretrieve(src, str(target))
-
-
-def retry_action(action, name: str, max_fails: int = 5):
- LOGGER.info(f"Attempting to perform action `{name}` with retry")
- for iteration in range(max_fails):
- LOGGER.info(f"Attempt {iteration + 1}/{max_fails}")
- try:
- action()
- return
- except BaseException: # also catch ctrl+c/sysexit
- LOGGER.error(f"Action `{name}` has failed\n{traceback.format_exc()}")
-
- raise Exception(f"Action `{name}` has failed after {max_fails} attempts")
-
-
-def cmd(
- args: List[Union[str, Path]],
- env: Optional[Dict[str, str]] = None,
- output_path: Optional[Path] = None
-):
- args = [str(arg) for arg in args]
-
- environment = os.environ.copy()
-
- cmd_str = ""
- if env is not None:
- environment.update(env)
- cmd_str += " ".join(f"{k}={v}" for (k, v) in (env or {}).items())
- cmd_str += " "
- cmd_str += " ".join(args)
- if output_path is not None:
- cmd_str += f" > {output_path}"
- LOGGER.info(f"Executing `{cmd_str}`")
-
- if output_path is not None:
- with open(output_path, "w") as f:
- return subprocess.run(
- args,
- env=environment,
- check=True,
- stdout=f
- )
- return subprocess.run(args, env=environment, check=True)
-
-
-class BenchmarkRunner:
- def run_rustc(self, pipeline: Pipeline):
- raise NotImplementedError
-
- def run_llvm(self, pipeline: Pipeline):
- raise NotImplementedError
-
- def run_bolt(self, pipeline: Pipeline):
- raise NotImplementedError
-
-
-class DefaultBenchmarkRunner(BenchmarkRunner):
- def run_rustc(self, pipeline: Pipeline):
- # Here we're profiling the `rustc` frontend, so we also include `Check`.
- # The benchmark set includes various stress tests that put the frontend under pressure.
- run_compiler_benchmarks(
- pipeline,
- profiles=["Check", "Debug", "Opt"],
- scenarios=["All"],
- crates=RUSTC_PGO_CRATES,
- env=dict(
- LLVM_PROFILE_FILE=str(pipeline.rustc_profile_template_path())
- )
- )
-
- def run_llvm(self, pipeline: Pipeline):
- run_compiler_benchmarks(
- pipeline,
- profiles=["Debug", "Opt"],
- scenarios=["Full"],
- crates=LLVM_PGO_CRATES
- )
-
- def run_bolt(self, pipeline: Pipeline):
- run_compiler_benchmarks(
- pipeline,
- profiles=["Check", "Debug", "Opt"],
- scenarios=["Full"],
- crates=LLVM_BOLT_CRATES
- )
-
-
-def run_compiler_benchmarks(
- pipeline: Pipeline,
- profiles: List[str],
- scenarios: List[str],
- crates: List[str],
- env: Optional[Dict[str, str]] = None
-):
- env = env if env is not None else {}
-
- # Compile libcore, both in opt-level=0 and opt-level=3
- with change_cwd(pipeline.build_root()):
- cmd([
- pipeline.rustc_stage_2(),
- "--edition", "2021",
- "--crate-type", "lib",
- str(pipeline.checkout_path() / "library/core/src/lib.rs"),
- "--out-dir", pipeline.opt_artifacts()
- ], env=dict(RUSTC_BOOTSTRAP="1", **env))
-
- cmd([
- pipeline.rustc_stage_2(),
- "--edition", "2021",
- "--crate-type", "lib",
- "-Copt-level=3",
- str(pipeline.checkout_path() / "library/core/src/lib.rs"),
- "--out-dir", pipeline.opt_artifacts()
- ], env=dict(RUSTC_BOOTSTRAP="1", **env))
-
- # Run rustc-perf benchmarks
- # Benchmark using profile_local with eprintln, which essentially just means
- # don't actually benchmark -- just make sure we run rustc a bunch of times.
- with change_cwd(pipeline.rustc_perf_dir()):
- cmd([
- pipeline.cargo_stage_0(),
- "run",
- "-p", "collector", "--bin", "collector", "--",
- "profile_local", "eprintln",
- pipeline.rustc_stage_2(),
- "--id", "Test",
- "--cargo", pipeline.cargo_stage_0(),
- "--profiles", ",".join(profiles),
- "--scenarios", ",".join(scenarios),
- "--include", ",".join(crates)
- ], env=dict(
- RUST_LOG="collector=debug",
- RUSTC=str(pipeline.rustc_stage_0()),
- RUSTC_BOOTSTRAP="1",
- **env
- ))
-
-
-# https://stackoverflow.com/a/31631711/1107768
-def format_bytes(size: int) -> str:
- """Return the given bytes as a human friendly KiB, MiB or GiB string."""
- KB = 1024
- MB = KB ** 2 # 1,048,576
- GB = KB ** 3 # 1,073,741,824
- TB = KB ** 4 # 1,099,511,627,776
-
- if size < KB:
- return f"{size} B"
- elif KB <= size < MB:
- return f"{size / KB:.2f} KiB"
- elif MB <= size < GB:
- return f"{size / MB:.2f} MiB"
- elif GB <= size < TB:
- return f"{size / GB:.2f} GiB"
- else:
- return str(size)
-
-
-# https://stackoverflow.com/a/63307131/1107768
-def count_files(path: Path) -> int:
- return sum(1 for p in path.rglob("*") if p.is_file())
-
-
-def count_files_with_prefix(path: Path) -> int:
- return sum(1 for p in glob.glob(f"{path}*") if Path(p).is_file())
-
-
-# https://stackoverflow.com/a/55659577/1107768
-def get_path_size(path: Path) -> int:
- if path.is_dir():
- return sum(p.stat().st_size for p in path.rglob("*"))
- return path.stat().st_size
-
-
-def get_path_prefix_size(path: Path) -> int:
- """
- Get size of all files beginning with the prefix `path`.
- Alternative to shell `du -sh <path>*`.
- """
- return sum(Path(p).stat().st_size for p in glob.glob(f"{path}*"))
-
-
-def get_files(directory: Path, filter: Optional[Callable[[Path], bool]] = None) -> Iterable[Path]:
- for file in os.listdir(directory):
- path = directory / file
- if filter is None or filter(path):
- yield path
-
-
-def bootstrap_build(
- pipeline: Pipeline,
- args: List[str],
- env: Optional[Dict[str, str]] = None,
- targets: Iterable[str] = ("library/std", )
-):
- if env is None:
- env = {}
- else:
- env = dict(env)
- env["RUST_BACKTRACE"] = "1"
- arguments = [
- sys.executable,
- pipeline.checkout_path() / "x.py",
- "build",
- "--target", PGO_HOST,
- "--host", PGO_HOST,
- "--stage", "2",
- ] + list(targets) + args
- cmd(arguments, env=env)
-
-
-def create_pipeline() -> Pipeline:
- if sys.platform == "linux":
- return LinuxPipeline()
- elif sys.platform in ("cygwin", "win32"):
- return WindowsPipeline()
- else:
- raise Exception(f"Optimized build is not supported for platform {sys.platform}")
-
-
-def gather_llvm_profiles(pipeline: Pipeline, runner: BenchmarkRunner):
- LOGGER.info("Running benchmarks with PGO instrumented LLVM")
-
- runner.run_llvm(pipeline)
-
- profile_path = pipeline.llvm_profile_merged_file()
- LOGGER.info(f"Merging LLVM PGO profiles to {profile_path}")
- cmd([
- pipeline.downloaded_llvm_dir() / "bin" / "llvm-profdata",
- "merge",
- "-o", profile_path,
- pipeline.llvm_profile_dir_root()
- ])
-
- LOGGER.info("LLVM PGO statistics")
- LOGGER.info(f"{profile_path}: {format_bytes(get_path_size(profile_path))}")
- LOGGER.info(
- f"{pipeline.llvm_profile_dir_root()}: {format_bytes(get_path_size(pipeline.llvm_profile_dir_root()))}")
- LOGGER.info(f"Profile file count: {count_files(pipeline.llvm_profile_dir_root())}")
-
- # We don't need the individual .profraw files now that they have been merged
- # into a final .profdata
- delete_directory(pipeline.llvm_profile_dir_root())
-
-
-def gather_rustc_profiles(pipeline: Pipeline, runner: BenchmarkRunner):
- LOGGER.info("Running benchmarks with PGO instrumented rustc")
-
- runner.run_rustc(pipeline)
-
- profile_path = pipeline.rustc_profile_merged_file()
- LOGGER.info(f"Merging Rustc PGO profiles to {profile_path}")
- cmd([
- pipeline.build_artifacts() / "llvm" / "bin" / "llvm-profdata",
- "merge",
- "-o", profile_path,
- pipeline.rustc_profile_dir_root()
- ])
-
- LOGGER.info("Rustc PGO statistics")
- LOGGER.info(f"{profile_path}: {format_bytes(get_path_size(profile_path))}")
- LOGGER.info(
- f"{pipeline.rustc_profile_dir_root()}: {format_bytes(get_path_size(pipeline.rustc_profile_dir_root()))}")
- LOGGER.info(f"Profile file count: {count_files(pipeline.rustc_profile_dir_root())}")
-
- # We don't need the individual .profraw files now that they have been merged
- # into a final .profdata
- delete_directory(pipeline.rustc_profile_dir_root())
-
-
-def gather_llvm_bolt_profiles(pipeline: Pipeline, runner: BenchmarkRunner):
- LOGGER.info("Running benchmarks with BOLT instrumented LLVM")
-
- runner.run_bolt(pipeline)
-
- merged_profile_path = pipeline.llvm_bolt_profile_merged_file()
- profile_files_path = Path("/tmp/prof.fdata")
- LOGGER.info(f"Merging LLVM BOLT profiles to {merged_profile_path}")
-
- profile_files = sorted(glob.glob(f"{profile_files_path}*"))
- cmd([
- "merge-fdata",
- *profile_files,
- ], output_path=merged_profile_path)
-
- LOGGER.info("LLVM BOLT statistics")
- LOGGER.info(f"{merged_profile_path}: {format_bytes(get_path_size(merged_profile_path))}")
- LOGGER.info(
- f"{profile_files_path}: {format_bytes(get_path_prefix_size(profile_files_path))}")
- LOGGER.info(f"Profile file count: {count_files_with_prefix(profile_files_path)}")
-
-
-def clear_llvm_files(pipeline: Pipeline):
- """
- Rustbuild currently doesn't support rebuilding LLVM when PGO options
- change (or any other llvm-related options); so just clear out the relevant
- directories ourselves.
- """
- LOGGER.info("Clearing LLVM build files")
- delete_directory(pipeline.build_artifacts() / "llvm")
- delete_directory(pipeline.build_artifacts() / "lld")
-
-
-def print_binary_sizes(pipeline: Pipeline):
- bin_dir = pipeline.build_artifacts() / "stage2" / "bin"
- binaries = get_files(bin_dir)
-
- lib_dir = pipeline.build_artifacts() / "stage2" / "lib"
- libraries = get_files(lib_dir, lambda p: p.suffix == ".so")
-
- paths = sorted(binaries) + sorted(libraries)
- with StringIO() as output:
- for path in paths:
- path_str = f"{path.name}:"
- print(f"{path_str:<50}{format_bytes(path.stat().st_size):>14}", file=output)
- LOGGER.info(f"Rustc binary size\n{output.getvalue()}")
-
-
-def print_free_disk_space(pipeline: Pipeline):
- usage = shutil.disk_usage(pipeline.opt_artifacts())
- total = usage.total
- used = usage.used
- free = usage.free
-
- logging.info(
- f"Free disk space: {format_bytes(free)} out of total {format_bytes(total)} ({(used / total) * 100:.2f}% used)")
-
-
-def log_metrics(step: BuildStep):
- substeps: List[Tuple[int, BuildStep]] = []
-
- def visit(step: BuildStep, level: int):
- substeps.append((level, step))
- for child in step.children:
- visit(child, level=level + 1)
-
- visit(step, 0)
-
- output = StringIO()
- for (level, step) in substeps:
- label = f"{'.' * level}{step.type}"
- print(f"{label:<65}{step.duration:>8.2f}s", file=output)
- logging.info(f"Build step durations\n{output.getvalue()}")
-
-
-def record_metrics(pipeline: Pipeline, timer: Timer):
- metrics = load_last_metrics(pipeline.metrics_path())
- if metrics is None:
- return
- llvm_steps = tuple(metrics.find_all_by_type("bootstrap::llvm::Llvm"))
- llvm_duration = sum(step.duration for step in llvm_steps)
-
- rustc_steps = tuple(metrics.find_all_by_type("bootstrap::compile::Rustc"))
- rustc_duration = sum(step.duration for step in rustc_steps)
-
- # The LLVM step is part of the Rustc step
- rustc_duration = max(0, rustc_duration - llvm_duration)
-
- if llvm_duration > 0:
- timer.add_duration("LLVM", llvm_duration)
- if rustc_duration > 0:
- timer.add_duration("Rustc", rustc_duration)
-
- log_metrics(metrics)
-
-
-def run_tests(pipeline: Pipeline):
- """
- After `dist` is executed, we extract its archived components into a sysroot directory,
- and then use that extracted rustc as a stage0 compiler.
- Then we run a subset of tests using that compiler, to have a basic smoke test which checks
- whether the optimization pipeline hasn't broken something.
- """
- build_dir = pipeline.build_root() / "build"
- dist_dir = build_dir / "dist"
-
- def extract_dist_dir(name: str) -> Path:
- target_dir = build_dir / "optimized-dist"
- target_dir.mkdir(parents=True, exist_ok=True)
- unpack_archive(dist_dir / f"{name}.tar.xz", target_dir=target_dir)
- extracted_path = target_dir / name
- assert extracted_path.is_dir()
- return extracted_path
-
- # Extract rustc, libstd, cargo and src archives to create the optimized sysroot
- rustc_dir = extract_dist_dir(f"rustc-{CHANNEL}-{PGO_HOST}") / "rustc"
- libstd_dir = extract_dist_dir(f"rust-std-{CHANNEL}-{PGO_HOST}") / f"rust-std-{PGO_HOST}"
- cargo_dir = extract_dist_dir(f"cargo-{CHANNEL}-{PGO_HOST}") / "cargo"
- extracted_src_dir = extract_dist_dir(f"rust-src-{CHANNEL}") / "rust-src"
-
- # We need to manually copy libstd to the extracted rustc sysroot
- shutil.copytree(
- libstd_dir / "lib" / "rustlib" / PGO_HOST / "lib",
- rustc_dir / "lib" / "rustlib" / PGO_HOST / "lib"
- )
-
- # Extract sources - they aren't in the `rustc-{CHANNEL}-{host}` tarball, so we need to manually copy libstd
- # sources to the extracted sysroot. We need sources available so that `-Zsimulate-remapped-rust-src-base`
- # works correctly.
- shutil.copytree(
- extracted_src_dir / "lib" / "rustlib" / "src",
- rustc_dir / "lib" / "rustlib" / "src"
- )
-
- rustc_path = rustc_dir / "bin" / f"rustc{pipeline.executable_extension()}"
- assert rustc_path.is_file()
- cargo_path = cargo_dir / "bin" / f"cargo{pipeline.executable_extension()}"
- assert cargo_path.is_file()
-
- # Specify path to a LLVM config so that LLVM is not rebuilt.
- # It doesn't really matter which LLVM config we choose, because no sysroot will be compiled.
- llvm_config = pipeline.build_artifacts() / "llvm" / "bin" / f"llvm-config{pipeline.executable_extension()}"
- assert llvm_config.is_file()
-
- config_content = f"""profile = "user"
-changelog-seen = 2
-
-[build]
-rustc = "{rustc_path.as_posix()}"
-cargo = "{cargo_path.as_posix()}"
-
-[target.{PGO_HOST}]
-llvm-config = "{llvm_config.as_posix()}"
-"""
- logging.info(f"Using following `config.toml` for running tests:\n{config_content}")
-
- # Simulate a stage 0 compiler with the extracted optimized dist artifacts.
- with open("config.toml", "w") as f:
- f.write(config_content)
-
- args = [
- sys.executable,
- pipeline.checkout_path() / "x.py",
- "test",
- "--stage", "0",
- "tests/assembly",
- "tests/codegen",
- "tests/codegen-units",
- "tests/incremental",
- "tests/mir-opt",
- "tests/pretty",
- "tests/run-pass-valgrind",
- "tests/ui",
- ]
- for test_path in pipeline.skipped_tests():
- args.extend(["--exclude", test_path])
- cmd(args=args, env=dict(
- COMPILETEST_FORCE_STAGE0="1"
- ))
-
-
-def execute_build_pipeline(timer: Timer, pipeline: Pipeline, runner: BenchmarkRunner, dist_build_args: List[str]):
- # Clear and prepare tmp directory
- shutil.rmtree(pipeline.opt_artifacts(), ignore_errors=True)
- os.makedirs(pipeline.opt_artifacts(), exist_ok=True)
-
- pipeline.build_rustc_perf()
-
- """
- Stage 1: Build PGO instrumented rustc
-
- We use a normal build of LLVM, because gathering PGO profiles for LLVM and `rustc` at the same time
- can cause issues.
- """
- with timer.section("Stage 1 (rustc PGO)") as stage1:
- with stage1.section("Build PGO instrumented rustc and LLVM") as rustc_pgo_instrument:
- bootstrap_build(pipeline, args=[
- "--rust-profile-generate",
- pipeline.rustc_profile_dir_root()
- ])
- record_metrics(pipeline, rustc_pgo_instrument)
-
- with stage1.section("Gather profiles"):
- gather_rustc_profiles(pipeline, runner)
- print_free_disk_space(pipeline)
-
- with stage1.section("Build PGO optimized rustc") as rustc_pgo_use:
- bootstrap_build(pipeline, args=[
- "--rust-profile-use",
- pipeline.rustc_profile_merged_file()
- ])
- record_metrics(pipeline, rustc_pgo_use)
- dist_build_args += [
- "--rust-profile-use",
- pipeline.rustc_profile_merged_file()
- ]
-
- """
- Stage 2: Gather LLVM PGO profiles
- """
- with timer.section("Stage 2 (LLVM PGO)") as stage2:
- # Clear normal LLVM artifacts
- clear_llvm_files(pipeline)
-
- with stage2.section("Build PGO instrumented LLVM") as llvm_pgo_instrument:
- bootstrap_build(pipeline, args=[
- "--llvm-profile-generate",
- # We want to keep the already built PGO-optimized `rustc`.
- "--keep-stage", "0",
- "--keep-stage", "1"
- ], env=dict(
- LLVM_PROFILE_DIR=str(pipeline.llvm_profile_dir_root() / "prof-%p")
- ))
- record_metrics(pipeline, llvm_pgo_instrument)
-
- with stage2.section("Gather profiles"):
- gather_llvm_profiles(pipeline, runner)
-
- dist_build_args += [
- "--llvm-profile-use",
- pipeline.llvm_profile_merged_file(),
- ]
- print_free_disk_space(pipeline)
-
- # Clear PGO-instrumented LLVM artifacts
- clear_llvm_files(pipeline)
-
- """
- Stage 3: Build BOLT instrumented LLVM
-
- We build a PGO optimized LLVM in this step, then instrument it with BOLT and gather BOLT profiles.
- Note that we don't remove LLVM artifacts after this step, so that they are reused in the final dist build.
- BOLT instrumentation is performed "on-the-fly" when the LLVM library is copied to the sysroot of rustc,
- therefore the LLVM artifacts on disk are not "tainted" with BOLT instrumentation and they can be reused.
- """
- if pipeline.supports_bolt():
- with timer.section("Stage 3 (LLVM BOLT)") as stage3:
- with stage3.section("Build BOLT instrumented LLVM") as llvm_bolt_instrument:
- bootstrap_build(pipeline, args=[
- "--llvm-profile-use",
- pipeline.llvm_profile_merged_file(),
- "--llvm-bolt-profile-generate",
- # We want to keep the already built PGO-optimized `rustc`.
- "--keep-stage", "0",
- "--keep-stage", "1"
- ])
- record_metrics(pipeline, llvm_bolt_instrument)
-
- with stage3.section("Gather profiles"):
- gather_llvm_bolt_profiles(pipeline, runner)
-
- dist_build_args += [
- "--llvm-bolt-profile-use",
- pipeline.llvm_bolt_profile_merged_file()
- ]
- print_free_disk_space(pipeline)
-
- # We want to keep the already built PGO-optimized `rustc`.
- dist_build_args += [
- "--keep-stage", "0",
- "--keep-stage", "1"
- ]
-
- """
- Final stage: Build PGO optimized rustc + PGO/BOLT optimized LLVM
- """
- with timer.section("Final stage (dist build)") as final_stage:
- cmd(dist_build_args)
- record_metrics(pipeline, final_stage)
-
- # Try builds can be in various broken states, so we don't want to gatekeep them with tests
- # Do not run tests, as they are broken for beta/stable versions in this script
- # if not is_try_build():
- # with timer.section("Run tests"):
- # run_tests(pipeline)
-
-
-def run(runner: BenchmarkRunner):
- logging.basicConfig(
- level=logging.DEBUG,
- format="%(name)s %(levelname)-4s: %(message)s",
- )
-
- LOGGER.info(f"Running multi-stage build using Python {sys.version}")
- LOGGER.info(f"Environment values\n{pprint.pformat(dict(os.environ), indent=2)}")
-
- build_args = sys.argv[1:]
-
- # Skip components that are not needed for try builds to speed them up
- if is_try_build():
- LOGGER.info("Skipping building of unimportant components for a try build")
- for target in ("rust-docs", "rustc-docs", "rust-docs-json", "rust-analyzer",
- "rustc-src", "clippy", "miri", "rustfmt"):
- build_args.extend(["--exclude", target])
-
- timer = Timer()
- pipeline = create_pipeline()
-
- try:
- execute_build_pipeline(timer, pipeline, runner, build_args)
- except BaseException as e:
- LOGGER.error("The multi-stage build has failed")
- raise e
- finally:
- timer.print_stats()
- print_free_disk_space(pipeline)
-
- print_binary_sizes(pipeline)
-
-
-if __name__ == "__main__":
- runner = DefaultBenchmarkRunner()
- run(runner)