commit 848e863acc51ecfb0f3955c498874588201d9130 Author: Franck Bui Date: Thu Mar 15 06:23:46 2018 +0100 basic/macros: rename noreturn into _noreturn_ (#8456) "noreturn" is reserved and can be used in other header files we include: [ 16s] In file included from /usr/include/gcrypt.h:30:0, [ 16s] from ../src/journal/journal-file.h:26, [ 16s] from ../src/journal/journal-vacuum.c:31: [ 16s] /usr/include/gpg-error.h:1544:46: error: expected ‘,’ or ‘;’ before ‘)’ token [ 16s] void gpgrt_log_bug (const char *fmt, ...) GPGRT_ATTR_NR_PRINTF(1,2); Here we include grcrypt.h (which in turns include gpg-error.h) *after* we "noreturn" was defined in macro.h. diff --git a/src/basic/log.c b/src/basic/log.c index 7a7f2cbec..16a2431c5 100644 --- a/src/basic/log.c +++ b/src/basic/log.c @@ -814,7 +814,7 @@ static void log_assert( log_dispatch_internal(level, 0, file, line, func, NULL, NULL, NULL, NULL, buffer); } -noreturn void log_assert_failed_realm( +_noreturn_ void log_assert_failed_realm( LogRealm realm, const char *text, const char *file, @@ -826,7 +826,7 @@ noreturn void log_assert_failed_realm( abort(); } -noreturn void log_assert_failed_unreachable_realm( +_noreturn_ void log_assert_failed_unreachable_realm( LogRealm realm, const char *text, const char *file, diff --git a/src/basic/log.h b/src/basic/log.h index efcf0f1bf..314be128a 100644 --- a/src/basic/log.h +++ b/src/basic/log.h @@ -186,7 +186,7 @@ int log_dump_internal( char *buffer); /* Logging for various assertions */ -noreturn void log_assert_failed_realm( +_noreturn_ void log_assert_failed_realm( LogRealm realm, const char *text, const char *file, @@ -195,7 +195,7 @@ noreturn void log_assert_failed_realm( #define log_assert_failed(text, ...) \ log_assert_failed_realm(LOG_REALM, (text), __VA_ARGS__) -noreturn void log_assert_failed_unreachable_realm( +_noreturn_ void log_assert_failed_unreachable_realm( LogRealm realm, const char *text, const char *file, diff --git a/src/basic/macro.h b/src/basic/macro.h index 95be63a20..8911edfc4 100644 --- a/src/basic/macro.h +++ b/src/basic/macro.h @@ -53,6 +53,15 @@ #else #define _fallthrough_ #endif +/* Define C11 noreturn without and even on older gcc + * compiler versions */ +#ifndef _noreturn_ +#if __STDC_VERSION__ >= 201112L +#define _noreturn_ _Noreturn +#else +#define _noreturn_ __attribute__((noreturn)) +#endif +#endif /* Temporarily disable some warnings */ #define DISABLE_WARNING_DECLARATION_AFTER_STATEMENT \ @@ -414,16 +423,6 @@ static inline unsigned long ALIGN_POWER2(unsigned long u) { #endif #endif -/* Define C11 noreturn without and even on older gcc - * compiler versions */ -#ifndef noreturn -#if __STDC_VERSION__ >= 201112L -#define noreturn _Noreturn -#else -#define noreturn __attribute__((noreturn)) -#endif -#endif - #define DEFINE_TRIVIAL_CLEANUP_FUNC(type, func) \ static inline void func##p(type *p) { \ if (*p) \ diff --git a/src/basic/process-util.c b/src/basic/process-util.c index aa9846db5..e6120af5b 100644 --- a/src/basic/process-util.c +++ b/src/basic/process-util.c @@ -987,7 +987,7 @@ bool is_main_thread(void) { return cached > 0; } -noreturn void freeze(void) { +_noreturn_ void freeze(void) { log_close(); diff --git a/src/basic/process-util.h b/src/basic/process-util.h index 93029e36e..5170adec7 100644 --- a/src/basic/process-util.h +++ b/src/basic/process-util.h @@ -91,7 +91,7 @@ int pid_from_same_root_fs(pid_t pid); bool is_main_thread(void); -noreturn void freeze(void); +_noreturn_ void freeze(void); bool oom_score_adjust_is_valid(int oa); diff --git a/src/core/main.c b/src/core/main.c index 076846a41..4b2d14923 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -141,7 +141,7 @@ static uint64_t arg_default_tasks_max = UINT64_MAX; static sd_id128_t arg_machine_id = {}; static EmergencyAction arg_cad_burst_action = EMERGENCY_ACTION_REBOOT_FORCE; -noreturn static void freeze_or_reboot(void) { +_noreturn_ static void freeze_or_reboot(void) { if (arg_crash_reboot) { log_notice("Rebooting in 10s..."); @@ -156,7 +156,7 @@ noreturn static void freeze_or_reboot(void) { freeze(); } -noreturn static void crash(int sig) { +_noreturn_ static void crash(int sig) { struct sigaction sa; pid_t pid; diff --git a/src/journal/test-journal-interleaving.c b/src/journal/test-journal-interleaving.c index 5a88b2774..d87bdbdd3 100644 --- a/src/journal/test-journal-interleaving.c +++ b/src/journal/test-journal-interleaving.c @@ -37,7 +37,7 @@ static bool arg_keep = false; -noreturn static void log_assert_errno(const char *text, int error, const char *file, int line, const char *func) { +_noreturn_ static void log_assert_errno(const char *text, int error, const char *file, int line, const char *func) { log_internal(LOG_CRIT, error, file, line, func, "'%s' failed at %s:%u (%s): %m", text, file, line, func); abort(); diff --git a/src/shared/pager.c b/src/shared/pager.c index 75db3c985..681af9c40 100644 --- a/src/shared/pager.c +++ b/src/shared/pager.c @@ -47,7 +47,7 @@ static int stored_stderr = -1; static bool stdout_redirected = false; static bool stderr_redirected = false; -noreturn static void pager_fallback(void) { +_noreturn_ static void pager_fallback(void) { int r; r = copy_bytes(STDIN_FILENO, STDOUT_FILENO, (uint64_t) -1, 0); diff --git a/src/udev/collect/collect.c b/src/udev/collect/collect.c index 2821640e9..c8fa47b3d 100644 --- a/src/udev/collect/collect.c +++ b/src/udev/collect/collect.c @@ -58,7 +58,7 @@ static inline struct _mate *node_to_mate(struct udev_list_node *node) return container_of(node, struct _mate, node); } -noreturn static void sig_alrm(int signo) +_noreturn_ static void sig_alrm(int signo) { exit(4); } From eb50b6d936c474f5bc2974c059f6432222af4de4 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Thu, 22 Mar 2018 12:50:45 +0100 Subject: [PATCH] Fix linux/fs.h and sys/mount.h collisions * (kernel-headers) linux/fs.h and (glibc) sys/mount.h contains MS_* constants and because it's without #ifdefs you cannot include the both files together in the same code * (systemd) src/basic/missing.h contains another copy of MS_* constants The patch removes local systemd MS_* fallbacks, cleanup fs.h and mount.h include. Signed-off-by: Karel Zak --- src/basic/missing.h | 40 ---------------------------------------- src/core/load-fragment.c | 1 - src/shared/bus-unit-util.c | 2 ++ 3 files changed, 2 insertions(+), 41 deletions(-) diff --git a/src/basic/missing.h b/src/basic/missing.h index 567aea8da9c..6802dd27c7b 100644 --- a/src/basic/missing.h +++ b/src/basic/missing.h @@ -524,46 +524,6 @@ struct btrfs_ioctl_quota_ctl_args { #define OCFS2_SUPER_MAGIC 0x7461636f #endif -#ifndef MS_MOVE -#define MS_MOVE 8192 -#endif - -#ifndef MS_REC -#define MS_REC 16384 -#endif - -#ifndef MS_PRIVATE -#define MS_PRIVATE (1<<18) -#endif - -#ifndef MS_REC -#define MS_REC (1<<19) -#endif - -#ifndef MS_SHARED -#define MS_SHARED (1<<20) -#endif - -#ifndef MS_RELATIME -#define MS_RELATIME (1<<21) -#endif - -#ifndef MS_KERNMOUNT -#define MS_KERNMOUNT (1<<22) -#endif - -#ifndef MS_I_VERSION -#define MS_I_VERSION (1<<23) -#endif - -#ifndef MS_STRICTATIME -#define MS_STRICTATIME (1<<24) -#endif - -#ifndef MS_LAZYTIME -#define MS_LAZYTIME (1<<25) -#endif - #ifndef SCM_SECURITY #define SCM_SECURITY 0x03 #endif diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c index 94605ab0d02..49f8a8c6da1 100644 --- a/src/core/load-fragment.c +++ b/src/core/load-fragment.c @@ -21,7 +21,6 @@ #include #include -#include #include #if HAVE_SECCOMP #include diff --git a/src/shared/bus-unit-util.c b/src/shared/bus-unit-util.c index 23e05daf48c..6e7ea10e714 100644 --- a/src/shared/bus-unit-util.c +++ b/src/shared/bus-unit-util.c @@ -52,6 +52,8 @@ #include "utf8.h" #include "util.h" +#include + int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u) { assert(message); assert(u);