diff --git a/control/async.c b/control/async.c
index 82d99893050d2539f1a1938e3c593dec53ba9a5e..4e273b724351dee19a6bffb14e1dc7181e4add81 100644
--- a/control/async.c
+++ b/control/async.c
@@ -32,7 +32,7 @@
  */
 #include <stdlib.h>
 #include "control/common.h"
-#include "runtime.h"
+#include "chameleon/morse_runtime.h"
 
 /*******************************************************************************
  *  Register an exception.
diff --git a/control/async.h b/control/async.h
index fda4143c1f6b2dec461c5a295c90e05598e282d0..8cfef81bf164250414dcf833380981d215724896 100644
--- a/control/async.h
+++ b/control/async.h
@@ -9,7 +9,7 @@
  **/
 
 /***
- * 
+ *
  *
  * @file async.h
  *
@@ -26,7 +26,7 @@
 #ifndef _MORSE_ASYNC_H_
 #define _MORSE_ASYNC_H_
 
-#include "morse_struct.h"
+#include "chameleon/morse_struct.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/control/auxiliary.h b/control/auxiliary.h
index 147fe1694635c905accafddd9c847ff930f05914..5cc85d6dc50488bc9e1d0116d885c5c6a1f97b26 100644
--- a/control/auxiliary.h
+++ b/control/auxiliary.h
@@ -27,7 +27,7 @@
 #ifndef _MORSE_AUXILIARY_H_
 #define _MORSE_AUXILIARY_H_
 
-#include "morse_struct.h"
+#include "chameleon/morse_struct.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/control/context.c b/control/context.c
index 4d901902d3588b955fb6a62bd86ee8e8804363d9..0204a1f48bca8a0539ac2d85d8a2d1b70177aae2 100644
--- a/control/context.c
+++ b/control/context.c
@@ -41,7 +41,7 @@
 #include "control/common.h"
 #include "control/auxiliary.h"
 #include "control/context.h"
-#include "runtime.h"
+#include "chameleon/morse_runtime.h"
 
 /*******************************************************************************
  *  Global data
diff --git a/control/context.h b/control/context.h
index 948a2d6c5fbe6512fca59564b0bad0f8500d95ed..0c9191c49439cace1991bb500158538ef1541ad4 100644
--- a/control/context.h
+++ b/control/context.h
@@ -27,7 +27,7 @@
 #ifndef _MORSE_CONTEXT_H_
 #define _MORSE_CONTEXT_H_
 
-#include "morse_struct.h"
+#include "chameleon/morse_struct.h"
 
 /*******************************************************************************
  *  Routines to handle threads context
diff --git a/control/control.c b/control/control.c
index 7bb54781d91930dd1b50bb3a1ba6915893b79f73..587a24ae1dfbd22dc7ffb93cac8c91005b260b2b 100644
--- a/control/control.c
+++ b/control/control.c
@@ -35,7 +35,7 @@
 #include <stdlib.h>
 #include "control/auxiliary.h"
 #include "control/common.h"
-#include "runtime.h"
+#include "chameleon/morse_runtime.h"
 
 /** ***************************************************************************
  *
diff --git a/control/descriptor.c b/control/descriptor.c
index 69d189a29a2012c155693552c2a023cf1c1c5641..1a856099a45a291031f159a6dcc154bc5d1e04ed 100644
--- a/control/descriptor.c
+++ b/control/descriptor.c
@@ -34,7 +34,7 @@
 #include <assert.h>
 #include "control/common.h"
 #include "control/descriptor.h"
-#include "runtime.h"
+#include "chameleon/morse_runtime.h"
 
 static int nbdesc = 0;
 
diff --git a/control/descriptor.h b/control/descriptor.h
index 7972ea05c574cc87ddfeaf6329101c096c886cb5..2f6c6afe937bfe04fa8d93f6f4c4a26154d4ece4 100644
--- a/control/descriptor.h
+++ b/control/descriptor.h
@@ -27,8 +27,8 @@
 #define _MORSE_DESCRIPTOR_H_
 
 #include <assert.h>
-#include "include/chameleon_config.h"
-#include "morse_struct.h"
+#include "chameleon/chameleon_config.h"
+#include "chameleon/morse_struct.h"
 #include "control/auxiliary.h"
 
 #ifdef __cplusplus
diff --git a/coreblas/include/coreblas.h b/coreblas/include/coreblas.h
index 590e48d62d730e41fd3a4f99300c2a55941decaf..d6269de796d3c5f5906e5dc0da48b4fc491c20a3 100644
--- a/coreblas/include/coreblas.h
+++ b/coreblas/include/coreblas.h
@@ -42,12 +42,9 @@
 /** ****************************************************************************
  * MORSE types and constants
  **/
-#include "morse_types.h"
-#include "morse_struct.h"
-#include "morse_constants.h"
-//#include "control/auxiliary.h"
-//#include "control/descriptor.h"
-//#include "control/tile.h"
+#include "chameleon/morse_types.h"
+#include "chameleon/morse_struct.h"
+#include "chameleon/morse_constants.h"
 
 /** ****************************************************************************
  * CORE BLAS headers
diff --git a/example/basic_zposv/posv_users_functions.h b/example/basic_zposv/posv_users_functions.h
index 2227941ad0d3537c58439047940146eacb46a8ec..af2469c30f30e2ad5be1883cb4674c37129795e3 100644
--- a/example/basic_zposv/posv_users_functions.h
+++ b/example/basic_zposv/posv_users_functions.h
@@ -53,6 +53,7 @@ inline static void* user_getaddr_arrayofpointers(const MORSE_desc_t *A, int m, i
  **/
 inline static int user_getblkldd_arrayofpointers(const MORSE_desc_t *A, int m)
 {
+    (void)m;
     return A->mb;
 }
 
diff --git a/example/lapack_to_morse/step3.h b/example/lapack_to_morse/step3.h
index eedce3468857cc6bb6cfac3907f80670eac0e2a8..f27132feede6050d5e8b2e3082534e01bd0532d0 100644
--- a/example/lapack_to_morse/step3.h
+++ b/example/lapack_to_morse/step3.h
@@ -190,6 +190,7 @@ inline static void* user_getaddr_arrayofpointers(const MORSE_desc_t *A, int m, i
  */
 inline static int user_getblkldd_arrayofpointers(const MORSE_desc_t *A, int m)
 {
+    (void)m;
     return A->mb;
 }
 
@@ -198,6 +199,7 @@ inline static int user_getblkldd_arrayofpointers(const MORSE_desc_t *A, int m)
  */
 inline static int user_getrankof_zero(const MORSE_desc_t *A, int m, int n)
 {
+    (void)A; (void)m; (void)n;
     return 0;
 }
 
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
index 4308dc76d587c6d9958f3e25230b7cd3a0d52b74..21457aa537564e96262907540c99e656bc886fe0 100644
--- a/include/CMakeLists.txt
+++ b/include/CMakeLists.txt
@@ -34,8 +34,8 @@ set(CHAMELEON_HDRS_GENERATED "")
 set(ZHDR
     chameleon/morse_z.h
     chameleon/morse_zc.h
-    chameleon/runtime_z.h
-    chameleon/runtime_zc.h
+    chameleon/morse_tasks_z.h
+    chameleon/morse_tasks_zc.h
 )
 
 precisions_rules_py(CHAMELEON_HDRS_GENERATED "${ZHDR}"
@@ -52,11 +52,12 @@ set(CHAMELEON_HDRS
     chameleon/chameleon_config.h
     chameleon/morse_constants.h
     chameleon/morse_kernels.h
+    chameleon/morse_mangling.h
+    chameleon/morse_runtime.h
     chameleon/morse_simulate.h
     chameleon/morse_struct.h
+    chameleon/morse_tasks.h
     chameleon/morse_types.h
-    chameleon/morse_mangling.h
-    chameleon/runtime.h
     ${CHAMELEON_HDRS_GENERATED}
     )
 
diff --git a/include/chameleon/chameleon_config.h.in b/include/chameleon/chameleon_config.h.in
index eceddc9e3fb73c76d97828b181b051b7a99dfe26..b1d6abb133ee925ed100228dc1a6d0766086d938 100644
--- a/include/chameleon/chameleon_config.h.in
+++ b/include/chameleon/chameleon_config.h.in
@@ -56,4 +56,20 @@
 #cmakedefine CHAMELEON_HAVE_GETOPT_H
 #cmakedefine CHAMELEON_HAVE_GETOPT_LONG
 
+#ifdef BEGIN_C_DECLS
+#undef BEGIN_C_DECLS
+#endif
+
+#ifdef END_C_DECLS
+#undef END_C_DECLS
+#endif
+
+#if defined(c_plusplus) || defined(__cplusplus)
+# define BEGIN_C_DECLS extern "C" {
+# define END_C_DECLS }
+#else
+# define BEGIN_C_DECLS          /* empty */
+# define END_C_DECLS            /* empty */
+#endif
+
 #endif  /* CHAMELEON_CONFIG_H_HAS_BEEN_INCLUDED */
diff --git a/include/chameleon/morse_kernels.h b/include/chameleon/morse_kernels.h
index a979ab6735c42f4186dd4ecc9a508af4ea199856..dd1ce89f0cbf140b369134075f5853b79e0f04a0 100644
--- a/include/chameleon/morse_kernels.h
+++ b/include/chameleon/morse_kernels.h
@@ -85,4 +85,4 @@ typedef enum morse_kernel_e {
   MORSE_NBKERNELS
 } MORSE_kernel_t;
 
-#endif /* _MORSE_KERNELS_H_ */
+#endif
diff --git a/include/chameleon/runtime.h b/include/chameleon/morse_runtime.h
similarity index 79%
rename from include/chameleon/runtime.h
rename to include/chameleon/morse_runtime.h
index b4569f63083b4f5db9f153c97454dd3fbd5801e9..dc198373df896c950485db6356474aa9364c65d6 100644
--- a/include/chameleon/runtime.h
+++ b/include/chameleon/morse_runtime.h
@@ -24,10 +24,10 @@
  * @date 2011-06-01
  *
  **/
-#ifndef _RUNTIME_H_
-#define _RUNTIME_H_
+#ifndef _MORSE_RUNTIME_H_
+#define _MORSE_RUNTIME_H_
 
-#include "morse_struct.h"
+#include "chameleon/morse_struct.h"
 
 /*******************************************************************************
  * RUNTIME Async
@@ -133,34 +133,4 @@ void RUNTIME_ddisplay_oneprofile (MORSE_kernel_t);
 void RUNTIME_sdisplay_allprofile ();
 void RUNTIME_sdisplay_oneprofile (MORSE_kernel_t);
 
-/*******************************************************************************
- * RUNTIME Kernels
- **/
-#include "runtime_z.h"
-#include "runtime_d.h"
-#include "runtime_c.h"
-#include "runtime_s.h"
-#include "runtime_zc.h"
-#include "runtime_ds.h"
-
-void MORSE_TASK_ztile_zero(const MORSE_option_t *options,
-                           int X1, int X2, int Y1, int Y2,
-                           const MORSE_desc_t *A, int Am, int An, int lda);
-void MORSE_TASK_dtile_zero(const MORSE_option_t *options,
-                           int X1, int X2, int Y1, int Y2,
-                           const MORSE_desc_t *A, int Am, int An, int lda);
-void MORSE_TASK_ctile_zero(const MORSE_option_t *options,
-                           int X1, int X2, int Y1, int Y2,
-                           const MORSE_desc_t *A, int Am, int An, int lda);
-void MORSE_TASK_stile_zero(const MORSE_option_t *options,
-                           int X1, int X2, int Y1, int Y2,
-                           const MORSE_desc_t *A, int Am, int An, int lda);
-
-/*
- * Mark a data as unused after this call
- */
-void MORSE_TASK_dataflush(const MORSE_option_t *options,
-                          const MORSE_desc_t *A, int Am, int An);
-void MORSE_TASK_dataflush_all();
-
-#endif
+#endif /* _MORSE_RUNTIME_H_ */
diff --git a/include/chameleon/morse_simulate.h b/include/chameleon/morse_simulate.h
index 7ef57e7291d309fe45b267cdb33f3937dffd3224..51b8131c84de14c318135f350b47e874618d9104 100644
--- a/include/chameleon/morse_simulate.h
+++ b/include/chameleon/morse_simulate.h
@@ -25,7 +25,7 @@
 #ifndef _MORSE_SIMULATE_H_
 #define _MORSE_SIMULATE_H_
 
-#include "chameleon_config.h"
+#include "chameleon/chameleon_config.h"
 
 /* we need this when starpu is compiled with simgrid enabled */
 #if defined(CHAMELEON_SCHED_STARPU) && defined(CHAMELEON_SIMULATION)
diff --git a/include/chameleon/morse_struct.h b/include/chameleon/morse_struct.h
index a87b8ca47c7f4716666ba6164450c1fe5416f415..a2ecf1934caa8bb7119a14564bbe6561cfb71f78 100644
--- a/include/chameleon/morse_struct.h
+++ b/include/chameleon/morse_struct.h
@@ -28,8 +28,8 @@
 #ifndef _MORSE_STRUCT_H_
 #define _MORSE_STRUCT_H_
 
-#include "chameleon_config.h"
-#include "morse_types.h"
+#include "chameleon/chameleon_config.h"
+#include "chameleon/morse_types.h"
 
 /** ****************************************************************************
  * RUNTIME headers to include types of :
@@ -188,7 +188,6 @@ typedef struct morse_option_s {
 /** ****************************************************************************
  *  MORSE kernels
  **/
-#include "morse_kernels.h"
-
+#include "chameleon/morse_kernels.h"
 
 #endif /* __CHAMELEON_H__ */
diff --git a/include/chameleon/morse_tasks.h b/include/chameleon/morse_tasks.h
new file mode 100644
index 0000000000000000000000000000000000000000..6abc5dcc099085f9b137248826ff52c9a56bea60
--- /dev/null
+++ b/include/chameleon/morse_tasks.h
@@ -0,0 +1,60 @@
+/**
+ *
+ * @copyright (c) 2009-2014 The University of Tennessee and The University
+ *                          of Tennessee Research Foundation.
+ *                          All rights reserved.
+ * @copyright (c) 2012-2014 Inria. All rights reserved.
+ * @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
+ *
+ **/
+
+/**
+ *
+ *  @file morse_tasks.h
+ *
+ *  MORSE codelets kernel
+ *  MORSE is a software package provided by Univ. of Tennessee,
+ *  Univ. of California Berkeley and Univ. of Colorado Denver,
+ *  and INRIA Bordeaux Sud-Ouest
+ *
+ *  @version 2.3.1
+ *  @author Mathieu Faverge
+ *  @author Cedric Augonnet
+ *  @date 2011-06-01
+ *
+ **/
+#ifndef _MORSE_TASKS_H_
+#define _MORSE_TASKS_H_
+
+/*******************************************************************************
+ * MORSE Task submission routines
+ **/
+void MORSE_TASK_ztile_zero(const MORSE_option_t *options,
+                           int X1, int X2, int Y1, int Y2,
+                           const MORSE_desc_t *A, int Am, int An, int lda);
+void MORSE_TASK_dtile_zero(const MORSE_option_t *options,
+                           int X1, int X2, int Y1, int Y2,
+                           const MORSE_desc_t *A, int Am, int An, int lda);
+void MORSE_TASK_ctile_zero(const MORSE_option_t *options,
+                           int X1, int X2, int Y1, int Y2,
+                           const MORSE_desc_t *A, int Am, int An, int lda);
+void MORSE_TASK_stile_zero(const MORSE_option_t *options,
+                           int X1, int X2, int Y1, int Y2,
+                           const MORSE_desc_t *A, int Am, int An, int lda);
+
+/*
+ * Mark a data as unused after this call
+ */
+void MORSE_TASK_dataflush(const MORSE_option_t *options,
+                          const MORSE_desc_t *A, int Am, int An);
+void MORSE_TASK_dataflush_all();
+
+#include "chameleon/morse_tasks_z.h"
+#include "chameleon/morse_tasks_d.h"
+#include "chameleon/morse_tasks_c.h"
+#include "chameleon/morse_tasks_s.h"
+#include "chameleon/morse_tasks_zc.h"
+#include "chameleon/morse_tasks_ds.h"
+
+
+#endif /* _MORSE_TASKS_H_ */
diff --git a/include/chameleon/runtime_z.h b/include/chameleon/morse_tasks_z.h
similarity index 99%
rename from include/chameleon/runtime_z.h
rename to include/chameleon/morse_tasks_z.h
index d4e434a8cd170151cd46e9a8941f3b5dda026cd1..1a74269cc88e81967cb8356baf9a5f5175b42e3e 100644
--- a/include/chameleon/runtime_z.h
+++ b/include/chameleon/morse_tasks_z.h
@@ -10,7 +10,7 @@
 
 /**
  *
- * @file runtime_z.h
+ * @file morse_tasks_z.h
  *
  *  MORSE auxiliary routines
  *  MORSE is a software package provided by Univ. of Tennessee,
@@ -29,8 +29,8 @@
  * @precisions normal z -> c d s
  *
  **/
-#ifndef _RUNTIME_ZBLAS_H_
-#define _RUNTIME_ZBLAS_H_
+#ifndef _MORSE_TASKS_Z_H_
+#define _MORSE_TASKS_Z_H_
 
 #define COMPLEX
 
diff --git a/include/chameleon/runtime_zc.h b/include/chameleon/morse_tasks_zc.h
similarity index 95%
rename from include/chameleon/runtime_zc.h
rename to include/chameleon/morse_tasks_zc.h
index a17fd6fe0d5514792b7cb530c4c36e079e3db67d..7daedad435e3b864bb3876383193dc5afbcb2889 100644
--- a/include/chameleon/runtime_zc.h
+++ b/include/chameleon/morse_tasks_zc.h
@@ -10,7 +10,7 @@
 
 /**
  *
- * @file runtime_zc.h
+ * @file morse_tasks_zc.h
  *
  *  MORSE auxiliary routines
  *  MORSE is a software package provided by Univ. of Tennessee,
@@ -28,8 +28,8 @@
  * @precisions mixed zc -> ds
  *
  **/
-#ifndef _RUNTIME_ZCBLAS_H_
-#define _RUNTIME_ZCBLAS_H_
+#ifndef _MORSE_TASKS_Z_H_
+#define _MORSE_TASKS_Z_H_
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/include/morse.h b/include/morse.h
index f87fdc0982fafee360a4f0e0cdef8fe4d76f67df..dbce6b27964b7f26898cf34ad4fc4a8b178300f4 100644
--- a/include/morse.h
+++ b/include/morse.h
@@ -31,29 +31,48 @@
 /* ****************************************************************************
  * MORSE types and constants
  */
-#include "chameleon_config.h"
-#include "morse_types.h"
-#include "morse_struct.h"
-#include "morse_constants.h"
+#include "chameleon/chameleon_config.h"
+#include "chameleon/morse_types.h"
+#include "chameleon/morse_struct.h"
+#include "chameleon/morse_constants.h"
+#include "chameleon/morse_kernels.h"
 
 
 /* ****************************************************************************
- * RUNTIME Functions
+ * MORSE runtime common API
  */
-#include "runtime.h"
+#include "chameleon/morse_runtime.h"
 
 
 /* ****************************************************************************
- * For Simulation mode
+ * MORSE Simulation mode
  */
-#include "morse_simulate.h"
+#include "chameleon/morse_simulate.h"
+
+/* ****************************************************************************
+ * Include LibHQR for hierarchical trees QR/LQ factorizations
+ */
+#include "libhqr.h"
+
+/* ****************************************************************************
+ * MORSE Tasks
+ */
+#include "chameleon/morse_tasks.h"
+
+/* ****************************************************************************
+ * MORSE functionnalities
+ */
+#include "chameleon/morse_z.h"
+#include "chameleon/morse_c.h"
+#include "chameleon/morse_d.h"
+#include "chameleon/morse_s.h"
+#include "chameleon/morse_zc.h"
+#include "chameleon/morse_ds.h"
 
 /* ****************************************************************************
  * MORSE Functions
  */
-#ifdef __cplusplus
-extern "C" {
-#endif
+BEGIN_C_DECLS
 
 /* Auxiliary */
 int MORSE_Version           (int *ver_major, int *ver_minor, int *ver_micro);
@@ -113,16 +132,6 @@ int MORSE_Sequence_Create  (MORSE_sequence_t **sequence);
 int MORSE_Sequence_Destroy (MORSE_sequence_t *sequence);
 int MORSE_Sequence_Wait    (MORSE_sequence_t *sequence);
 
-#ifdef __cplusplus
-}
-#endif
-
-#include "libhqr.h"
-#include "morse_z.h"
-#include "morse_c.h"
-#include "morse_d.h"
-#include "morse_s.h"
-#include "morse_zc.h"
-#include "morse_ds.h"
+END_C_DECLS
 
 #endif
diff --git a/runtime/starpu/control/runtime_async.c b/runtime/starpu/control/runtime_async.c
index 03f5a6fa73156f7b619241209cd016c2fab3a926..09a120e69e63aabfd6f4a65103239cacac5e4856 100644
--- a/runtime/starpu/control/runtime_async.c
+++ b/runtime/starpu/control/runtime_async.c
@@ -54,28 +54,33 @@ extern void (*update_progress_callback)(int, int) ;
 /*******************************************************************************
  *  Display a progress information when executing the tasks
  **/
-int RUNTIME_progress( MORSE_context_t *morse)
+int RUNTIME_progress( MORSE_context_t *morse )
 {
+    int tasksLeft, current, timer = 0;
+    int max;
+
 #if defined(CHAMELEON_USE_MPI)
-  if (morse->my_mpi_rank!=0)
-    return MORSE_SUCCESS;
+    if ( morse->my_mpi_rank != 0 )
+        return MORSE_SUCCESS;
 #endif
-  int tasksLeft, current, timer=0;
-  int max = starpu_task_nsubmitted();
-  if (max==0)
-    return MORSE_SUCCESS;
-  //  update_progress_callback(0, max);
-  while ((tasksLeft = starpu_task_nsubmitted()) > 0) {
-    current = max - tasksLeft;
+
+    max = starpu_task_nsubmitted();
+    if ( max == 0 )
+        return MORSE_SUCCESS;
+
+    //  update_progress_callback(0, max);
+    while ((tasksLeft = starpu_task_nsubmitted()) > 0) {
+        current = max - tasksLeft;
+        if (timer > PROGRESS_MINIMUM_DURATION)
+            update_progress_callback(current, max);
+        sleep(1);
+        timer++;
+    }
     if (timer > PROGRESS_MINIMUM_DURATION)
-      update_progress_callback(current, max);
-    sleep(1);
-    timer++;
-  }
-  if (timer > PROGRESS_MINIMUM_DURATION)
-    update_progress_callback(max, max);
+        update_progress_callback(max, max);
 
-  return MORSE_SUCCESS;
+    (void)morse;
+    return MORSE_SUCCESS;
 }
 
 /*******************************************************************************
@@ -86,7 +91,7 @@ int RUNTIME_sequence_wait( MORSE_context_t *morse, MORSE_sequence_t *sequence )
     (void)morse;
     (void)sequence;
     if (morse->progress_enabled)
-      RUNTIME_progress(morse);
+        RUNTIME_progress(morse);
     starpu_task_wait_for_all();
 #if defined(CHAMELEON_USE_MPI)
     starpu_mpi_barrier(MPI_COMM_WORLD);
diff --git a/runtime/starpu/control/runtime_descriptor.c b/runtime/starpu/control/runtime_descriptor.c
index 6a05ce8baf0822c7222523f1d735ed9faf89f6e5..46383eae701eee8e5d2d5a0ddef754e0f0da1bf8 100644
--- a/runtime/starpu/control/runtime_descriptor.c
+++ b/runtime/starpu/control/runtime_descriptor.c
@@ -50,14 +50,17 @@ static int _tag_mpi_initialized_ = 0;
 #define FOLDED 0
 #endif
 
-void RUNTIME_user_tag_size(int user_tag_width, int user_tag_sep) {
+void RUNTIME_user_tag_size( int user_tag_width, int user_tag_sep ) {
 #if defined(CHAMELEON_USE_MPI)
     if (_tag_mpi_initialized_ == 0) {
-        tag_width=user_tag_width;
-        tag_sep=user_tag_sep;
-    } else
-        morse_error("RUNTIME_user_tag_size", "must be called before creating any Morse descriptor with MORSE_Desc_create(). The tag sizes will not be modified.");
+        tag_width = user_tag_width;
+        tag_sep   = user_tag_sep;
+    } else {
+        morse_error("RUNTIME_user_tag_size",
+                    "must be called before creating any Morse descriptor with MORSE_Desc_create(). The tag sizes will not be modified.");
+    }
 #endif
+    (void)user_tag_width; (void)user_tag_sep;
 }
 
 
@@ -126,9 +129,9 @@ void RUNTIME_desc_create( MORSE_desc_t *desc )
         int pagesize = getpagesize();
 
         if ((desc->mb * desc->nb * eltsze) % pagesize != 0
-         || (lastmm   * desc->nb * eltsze) % pagesize != 0
-         || (desc->mb * lastnn   * eltsze) % pagesize != 0
-         || (lastmm   * lastnn   * eltsze) % pagesize != 0)
+            || (lastmm   * desc->nb * eltsze) % pagesize != 0
+            || (desc->mb * lastnn   * eltsze) % pagesize != 0
+            || (lastmm   * lastnn   * eltsze) % pagesize != 0)
         {
             morse_error("RUNTIME_desc_create", "Matrix and tile size not suitable for out-of-core: all tiles have to be multiples of 4096. Tip : choose 'n' and 'nb' as both multiples of 32.");
             return;
diff --git a/runtime/starpu/control/runtime_zlocality.c b/runtime/starpu/control/runtime_zlocality.c
index a83ddceb5df06a6e035bab0e65e121a01c1dfbce..f7bdf1fff8741172ee5fe2dca77efa6c640a2f53 100644
--- a/runtime/starpu/control/runtime_zlocality.c
+++ b/runtime/starpu/control/runtime_zlocality.c
@@ -250,8 +250,23 @@ void RUNTIME_zlocality_onerestore( MORSE_kernel_t kernel )
     }
 }
 #else
-void RUNTIME_zlocality_allrestrict( uint32_t where ) {}
-void RUNTIME_zlocality_onerestrict( MORSE_kernel_t kernel, uint32_t where ) {}
+
+void RUNTIME_zlocality_allrestrict( uint32_t where )
+{
+    (void)where;
+}
+
+void RUNTIME_zlocality_onerestrict( MORSE_kernel_t kernel, uint32_t where )
+{
+    (void)kernel;
+    (void)where;
+}
+
 void RUNTIME_zlocality_allrestore( ) {}
-void RUNTIME_zlocality_onerestore( MORSE_kernel_t kernel ) {}
+
+void RUNTIME_zlocality_onerestore( MORSE_kernel_t kernel )
+{
+    (void)kernel;
+}
+
 #endif
diff --git a/testing/testing_zauxiliary.c b/testing/testing_zauxiliary.c
index 748c56694aac865dceb215c7d6579ba300d46b67..e1501a07d18fec89fe6f172848f320e48fbfa189 100644
--- a/testing/testing_zauxiliary.c
+++ b/testing/testing_zauxiliary.c
@@ -157,7 +157,7 @@ int map_RRRB(int m, int n, int mb, int nb, int i, int j) {
             return ( m*n0  + (n-n0)*m0                      + map_rm( m%mb, n%nb, i%mb, j%nb) );
 }
 
-void *formatmap[6] = {  map_CM, map_RM, map_CCRB, map_CRRB, map_RCRB, map_RRRB };
+int (*formatmap[6])(int, int, int, int, int, int) = {  map_CM, map_RM, map_CCRB, map_CRRB, map_RCRB, map_RRRB };
 
 int main (int argc, char **argv)
 {
diff --git a/testing/testing_zauxiliary.h b/testing/testing_zauxiliary.h
index 2285df339ecd93a5bd4b7c09b25948bf0c21e6aa..7c55d8057c05a1028592b44d9fc8fa49a0cd3985 100644
--- a/testing/testing_zauxiliary.h
+++ b/testing/testing_zauxiliary.h
@@ -68,7 +68,7 @@ extern char *itypestr[3];
 extern char *storevstr[2];
 extern char *normstr[4];
 
-extern void *formatmap[6];
+extern int (*formatmap[6])(int, int, int, int, int, int);
 
 int map_CM  (int m, int n, int mb, int nb, int i, int j);
 int map_CCRB(int m, int n, int mb, int nb, int i, int j);
diff --git a/testing/testing_zpemv.c b/testing/testing_zpemv.c
index 7130fa5b9adc665eaa63a71ec0eadaed496cb813..4a33972633be86505981cb5214fe2d1dbaf38072 100644
--- a/testing/testing_zpemv.c
+++ b/testing/testing_zpemv.c
@@ -42,12 +42,12 @@
 /*--------------------------------------------------------------
  * Check the pemv
  */
-static int check_solution(MORSE_enum trans, MORSE_enum storev, 
+static int check_solution(MORSE_enum trans, MORSE_enum storev,
                           int M, int N, int L,
                           MORSE_Complex64_t alpha, MORSE_Complex64_t *A, int LDA,
-                                                    MORSE_Complex64_t *X, int INCX,
+                          MORSE_Complex64_t *X, int INCX,
                           MORSE_Complex64_t beta,  MORSE_Complex64_t *Y0, int INCY0,
-                                                    MORSE_Complex64_t *Y,  int INCY,
+                          MORSE_Complex64_t *Y,  int INCY,
                           MORSE_Complex64_t *W, double *Rnorm)
 {
     int k;
@@ -61,28 +61,30 @@ static int check_solution(MORSE_enum trans, MORSE_enum storev,
     } else {
         k = M;
     }
-    
+
     work = (double *)malloc(k * sizeof(double));
     cblas_zcopy(k, Y0, INCY0, W, 1);
-    
+
     /* w = a A x + b w */
-    cblas_zgemv(CblasColMajor, (CBLAS_TRANSPOSE)trans, 
+    cblas_zgemv(CblasColMajor, (CBLAS_TRANSPOSE)trans,
                 M, N,
-                CBLAS_SADDR(alpha), A,  LDA, 
-                                    X,  INCX,
+                CBLAS_SADDR(alpha), A,  LDA,
+                X,  INCX,
                 CBLAS_SADDR(beta),  W,  1);
 
     /* y - w */
     cblas_zaxpy(k, CBLAS_SADDR(mzone), Y, INCY, W, 1);
-    
+
     /* Max Norm */
     *Rnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'm', 1, k, W, 1, work);
-    
+
     if ( (*Rnorm / (M*N)) > eps) {
         return 1;
     } else {
         return 0;
     }
+
+    (void)L; (void)storev;
 }
 
 /*--------------------------------------------------------------
@@ -136,8 +138,8 @@ int testing_zpemv(int argc, char **argv)
         printf("Out of Memory \n ");
         exit(0);
     }
-    
-     /* Initialize Data */
+
+    /* Initialize Data */
     MORSE_zplrnt(n, n, A,  lda, 479 );
     MORSE_zplrnt(n, n, X,  lda, 320 );
     MORSE_zplrnt(n, 1, Y0, n,   573 );
@@ -152,7 +154,7 @@ int testing_zpemv(int argc, char **argv)
 
     nfails = 0;
     for (i=0; i<6; i++) {
-        
+
         /* m and n cannot be greater than lda (arg_n) */
         switch (i) {
         case 0: l = 0;       m = arg_n;   n = m;        break;
@@ -165,17 +167,17 @@ int testing_zpemv(int argc, char **argv)
 
         /* Colwise ConjTrans & Rowwise NoTrans */
 #ifdef COMPLEX
-        for (t=0; t<3; t++) {
+        for (t=0; t<3; t++)
 #else
-        for (t=0; t<2; t++) {
+        for (t=0; t<2; t++)
 #endif
-
+        {
             /* Swap m and n for transpose cases */
             if ( t == 1 ) {
                 k = m; m = n; n = k;
             }
 
-            LAPACKE_zlacpy_work( LAPACK_COL_MAJOR, 'A', m, n, 
+            LAPACKE_zlacpy_work( LAPACK_COL_MAJOR, 'A', m, n,
                                  A, lda, A0, lda);
 
             if ( trans[t] == MorseNoTrans ) {
@@ -217,29 +219,29 @@ int testing_zpemv(int argc, char **argv)
                     case 2:  incx = lda;  incy = 1;    break;
                     case 3:  incx = lda;  incy = lda;  break;
                     }
-                    
+
                     /* initialize Y with incy */
                     cblas_zcopy(n, Y0, 1, Y, incy);
-                    
+
                     /* ZPEMV */
-                    CORE_zpemv( trans[t], storev, m, n, l, 
-                                alpha, A, lda, 
-                                       X, incx,
-                                beta,  Y, incy, 
+                    CORE_zpemv( trans[t], storev, m, n, l,
+                                alpha, A, lda,
+                                X, incx,
+                                beta,  Y, incy,
                                 work);
-                    
+
                     /* Check the solution */
-                    info_solution = check_solution(trans[t], storev, 
-                                                   m, n, l, 
+                    info_solution = check_solution(trans[t], storev,
+                                                   m, n, l,
                                                    alpha, A0,  lda,
-                                                          X,   incx, 
-                                                   beta,  Y0,  1, 
-                                                          Y,   incy, 
+                                                   X,   incx,
+                                                   beta,  Y0,  1,
+                                                   Y,   incy,
                                                    work, &rnorm);
-                    
+
                     if ( info_solution != 0 ) {
                         nfails++;
-                        printf("Failed: t=%s, s=%s, M=%3d, N=%3d, L=%3d, alpha=%e, incx=%3d, beta=%e, incy=%3d, rnorm=%e\n", 
+                        printf("Failed: t=%s, s=%s, M=%3d, N=%3d, L=%3d, alpha=%e, incx=%3d, beta=%e, incy=%3d, rnorm=%e\n",
                                transstr[t], cstorev, m, n, l, creal(alpha), incx, creal(beta), incy, rnorm );
                     }
                     nbtests++;
@@ -268,4 +270,3 @@ int testing_zpemv(int argc, char **argv)
 
     return hres;
 }
-