diff -Nru orig/paropt/src/Makevars.win patched/paropt/src/Makevars.win
--- orig/paropt/src/Makevars.win	2023-05-22 13:58:35.000000000 +0200
+++ patched/paropt/src/Makevars.win	2024-02-13 11:04:01.953774600 +0100
@@ -2,7 +2,14 @@
 
 PKG_CPPFLAGS= -I../inst -I../inst/include -I./sundials
 PKG_CXXFLAGS= $(SHLIB_OPENMP_CXXFLAGS) -I../inst -I../inst/include
-PKG_LIBS=  $(SHLIB_OPENMP_CXXFLAGS) $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)  -L../inst -lsundials -lpthread -latomic
+PKG_LIBS=  $(SHLIB_OPENMP_CXXFLAGS) $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)  -L../inst -lsundials -lpthread
+
+ARCH=$(shell "${R_HOME}/bin/R" --no-echo -e 'cat(R.version$$arch)')
+ifneq "$(ARCH)" "aarch64"
+  # The experimental LLVM/aarch64 toolchain doesn't have standalone libatomic
+  PKG_LIBS += -latomic
+endif
+
 LIBS=-L./ -L../inst
 
 .PHONY: all ../inst/libsundials.a
