summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch
diff options
context:
space:
mode:
authorChen Qi <Qi.Chen@windriver.com>2017-04-24 16:06:41 +0800
committerMartin Jansa <Martin.Jansa@gmail.com>2017-04-26 20:13:32 +0200
commit7f17da154372b5ec33947766783444961e8aa67c (patch)
treeead705af475f594c4a08e69f2fab319a3b249bde /meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch
parent7e4166e80b6994d8ea1a4eacffa4fe9d386c72ec (diff)
downloadmeta-openembedded-7f17da154372b5ec33947766783444961e8aa67c.tar.gz
lvm2: separate libdevmapper to avoid circular dependency
If we enable 'cryptsetup' PACKAGECONFIG for systemd, there would be circular dependency issue among 'systemd', 'cryptsetup' and 'lvm2'. cryptsetup only needs libdevmapper from lvm2. So we separte libdevmapper into a new recipe to solve this circular dependency issue. Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch')
-rw-r--r--meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch79
1 files changed, 79 insertions, 0 deletions
diff --git a/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch b/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch
new file mode 100644
index 0000000000..5d72402bd1
--- /dev/null
+++ b/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch
@@ -0,0 +1,79 @@
1From e3103459416616d3b8508e7176e897b0ae6c90f2 Mon Sep 17 00:00:00 2001
2From: Dengke Du <dengke.du@windriver.com>
3Date: Tue, 25 Oct 2016 11:49:40 +0000
4Subject: [PATCH] implement libc specific reopen_stream
5
6musl defines stdin/stdio/stderr as constant types which means
7we can not assign to them as we are doing here but works ok with glibc
8therefore abstract out the _reopen_stream definition depending upon if
9we are using glibc or otherwise
10
11Origin:
12http://git.alpinelinux.org/cgit/aports/tree/main/lvm2/fix-stdio-usage.patch
13
14Signed-off-by: Khem Raj <raj.khem@gmail.com>
15Signed-off-by: Dengke Du <dengke.du@windriver.com>
16
17---
18 lib/log/log.c | 6 ++++++
19 tools/lvmcmdline.c | 6 +++---
20 2 files changed, 9 insertions(+), 3 deletions(-)
21
22diff --git a/lib/log/log.c b/lib/log/log.c
23index c933154..3581084 100644
24--- a/lib/log/log.c
25+++ b/lib/log/log.c
26@@ -161,6 +161,7 @@ static void _check_and_replace_standard_log_streams(FILE *old_stream, FILE *new_
27 * Close and reopen standard stream on file descriptor fd.
28 */
29 int reopen_standard_stream(FILE **stream, const char *mode)
30+#ifdef __GLIBC__
31 {
32 int fd, fd_copy, new_fd;
33 const char *name;
34@@ -207,6 +208,11 @@ int reopen_standard_stream(FILE **stream, const char *mode)
35 *stream = new_stream;
36 return 1;
37 }
38+#else
39+{
40+ return (freopen(NULL, mode, *stream) != NULL);
41+}
42+#endif
43
44 void init_log_fn(lvm2_log_fn_t log_fn)
45 {
46diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
47index 9a4deb7..f1f18e6 100644
48--- a/tools/lvmcmdline.c
49+++ b/tools/lvmcmdline.c
50@@ -1818,7 +1818,7 @@ static int _check_standard_fds(void)
51 int err = is_valid_fd(STDERR_FILENO);
52
53 if (!is_valid_fd(STDIN_FILENO) &&
54- !(stdin = fopen(_PATH_DEVNULL, "r"))) {
55+ !freopen(_PATH_DEVNULL, "r", stdin)) {
56 if (err)
57 perror("stdin stream open");
58 else
59@@ -1828,7 +1828,7 @@ static int _check_standard_fds(void)
60 }
61
62 if (!is_valid_fd(STDOUT_FILENO) &&
63- !(stdout = fopen(_PATH_DEVNULL, "w"))) {
64+ !freopen(_PATH_DEVNULL, "w", stdout)) {
65 if (err)
66 perror("stdout stream open");
67 /* else no stdout */
68@@ -1836,7 +1836,7 @@ static int _check_standard_fds(void)
69 }
70
71 if (!is_valid_fd(STDERR_FILENO) &&
72- !(stderr = fopen(_PATH_DEVNULL, "w"))) {
73+ !freopen(_PATH_DEVNULL, "w", stderr)) {
74 printf("stderr stream open: %s\n",
75 strerror(errno));
76 return 0;
77--
782.12.0
79