btrfs-progs: build: Do not use cp -a to install library links
[platform/upstream/btrfs-progs.git] / messages.h
index a308b4b..2b97aa0 100644 (file)
 #ifndef __BTRFS_MESSAGES_H__
 #define __BTRFS_MESSAGES_H__
 
-#if DEBUG_VERBOSE_ERROR
+#ifdef DEBUG_VERBOSE_ERROR
 #define        PRINT_VERBOSE_ERROR     fprintf(stderr, "%s:%d:", __FILE__, __LINE__)
 #else
 #define PRINT_VERBOSE_ERROR
 #endif
 
-#if DEBUG_TRACE_ON_ERROR
+#ifdef DEBUG_TRACE_ON_ERROR
 #define PRINT_TRACE_ON_ERROR   print_trace()
 #else
 #define PRINT_TRACE_ON_ERROR
 #endif
 
-#if DEBUG_ABORT_ON_ERROR
+#ifdef DEBUG_ABORT_ON_ERROR
 #define DO_ABORT_ON_ERROR      abort()
 #else
 #define DO_ABORT_ON_ERROR
                        DO_ABORT_ON_ERROR;                              \
        } while (0)
 
+#define error_btrfs_util(err)                                          \
+       do {                                                            \
+               const char *errno_str = strerror(errno);                \
+               const char *lib_str = btrfs_util_strerror(err);         \
+               PRINT_TRACE_ON_ERROR;                                   \
+               PRINT_VERBOSE_ERROR;                                    \
+               if (lib_str && strcmp(errno_str, lib_str) != 0)         \
+                       __btrfs_error("%s: %s", lib_str, errno_str);    \
+               else                                                    \
+                       __btrfs_error("%s", errno_str);                 \
+               DO_ABORT_ON_ERROR;                                      \
+       } while (0)
+
 #define warning(fmt, ...)                                              \
        do {                                                            \
                PRINT_TRACE_ON_ERROR;                                   \