|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [UNIKRAFT/MUSL PATCH 5/7] Fix stdout flushing in musl
From: Gaulthier Gain <gaulthier.gain@xxxxxxxxx>
In this commit, we replace our old patch by a more robust patch
series. We temporary remove the call to `ioctl` in `__stdout_write.c`
which causes an assertion error due to invalid argument order. In
addition, `__stdio_write` is fixed by updating a condition to avoid an
infinite loop since the last caracter of the buffer is skipped when
the `cnt` variable is tested with the `iov_len` variable.
Signed-off-by: Gaulthier Gain <gaulthier.gain@xxxxxxxxx>
---
.../0009-Fix-stdout-flushing-in-musl.patch | 46 +++++++++++++++++++
...09-update__stdout_write_for_flushing.patch | 25 ----------
2 files changed, 46 insertions(+), 25 deletions(-)
create mode 100644 patches/0009-Fix-stdout-flushing-in-musl.patch
delete mode 100644 patches/0009-update__stdout_write_for_flushing.patch
diff --git a/patches/0009-Fix-stdout-flushing-in-musl.patch
b/patches/0009-Fix-stdout-flushing-in-musl.patch
new file mode 100644
index 0000000..2ad48f7
--- /dev/null
+++ b/patches/0009-Fix-stdout-flushing-in-musl.patch
@@ -0,0 +1,46 @@
+From e38b6114fb02f14ed51870e68116d336aa462add Mon Sep 17 00:00:00 2001
+From: gaulthier gain <gaulthier.gain@xxxxxxxxx>
+Date: Sun, 18 Oct 2020 10:26:45 +0000
+Subject: [PATCH] Fix stdout flushing in musl
+
+In this patch, we temporary remove the call to `ioctl` in
+`__stdout_write.c` which causes an assertion error due to invalid
+argument order. In addition, `__stdio_write` is fixed by updating
+a condition to avoid an infinite loop since the last caracter of the
+buffer is skipped when the `cnt` variable is tested with the
+`iov_len` variable.
+
+Signed-off-by: gaulthier gain <gaulthier.gain@xxxxxxxxx>
+---
+ src/stdio/__stdio_write.c | 2 +-
+ src/stdio/__stdout_write.c | 2 --
+ 2 files changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/src/stdio/__stdio_write.c b/src/stdio/__stdio_write.c
+index d2d8947..6ebf59e 100644
+--- a/src/stdio/__stdio_write.c
++++ b/src/stdio/__stdio_write.c
+@@ -24,7 +24,7 @@ size_t __stdio_write(FILE *f, const unsigned char *buf,
size_t len)
+ return iovcnt == 2 ? 0 : len-iov[0].iov_len;
+ }
+ rem -= cnt;
+- if (cnt > iov[0].iov_len) {
++ if (cnt >= iov[0].iov_len) {
+ cnt -= iov[0].iov_len;
+ iov++; iovcnt--;
+ }
+diff --git a/src/stdio/__stdout_write.c b/src/stdio/__stdout_write.c
+index dd1ec60..1fdc12e 100644
+--- a/src/stdio/__stdout_write.c
++++ b/src/stdio/__stdout_write.c
+@@ -5,7 +5,5 @@ size_t __stdout_write(FILE *f, const unsigned char *buf,
size_t len)
+ {
+ struct winsize wsz;
+ f->write = __stdio_write;
+- if (!(f->flags & F_SVB) && __syscall(SYS_ioctl, f->fd, TIOCGWINSZ,
&wsz))
+- f->lbf = -1;
+ return __stdio_write(f, buf, len);
+ }
+--
+2.17.1
+
diff --git a/patches/0009-update__stdout_write_for_flushing.patch
b/patches/0009-update__stdout_write_for_flushing.patch
deleted file mode 100644
index bda423f..0000000
--- a/patches/0009-update__stdout_write_for_flushing.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 235b3d8240fbc99782f2fb8449786f519fcb3bde Mon Sep 17 00:00:00 2001
-From: gaulthier gain <gaulthier.gain@xxxxxxxxx>
-Date: Fri, 28 Feb 2020 17:05:28 +0000
-Subject: [UNIKRAFT/MUSL] Update __stdout_write to allow flushing on stdout
-
-Signed-off-by: gaulthier gain <gaulthier.gain@xxxxxxxxx>
----
- src/stdio/__stdout_write.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/stdio/__stdout_write.c b/src/stdio/__stdout_write.c
-index dd1ec60..f9c9489 100644
---- a/src/stdio/__stdout_write.c
-+++ b/src/stdio/__stdout_write.c
-@@ -6,6 +6,6 @@ size_t __stdout_write(FILE *f, const unsigned char *buf,
size_t len)
- struct winsize wsz;
- f->write = __stdio_write;
- if (!(f->flags & F_SVB) && __syscall(SYS_ioctl, f->fd, TIOCGWINSZ,
&wsz))
-- f->lbf = -1;
-+ f->lbf = '\n';
- return __stdio_write(f, buf, len);
- }
---
-2.17.1
-
--
2.17.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |