Define timing_selftest() even with TIMING_ALT
diff --git a/include/mbedtls/timing.h b/include/mbedtls/timing.h
index 5ad4f9e..0ef1827 100644
--- a/include/mbedtls/timing.h
+++ b/include/mbedtls/timing.h
@@ -79,6 +79,18 @@
  */
 void mbedtls_timing_m_sleep( int milliseconds );
 
+#ifdef __cplusplus
+}
+#endif
+
+#else  /* MBEDTLS_TIMING_ALT */
+#include "timing_alt.h"
+#endif /* MBEDTLS_TIMING_ALT */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #if defined(MBEDTLS_SELF_TEST)
 /**
  * \brief          Checkup routine
@@ -92,8 +104,4 @@
 }
 #endif
 
-#else  /* MBEDTLS_TIMING_ALT */
-#include "timing_alt.h"
-#endif /* MBEDTLS_TIMING_ALT */
-
 #endif /* timing.h */
diff --git a/library/timing.c b/library/timing.c
index d9fb894..13a529a 100644
--- a/library/timing.c
+++ b/library/timing.c
@@ -33,10 +33,12 @@
 #define mbedtls_printf     printf
 #endif
 
-#if defined(MBEDTLS_TIMING_C) && !defined(MBEDTLS_TIMING_ALT)
+#if defined(MBEDTLS_TIMING_C)
 
 #include "mbedtls/timing.h"
 
+#if !defined(MBEDTLS_TIMING_ALT)
+
 #if defined(_WIN32) && !defined(EFIX64) && !defined(EFI32)
 
 #include <windows.h>
@@ -333,6 +335,8 @@
 
 #endif /* _WIN32 && !EFIX64 && !EFI32 */
 
+#endif /* !MBEDTLS_TIMING_ALT */
+
 #if defined(MBEDTLS_SELF_TEST)
 
 /* To test mbedtls_net_usleep against our functions */
@@ -501,4 +505,4 @@
 
 #endif /* MBEDTLS_SELF_TEST */
 
-#endif /* MBEDTLS_TIMING_C && !MBEDTLS_TIMING_ALT */
+#endif /* MBEDTLS_TIMING_C */