diff --git a/0001-basic-macros-rename-noreturn-into-_noreturn_.patch b/0001-basic-macros-rename-noreturn-into-_noreturn_.patch new file mode 100644 index 00000000..0aaaf258 --- /dev/null +++ b/0001-basic-macros-rename-noreturn-into-_noreturn_.patch @@ -0,0 +1,201 @@ +From 24051a17e8df0976b41180a6d50275e7edf3e461 Mon Sep 17 00:00:00 2001 +From: Franck Bui +Date: Wed, 14 Mar 2018 18:00:24 +0100 +Subject: [PATCH 1/1] basic/macros: rename noreturn into _noreturn_ +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +"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. +--- + src/basic/log.c | 4 ++-- + src/basic/log.h | 4 ++-- + src/basic/macro.h | 19 +++++++++---------- + src/basic/process-util.c | 2 +- + src/basic/process-util.h | 2 +- + src/core/main.c | 4 ++-- + src/journal/test-journal-interleaving.c | 2 +- + src/shared/pager.c | 2 +- + src/udev/collect/collect.c | 2 +- + 9 files changed, 20 insertions(+), 21 deletions(-) + +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..d8a6432f6 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); + } +-- +2.16.2 + diff --git a/60-ssd-scheduler.rules b/60-ssd-scheduler.rules new file mode 100644 index 00000000..43aa8ea7 --- /dev/null +++ b/60-ssd-scheduler.rules @@ -0,0 +1,11 @@ +# do not edit this file, it will be overwritten on update + +ACTION!="add", GOTO="ssd_scheduler_end" +SUBSYSTEM!="block", GOTO="ssd_scheduler_end" + +IMPORT{cmdline}="elevator" +ENV{elevator}=="*?", GOTO="ssd_scheduler_end" + +KERNEL=="sd*[!0-9]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline" + +LABEL="ssd_scheduler_end" diff --git a/80-hotplug-cpu-mem.rules b/80-hotplug-cpu-mem.rules new file mode 100644 index 00000000..86a6c272 --- /dev/null +++ b/80-hotplug-cpu-mem.rules @@ -0,0 +1,24 @@ +# do not edit this file, it will be overwritten on update + +# +# Hotplug physical CPU +# +SUBSYSTEM=="cpu", ACTION=="add", TEST=="online", ATTR{online}=="0", ATTR{online}="1" + +# +# Hotplug physical memory. Instances of tmpfs are remounted so their +# size are recalculated. This might be needed if some sizes were +# specified relative to the total amount of memory (boo#869603). For +# now make it simple and remount all tmpfs regardless of how their +# size are specified. It should be handled by the kernel as it has a +# lot of shortcomings anyways (tmpfs mounted by other processes, mount +# namespaces, ...) +# +SUBSYSTEM=="memory", ACTION=="add", PROGRAM=="/usr/bin/systemd-detect-virt", RESULT!="zvm", ATTR{state}=="offline", \ + ATTR{state}="online", \ + RUN+="/bin/sh -c ' \ + while read src dst fs opts unused; do \ + case $fs in \ + tmpfs) mount -o remount \"$dst\" ;; \ + esac \ + done %{buildroot}%{_unitdir}/getty@tty1.service.d/noclear.conf +mkdir %{buildroot}%{_unitdir}/getty@tty1.service.d/ +cat >%{buildroot}%{_unitdir}/getty@tty1.service.d/noclear.conf <%{buildroot}%{_unitdir}/user@0.service.d/nodelagate.conf <%{buildroot}%{_unitdir}/systemd-logind.service.d/nosandbox.conf < %{buildroot}%{_unitdir}/getty@tty1.service.d/noclear.conf +mkdir %{buildroot}%{_unitdir}/getty@tty1.service.d/ +cat >%{buildroot}%{_unitdir}/getty@tty1.service.d/noclear.conf <%{buildroot}%{_unitdir}/user@0.service.d/nodelagate.conf <%{buildroot}%{_unitdir}/systemd-logind.service.d/nosandbox.conf </dev/null 2>&1 - STATE=$? - if [ "$STATE" -gt 0 ]; then - logger "Remount of $i failed with state $STATE" - fi - done -fi