diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3354697acc3..21cf9ae5ca5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -522,17 +522,6 @@ if(EXECUTORCH_BUILD_CORTEX_M)
 endif()
 
 if(EXECUTORCH_BUILD_DEVTOOLS)
-  if(NOT EXECUTORCH_BUILD_ARM_BAREMETAL)
-    set(EXECUTORCH_BUILD_EXTENSION_DATA_LOADER
-        ON
-        CACHE BOOL "EXECUTORCH_BUILD_EXTENSION_DATA_LOADER" FORCE
-    )
-  else()
-    set(EXECUTORCH_BUILD_EXTENSION_DATA_LOADER
-        OFF
-        CACHE BOOL "EXECUTORCH_BUILD_EXTENSION_DATA_LOADER" FORCE
-    )
-  endif()
   add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/devtools)
 endif()
 
diff --git a/tools/cmake/preset/default.cmake b/tools/cmake/preset/default.cmake
index e40d72c7082..af39ada8b49 100644
--- a/tools/cmake/preset/default.cmake
+++ b/tools/cmake/preset/default.cmake
@@ -342,6 +342,15 @@ check_required_options_on(
     EXECUTORCH_BUILD_EXTENSION_FLAT_TENSOR
 )
 
+check_conflicting_options_on(
+  IF_ON
+    EXECUTORCH_BUILD_ARM_BAREMETAL
+  CONFLICTS_WITH
+    EXECUTORCH_BUILD_EXTENSION_DATA_LOADER
+    EXECUTORCH_BUILD_PTHREADPOOL
+    EXECUTORCH_BUILD_CPUINFO
+)
+
 
 if(NOT EXISTS ${EXECUTORCH_PAL_DEFAULT_FILE_PATH})
   message(FATAL_ERROR "PAL default implementation (EXECUTORCH_PAL_DEFAULT=${EXECUTORCH_PAL_DEFAULT}) file not found: ${EXECUTORCH_PAL_DEFAULT_FILE_PATH}. Choices: posix, minimal, android")
@@ -360,12 +369,3 @@ elseif(_executorch_log_level_lower STREQUAL "fatal")
 else()
   message(FATAL_ERROR "Unknown EXECUTORCH_LOG_LEVEL '${EXECUTORCH_LOG_LEVEL}'. Choices: Debug, Info, Error, Fatal")
 endif()
-
-
-if(EXECUTORCH_BUILD_ARM_BAREMETAL)
-  if(EXECUTORCH_BUILD_PTHREADPOOL)
-    message(FATAL_ERROR "Cannot enable both EXECUTORCH_BUILD_PTHREADPOOL and EXECUTORCH_BUILD_ARM_BAREMETAL")
-  elseif(EXECUTORCH_BUILD_CPUINFO)
-    message(FATAL_ERROR "Cannot enable both EXECUTORCH_BUILD_CPUINFO and EXECUTORCH_BUILD_ARM_BAREMETAL")
-  endif()
-endif()