diff --git a/cmake_modules/morse/find/FindCHAMELEON.cmake b/cmake_modules/morse/find/FindCHAMELEON.cmake
index 383535110fdc7087f239a666c6b47ab4214c2f70..b896584723a83d7aa0970a98411b66f62ad2738d 100644
--- a/cmake_modules/morse/find/FindCHAMELEON.cmake
+++ b/cmake_modules/morse/find/FindCHAMELEON.cmake
@@ -502,6 +502,7 @@ if( (NOT PKG_CONFIG_EXECUTABLE AND NOT CHAMELEON_FOUND) OR NOT CHAMELEON_FOUND )
         set(REQUIRED_INCDIRS)
         set(REQUIRED_LIBDIRS)
         set(REQUIRED_LIBS)
+        set(REQUIRED_FLAGS)
 
         # CHAMELEON
         if (CHAMELEON_INCLUDE_DIRS)
@@ -597,7 +598,7 @@ if( (NOT PKG_CONFIG_EXECUTABLE AND NOT CHAMELEON_FOUND) OR NOT CHAMELEON_FOUND )
                 list(APPEND REQUIRED_INCDIRS "${MPI_C_INCLUDE_PATH}")
             endif()
             if (MPI_C_LINK_FLAGS)
-                list(APPEND REQUIRED_LIBS "${MPI_C_LINK_FLAGS}")
+                list(APPEND REQUIRED_FLAGS "${MPI_C_LINK_FLAGS}")
             endif()
             list(APPEND REQUIRED_LIBS "${MPI_C_LIBRARIES}")
         endif()
@@ -683,6 +684,7 @@ if( (NOT PKG_CONFIG_EXECUTABLE AND NOT CHAMELEON_FOUND) OR NOT CHAMELEON_FOUND )
             list(APPEND CMAKE_REQUIRED_LIBRARIES "-L${lib_dir}")
         endforeach()
         list(APPEND CMAKE_REQUIRED_LIBRARIES "${REQUIRED_LIBS}")
+        list(APPEND CMAKE_REQUIRED_FLAGS "${REQUIRED_FLAGS}")
 
         # test link
         unset(CHAMELEON_WORKS CACHE)
@@ -692,7 +694,11 @@ if( (NOT PKG_CONFIG_EXECUTABLE AND NOT CHAMELEON_FOUND) OR NOT CHAMELEON_FOUND )
 
         if(CHAMELEON_WORKS)
             # save link with dependencies
-            set(CHAMELEON_LIBRARIES_DEP "${REQUIRED_LIBS}")
+            if (REQUIRED_FLAGS)
+                set(CHAMELEON_LIBRARIES_DEP "${REQUIRED_FLAGS};${REQUIRED_LIBS}")
+            else()
+                set(CHAMELEON_LIBRARIES_DEP "${REQUIRED_LIBS}")
+            endif()
             set(CHAMELEON_LIBRARY_DIRS_DEP "${REQUIRED_LIBDIRS}")
             set(CHAMELEON_INCLUDE_DIRS_DEP "${REQUIRED_INCDIRS}")
         else()
diff --git a/cmake_modules/morse/find/FindPASTIX.cmake b/cmake_modules/morse/find/FindPASTIX.cmake
index bbaab381d01fab4b1513bcc37c493719764579c3..d7e0505e349148fea7c63fdba414c4adad974b84 100644
--- a/cmake_modules/morse/find/FindPASTIX.cmake
+++ b/cmake_modules/morse/find/FindPASTIX.cmake
@@ -464,6 +464,7 @@ if(PASTIX_LIBRARIES)
     set(REQUIRED_INCDIRS)
     set(REQUIRED_LIBDIRS)
     set(REQUIRED_LIBS)
+    set(REQUIRED_FLAGS)
 
     # PASTIX
     if (PASTIX_INCLUDE_DIRS)
@@ -505,7 +506,7 @@ if(PASTIX_LIBRARIES)
             list(APPEND REQUIRED_INCDIRS "${MPI_C_INCLUDE_PATH}")
         endif()
         if (MPI_C_LINK_FLAGS)
