go-native: use nonarch_libdir
PATCH 1/2 go-native: use nonarch_libdir
From: Dan McGregor <[email protected]>
Setting staging_libdir to libdir caused unnecessary rebuilds of go-native when switching from a multilib build to a non-multilib build. Switch to nonarch_libdir because that's the same on both multilib and regular builds.
--- meta/recipes-devtools/go/go-native.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-devtools/go/go-native.inc +1 -1
@@ -1,6 +1,6 @@ # Use immediate assingment here to get the original (/usr/lib) # instead of the one rewritten by native.bbclass. -nonstaging_libdir := "${libdir}" +nonstaging_libdir := "${nonarch_libdir}" inherit native
Signature · 1 line
2.18.0-dev
PATCH 2/2 systemd: backport fix for newer gpg-error.
From: Dan McGregor <[email protected]>
Fix a #define conflict with new libgpg-error when gcrypt PACKAGECONFIG option is enabled.
--- ...rename-noreturn-into-_noreturn_-8456.patch | 200 ++++++++++++++++++ meta/recipes-core/systemd/systemd_237.bb | 1 + 2 files changed, 201 insertions(+) create mode 100644 meta/recipes-core/systemd/systemd/0001-basic-macros-rename-noreturn-into-_noreturn_-8456.patch
meta/recipes-core/systemd/systemd/0001-basic-macros-rename-noreturn-into-_noreturn_-8456.patch new file +200 -0
@@ -0,0 +1,200 @@ +Upstream-Status: Backport + +From da2c92fd08f6ffb432de16128ff5670c91005e8f Mon Sep 17 00:00:00 2001 +From: Franck Bui <[email protected]> +Date: Thu, 15 Mar 2018 06:23:46 +0100 +Subject: [PATCH] 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. +--- + 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 12ee65a5c..837c7631d 100644 +--- a/src/basic/log.c ++++ b/src/basic/log.c +@@ -808,7 +808,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, +@@ -820,7 +820,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 5b5a25bd6..c057794c1 100644 +--- a/src/basic/log.h ++++ b/src/basic/log.h +@@ -199,7 +199,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, +@@ -208,7 +208,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 89bdd852a..3a6fc6f58 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 dc7c9ef9e..f84debdd5 100644 +--- a/src/basic/process-util.c ++++ b/src/basic/process-util.c +@@ -940,7 +940,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 9fabe4a5b..1a3f3ca11 100644 +--- a/src/basic/process-util.h ++++ b/src/basic/process-util.h +@@ -90,7 +90,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 56200a8fa..484b53d5f 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 3e278bd63..c0761a374 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.18.0-dev +
meta/recipes-core/systemd/systemd_237.bb +1 -0
@@ -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://0001-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"
Signature · 1 line
2.18.0-dev
Re: [PATCH 2/2] systemd: backport fix for newer gpg-error.
Quoted 4 lines · Dan McGregor
From: Dan McGregor <[email protected]>
Fix a #define conflict with new libgpg-error when gcrypt PACKAGECONFIG option is enabled.
Looks like this is a duplicate.
Quoted 229 lines
Signed-off-by Dan McGregor <[email protected]>--- ...rename-noreturn-into-_noreturn_-8456.patch | 200 ++++++++++++++++++ meta/recipes-core/systemd/systemd_237.bb | 1 + 2 files changed, 201 insertions(+) create mode 100644 meta/recipes-core/systemd/systemd/0001-basic-macros-rename-noreturn-into-_noreturn_-8456.patchmeta/recipes-core/systemd/systemd/0001-basic-macros-rename-noreturn-into-_noreturn_-8456.patch new file +200
-0@@ -0,0 +1,200 @@ +Upstream-Status: Backport + +From da2c92fd08f6ffb432de16128ff5670c91005e8f Mon Sep 17 00:00:00 2001 +From: Franck Bui <[email protected]> +Date: Thu, 15 Mar 2018 06:23:46 +0100 +Subject: [PATCH] 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. +--- + 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 12ee65a5c..837c7631d 100644 +--- a/src/basic/log.c ++++ b/src/basic/log.c +@@ -808,7 +808,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, +@@ -820,7 +820,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 5b5a25bd6..c057794c1 100644 +--- a/src/basic/log.h ++++ b/src/basic/log.h +@@ -199,7 +199,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, +@@ -208,7 +208,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 89bdd852a..3a6fc6f58 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 dc7c9ef9e..f84debdd5 100644 +--- a/src/basic/process-util.c ++++ b/src/basic/process-util.c +@@ -940,7 +940,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 9fabe4a5b..1a3f3ca11 100644 +--- a/src/basic/process-util.h ++++ b/src/basic/process-util.h +@@ -90,7 +90,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 56200a8fa..484b53d5f 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 3e278bd63..c0761a374 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.18.0-dev +meta/recipes-core/systemd/systemd_237.bb +1
-1@@ -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://0001-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" --2.18.0-dev
Is that *right* though? Non-arch libdir is for architecture-independent pieces as the name suggests.
Ross
Quoted 34 lines · Dan McGregor
From: Dan McGregor <[email protected]>
Setting
staging_libdirto libdir caused unnecessary rebuilds of go-native when switching from a multilib build to a non-multilib build. Switch tononarch_libdirbecause that's the same on both multilib and regular builds.Signed-off-by Dan McGregor <[email protected]>--- meta/recipes-devtools/go/go-native.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)meta/recipes-devtools/go/go-native.inc +1
-2@@ -1,6 +1,6 @@ # Use immediate assingment here to get the original (/usr/lib) # instead of the one rewritten by native.bbclass. -nonstaging_libdir := "${libdir}" +nonstaging_libdir := "${nonarch_libdir}" inherit native --2.18.0-dev
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Quoted 2 lines · Ross
Is that *right* though? Non-arch libdir is for architecture-independent pieces as the name suggests.
Looking at it again, no. It's not. That was just the first solution that came to my head.
I think the right solution is to use libdir_native, which doesn't change at all, and nonstaging_libdir can go away entirely.
Quoted 40 lines
Ross
Quoted 34 lines · Dan McGregor
From: Dan McGregor <[email protected]>
Setting
staging_libdirto libdir caused unnecessary rebuilds of go-native when switching from a multilib build to a non-multilib build. Switch tononarch_libdirbecause that's the same on both multilib and regular builds.Signed-off-by Dan McGregor <[email protected]>--- meta/recipes-devtools/go/go-native.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)meta/recipes-devtools/go/go-native.inc +1
-2@@ -1,6 +1,6 @@ # Use immediate assingment here to get the original (/usr/lib) # instead of the one rewritten by native.bbclass. -nonstaging_libdir := "${libdir}" +nonstaging_libdir := "${nonarch_libdir}" inherit native --2.18.0-dev
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
PATCH v2 1/1 go-native: use libdir_native
In reply to Dan McGregorFrom: Dan McGregor <[email protected]>
Setting staging_libdir to libdir caused unnecessary rebuilds of go-native when switching from a multilib build to a non-multilib build. Switch to libdir_native because it doesn't change based on target configuration.
--- meta/recipes-devtools/go/go-native.inc | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
meta/recipes-devtools/go/go-native.inc +1 -5
@@ -1,7 +1,3 @@ -# Use immediate assingment here to get the original (/usr/lib) -# instead of the one rewritten by native.bbclass. -nonstaging_libdir := "${libdir}" - inherit native SRC_URI_append = " https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz;name=bootstrap;subdir=go1.4"
@@ -20,7 +16,7 @@ do_configure() { } do_compile() { - export GOROOT_FINAL="${nonstaging_libdir}/go" + export GOROOT_FINAL="${libdir_native}/go" export GOROOT_BOOTSTRAP="${WORKDIR}/go1.4/go" cd src
Signature · 1 line
2.18.0-dev