pico_lwip_arch is actually what depends on pico_rand
diff --git a/src/rp2_common/pico_lwip/CMakeLists.txt b/src/rp2_common/pico_lwip/CMakeLists.txt
index 016ff78..79ebb29 100644
--- a/src/rp2_common/pico_lwip/CMakeLists.txt
+++ b/src/rp2_common/pico_lwip/CMakeLists.txt
@@ -149,6 +149,7 @@
             ${PICO_LWIP_PATH}/src/netif/ppp/polarssl/sha1.c
             )
 
+    pico_add_library(pico_lwip_apps)
     # SNMPv3 agent
     pico_add_library(pico_lwip_snmp NOFLAG)
     target_sources(pico_lwip_snmp INTERFACE
@@ -264,6 +265,8 @@
     pico_add_library(pico_lwip_arch NOFLAG)
     target_include_directories(pico_lwip_arch_headers INTERFACE
             ${CMAKE_CURRENT_LIST_DIR}/include)
+    pico_mirrored_target_link_libraries(pico_lwip_arch INTERFACE
+            pico_rand)
 
     # our nosys impl
     pico_add_library(pico_lwip_nosys NOFLAG)
@@ -273,8 +276,7 @@
     pico_mirrored_target_link_libraries(pico_lwip_nosys INTERFACE
             pico_async_context_base
             pico_lwip_arch
-            pico_lwip
-            pico_rand)
+            pico_lwip)
 
     if (NOT PICO_LWIP_CONTRIB_PATH)
         set(PICO_LWIP_CONTRIB_PATH ${PICO_LWIP_PATH}/contrib)
@@ -299,8 +301,7 @@
     pico_mirrored_target_link_libraries(pico_lwip_freertos INTERFACE
             pico_async_context_base
             pico_lwip
-            pico_lwip_contrib_freertos
-            pico_rand)
+            pico_lwip_contrib_freertos)
 
     pico_promote_common_scope_vars()
 endif()