-            list(APPEND REQUIRED_LIBS "${MPI_C_LINK_FLAGS}")
+            list(APPEND REQUIRED_FLAGS "${MPI_C_LINK_FLAGS}")
         endif()
         list(APPEND REQUIRED_LIBS "${MPI_C_LIBRARIES}")
     endif()
@@ -585,6 +586,7 @@ if(PASTIX_LIBRARIES)
         list(APPEND CMAKE_REQUIRED_LIBRARIES "-L${lib_dir}")
     endforeach()
     list(APPEND CMAKE_REQUIRED_LIBRARIES "${REQUIRED_LIBS}")
+    list(APPEND CMAKE_REQUIRED_FLAGS "${REQUIRED_FLAGS}")
 
     # test link
     unset(PASTIX_WORKS CACHE)
@@ -594,7 +596,11 @@ if(PASTIX_LIBRARIES)
 
     if(PASTIX_WORKS)
         # save link with dependencies
-        set(PASTIX_LIBRARIES_DEP "${REQUIRED_LIBS}")
+        if (REQUIRED_FLAGS)
+            set(PASTIX_LIBRARIES_DEP "${REQUIRED_FLAGS};${REQUIRED_LIBS}")
+        else()
+            set(PASTIX_LIBRARIES_DEP "${REQUIRED_LIBS}")
+        endif()
         set(PASTIX_LIBRARY_DIRS_DEP "${REQUIRED_LIBDIRS}")
         set(PASTIX_INCLUDE_DIRS_DEP "${REQUIRED_INCDIRS}")
     else()
diff --git a/cmake_modules/morse/find/FindPTSCOTCH.cmake b/cmake_modules/morse/find/FindPTSCOTCH.cmake
index cfeae5344d57b657407dfd52d8a17c29d3c1a145..1f70a3aae3c9c1d3d30d155fb86c2c06fa202213 100644
--- a/cmake_modules/morse/find/FindPTSCOTCH.cmake
+++ b/cmake_modules/morse/find/FindPTSCOTCH.cmake
@@ -215,6 +215,7 @@ if(PTSCOTCH_LIBRARIES)
     set(REQUIRED_INCDIRS)
     set(REQUIRED_LIBDIRS)
     set(REQUIRED_LIBS)
+    set(REQUIRED_FLAGS)
 
     # PTSCOTCH
     if (PTSCOTCH_INCLUDE_DIRS)
@@ -230,7 +231,7 @@ if(PTSCOTCH_LIBRARIES)
             list(APPEND CMAKE_REQUIRED_INCLUDES "${MPI_C_INCLUDE_PATH}")
         endif()
         if (MPI_C_LINK_FLAGS)
-            list(APPEND REQUIRED_LIBS "${MPI_C_LINK_FLAGS}")
+            list(APPEND REQUIRED_FLAGS "${MPI_C_LINK_FLAGS}")
         endif()
         list(APPEND REQUIRED_LIBS "${MPI_C_LIBRARIES}")
     endif()
@@ -246,6 +247,7 @@ if(PTSCOTCH_LIBRARIES)
         list(APPEND CMAKE_REQUIRED_LIBRARIES "-L${lib_dir}")
     endforeach()
     list(APPEND CMAKE_REQUIRED_LIBRARIES "${REQUIRED_LIBS}")
+    list(APPEND CMAKE_REQUIRED_FLAGS "${REQUIRED_FLAGS}")
 
     # test link
     unset(PTSCOTCH_WORKS CACHE)
@@ -255,7 +257,11 @@ if(PTSCOTCH_LIBRARIES)
 
     if(PTSCOTCH_WORKS)
         # save link with dependencies
-        set(PTSCOTCH_LIBRARIES_DEP "${REQUIRED_LIBS}")
+        if (REQUIRED_FLAGS)
+            set(PTSCOTCH_LIBRARIES_DEP "${REQUIRED_FLAGS};${REQUIRED_LIBS}")
+        else()
+            set(PTSCOTCH_LIBRARIES_DEP "${REQUIRED_LIBS}")
+        endif()
         set(PTSCOTCH_LIBRARY_DIRS_DEP "${REQUIRED_LIBDIRS}")
         set(PTSCOTCH_INCLUDE_DIRS_DEP "${REQUIRED_INCDIRS}")
     else()
diff --git a/cmake_modules/morse/find/FindSTARPU.cmake b/cmake_modules/morse/find/FindSTARPU.cmake
index 66f0f6c80d00934cbe4bbaa133f1086e9fa859f7..65053fce51d26a417430e6a5f024a05f6d272201 100644
--- a/cmake_modules/morse/find/FindSTARPU.cmake
+++ b/cmake_modules/morse/find/FindSTARPU.cmake
@@ -466,7 +466,7 @@ if( (NOT PKG_CONFIG_EXECUTABLE AND NOT STARPU_FOUND) OR
         set(STARPU_libs_to_find     "starpu-${STARPU_VERSION_STRING}")
         set(STARPU_SHM_libs_to_find "starpu-${STARPU_VERSION_STRING}")
         if (STARPU_LOOK_FOR_MPI OR MPI_FOUND)
-            list(APPEND STARPU_libs_to_find "starpumpi-${STARPU_VERSION_STRING}")
+            list(INSERT STARPU_libs_to_find 0 "starpumpi-${STARPU_VERSION_STRING}")
             set(STARPU_MPI_libs_to_find "${STARPU_libs_to_find}")
         endif()
 
@@ -606,6 +606,7 @@ if( (NOT PKG_CONFIG_EXECUTABLE AND NOT STARPU_FOUND) OR
         set(REQUIRED_INCDIRS)
         set(REQUIRED_LIBDIRS)
         set(REQUIRED_LIBS)
+        set(REQUIRED_FLAGS)
 
         # STARPU
         if (STARPU_INCLUDE_DIRS)
@@ -640,7 +641,7 @@ if( (NOT PKG_CONFIG_EXECUTABLE AND NOT STARPU_FOUND) OR
                 list(APPEND REQUIRED_INCDIRS "${MPI_C_INCLUDE_PATH}")
             endif()
             if (MPI_C_LINK_FLAGS)
-                list(APPEND REQUIRED_LIBS "${MPI_C_LINK_FLAGS}")
+                list(APPEND REQUIRED_FLAGS "${MPI_C_LINK_FLAGS}")
             endif()
             list(APPEND REQUIRED_LIBS "${MPI_C_LIBRARIES}")
         endif()
@@ -718,6 +719,7 @@ if( (NOT PKG_CONFIG_EXECUTABLE AND NOT STARPU_FOUND) OR
             list(APPEND CMAKE_REQUIRED_LIBRARIES "-L${lib_dir}")
         endforeach()
         list(APPEND CMAKE_REQUIRED_LIBRARIES "${REQUIRED_LIBS}")
+        list(APPEND CMAKE_REQUIRED_FLAGS "${REQUIRED_FLAGS}")
 
         # test link
         unset(STARPU_WORKS CACHE)
@@ -727,7 +729,11 @@ if( (NOT PKG_CONFIG_EXECUTABLE AND NOT STARPU_FOUND) OR
 
         if(STARPU_WORKS)
             # save link with dependencies
-            set(STARPU_LIBRARIES_DEP "${REQUIRED_LIBS}")
+            if (REQUIRED_FLAGS)
+                set(STARPU_LIBRARIES_DEP "${REQUIRED_FLAGS};${REQUIRED_LIBS}")
+            else()
+                set(STARPU_LIBRARIES_DEP "${REQUIRED_LIBS}")
+            endif()
             set(STARPU_LIBRARY_DIRS_DEP "${REQUIRED_LIBDIRS}")
             set(STARPU_INCLUDE_DIRS_DEP "${REQUIRED_INCDIRS}")
         else()