mailing list of musl libc
 help / color / mirror / code / Atom feed
* [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).