On Wednesday, May 9, 2018 8:16:08 AM EDT Andrea Galbusera wrote: > When gcrypt support is present in PACKAGECONFIG, build fails due to the bug > reported in [1]. Since this is already solved upstream, this commit > backports the corresponding patch. > > [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=893602 > > Signed-off-by: Andrea Galbusera <giz...@gmail.com>
Thanks Andrea, I can confirm this fixes a build failure we were seeing as well. Mark > --- > ...rename-noreturn-into-_noreturn_-8456.patch | 203 ++++++++++++++++++ > meta/recipes-core/systemd/systemd_237.bb | 1 + > 2 files changed, 204 insertions(+) > create mode 100644 > meta/recipes-core/systemd/systemd/0033-basic-macros-rename-noreturn-into-_n > oreturn_-8456.patch > > diff --git > a/meta/recipes-core/systemd/systemd/0033-basic-macros-rename-noreturn-into- > _noreturn_-8456.patch > b/meta/recipes-core/systemd/systemd/0033-basic-macros-rename-noreturn-into- > _noreturn_-8456.patch new file mode 100644 > index 0000000000..59647b22f8 > --- /dev/null > +++ > b/meta/recipes-core/systemd/systemd/0033-basic-macros-rename-noreturn-into- > _noreturn_-8456.patch @@ -0,0 +1,203 @@ > +From 848e863acc51ecfb0f3955c498874588201d9130 Mon Sep 17 00:00:00 2001 > +From: Franck Bui <f...@suse.com> > +Date: Thu, 15 Mar 2018 06:23:46 +0100 > +Subject: [PATCH] basic/macros: rename noreturn into _noreturn_ (#8456) > +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(-) > + > +Upstream-Status: Backport [https://github.com/systemd/systemd/pull/8456] > + > +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 <stdnoreturn.h> 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 <stdnoreturn.h> 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.17.0 > + > diff --git a/meta/recipes-core/systemd/systemd_237.bb > b/meta/recipes-core/systemd/systemd_237.bb index 1d04796f39..6f59e6064e > 100644 > --- a/meta/recipes-core/systemd/systemd_237.bb > +++ b/meta/recipes-core/systemd/systemd_237.bb > @@ -50,6 +50,7 @@ SRC_URI += "file://touchscreen.rules \ > > file://0030-fix-missing-of-__register_atfork-for-non-glibc-build.patch \ > file://0031-fix-missing-ULONG_LONG_MAX-definition-in-case-of-mus.patch \ > file://0032-memfd.patch \ > + > file://0033-basic-macros-rename-noreturn-into-_noreturn_-8456.patch \ " > SRC_URI_append_qemuall = " > file://0001-core-device.c-Change-the-default-device-timeout-to-2.patch" -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core