diff --git a/src/bsps/stm32f205rc_ciuti/config/board_options.cmake b/src/bsps/stm32f205rc_ciuti/config/board_options.cmake
index da5de1bfb3f8401adfdba1d272c680be52e94dc4..37d87d18de699a4fe2648b47aaccd51ba95b3f98 100644
--- a/src/bsps/stm32f205rc_ciuti/config/board_options.cmake
+++ b/src/bsps/stm32f205rc_ciuti/config/board_options.cmake
@@ -73,6 +73,7 @@ set(CLOCK_FREQ -DHSE_VALUE=25000000 -DSYSCLK_FREQ_120MHz=120000000)
 
 # Basic flags
 set(FLAGS_BASE -mcpu=cortex-m3 -mthumb)
+set(LINK_PATH_ARCH thumb/cm3)
 
 # Flags for ASM and linker
 set(AFLAGS_BASE ${FLAGS_BASE})
diff --git a/src/bsps/stm32f429zi_con_rig/config/board_options.cmake b/src/bsps/stm32f429zi_con_rig/config/board_options.cmake
index bac4a00970467a5eb4a41ad5b160f8204a92d5b4..4edd0fefc1462318331b4f05dd55ad62d8a0660e 100644
--- a/src/bsps/stm32f429zi_con_rig/config/board_options.cmake
+++ b/src/bsps/stm32f429zi_con_rig/config/board_options.cmake
@@ -90,6 +90,7 @@ set(CLOCK_FREQ -DHSE_VALUE=8000000 -DSYSCLK_FREQ_168MHz=168000000)
 
 # Basic flags
 set(FLAGS_BASE -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16)
+set(LINK_PATH_ARCH thumb/cm4/hardfp/fpv4sp)
 
 # Flags for ASM and linker
 set(AFLAGS_BASE ${FLAGS_BASE})
diff --git a/src/bsps/stm32f429zi_death_stack_v1/config/board_options.cmake b/src/bsps/stm32f429zi_death_stack_v1/config/board_options.cmake
index 65b3e33ec30cbb15828b48ac27a8f7a34ccca579..0be2508870de35bc9b2c4ee71cd3337f2571f936 100644
--- a/src/bsps/stm32f429zi_death_stack_v1/config/board_options.cmake
+++ b/src/bsps/stm32f429zi_death_stack_v1/config/board_options.cmake
@@ -91,6 +91,7 @@ set(CLOCK_FREQ -DHSE_VALUE=8000000 -DSYSCLK_FREQ_168MHz=168000000 -DUSE_INTERNAL
 
 # Basic flags
 set(FLAGS_BASE -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16)
+set(LINK_PATH_ARCH thumb/cm4/hardfp/fpv4sp)
 
 # Flags for ASM and linker
 set(AFLAGS_BASE ${FLAGS_BASE})
diff --git a/src/bsps/stm32f429zi_death_stack_v2/config/board_options.cmake b/src/bsps/stm32f429zi_death_stack_v2/config/board_options.cmake
index 2c4255505dda334e0dece4179c0212506be11bda..3b664806da3fd644c79e02631834156cfab24ade 100644
--- a/src/bsps/stm32f429zi_death_stack_v2/config/board_options.cmake
+++ b/src/bsps/stm32f429zi_death_stack_v2/config/board_options.cmake
@@ -92,6 +92,7 @@ set(CLOCK_FREQ -DHSE_VALUE=25000000 -DSYSCLK_FREQ_168MHz=168000000)
 
 # Basic flags
 set(FLAGS_BASE -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16)
+set(LINK_PATH_ARCH thumb/cm4/hardfp/fpv4sp)
 
 # Flags for ASM and linker
 set(AFLAGS_BASE ${FLAGS_BASE})
diff --git a/src/bsps/stm32f429zi_death_stack_v3/config/board_options.cmake b/src/bsps/stm32f429zi_death_stack_v3/config/board_options.cmake
index 0ead6ccb4814d30f47592a20f942bc051292158e..237efef23f85f12bf38f6f382a470a4d268925c3 100644
--- a/src/bsps/stm32f429zi_death_stack_v3/config/board_options.cmake
+++ b/src/bsps/stm32f429zi_death_stack_v3/config/board_options.cmake
@@ -92,6 +92,7 @@ set(CLOCK_FREQ -DHSE_VALUE=8000000 -DSYSCLK_FREQ_168MHz=168000000)
 
 # Basic flags
 set(FLAGS_BASE -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16)
+set(LINK_PATH_ARCH thumb/cm4/hardfp/fpv4sp)
 
 # Flags for ASM and linker
 set(AFLAGS_BASE ${FLAGS_BASE})
diff --git a/src/bsps/stm32f429zi_nokia/config/board_options.cmake b/src/bsps/stm32f429zi_nokia/config/board_options.cmake
index 613f9044e44b1d645d316e7c9f5ce3cd25215d37..4579c4c6652f3ed057c971e93d21ad2e5abd39c6 100644
--- a/src/bsps/stm32f429zi_nokia/config/board_options.cmake
+++ b/src/bsps/stm32f429zi_nokia/config/board_options.cmake
@@ -96,6 +96,7 @@ set(CLOCK_FREQ -DHSE_VALUE=8000000 -DSYSCLK_FREQ_168MHz=168000000)
 
 # Basic flags
 set(FLAGS_BASE -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16)
+set(LINK_PATH_ARCH thumb/cm4/hardfp/fpv4sp)
 
 # Flags for ASM and linker
 set(AFLAGS_BASE ${FLAGS_BASE})
diff --git a/src/bsps/stm32f429zi_parafoil/config/board_options.cmake b/src/bsps/stm32f429zi_parafoil/config/board_options.cmake
index b04a08c71b7ccb5080b98d37a23c3563facdb835..9e82e8608651dbcdfab579648b979da52546c602 100644
--- a/src/bsps/stm32f429zi_parafoil/config/board_options.cmake
+++ b/src/bsps/stm32f429zi_parafoil/config/board_options.cmake
@@ -92,6 +92,7 @@ set(CLOCK_FREQ -DHSE_VALUE=8000000 -DSYSCLK_FREQ_168MHz=168000000)
 
 # Basic flags
 set(FLAGS_BASE -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16)
+set(LINK_PATH_ARCH thumb/cm4/hardfp/fpv4sp)
 
 # Flags for ASM and linker
 set(AFLAGS_BASE ${FLAGS_BASE})
diff --git a/src/bsps/stm32f429zi_pyxis_auxiliary/config/board_options.cmake b/src/bsps/stm32f429zi_pyxis_auxiliary/config/board_options.cmake
index 796101f857bb6ef9a5c6bf0bdf666ac17f69caae..74b3a4f63af371ae67ffa44be5d83ffb5e7195da 100644
--- a/src/bsps/stm32f429zi_pyxis_auxiliary/config/board_options.cmake
+++ b/src/bsps/stm32f429zi_pyxis_auxiliary/config/board_options.cmake
@@ -86,6 +86,7 @@ set(CLOCK_FREQ -DHSE_VALUE=8000000 -DSYSCLK_FREQ_168MHz=168000000)
 
 # Basic flags
 set(FLAGS_BASE -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16)
+set(LINK_PATH_ARCH thumb/cm4/hardfp/fpv4sp)
 
 # Flags for ASM and linker
 set(AFLAGS_BASE ${FLAGS_BASE})
diff --git a/src/bsps/stm32f429zi_rig/config/board_options.cmake b/src/bsps/stm32f429zi_rig/config/board_options.cmake
index 88e7cae5ecc3866af34c1a282d135e39ddf9ce2e..a921ac8b396c9410ba3b1ddd405e30211d78f9fd 100644
--- a/src/bsps/stm32f429zi_rig/config/board_options.cmake
+++ b/src/bsps/stm32f429zi_rig/config/board_options.cmake
@@ -93,6 +93,7 @@ set(CLOCK_FREQ -DHSE_VALUE=8000000 -DSYSCLK_FREQ_168MHz=168000000)
 
 # Basic flags
 set(FLAGS_BASE -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16)
+set(LINK_PATH_ARCH thumb/cm4/hardfp/fpv4sp)
 
 # Flags for ASM and linker
 set(AFLAGS_BASE ${FLAGS_BASE})
diff --git a/src/bsps/stm32f756zg_nucleo/config/board_options.cmake b/src/bsps/stm32f756zg_nucleo/config/board_options.cmake
index 1fa4eed3ac78b92dc9dd6d71b437df141a59d63e..d687fed898b4aa7a35092028426d1a70f2828d8c 100644
--- a/src/bsps/stm32f756zg_nucleo/config/board_options.cmake
+++ b/src/bsps/stm32f756zg_nucleo/config/board_options.cmake
@@ -73,6 +73,7 @@ set(CLOCK_FREQ -DHSE_VALUE=8000000 -DSYSCLK_FREQ_216MHz=216000000)
 
 # Basic flags
 set(FLAGS_BASE -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16)
+set(LINK_PATH_ARCH thumb/cm4/hardfp/fpv4sp)
 
 # Flags for ASM and linker
 set(AFLAGS_BASE ${FLAGS_BASE})
diff --git a/src/bsps/stm32f767zi_automated_antennas/config/board_options.cmake b/src/bsps/stm32f767zi_automated_antennas/config/board_options.cmake
index eca02a9201d4691cc98238e12e565cbeede6a997..7c53e292c1bd18ed01d3cdc0eab20a0a90022047 100644
--- a/src/bsps/stm32f767zi_automated_antennas/config/board_options.cmake
+++ b/src/bsps/stm32f767zi_automated_antennas/config/board_options.cmake
@@ -77,6 +77,7 @@ set(CLOCK_FREQ -DHSE_VALUE=25000000 -DSYSCLK_FREQ_216MHz=216000000)
 
 # Basic flags
 set(FLAGS_BASE -mcpu=cortex-m7 -mthumb -mfloat-abi=hard -mfpu=fpv5-d16)
+set(LINK_PATH_ARCH thumb/cm7/hardfp/fpv5)
 
 # Flags for ASM and linker
 set(AFLAGS_BASE ${FLAGS_BASE})
diff --git a/src/bsps/stm32f767zi_compute_unit/config/board_options.cmake b/src/bsps/stm32f767zi_compute_unit/config/board_options.cmake
index c8c8233196b555b13fc3e3669448448ea0d38a02..ce147ce11e93d6c2955b4102f43795b434bc5400 100644
--- a/src/bsps/stm32f767zi_compute_unit/config/board_options.cmake
+++ b/src/bsps/stm32f767zi_compute_unit/config/board_options.cmake
@@ -77,6 +77,7 @@ set(CLOCK_FREQ -DHSE_VALUE=25000000 -DSYSCLK_FREQ_216MHz=216000000)
 
 # Basic flags
 set(FLAGS_BASE -mcpu=cortex-m7 -mthumb -mfloat-abi=hard -mfpu=fpv5-d16)
+set(LINK_PATH_ARCH thumb/cm7/hardfp/fpv5)
 
 # Flags for ASM and linker
 set(AFLAGS_BASE ${FLAGS_BASE})
diff --git a/src/bsps/stm32f767zi_compute_unit_v2/config/board_options.cmake b/src/bsps/stm32f767zi_compute_unit_v2/config/board_options.cmake
index 0028955170363faa88ecb730fbeea85b6818f66f..f1795749d8d38b00767a4797bd348fa6b98708cc 100644
--- a/src/bsps/stm32f767zi_compute_unit_v2/config/board_options.cmake
+++ b/src/bsps/stm32f767zi_compute_unit_v2/config/board_options.cmake
@@ -74,6 +74,7 @@ set(CLOCK_FREQ -DHSE_VALUE=25000000 -DSYSCLK_FREQ_216MHz=216000000)
 
 # Basic flags
 set(FLAGS_BASE -mcpu=cortex-m7 -mthumb -mfloat-abi=hard -mfpu=fpv5-d16)
+set(LINK_PATH_ARCH thumb/cm7/hardfp/fpv5)
 
 # Flags for ASM and linker
 set(AFLAGS_BASE ${FLAGS_BASE})
diff --git a/src/bsps/stm32f767zi_compute_unit_v2/config/board_options_no_xram.cmake b/src/bsps/stm32f767zi_compute_unit_v2/config/board_options_no_xram.cmake
index ac3f3e5fc97409cf570f5a4e416c50d808c24d65..55442096325d63927e3233ceab1a66b46db9e1f1 100644
--- a/src/bsps/stm32f767zi_compute_unit_v2/config/board_options_no_xram.cmake
+++ b/src/bsps/stm32f767zi_compute_unit_v2/config/board_options_no_xram.cmake
@@ -74,6 +74,7 @@ set(CLOCK_FREQ -DHSE_VALUE=25000000 -DSYSCLK_FREQ_216MHz=216000000)
 
 # Basic flags
 set(FLAGS_BASE -mcpu=cortex-m7 -mthumb -mfloat-abi=hard -mfpu=fpv5-d16)
+set(LINK_PATH_ARCH thumb/cm7/hardfp/fpv5)
 
 # Flags for ASM and linker
 set(AFLAGS_BASE ${FLAGS_BASE})
diff --git a/src/bsps/stm32f767zi_death_stack_v4/config/board_options.cmake b/src/bsps/stm32f767zi_death_stack_v4/config/board_options.cmake
index 3ab46c024291a5d6d3d198bb7a48f942f948e5f6..8b6615caf99faf97817d79cd30dc89d2ef203737 100644
--- a/src/bsps/stm32f767zi_death_stack_v4/config/board_options.cmake
+++ b/src/bsps/stm32f767zi_death_stack_v4/config/board_options.cmake
@@ -77,6 +77,7 @@ set(CLOCK_FREQ -DHSE_VALUE=25000000 -DSYSCLK_FREQ_216MHz=216000000)
 
 # Basic flags
 set(FLAGS_BASE -mcpu=cortex-m7 -mthumb -mfloat-abi=hard -mfpu=fpv5-d16)
+set(LINK_PATH_ARCH thumb/cm7/hardfp/fpv5)
 
 # Flags for ASM and linker
 set(AFLAGS_BASE ${FLAGS_BASE})
diff --git a/src/bsps/stm32f767zi_gemini_gs/config/board_options.cmake b/src/bsps/stm32f767zi_gemini_gs/config/board_options.cmake
index 84585d7c3e87b12d59690eb5811a708095b78a88..f810f7340745dc9b7a286b3f6d0586a1ddb93acd 100644
--- a/src/bsps/stm32f767zi_gemini_gs/config/board_options.cmake
+++ b/src/bsps/stm32f767zi_gemini_gs/config/board_options.cmake
@@ -77,6 +77,7 @@ set(CLOCK_FREQ -DHSE_VALUE=25000000 -DSYSCLK_FREQ_216MHz=216000000)
 
 # Basic flags
 set(FLAGS_BASE -mcpu=cortex-m7 -mthumb -mfloat-abi=hard -mfpu=fpv5-d16)
+set(LINK_PATH_ARCH thumb/cm7/hardfp/fpv5)
 
 # Flags for ASM and linker
 set(AFLAGS_BASE ${FLAGS_BASE})
diff --git a/src/bsps/stm32f767zi_gemini_motor/config/board_options.cmake b/src/bsps/stm32f767zi_gemini_motor/config/board_options.cmake
index c13917a0b8b7a42d3e022f734d70b76aac667850..c9eb1bdc64f2a17d4a9d2742d51b7e1fb27960a5 100644
--- a/src/bsps/stm32f767zi_gemini_motor/config/board_options.cmake
+++ b/src/bsps/stm32f767zi_gemini_motor/config/board_options.cmake
@@ -77,6 +77,7 @@ set(CLOCK_FREQ -DHSE_VALUE=25000000 -DSYSCLK_FREQ_216MHz=216000000)
 
 # Basic flags
 set(FLAGS_BASE -mcpu=cortex-m7 -mthumb -mfloat-abi=hard -mfpu=fpv5-d16)
+set(LINK_PATH_ARCH thumb/cm7/hardfp/fpv5)
 
 # Flags for ASM and linker
 set(AFLAGS_BASE ${FLAGS_BASE})
diff --git a/src/bsps/stm32f767zi_rig_v2/config/board_options.cmake b/src/bsps/stm32f767zi_rig_v2/config/board_options.cmake
index e62c44e7cf899a1ec6e8dfdae12a77f739d5c083..b6a5471459938989dcf5a4266af50611493e6b60 100644
--- a/src/bsps/stm32f767zi_rig_v2/config/board_options.cmake
+++ b/src/bsps/stm32f767zi_rig_v2/config/board_options.cmake
@@ -74,6 +74,7 @@ set(CLOCK_FREQ -DHSE_VALUE=25000000 -DSYSCLK_FREQ_216MHz=216000000)
 
 # Basic flags
 set(FLAGS_BASE -mcpu=cortex-m7 -mthumb -mfloat-abi=hard -mfpu=fpv5-d16)
+set(LINK_PATH_ARCH thumb/cm7/hardfp/fpv5)
 
 # Flags for ASM and linker
 set(AFLAGS_BASE ${FLAGS_BASE})