diff --git a/cpu/k60/vectors.c b/cpu/k60/vectors.c
index ce6c7227455502b9f406aab864d0ba5d77977630..a314be59575aeb379e989e8d82b3e533d9a927a5 100644
--- a/cpu/k60/vectors.c
+++ b/cpu/k60/vectors.c
@@ -157,8 +157,7 @@ WEAK_DEFAULT void isr_software(void);
 /**
  * @brief Interrupt vector definition
  */
-__attribute__((used, section(".vector_table")))
-const void *interrupt_vector[] = {
+ISR_VECTORS const void *interrupt_vector[] = {
     /* Stack pointer */
     (void *)(&_estack),             /* pointer to the top of the empty stack */
     /* Cortex-M4 handlers */
diff --git a/cpu/k64f/vectors.c b/cpu/k64f/vectors.c
index 0c8c8ab1431ade3bbf0af2ba3b9c6872e8418326..b45ecc722c0b963eaeb44f742eb810d46f3d10f7 100644
--- a/cpu/k64f/vectors.c
+++ b/cpu/k64f/vectors.c
@@ -132,8 +132,7 @@ WEAK_DEFAULT void isr_enet_receive(void);
 WEAK_DEFAULT void isr_enet_error(void);
 
 /* interrupt vector table */
-__attribute__((used, section(".vector_table")))
-const void *interrupt_vector[] = {
+ISR_VECTORS const void *interrupt_vector[] = {
     /* Stack pointer */
     (void *)(&_estack),             /* pointer to the top of the empty stack */
     /* Cortex-M4 handlers */
diff --git a/cpu/kinetis_common/ldscripts/kinetis.ld b/cpu/kinetis_common/ldscripts/kinetis.ld
index 084b1150332a43d67541bd0c7b8a1492ab938205..abbf62b7ae130f761434e458502f9730952f3d10 100644
--- a/cpu/kinetis_common/ldscripts/kinetis.ld
+++ b/cpu/kinetis_common/ldscripts/kinetis.ld
@@ -23,14 +23,14 @@
 SECTIONS
 {
     /* Interrupt vectors 0x00-0x3ff. */
-    .vector_table :
+    .vectors :
     {
         _isr_vectors = .;
-        KEEP(*(.vector_table))
+        KEEP(*(.vectors .vectors.*))
     } > vectors
-    ASSERT (SIZEOF(.vector_table) == 0x400, "Interrupt vector table of invalid size.")
-    ASSERT (ADDR(.vector_table) == 0x00000000, "Interrupt vector table at invalid location (linker-script error?)")
-    ASSERT (LOADADDR(.vector_table) == 0x00000000, "Interrupt vector table at invalid location (linker-script error?)")
+    ASSERT (SIZEOF(.vectors) == 0x400, "Interrupt vector table of invalid size.")
+    ASSERT (ADDR(.vectors) == 0x00000000, "Interrupt vector table at invalid location (linker-script error?)")
+    ASSERT (LOADADDR(.vectors) == 0x00000000, "Interrupt vector table at invalid location (linker-script error?)")
 
     /* Flash configuration field, very important in order to not accidentally lock the device */
     /* Flash configuration field 0x400-0x40f. */
diff --git a/cpu/kw2x/vectors.c b/cpu/kw2x/vectors.c
index 1b645615e59410b4364916e543d94f4aab9d2e7b..e9a9e34ba0a2a25c8396b58eae0fe92286a18d6e 100644
--- a/cpu/kw2x/vectors.c
+++ b/cpu/kw2x/vectors.c
@@ -108,8 +108,7 @@ WEAK_DEFAULT void isr_porte(void);
 WEAK_DEFAULT void isr_swi(void);
 
 /* interrupt vector table */
-__attribute__((used, section(".vector_table")))
-const void *interrupt_vector[] = {
+ISR_VECTORS const void *interrupt_vector[] = {
     /* Stack pointer */
     (void *)(&_estack),             /* pointer to the top of the empty stack */
     /* Cortex-M4 handlers */