diff --git a/hw-tests/bmatest/meson.build b/hw-tests/bmatest/meson.build
index ad46a417bb0fbaaffb9ce8ca6aee8af4e26bbc9e..6cf3d401a4c986e1ddc6323bff824b89906ba8fa 100644
--- a/hw-tests/bmatest/meson.build
+++ b/hw-tests/bmatest/meson.build
@@ -4,6 +4,7 @@ executable(
   name + '.elf',
   'main.c',
   dependencies: [libcard10, max32665_startup],
+  link_whole: max32665_startup_lib,
   link_args: [
     '-Wl,-Map=' + meson.current_build_dir() + '/' + name + '.map',
   ],
diff --git a/hw-tests/bmetest/meson.build b/hw-tests/bmetest/meson.build
index 31ad358500a0850d164042d3842d7b3d20d722ff..212ad7463f83620dfe14bbd5078678712a160f34 100644
--- a/hw-tests/bmetest/meson.build
+++ b/hw-tests/bmetest/meson.build
@@ -4,6 +4,7 @@ executable(
   name + '.elf',
   'main.c',
   dependencies: [libcard10, max32665_startup],
+  link_whole: max32665_startup_lib,
   link_args: [
     '-Wl,-Map=' + meson.current_build_dir() + '/' + name + '.map',
   ],
diff --git a/hw-tests/dual-core/meson.build b/hw-tests/dual-core/meson.build
index 2689d8f4eb0ea6130d98e479f68b220577042ca6..2fbc9644a0c318ef766ed2cc3b24db187bc6fccf 100644
--- a/hw-tests/dual-core/meson.build
+++ b/hw-tests/dual-core/meson.build
@@ -3,6 +3,7 @@ executable(
   name + '.elf',
   'main.c',
   dependencies: [libcard10, max32665_startup_core0],
+  link_whole: max32665_startup_core0_lib,
   link_args: [
     '-Wl,-Map=' + meson.current_build_dir() + '/' + name + '.map',
   ],
@@ -13,6 +14,7 @@ executable(
   name + '.elf',
   'core1.c',
   dependencies: [periphdriver, board_card10, max32665_startup_core1],
+  link_whole: max32665_startup_core1_lib,
   link_args: [
     '-Wl,-Map=' + meson.current_build_dir() + '/' + name + '.map',
   ],
diff --git a/hw-tests/ecgtest/meson.build b/hw-tests/ecgtest/meson.build
index e7cff9b5a7346047ed6366db2137e52beae15470..b370a69690c2f41062251b51db606cec99b37e88 100644
--- a/hw-tests/ecgtest/meson.build
+++ b/hw-tests/ecgtest/meson.build
@@ -4,6 +4,7 @@ executable(
   name + '.elf',
   'main.c',
   dependencies: [libcard10, max32665_startup],
+  link_whole: max32665_startup_lib,
   link_args: [
     '-Wl,-Map=' + meson.current_build_dir() + '/' + name + '.map',
   ],
diff --git a/hw-tests/hello-freertos/meson.build b/hw-tests/hello-freertos/meson.build
index 4f6446c9c91131ce6791da9cb692cb73827e5b10..c0d54ceac66152c3521938379756d5c163ebab20 100644
--- a/hw-tests/hello-freertos/meson.build
+++ b/hw-tests/hello-freertos/meson.build
@@ -22,6 +22,7 @@ executable(
   include_directories: freertos_sdk_includes,
   dependencies: [libcard10, max32665_startup],
   link_with: freertos,
+  link_whole: max32665_startup_lib,
   link_args: [
     '-Wl,-Map=' + meson.current_build_dir() + '/' + name + '.map',
   ],
diff --git a/hw-tests/hello-world/meson.build b/hw-tests/hello-world/meson.build
index f559d14938032d2a52c177512a9f7928853efde4..258d1cfbf8c5666ee7b12ad9d986e9f88a7a3ffe 100644
--- a/hw-tests/hello-world/meson.build
+++ b/hw-tests/hello-world/meson.build
@@ -4,6 +4,7 @@ executable(
   name + '.elf',
   'main.c',
   dependencies: [libcard10, max32665_startup],
+  link_whole: max32665_startup_lib,
   link_args: [
     '-Wl,-Map=' + meson.current_build_dir() + '/' + name + '.map',
   ],
diff --git a/hw-tests/imutest/meson.build b/hw-tests/imutest/meson.build
index a25bc7292d2dfae47eb96da998dc0e66749edf94..28d896975179add7ac970a80b792763a1ef3d0cd 100644
--- a/hw-tests/imutest/meson.build
+++ b/hw-tests/imutest/meson.build
@@ -4,6 +4,7 @@ executable(
   name + '.elf',
   'main.c',
   dependencies: [libcard10, max32665_startup],
+  link_whole: max32665_startup_lib,
   link_args: [
     '-Wl,-Map=' + meson.current_build_dir() + '/' + name + '.map',
   ],
diff --git a/hw-tests/ips/meson.build b/hw-tests/ips/meson.build
index 5a777d59a2fb70df90e08d50327a68e1c1864abc..f38fedd3a07240c9557b9f2e7f98982294b4fe67 100644
--- a/hw-tests/ips/meson.build
+++ b/hw-tests/ips/meson.build
@@ -6,6 +6,7 @@ executable(
   'image/image.c',
   'image/image2.c',
   dependencies: [libcard10, max32665_startup],
+  link_whole: max32665_startup_lib,
   link_args: [
     '-Wl,-Map=' + meson.current_build_dir() + '/' + name + '.map',
   ],
diff --git a/lib/sdk/Libraries/CMSIS/Device/Maxim/MAX32665/meson.build b/lib/sdk/Libraries/CMSIS/Device/Maxim/MAX32665/meson.build
index fb1b4eacb9338734cb23e1ad69eac6389a15c94f..9f9b1f64f2e74448f68a8b009f9474ecd1d6ae41 100644
--- a/lib/sdk/Libraries/CMSIS/Device/Maxim/MAX32665/meson.build
+++ b/lib/sdk/Libraries/CMSIS/Device/Maxim/MAX32665/meson.build
@@ -8,14 +8,13 @@ sources = files(
   './Source/heap.c',
 )
 
-lib = static_library(
+max32665_startup_lib = static_library(
   'max32665-startup',
   sources,
   dependencies: periphdriver,
 )
 
 max32665_startup = declare_dependency(
-  link_whole: lib,
   link_args: [
     '-T', meson.current_source_dir() + 'Source/GCC/max32665.ld',
     '--entry', 'Reset_Handler',
@@ -32,14 +31,13 @@ sources = files(
   './Source/heap.c',
 )
 
-lib = static_library(
+max32665_startup_core0_lib = static_library(
   'max32665-startup-core0',
   sources,
   dependencies: periphdriver,
 )
 
 max32665_startup_core0 = declare_dependency(
-  link_whole: lib,
   link_args: [
     '-T', meson.current_source_dir() + 'Source/GCC/max32665_core0.ld',
     '--entry', 'Reset_Handler',
@@ -56,14 +54,13 @@ sources = files(
   './Source/heap.c',
 )
 
-lib = static_library(
+max32665_startup_core1_lib = static_library(
   'max32665-startup-core1',
   sources,
   dependencies: periphdriver,
 )
 
 max32665_startup_core1 = declare_dependency(
-  link_whole: lib,
   link_args: [
     '-T', meson.current_source_dir() + 'Source/GCC/max32665_core1.ld',
     '--entry', 'Reset_Handler',