* [PATCH] fix clock_nanosleep error case
@ 2016-09-17 14:36 Daniel Sabogal
2016-09-17 14:36 ` [PATCH] move wcswcs prototype under feature test Daniel Sabogal
2016-09-17 14:57 ` [PATCH] fix clock_nanosleep error case Szabolcs Nagy
0 siblings, 2 replies; 3+ messages in thread
From: Daniel Sabogal @ 2016-09-17 14:36 UTC (permalink / raw)
To: musl
posix requires that EINVAL be returned if the first parameter specifies
the cpu-time clock of the calling thread (CLOCK_THREAD_CPUTIME_ID).
linux returns ENOTSUP instead so we handle this.
---
src/time/clock_nanosleep.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/time/clock_nanosleep.c b/src/time/clock_nanosleep.c
index ec87b9e..ea510a6 100644
--- a/src/time/clock_nanosleep.c
+++ b/src/time/clock_nanosleep.c
@@ -1,8 +1,10 @@
#include <time.h>
+#include <errno.h>
#include "syscall.h"
#include "libc.h"
int clock_nanosleep(clockid_t clk, int flags, const struct timespec *req, struct timespec *rem)
{
+ if (clk == CLOCK_THREAD_CPUTIME_ID) return EINVAL;
return -__syscall_cp(SYS_clock_nanosleep, clk, flags, req, rem);
}
--
2.10.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH] move wcswcs prototype under feature test
2016-09-17 14:36 [PATCH] fix clock_nanosleep error case Daniel Sabogal
@ 2016-09-17 14:36 ` Daniel Sabogal
2016-09-17 14:57 ` [PATCH] fix clock_nanosleep error case Szabolcs Nagy
1 sibling, 0 replies; 3+ messages in thread
From: Daniel Sabogal @ 2016-09-17 14:36 UTC (permalink / raw)
To: musl
wcswcs was an xsi extension removed in issue 7 of posix.
openbsd and netbsd also provide this prototype so we expose it
under _BSD_SOURCE as well.
---
include/wchar.h | 6 +++++-
src/string/wcswcs.c | 1 +
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/include/wchar.h b/include/wchar.h
index 3e6db5f..7503daf 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -67,7 +67,6 @@ wchar_t *wcstok (wchar_t *__restrict, const wchar_t *__restrict, wchar_t **__res
size_t wcslen (const wchar_t *);
wchar_t *wcsstr (const wchar_t *__restrict, const wchar_t *__restrict);
-wchar_t *wcswcs (const wchar_t *, const wchar_t *);
wchar_t *wmemchr (const wchar_t *, wchar_t, size_t);
int wmemcmp (const wchar_t *, const wchar_t *, size_t);
@@ -168,6 +167,11 @@ int wcscoll_l(const wchar_t *, const wchar_t *, locale_t);
size_t wcsxfrm_l(wchar_t *__restrict, const wchar_t *__restrict, size_t n, locale_t);
#endif
+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) \
+ || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE < 700)
+wchar_t *wcswcs (const wchar_t *, const wchar_t *);
+#endif
+
#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
int wcwidth (wchar_t);
int wcswidth (const wchar_t *, size_t);
diff --git a/src/string/wcswcs.c b/src/string/wcswcs.c
index 9cfe4ac..9246733 100644
--- a/src/string/wcswcs.c
+++ b/src/string/wcswcs.c
@@ -1,3 +1,4 @@
+#define _GNU_SOURCE
#include <wchar.h>
wchar_t *wcswcs(const wchar_t *haystack, const wchar_t *needle)
--
2.10.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] fix clock_nanosleep error case
2016-09-17 14:36 [PATCH] fix clock_nanosleep error case Daniel Sabogal
2016-09-17 14:36 ` [PATCH] move wcswcs prototype under feature test Daniel Sabogal
@ 2016-09-17 14:57 ` Szabolcs Nagy
1 sibling, 0 replies; 3+ messages in thread
From: Szabolcs Nagy @ 2016-09-17 14:57 UTC (permalink / raw)
To: musl
* Daniel Sabogal <dsabogalcc@gmail.com> [2016-09-17 10:36:43 -0400]:
> posix requires that EINVAL be returned if the first parameter specifies
> the cpu-time clock of the calling thread (CLOCK_THREAD_CPUTIME_ID).
> linux returns ENOTSUP instead so we handle this.
> ---
> src/time/clock_nanosleep.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/src/time/clock_nanosleep.c b/src/time/clock_nanosleep.c
> index ec87b9e..ea510a6 100644
> --- a/src/time/clock_nanosleep.c
> +++ b/src/time/clock_nanosleep.c
> @@ -1,8 +1,10 @@
> #include <time.h>
> +#include <errno.h>
> #include "syscall.h"
> #include "libc.h"
>
> int clock_nanosleep(clockid_t clk, int flags, const struct timespec *req, struct timespec *rem)
> {
> + if (clk == CLOCK_THREAD_CPUTIME_ID) return EINVAL;
> return -__syscall_cp(SYS_clock_nanosleep, clk, flags, req, rem);
you elide a cancellation point here.
i think you should check and remap the return value instead.
> }
> --
> 2.10.0
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-09-17 14:57 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-17 14:36 [PATCH] fix clock_nanosleep error case Daniel Sabogal
2016-09-17 14:36 ` [PATCH] move wcswcs prototype under feature test Daniel Sabogal
2016-09-17 14:57 ` [PATCH] fix clock_nanosleep error case Szabolcs Nagy
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/musl/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).