diff --git a/runtime/starpu/CMakeLists.txt b/runtime/starpu/CMakeLists.txt
index 98cde2e99338479488dd82191307eb2923c90dc4..3e3a03ad3916fd528b4428adecc28456bf2a1860 100644
--- a/runtime/starpu/CMakeLists.txt
+++ b/runtime/starpu/CMakeLists.txt
@@ -28,6 +28,7 @@
 ###
 cmake_minimum_required(VERSION 3.1)
 
+include(CheckSymbolExists)
 include(CheckStructHasMember)
 
 set(CHAMELEON_STARPU_VERSION "1.3" CACHE STRING "necessary STARPU API version")
@@ -39,8 +40,7 @@ find_package(STARPU ${CHAMELEON_STARPU_VERSION} REQUIRED)
 if ( STARPU_FOUND )
   message("-- ${Blue}Add definition CHAMELEON_SCHED_STARPU"
     " - Activate StarPU in Chameleon${ColourReset}")
-  get_target_property(CMAKE_REQUIRED_LIBRARIES MORSE::STARPU INTERFACE_LINK_LIBRARIES)
-  get_target_property(CMAKE_REQUIRED_INCLUDES  MORSE::STARPU INTERFACE_INCLUDE_DIRECTORIES)
+  morse_cmake_required_set( STARPU )
   check_function_exists(starpu_data_idle_prefetch_on_node HAVE_STARPU_IDLE_PREFETCH)
   if ( HAVE_STARPU_IDLE_PREFETCH )
     message("-- ${Blue}Add definition HAVE_STARPU_IDLE_PREFETCH${ColourReset}")
@@ -80,7 +80,6 @@ if ( STARPU_FOUND )
 
   if (CHAMELEON_USE_MPI)
     # Add MPI in case StarPU don't have a public dependency on it
-    set(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES};MPI::MPI_C")
     check_function_exists(starpu_mpi_init_conf HAVE_STARPU_MPI_INIT_CONF)
     if ( HAVE_STARPU_MPI_INIT_CONF )
       message("-- ${Blue}Add definition HAVE_STARPU_MPI_INIT_CONF${ColourReset}")
@@ -126,8 +125,7 @@ if ( STARPU_FOUND )
       message("-- ${Blue}Add definition HAVE_STARPU_MPI_COMM_GET_ATTR${ColourReset}")
     endif()
   endif()
-  unset(CMAKE_REQUIRED_LIBRARIES)
-  unset(CMAKE_REQUIRED_INCLUDES)
+  morse_cmake_required_unset()
 endif ( STARPU_FOUND )
 
 configure_file("include/chameleon_starpu.h.in"
@@ -153,6 +151,7 @@ set(RUNTIME_HDRS
   include/runtime_codelets.h
   include/runtime_profiling.h
   include/runtime_workspace.h
+  include/cham_tile_interface.h
   )
 
 # Add generated headers
diff --git a/runtime/starpu/control/runtime_descriptor.c b/runtime/starpu/control/runtime_descriptor.c
index 4ab987d2bb4546a3ab0db510806d6c56b7d04eda..f3f3ecd30d2d15e9b28731a7de99b3c28a3f7e1f 100644
--- a/runtime/starpu/control/runtime_descriptor.c
+++ b/runtime/starpu/control/runtime_descriptor.c
@@ -329,18 +329,19 @@ void RUNTIME_flush()
 /**
  * Different implementations of the flush call based on StarPU version
  */
-#ifdef HAVE_STARPU_DATA_WONT_USE
+#if defined(HAVE_STARPU_DATA_WONT_USE)
 
 static inline void
 chameleon_starpu_data_wont_use( starpu_data_handle_t handle ) {
     starpu_data_wont_use( handle );
 }
 
-#elif defined HAVE_STARPU_IDLE_PREFETCH
+#elif defined(HAVE_STARPU_IDLE_PREFETCH)
 
 static inline void
-chameleon_starpu_data_flush( starpu_data_handle_t handle)
+chameleon_starpu_data_flush( void *_handle)
 {
+    starpu_data_handle_t handle = (starpu_data_handle_t)_handle;
     starpu_data_idle_prefetch_on_node(handle, STARPU_MAIN_RAM, 1);
     starpu_data_release_on_node(handle, -1);
 }
diff --git a/runtime/starpu/control/runtime_profiling.c b/runtime/starpu/control/runtime_profiling.c
index fb8fc039fc8a06e4ac09aa05f9cf613f9a709d03..317a3210fffdb546f3cf740d9e2cde3bcb33b4a9 100644
--- a/runtime/starpu/control/runtime_profiling.c
+++ b/runtime/starpu/control/runtime_profiling.c
@@ -46,6 +46,7 @@ void RUNTIME_iteration_push( CHAM_context_t *chamctxt, unsigned long iteration )
 #if defined(HAVE_STARPU_ITERATION_PUSH)
     starpu_iteration_push(iteration);
 #endif
+    (void)iteration;
 }
 
 void RUNTIME_iteration_pop( CHAM_context_t *chamctxt )
diff --git a/runtime/starpu/interface/cham_tile_interface.c b/runtime/starpu/interface/cham_tile_interface.c
index 30348afe17667e5a2f005a19f2ea7b470c07e06a..493c9eade6d65821974fb5f57f64bd6c5d8115d3 100644
--- a/runtime/starpu/interface/cham_tile_interface.c
+++ b/runtime/starpu/interface/cham_tile_interface.c
@@ -573,11 +573,11 @@ static int cti_copy_any_to_any( void *src_interface, unsigned src_node,
     starpu_cham_tile_interface_t *cham_tile_src = (starpu_cham_tile_interface_t *) src_interface;
     starpu_cham_tile_interface_t *cham_tile_dst = (starpu_cham_tile_interface_t *) dst_interface;
     size_t elemsize = CHAMELEON_Element_Size( cham_tile_src->flttype );
-    size_t m = cham_tile_src->tile.m;
-    size_t n = cham_tile_src->tile.n;
-    size_t ld_src = cham_tile_src->tile.ld;
-    size_t ld_dst = cham_tile_dst->tile.ld;
-    int ret = 0;
+    size_t m        = cham_tile_src->tile.m;
+    size_t n        = cham_tile_src->tile.n;
+    size_t ld_src   = cham_tile_src->tile.ld;
+    size_t ld_dst   = cham_tile_dst->tile.ld;
+    int    ret      = 0;
 
     void *src_mat = CHAM_tile_get_ptr( &(cham_tile_src->tile) );
     void *dst_mat = CHAM_tile_get_ptr( &(cham_tile_dst->tile) );