add configure check for broken gcc 4.9.0 and possibly other versions
[musl] / include / syslog.h
index e0d86c0..71dbd99 100644 (file)
@@ -1,10 +1,12 @@
-#ifndef _SYS_SYSLOG_H
-#define _SYS_SYSLOG_H
+#ifndef _SYSLOG_H
+#define _SYSLOG_H
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+#include <features.h>
+
 #define LOG_EMERG   0
 #define LOG_ALERT   1
 #define LOG_CRIT    2
@@ -19,7 +21,7 @@ extern "C" {
 #define        LOG_MAKEPRI(f, p) (((f)<<3)|(p))
 
 #define LOG_MASK(p) (1<<(p))
-#define LOG_UPTO(p) ((1<<(p)+1)-1)
+#define LOG_UPTO(p) ((1<<((p)+1))-1)
 
 #define LOG_KERN     (0<<3)
 #define LOG_USER     (1<<3)
@@ -59,7 +61,8 @@ void openlog (const char *, int, int);
 int setlogmask (int);
 void syslog (int, const char *, ...);
 
-#if defined(_GNU_SOURCE)
+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+#define _PATH_LOG "/dev/log"
 #define __NEED_va_list
 #include <bits/alltypes.h>
 void vsyslog (int, const char *, va_list);
@@ -79,7 +82,7 @@ typedef struct {
        { "emerg", LOG_EMERG }, { "err", LOG_ERR }, { "error", LOG_ERR }, \
        { "info", LOG_INFO }, { "none", INTERNAL_NOPRI }, \
        { "notice", LOG_NOTICE }, { "panic", LOG_EMERG }, \
-       { "warn", LOG_WARNING }, { "warning", LOG_WARNING }, { NULL, -1 } })
+       { "warn", LOG_WARNING }, { "warning", LOG_WARNING }, { 0, -1 } })
 #define facilitynames ((CODE *)(const struct __CODE []){ \
        { "auth", LOG_AUTH }, { "authpriv", LOG_AUTHPRIV }, \
        { "cron", LOG_CRON }, { "daemon", LOG_DAEMON }, { "ftp", LOG_FTP }, \
@@ -90,7 +93,7 @@ typedef struct {
        { "local0", LOG_LOCAL0 }, { "local1", LOG_LOCAL1 }, \
        { "local2", LOG_LOCAL2 }, { "local3", LOG_LOCAL3 }, \
        { "local4", LOG_LOCAL4 }, { "local5", LOG_LOCAL5 }, \
-       { "local6", LOG_LOCAL6 }, { "local7", LOG_LOCAL7 }, { NULL, -1 } })
+       { "local6", LOG_LOCAL6 }, { "local7", LOG_LOCAL7 }, { 0, -1 } })
 #endif
 #endif