core: Fix-up the OSMO_DEPRECATED for older compilers

The code started to use #if defined(...) but the value was always
for GCC/Clang. The only difference was that for older compilers
the value of the definition was 0. Conditionally define these
macros.
diff --git a/include/osmocom/core/defs.h b/include/osmocom/core/defs.h
index 917a8c3a..ca12a80 100644
--- a/include/osmocom/core/defs.h
+++ b/include/osmocom/core/defs.h
@@ -27,11 +27,17 @@
 /*! \brief Set the deprecated attribute with a message.
  */
 #if defined(__clang__)
-# define _OSMO_HAS_ATTRIBUTE_DEPRECATED __has_attribute(deprecated)
-# define _OSMO_HAS_ATTRIBUTE_DEPRECATED_WITH_MESSAGE __has_extension(attribute_deprecated_with_message)
+# if __has_attribute(deprecated)
+#   define _OSMO_HAS_ATTRIBUTE_DEPRECATED 1
+# endif
+# if __has_extension(attribute_deprecated_with_message)
+#   define _OSMO_HAS_ATTRIBUTE_DEPRECATED_WITH_MESSAGE 1
+# endif
 #elif defined(__GNUC__)
 # define _OSMO_HAS_ATTRIBUTE_DEPRECATED 1
-# define _OSMO_HAS_ATTRIBUTE_DEPRECATED_WITH_MESSAGE OSMO_GNUC_PREREQ(4,5)
+# if OSMO_GNUC_PREREQ(4,5)
+#   define _OSMO_HAS_ATTRIBUTE_DEPRECATED_WITH_MESSAGE 1
+# endif
 #endif
 
 #if defined(_OSMO_HAS_ATTRIBUTE_DEPRECATED_WITH_MESSAGE)