Fix: global logging symbols defined multiple times
[babeltrace.git] / include / babeltrace / logging-internal.h
index 382e8b80e0f297958ac655bc2ee30f4148526660..ee93660fa677395d9e75f699274962ee0915c463 100644 (file)
  * corresponding BT_LOG_DEFINE_XXX macro MUST be used exactly once somewhere.
  * Otherwise build will fail with link error (undefined symbol).
  */
-#define BT_LOG_DEFINE_TAG_PREFIX const char *_bt_log_tag_prefix
-#define BT_LOG_DEFINE_GLOBAL_FORMAT bt_log_format _bt_log_global_format
-#define BT_LOG_DEFINE_GLOBAL_OUTPUT bt_log_output _bt_log_global_output
-#define BT_LOG_DEFINE_GLOBAL_OUTPUT_LEVEL int _bt_log_global_output_lvl
+#define BT_LOG_DEFINE_TAG_PREFIX BT_HIDDEN const char *_bt_log_tag_prefix
+#define BT_LOG_DEFINE_GLOBAL_FORMAT BT_HIDDEN bt_log_format _bt_log_global_format
+#define BT_LOG_DEFINE_GLOBAL_OUTPUT BT_HIDDEN bt_log_output _bt_log_global_output
+#define BT_LOG_DEFINE_GLOBAL_OUTPUT_LEVEL BT_HIDDEN int _bt_log_global_output_lvl
 
 /* Pointer to global format options. Direct modification is not allowed. Use
  * bt_log_set_mem_width() instead. Could be used to initialize bt_log_spec
@@ -837,25 +837,12 @@ void _bt_log_write_mem_aux(
                        } _BT_LOG_ONCE
 #endif
 
-#if (_POSIX_C_SOURCE >= 200112L) && !  _GNU_SOURCE
-       /* XSI-compliant version of strerror_r(). */
-       #define BT_LOG_WRITE_ERRNO(lvl, tag, _msg, _fmt, args...) \
-                       do { \
-                               char error_str[BUFSIZ]; \
-                               memset(error_str, 0, sizeof(error_str)); \
-                               (void) strerror_r(errno, error_str, sizeof(error_str)); \
-                               BT_LOG_WRITE(lvl, tag, _msg ": %s" _fmt, error_str, ## args); \
-                       } _BT_LOG_ONCE
-#else
-       /* GNU version of strerror_r(). */
-       #define BT_LOG_WRITE_ERRNO(lvl, tag, _msg, _fmt, args...) \
-                       do { \
-                               char error_str_buf[BUFSIZ]; \
-                               char *error_str; \
-                               error_str = strerror_r(errno, error_str_buf, sizeof(error_str_buf)); \
-                               BT_LOG_WRITE(lvl, tag, _msg ": %s" _fmt, error_str, ## args); \
-                       } _BT_LOG_ONCE
-#endif
+#define BT_LOG_WRITE_ERRNO(lvl, tag, _msg, _fmt, args...) \
+               do { \
+                       const char *error_str; \
+                       error_str = g_strerror(errno); \
+                       BT_LOG_WRITE(lvl, tag, _msg ": %s" _fmt, error_str, ## args); \
+               } _BT_LOG_ONCE
 
 static _BT_LOG_INLINE void _bt_log_unused(const int dummy, ...) {(void)dummy;}
 
This page took 0.024629 seconds and 4 git commands to generate.