* [Buildroot] [PATCH 0/2] eudev fixes (PowerPC)
@ 2014-04-02 14:42 Eric Le Bihan
2014-04-02 14:42 ` [Buildroot] [PATCH 1/2] eudev: fix redefinition of usec_t and nsec_t Eric Le Bihan
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Eric Le Bihan @ 2014-04-02 14:42 UTC (permalink / raw)
To: buildroot
Hi!
Here are some patches to fix compilation of eudev for PowerPC when using an
external toolchain.
Best regards,
ELB
Eric Le Bihan (2):
eudev: fix redefinition of usec_t and nsec_t.
eudev: only use pragma diagnostics if GCC supports it.
...dev-Fix-redefinition-of-usec_t-and-nsec_t.patch | 526 ++++++++++++++++++++
...y-use-pragma-for-ignoring-diagnostics-if-.patch | 37 ++
2 files changed, 563 insertions(+)
create mode 100644 package/eudev/eudev-0002-libudev-Fix-redefinition-of-usec_t-and-nsec_t.patch
create mode 100644 package/eudev/eudev-0003-libudev-Only-use-pragma-for-ignoring-diagnostics-if-.patch
--
1.7.9.5
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH 1/2] eudev: fix redefinition of usec_t and nsec_t.
2014-04-02 14:42 [Buildroot] [PATCH 0/2] eudev fixes (PowerPC) Eric Le Bihan
@ 2014-04-02 14:42 ` Eric Le Bihan
2014-04-02 14:42 ` [Buildroot] [PATCH 2/2] eudev: only use pragma diagnostics if GCC supports it Eric Le Bihan
2014-04-03 19:33 ` [Buildroot] [PATCH 0/2] eudev fixes (PowerPC) Thomas Petazzoni
2 siblings, 0 replies; 4+ messages in thread
From: Eric Le Bihan @ 2014-04-02 14:42 UTC (permalink / raw)
To: buildroot
usec_t and nsec_t are defined twice (src/libudev/{util.h,path-util.h}).
This raises an error when using GCC 4.5, but not with later versions!
This patch fixes the issue by gathering the time-related functions and
definitions to time-util.[ch], as in upstream systemd.
This patch has been sent to upstream.
Fixes http://autobuild.buildroot.net/results/060/0605f279abfdfc837f6973f2898ed7ee39f2b8d1/
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
...dev-Fix-redefinition-of-usec_t-and-nsec_t.patch | 526 ++++++++++++++++++++
1 file changed, 526 insertions(+)
create mode 100644 package/eudev/eudev-0002-libudev-Fix-redefinition-of-usec_t-and-nsec_t.patch
diff --git a/package/eudev/eudev-0002-libudev-Fix-redefinition-of-usec_t-and-nsec_t.patch b/package/eudev/eudev-0002-libudev-Fix-redefinition-of-usec_t-and-nsec_t.patch
new file mode 100644
index 0000000..e53b2c3
--- /dev/null
+++ b/package/eudev/eudev-0002-libudev-Fix-redefinition-of-usec_t-and-nsec_t.patch
@@ -0,0 +1,526 @@
+From dc1aabc85f1ceda5799fe39225fa76f2f77354ea Mon Sep 17 00:00:00 2001
+From: Eric Le Bihan <eric.le.bihan.dev@free.fr>
+Date: Wed, 2 Apr 2014 11:51:40 +0200
+Subject: [PATCH] libudev: Fix redefinition of usec_t and nsec_t.
+
+The type definitions usec_t and nsec_t are defined twice: in
+path-util.h and util.h.
+
+time-util.h and time-util.c now gather the time-related functions and
+definitions (as in upstream systemd).
+
+Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
+---
+ src/libudev/Makefile.am | 2 +
+ src/libudev/libudev-private.h | 1 +
+ src/libudev/log.c | 1 +
+ src/libudev/path-util.h | 4 +-
+ src/libudev/time-util.c | 157 +++++++++++++++++++++++++++++++++++++++++
+ src/libudev/time-util.h | 56 +++++++++++++++
+ src/libudev/util.c | 132 +---------------------------------
+ src/libudev/util.h | 39 ----------
+ 8 files changed, 219 insertions(+), 173 deletions(-)
+ create mode 100644 src/libudev/time-util.c
+ create mode 100644 src/libudev/time-util.h
+
+diff --git a/src/libudev/Makefile.am b/src/libudev/Makefile.am
+index 84d018a..683407a 100644
+--- a/src/libudev/Makefile.am
++++ b/src/libudev/Makefile.am
+@@ -47,6 +47,7 @@ libudev_la_SOURCES =\
+ strbuf.c \
+ strv.c \
+ strxcpyx.c \
++ time-util.c \
+ util.c \
+ utf8.c
+
+@@ -73,6 +74,7 @@ noinst_HEADERS = \
+ strbuf.h \
+ strv.h \
+ strxcpyx.h \
++ time-util.h \
+ util.h \
+ utf8.h
+
+diff --git a/src/libudev/libudev-private.h b/src/libudev/libudev-private.h
+index af0f125..511ec5e 100644
+--- a/src/libudev/libudev-private.h
++++ b/src/libudev/libudev-private.h
+@@ -27,6 +27,7 @@
+
+ #include "libudev.h"
+ #include "macro.h"
++#include "time-util.h"
+ #include "util.h"
+ #include "mkdir.h"
+ #include "strxcpyx.h"
+diff --git a/src/libudev/log.c b/src/libudev/log.c
+index 73bba69..a4e1bce 100644
+--- a/src/libudev/log.c
++++ b/src/libudev/log.c
+@@ -30,6 +30,7 @@
+ #include <string.h>
+
+ #include "log.h"
++#include "time-util.h"
+ #include "util.h"
+ #include "missing.h"
+ #include "macro.h"
+diff --git a/src/libudev/path-util.h b/src/libudev/path-util.h
+index eea7589..8e55131 100644
+--- a/src/libudev/path-util.h
++++ b/src/libudev/path-util.h
+@@ -18,10 +18,8 @@
+ ***/
+
+ #include <stdbool.h>
+-#include <inttypes.h>
+
+-typedef uint64_t usec_t;
+-typedef uint64_t nsec_t;
++#include "time-util.h"
+
+ char* path_get_file_name(const char *p) _pure_;
+ int path_get_parent(const char *path, char **parent);
+diff --git a/src/libudev/time-util.c b/src/libudev/time-util.c
+new file mode 100644
+index 0000000..f6c24e3
+--- /dev/null
++++ b/src/libudev/time-util.c
+@@ -0,0 +1,157 @@
++/***
++ This file is part of eudev, forked from systemd.
++
++ Copyright 2010 Lennart Poettering
++
++ systemd is free software; you can redistribute it and/or modify it
++ under the terms of the GNU Lesser General Public License as published by
++ the Free Software Foundation; either version 2.1 of the License, or
++ (at your option) any later version.
++
++ systemd is distributed in the hope that it will be useful, but
++ WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public License
++ along with systemd; If not, see <http://www.gnu.org/licenses/>.
++***/
++
++#include <stdlib.h>
++#include <stdio.h>
++#include <stdbool.h>
++#include <time.h>
++
++#include "time-util.h"
++#include "macro.h"
++
++usec_t now(clockid_t clock_id) {
++ struct timespec ts;
++
++ assert_se(clock_gettime(clock_id, &ts) == 0);
++
++ return timespec_load(&ts);
++}
++
++usec_t timespec_load(const struct timespec *ts) {
++ assert(ts);
++
++ if (ts->tv_sec == (time_t) -1 &&
++ ts->tv_nsec == (long) -1)
++ return (usec_t) -1;
++
++ if ((usec_t) ts->tv_sec > (UINT64_MAX - (ts->tv_nsec / NSEC_PER_USEC)) / USEC_PER_SEC)
++ return (usec_t) -1;
++
++ return
++ (usec_t) ts->tv_sec * USEC_PER_SEC +
++ (usec_t) ts->tv_nsec / NSEC_PER_USEC;
++}
++
++char *format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy) {
++ static const struct {
++ const char *suffix;
++ usec_t usec;
++ } table[] = {
++ { "y", USEC_PER_YEAR },
++ { "month", USEC_PER_MONTH },
++ { "w", USEC_PER_WEEK },
++ { "d", USEC_PER_DAY },
++ { "h", USEC_PER_HOUR },
++ { "min", USEC_PER_MINUTE },
++ { "s", USEC_PER_SEC },
++ { "ms", USEC_PER_MSEC },
++ { "us", 1 },
++ };
++
++ unsigned i;
++ char *p = buf;
++ bool something = false;
++
++ assert(buf);
++ assert(l > 0);
++
++ if (t == (usec_t) -1)
++ return NULL;
++
++ if (t <= 0) {
++ snprintf(p, l, "0");
++ p[l-1] = 0;
++ return p;
++ }
++
++ /* The result of this function can be parsed with parse_sec */
++
++ for (i = 0; i < ELEMENTSOF(table); i++) {
++ int k;
++ size_t n;
++ bool done = false;
++ usec_t a, b;
++
++ if (t <= 0)
++ break;
++
++ if (t < accuracy && something)
++ break;
++
++ if (t < table[i].usec)
++ continue;
++
++ if (l <= 1)
++ break;
++
++ a = t / table[i].usec;
++ b = t % table[i].usec;
++
++ /* Let's see if we should shows this in dot notation */
++ if (t < USEC_PER_MINUTE && b > 0) {
++ usec_t cc;
++ int j;
++
++ j = 0;
++ for (cc = table[i].usec; cc > 1; cc /= 10)
++ j++;
++
++ for (cc = accuracy; cc > 1; cc /= 10) {
++ b /= 10;
++ j--;
++ }
++
++ if (j > 0) {
++ k = snprintf(p, l,
++ "%s%llu.%0*llu%s",
++ p > buf ? " " : "",
++ (unsigned long long) a,
++ j,
++ (unsigned long long) b,
++ table[i].suffix);
++
++ t = 0;
++ done = true;
++ }
++ }
++
++ /* No? Then let's show it normally */
++ if (!done) {
++ k = snprintf(p, l,
++ "%s%llu%s",
++ p > buf ? " " : "",
++ (unsigned long long) a,
++ table[i].suffix);
++
++ t = b;
++ }
++
++ n = MIN((size_t) k, l);
++
++ l -= n;
++ p += n;
++
++ something = true;
++ }
++
++ *p = 0;
++
++ return buf;
++}
++
+diff --git a/src/libudev/time-util.h b/src/libudev/time-util.h
+new file mode 100644
+index 0000000..0f7f696
+--- /dev/null
++++ b/src/libudev/time-util.h
+@@ -0,0 +1,56 @@
++/***
++ This file is part of eudev, forked from systemd.
++
++ Copyright 2010 Lennart Poettering
++
++ systemd is free software; you can redistribute it and/or modify it
++ under the terms of the GNU Lesser General Public License as published by
++ the Free Software Foundation; either version 2.1 of the License, or
++ (at your option) any later version.
++
++ systemd is distributed in the hope that it will be useful, but
++ WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public License
++ along with systemd; If not, see <http://www.gnu.org/licenses/>.
++***/
++
++#pragma once
++
++#include <inttypes.h>
++
++typedef uint64_t usec_t;
++typedef uint64_t nsec_t;
++
++typedef struct dual_timestamp {
++ usec_t realtime;
++ usec_t monotonic;
++} dual_timestamp;
++
++#define MSEC_PER_SEC 1000ULL
++#define USEC_PER_SEC 1000000ULL
++#define USEC_PER_MSEC 1000ULL
++#define NSEC_PER_SEC 1000000000ULL
++#define NSEC_PER_MSEC 1000000ULL
++#define NSEC_PER_USEC 1000ULL
++
++#define USEC_PER_MINUTE (60ULL*USEC_PER_SEC)
++#define NSEC_PER_MINUTE (60ULL*NSEC_PER_SEC)
++#define USEC_PER_HOUR (60ULL*USEC_PER_MINUTE)
++#define NSEC_PER_HOUR (60ULL*NSEC_PER_MINUTE)
++#define USEC_PER_DAY (24ULL*USEC_PER_HOUR)
++#define NSEC_PER_DAY (24ULL*NSEC_PER_HOUR)
++#define USEC_PER_WEEK (7ULL*USEC_PER_DAY)
++#define NSEC_PER_WEEK (7ULL*NSEC_PER_DAY)
++#define USEC_PER_MONTH (2629800ULL*USEC_PER_SEC)
++#define NSEC_PER_MONTH (2629800ULL*NSEC_PER_SEC)
++#define USEC_PER_YEAR (31557600ULL*USEC_PER_SEC)
++#define NSEC_PER_YEAR (31557600ULL*NSEC_PER_SEC)
++
++#define FORMAT_TIMESPAN_MAX 64
++
++usec_t now(clockid_t clock);
++usec_t timespec_load(const struct timespec *ts);
++char *format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy);
+diff --git a/src/libudev/util.c b/src/libudev/util.c
+index a0d7cac..4796505 100644
+--- a/src/libudev/util.c
++++ b/src/libudev/util.c
+@@ -102,136 +102,6 @@ bool streq_ptr(const char *a, const char *b) {
+ return false;
+ }
+
+-usec_t now(clockid_t clock_id) {
+- struct timespec ts;
+-
+- assert_se(clock_gettime(clock_id, &ts) == 0);
+-
+- return timespec_load(&ts);
+-}
+-
+-usec_t timespec_load(const struct timespec *ts) {
+- assert(ts);
+-
+- if (ts->tv_sec == (time_t) -1 &&
+- ts->tv_nsec == (long) -1)
+- return (usec_t) -1;
+-
+- if ((usec_t) ts->tv_sec > (UINT64_MAX - (ts->tv_nsec / NSEC_PER_USEC)) / USEC_PER_SEC)
+- return (usec_t) -1;
+-
+- return
+- (usec_t) ts->tv_sec * USEC_PER_SEC +
+- (usec_t) ts->tv_nsec / NSEC_PER_USEC;
+-}
+-
+-char *format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy) {
+- static const struct {
+- const char *suffix;
+- usec_t usec;
+- } table[] = {
+- { "y", USEC_PER_YEAR },
+- { "month", USEC_PER_MONTH },
+- { "w", USEC_PER_WEEK },
+- { "d", USEC_PER_DAY },
+- { "h", USEC_PER_HOUR },
+- { "min", USEC_PER_MINUTE },
+- { "s", USEC_PER_SEC },
+- { "ms", USEC_PER_MSEC },
+- { "us", 1 },
+- };
+-
+- unsigned i;
+- char *p = buf;
+- bool something = false;
+-
+- assert(buf);
+- assert(l > 0);
+-
+- if (t == (usec_t) -1)
+- return NULL;
+-
+- if (t <= 0) {
+- snprintf(p, l, "0");
+- p[l-1] = 0;
+- return p;
+- }
+-
+- /* The result of this function can be parsed with parse_sec */
+-
+- for (i = 0; i < ELEMENTSOF(table); i++) {
+- int k;
+- size_t n;
+- bool done = false;
+- usec_t a, b;
+-
+- if (t <= 0)
+- break;
+-
+- if (t < accuracy && something)
+- break;
+-
+- if (t < table[i].usec)
+- continue;
+-
+- if (l <= 1)
+- break;
+-
+- a = t / table[i].usec;
+- b = t % table[i].usec;
+-
+- /* Let's see if we should shows this in dot notation */
+- if (t < USEC_PER_MINUTE && b > 0) {
+- usec_t cc;
+- int j;
+-
+- j = 0;
+- for (cc = table[i].usec; cc > 1; cc /= 10)
+- j++;
+-
+- for (cc = accuracy; cc > 1; cc /= 10) {
+- b /= 10;
+- j--;
+- }
+-
+- if (j > 0) {
+- k = snprintf(p, l,
+- "%s%llu.%0*llu%s",
+- p > buf ? " " : "",
+- (unsigned long long) a,
+- j,
+- (unsigned long long) b,
+- table[i].suffix);
+-
+- t = 0;
+- done = true;
+- }
+- }
+-
+- /* No? Then let's show it normally */
+- if (!done) {
+- k = snprintf(p, l,
+- "%s%llu%s",
+- p > buf ? " " : "",
+- (unsigned long long) a,
+- table[i].suffix);
+-
+- t = b;
+- }
+-
+- n = MIN((size_t) k, l);
+-
+- l -= n;
+- p += n;
+-
+- something = true;
+- }
+-
+- *p = 0;
+-
+- return buf;
+-}
+-
+ char* endswith(const char *s, const char *postfix) {
+ size_t sl, pl;
+
+@@ -826,7 +696,7 @@ int execute_command(const char *command, char *const argv[])
+ } else
+ log_debug("%s exited successfully.", command);
+
+- return si.si_status;
++ return si.si_status;
+
+ }
+ }
+diff --git a/src/libudev/util.h b/src/libudev/util.h
+index 33e9efb..6510237 100644
+--- a/src/libudev/util.h
++++ b/src/libudev/util.h
+@@ -33,47 +33,12 @@
+
+ #include "macro.h"
+
+-/* Note: the time definitions are from upstream's
+- * src/shared/time-util.h which I have put here
+- * for now. We may need to beak these out later.
+- * <blueness@gentoo.org>
+- */
+-typedef uint64_t usec_t;
+-typedef uint64_t nsec_t;
+-
+-typedef struct dual_timestamp {
+- usec_t realtime;
+- usec_t monotonic;
+-} dual_timestamp;
+-
+ union dirent_storage {
+ struct dirent de;
+ uint8_t storage[offsetof(struct dirent, d_name) +
+ ((NAME_MAX + 1 + sizeof(long)) & ~(sizeof(long) - 1))];
+ };
+
+-#define MSEC_PER_SEC 1000ULL
+-#define USEC_PER_SEC 1000000ULL
+-#define USEC_PER_MSEC 1000ULL
+-#define NSEC_PER_SEC 1000000000ULL
+-#define NSEC_PER_MSEC 1000000ULL
+-#define NSEC_PER_USEC 1000ULL
+-
+-#define USEC_PER_MINUTE (60ULL*USEC_PER_SEC)
+-#define NSEC_PER_MINUTE (60ULL*NSEC_PER_SEC)
+-#define USEC_PER_HOUR (60ULL*USEC_PER_MINUTE)
+-#define NSEC_PER_HOUR (60ULL*NSEC_PER_MINUTE)
+-#define USEC_PER_DAY (24ULL*USEC_PER_HOUR)
+-#define NSEC_PER_DAY (24ULL*NSEC_PER_HOUR)
+-#define USEC_PER_WEEK (7ULL*USEC_PER_DAY)
+-#define NSEC_PER_WEEK (7ULL*NSEC_PER_DAY)
+-#define USEC_PER_MONTH (2629800ULL*USEC_PER_SEC)
+-#define NSEC_PER_MONTH (2629800ULL*NSEC_PER_SEC)
+-#define USEC_PER_YEAR (31557600ULL*USEC_PER_SEC)
+-#define NSEC_PER_YEAR (31557600ULL*NSEC_PER_SEC)
+-
+-#define FORMAT_TIMESPAN_MAX 64
+-
+ /* What is interpreted as whitespace? */
+ #define WHITESPACE " \t\n\r"
+ #define NEWLINE "\n\r"
+@@ -93,10 +58,6 @@ union dirent_storage {
+ #define ANSI_HIGHLIGHT_OFF "\x1B[0m"
+ #define ANSI_ERASE_TO_END_OF_LINE "\x1B[K"
+
+-usec_t now(clockid_t clock);
+-usec_t timespec_load(const struct timespec *ts);
+-char *format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy);
+-
+ size_t page_size(void);
+ #define PAGE_ALIGN(l) ALIGN_TO((l), page_size())
+
+--
+1.7.9.5
+
--
1.7.9.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH 2/2] eudev: only use pragma diagnostics if GCC supports it.
2014-04-02 14:42 [Buildroot] [PATCH 0/2] eudev fixes (PowerPC) Eric Le Bihan
2014-04-02 14:42 ` [Buildroot] [PATCH 1/2] eudev: fix redefinition of usec_t and nsec_t Eric Le Bihan
@ 2014-04-02 14:42 ` Eric Le Bihan
2014-04-03 19:33 ` [Buildroot] [PATCH 0/2] eudev fixes (PowerPC) Thomas Petazzoni
2 siblings, 0 replies; 4+ messages in thread
From: Eric Le Bihan @ 2014-04-02 14:42 UTC (permalink / raw)
To: buildroot
eudev uses GCC pragma diagnostics [1] for some of its logging functions,
to circumvent -Wformat-nonliteral. This feature is only available in GCC
>= 4.6.
The external toolchains for some architectures (PowerPC, SuperH) are based on
GCC 4.5. So eudev will not compile when using them.
systemd also uses the pragma diagnostics, but its dependency on Linux
headers >= 3.8 for the toolchain indirectly forces recent versions of
GCC.
This workaround enables the pragma diagnostics only when using GCC >= 4.6.
This means that if the user uses GCC 4.5 and explicitly sets the options
-Werror -Wformat-nonliteral, the build will fail...
[1] http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
...y-use-pragma-for-ignoring-diagnostics-if-.patch | 37 ++++++++++++++++++++
1 file changed, 37 insertions(+)
create mode 100644 package/eudev/eudev-0003-libudev-Only-use-pragma-for-ignoring-diagnostics-if-.patch
diff --git a/package/eudev/eudev-0003-libudev-Only-use-pragma-for-ignoring-diagnostics-if-.patch b/package/eudev/eudev-0003-libudev-Only-use-pragma-for-ignoring-diagnostics-if-.patch
new file mode 100644
index 0000000..8b70fbf
--- /dev/null
+++ b/package/eudev/eudev-0003-libudev-Only-use-pragma-for-ignoring-diagnostics-if-.patch
@@ -0,0 +1,37 @@
+From dc8aa43b7b6d0cead7d8a0c1a151d289a5233a10 Mon Sep 17 00:00:00 2001
+From: Eric Le Bihan <eric.le.bihan.dev@free.fr>
+Date: Wed, 2 Apr 2014 12:36:52 +0200
+Subject: [PATCH] libudev: Only use #pragma for ignoring diagnostics if GCC
+ version supports it.
+
+
+Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
+---
+ src/libudev/macro.h | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/libudev/macro.h b/src/libudev/macro.h
+index ac2a23f..fb55983 100644
+--- a/src/libudev/macro.h
++++ b/src/libudev/macro.h
+@@ -40,12 +40,17 @@
+ #define _cleanup_(x) __attribute__((cleanup(x)))
+
+
++#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
+ #define DISABLE_WARNING_FORMAT_NONLITERAL \
+ _Pragma("GCC diagnostic push"); \
+ _Pragma("GCC diagnostic ignored \"-Wformat-nonliteral\"")
+
+ #define REENABLE_WARNING \
+ _Pragma("GCC diagnostic pop")
++#else
++#define DISABLE_WARNING_FORMAT_NONLITERAL
++#define REENABLE_WARNING
++#endif
+
+ /* Rounds up */
+
+--
+1.7.9.5
+
--
1.7.9.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH 0/2] eudev fixes (PowerPC)
2014-04-02 14:42 [Buildroot] [PATCH 0/2] eudev fixes (PowerPC) Eric Le Bihan
2014-04-02 14:42 ` [Buildroot] [PATCH 1/2] eudev: fix redefinition of usec_t and nsec_t Eric Le Bihan
2014-04-02 14:42 ` [Buildroot] [PATCH 2/2] eudev: only use pragma diagnostics if GCC supports it Eric Le Bihan
@ 2014-04-03 19:33 ` Thomas Petazzoni
2 siblings, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2014-04-03 19:33 UTC (permalink / raw)
To: buildroot
Dear Eric Le Bihan,
On Wed, 2 Apr 2014 16:42:24 +0200, Eric Le Bihan wrote:
> Here are some patches to fix compilation of eudev for PowerPC when using an
> external toolchain.
Both patches applied, thanks!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-04-03 19:33 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-02 14:42 [Buildroot] [PATCH 0/2] eudev fixes (PowerPC) Eric Le Bihan
2014-04-02 14:42 ` [Buildroot] [PATCH 1/2] eudev: fix redefinition of usec_t and nsec_t Eric Le Bihan
2014-04-02 14:42 ` [Buildroot] [PATCH 2/2] eudev: only use pragma diagnostics if GCC supports it Eric Le Bihan
2014-04-03 19:33 ` [Buildroot] [PATCH 0/2] eudev fixes (PowerPC) Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox