* unknown type name 'cpu_set_t' in newlib/libc/include/sched.h
@ 2019-08-12 0:28 Giacomo Tesio
2019-08-12 7:52 ` Corinna Vinschen
0 siblings, 1 reply; 10+ messages in thread
From: Giacomo Tesio @ 2019-08-12 0:28 UTC (permalink / raw)
To: newlib
Hello everybody,
apparently commit 383e19ca552234fa9af47e80cb00d843a96de9e3 moved the
cpu_set_t typedef from newlib/libc/include/sched.h to cygwin specific
stuff, but left a few functions using such type behind and
unprotected.
Is it intended?
Giacomo
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: unknown type name 'cpu_set_t' in newlib/libc/include/sched.h
2019-08-12 0:28 unknown type name 'cpu_set_t' in newlib/libc/include/sched.h Giacomo Tesio
@ 2019-08-12 7:52 ` Corinna Vinschen
2019-08-12 9:12 ` Giacomo Tesio
2019-08-12 12:42 ` Joel Sherrill
0 siblings, 2 replies; 10+ messages in thread
From: Corinna Vinschen @ 2019-08-12 7:52 UTC (permalink / raw)
To: Giacomo Tesio; +Cc: newlib
[-- Attachment #1: Type: text/plain, Size: 458 bytes --]
On Aug 12 02:28, Giacomo Tesio wrote:
> Hello everybody,
>
> apparently commit 383e19ca552234fa9af47e80cb00d843a96de9e3 moved the
> cpu_set_t typedef from newlib/libc/include/sched.h to cygwin specific
> stuff, but left a few functions using such type behind and
> unprotected.
>
> Is it intended?
Probably not, if it leads to build errors on non-Cygwin, non-RTEMS.
Does it?
Corinna
--
Corinna Vinschen
Cygwin Maintainer
Red Hat
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* unknown type name 'cpu_set_t' in newlib/libc/include/sched.h
2019-08-12 7:52 ` Corinna Vinschen
@ 2019-08-12 9:12 ` Giacomo Tesio
2019-08-12 10:16 ` Corinna Vinschen
2019-08-12 12:42 ` Joel Sherrill
1 sibling, 1 reply; 10+ messages in thread
From: Giacomo Tesio @ 2019-08-12 9:12 UTC (permalink / raw)
To: newlib, Giacomo Tesio
On Monday, 12 August 2019, Corinna Vinschen <vinschen@redhat.com> wrote:
> On Aug 12 02:28, Giacomo Tesio wrote:
>> Hello everybody,
>>
>> apparently commit 383e19ca552234fa9af47e80cb00d843a96de9e3 moved the
>> cpu_set_t typedef from newlib/libc/include/sched.h to cygwin specific
>> stuff, but left a few functions using such type behind and
>> unprotected.
>>
>> Is it intended?
>
> Probably not, if it leads to build errors on non-Cygwin, non-RTEMS.
>
> Does it?
Yes it produce build errore in my os port because I don't have it defined
anywhere.
You could either protect the functions with an ifdef or move back the
typedef to sched.h
Giacomo
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: unknown type name 'cpu_set_t' in newlib/libc/include/sched.h
2019-08-12 9:12 ` Giacomo Tesio
@ 2019-08-12 10:16 ` Corinna Vinschen
2019-08-12 23:47 ` Giacomo Tesio
0 siblings, 1 reply; 10+ messages in thread
From: Corinna Vinschen @ 2019-08-12 10:16 UTC (permalink / raw)
To: Giacomo Tesio, Sebastian Huber; +Cc: newlib
[-- Attachment #1: Type: text/plain, Size: 2019 bytes --]
On Aug 12 11:05, Giacomo Tesio wrote:
> On Monday, 12 August 2019, Corinna Vinschen <vinschen@redhat.com> wrote:
> > On Aug 12 02:28, Giacomo Tesio wrote:
> >> Hello everybody,
> >>
> >> apparently commit 383e19ca552234fa9af47e80cb00d843a96de9e3 moved the
> >> cpu_set_t typedef from newlib/libc/include/sched.h to cygwin specific
> >> stuff, but left a few functions using such type behind and
> >> unprotected.
> >>
> >> Is it intended?
> >
> > Probably not, if it leads to build errors on non-Cygwin, non-RTEMS.
> >
> > Does it?
>
> Yes it produce build errore in my os port because I don't have it defined
> anywhere.
>
> You could either protect the functions with an ifdef or move back the
> typedef to sched.h
I'd propose this patch:
From d192727fee2f85fcc7eb78c7cb09963a7b663d5a Mon Sep 17 00:00:00 2001
From: Corinna Vinschen <corinna@vinschen.de>
Date: Mon, 12 Aug 2019 12:13:20 +0200
Subject: [PATCH] sched.h: Declare affinity functions only on targets
supporting them
---
newlib/libc/include/sched.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/newlib/libc/include/sched.h b/newlib/libc/include/sched.h
index 79b775e220c7..31599aa7e6ca 100644
--- a/newlib/libc/include/sched.h
+++ b/newlib/libc/include/sched.h
@@ -93,10 +93,16 @@ int sched_yield( void );
#if __GNU_VISIBLE
int sched_getcpu(void);
+/* The following functions should only be declared if the type
+ cpu_set_t is defined through indirect inclusion of sys/cpuset.h,
+ only available on some targets. */
+#ifdef _SYS_CPUSET_H_
int sched_getaffinity (pid_t, size_t, cpu_set_t *);
int sched_get_thread_affinity (void *, size_t, cpu_set_t *);
int sched_setaffinity (pid_t, size_t, const cpu_set_t *);
int sched_set_thread_affinity (void *, size_t, const cpu_set_t *);
+#endif /* _SYS_CPUSET_H_ */
+
#endif
#ifdef __cplusplus
--
2.20.1
Please test or suggest an alternative.
Thanks,
Corinna
--
Corinna Vinschen
Cygwin Maintainer
Red Hat
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: unknown type name 'cpu_set_t' in newlib/libc/include/sched.h
2019-08-12 7:52 ` Corinna Vinschen
2019-08-12 9:12 ` Giacomo Tesio
@ 2019-08-12 12:42 ` Joel Sherrill
2019-08-12 17:01 ` Giacomo Tesio
1 sibling, 1 reply; 10+ messages in thread
From: Joel Sherrill @ 2019-08-12 12:42 UTC (permalink / raw)
To: Newlib, Giacomo Tesio
On Mon, Aug 12, 2019, 2:52 AM Corinna Vinschen <vinschen@redhat.com> wrote:
> On Aug 12 02:28, Giacomo Tesio wrote:
> > Hello everybody,
> >
> > apparently commit 383e19ca552234fa9af47e80cb00d843a96de9e3 moved the
> > cpu_set_t typedef from newlib/libc/include/sched.h to cygwin specific
> > stuff, but left a few functions using such type behind and
> > unprotected.
> >
> > Is it intended?
>
> Probably not, if it leads to build errors on non-Cygwin, non-RTEMS.
>
> Does it?
>
Is this with a test program or building Newlib itself. I have recently
built non-rtems targets to spot check some of the fenv work.
--joel
>
> Corinna
>
> --
> Corinna Vinschen
> Cygwin Maintainer
> Red Hat
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: unknown type name 'cpu_set_t' in newlib/libc/include/sched.h
2019-08-12 12:42 ` Joel Sherrill
@ 2019-08-12 17:01 ` Giacomo Tesio
2019-08-12 18:13 ` Joel Sherrill
0 siblings, 1 reply; 10+ messages in thread
From: Giacomo Tesio @ 2019-08-12 17:01 UTC (permalink / raw)
To: Joel Sherrill; +Cc: Newlib
On 12/08/2019, Joel Sherrill <joel.sherrill@gmail.com> wrote:
> On Mon, Aug 12, 2019, 2:52 AM Corinna Vinschen <vinschen@redhat.com> wrote:
> Is this with a test program or building Newlib itself. I have recently
> built non-rtems targets to spot check some of the fenv work.
Here is the error message:
x86_64-jehanne-gcc -B/newlib/build/x86_64-jehanne/newlib/ -isystem
/newlib/build/x86_64-jehanne/newlib/targ-include -isystem
/newlib/src/newlib/libc/include
-B/newlib/build/x86_64-jehanne/libgloss/x86_64
-L/newlib/build/x86_64-jehanne/libgloss/libnosys
-L/newlib/src/libgloss/x86_64
-I/newlib/src/newlib/libc/sys/jehanne/include
-DPACKAGE_NAME=\"newlib\" -DPACKAGE_TARNAME=\"newlib\"
-DPACKAGE_VERSION=\"3.1.0\" -DPACKAGE_STRING=\"newlib\ 3.1.0\"
-DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -I.
-I/newlib//src/newlib/libc/posix -fno-builtin
-DREENTRANT_SYSCALLS_PROVIDED -DMALLOC_PROVIDED -DSIGNAL_PROVIDED
-D_NO_GETLOGIN -D_NO_GETCWD -D_NO_GETPASS -D_NO_GETUT -D_NO_PWRITE
-D_NO_PREAD -DHAVE_FCNTL -fno-omit-frame-pointer -DHAVE_INIT_FINI
-D_GNU_SOURCE -g -gdwarf-2 -ggdb -O2 -c -o lib_a-posix_spawn.o `test
-f 'posix_spawn.c' || echo
'/newlib//src/newlib/libc/posix/'`posix_spawn.c
In file included from /newlib//src/newlib/libc/posix/posix_spawn.c:99:0:
/newlib/src/newlib/libc/include/sched.h:96:39: error: unknown type
name ‘cpu_set_t’
int sched_getaffinity (pid_t, size_t, cpu_set_t *);
^
/newlib/src/newlib/libc/include/sched.h:97:48: error: unknown type
name ‘cpu_set_t’
int sched_get_thread_affinity (void *, size_t, cpu_set_t *);
^
/newlib/src/newlib/libc/include/sched.h:98:45: error: unknown type
name ‘cpu_set_t’
int sched_setaffinity (pid_t, size_t, const cpu_set_t *);
^
/newlib/src/newlib/libc/include/sched.h:99:54: error: unknown type
name ‘cpu_set_t’
int sched_set_thread_affinity (void *, size_t, const cpu_set_t *);
^
Makefile:594: recipe for target 'lib_a-posix_spawn.o' failed
@Corinna: I'll try your patch tonight... sorry for the delay...
Giacomo
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: unknown type name 'cpu_set_t' in newlib/libc/include/sched.h
2019-08-12 17:01 ` Giacomo Tesio
@ 2019-08-12 18:13 ` Joel Sherrill
2019-08-13 5:00 ` Sebastian Huber
0 siblings, 1 reply; 10+ messages in thread
From: Joel Sherrill @ 2019-08-12 18:13 UTC (permalink / raw)
To: Giacomo Tesio; +Cc: Newlib
On Mon, Aug 12, 2019 at 12:01 PM Giacomo Tesio <giacomo@tesio.it> wrote:
> On 12/08/2019, Joel Sherrill <joel.sherrill@gmail.com> wrote:
> > On Mon, Aug 12, 2019, 2:52 AM Corinna Vinschen <vinschen@redhat.com>
> wrote:
> > Is this with a test program or building Newlib itself. I have recently
> > built non-rtems targets to spot check some of the fenv work.
>
> Here is the error message:
>
> x86_64-jehanne-gcc -B/newlib/build/x86_64-jehanne/newlib/ -isystem
> /newlib/build/x86_64-jehanne/newlib/targ-include -isystem
> /newlib/src/newlib/libc/include
> -B/newlib/build/x86_64-jehanne/libgloss/x86_64
> -L/newlib/build/x86_64-jehanne/libgloss/libnosys
> -L/newlib/src/libgloss/x86_64
> -I/newlib/src/newlib/libc/sys/jehanne/include
> -DPACKAGE_NAME=\"newlib\" -DPACKAGE_TARNAME=\"newlib\"
> -DPACKAGE_VERSION=\"3.1.0\" -DPACKAGE_STRING=\"newlib\ 3.1.0\"
> -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -I.
> -I/newlib//src/newlib/libc/posix -fno-builtin
> -DREENTRANT_SYSCALLS_PROVIDED -DMALLOC_PROVIDED -DSIGNAL_PROVIDED
> -D_NO_GETLOGIN -D_NO_GETCWD -D_NO_GETPASS -D_NO_GETUT -D_NO_PWRITE
> -D_NO_PREAD -DHAVE_FCNTL -fno-omit-frame-pointer -DHAVE_INIT_FINI
> -D_GNU_SOURCE -g -gdwarf-2 -ggdb -O2 -c -o lib_a-posix_spawn.o `test
> -f 'posix_spawn.c' || echo
> '/newlib//src/newlib/libc/posix/'`posix_spawn.c
> In file included from /newlib//src/newlib/libc/posix/posix_spawn.c:99:0:
> /newlib/src/newlib/libc/include/sched.h:96:39: error: unknown type
> name ‘cpu_set_t’
> int sched_getaffinity (pid_t, size_t, cpu_set_t *);
> ^
> /newlib/src/newlib/libc/include/sched.h:97:48: error: unknown type
> name ‘cpu_set_t’
> int sched_get_thread_affinity (void *, size_t, cpu_set_t *);
> ^
> /newlib/src/newlib/libc/include/sched.h:98:45: error: unknown type
> name ‘cpu_set_t’
> int sched_setaffinity (pid_t, size_t, const cpu_set_t *);
> ^
> /newlib/src/newlib/libc/include/sched.h:99:54: error: unknown type
> name ‘cpu_set_t’
> int sched_set_thread_affinity (void *, size_t, const cpu_set_t *);
> ^
> Makefile:594: recipe for target 'lib_a-posix_spawn.o' failed
>
>
> @Corinna: I'll try your patch tonight... sorry for the delay...
>
Corinna's patch looks like it resolve it.
Is it safe to assume all <sys/cpuset.h> implementations will use the same
header guards?
--joel
>
>
> Giacomo
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: unknown type name 'cpu_set_t' in newlib/libc/include/sched.h
2019-08-12 10:16 ` Corinna Vinschen
@ 2019-08-12 23:47 ` Giacomo Tesio
0 siblings, 0 replies; 10+ messages in thread
From: Giacomo Tesio @ 2019-08-12 23:47 UTC (permalink / raw)
To: newlib, Giacomo Tesio, Sebastian Huber
Hi Corinna I can confirm this patch works fine.
Thanks!
Giacomo
On 12/08/2019, Corinna Vinschen <vinschen@redhat.com> wrote:
> From d192727fee2f85fcc7eb78c7cb09963a7b663d5a Mon Sep 17 00:00:00 2001
> From: Corinna Vinschen <corinna@vinschen.de>
> Date: Mon, 12 Aug 2019 12:13:20 +0200
> Subject: [PATCH] sched.h: Declare affinity functions only on targets
> supporting them
>
> ---
> newlib/libc/include/sched.h | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/newlib/libc/include/sched.h b/newlib/libc/include/sched.h
> index 79b775e220c7..31599aa7e6ca 100644
> --- a/newlib/libc/include/sched.h
> +++ b/newlib/libc/include/sched.h
> @@ -93,10 +93,16 @@ int sched_yield( void );
> #if __GNU_VISIBLE
> int sched_getcpu(void);
>
> +/* The following functions should only be declared if the type
> + cpu_set_t is defined through indirect inclusion of sys/cpuset.h,
> + only available on some targets. */
> +#ifdef _SYS_CPUSET_H_
> int sched_getaffinity (pid_t, size_t, cpu_set_t *);
> int sched_get_thread_affinity (void *, size_t, cpu_set_t *);
> int sched_setaffinity (pid_t, size_t, const cpu_set_t *);
> int sched_set_thread_affinity (void *, size_t, const cpu_set_t *);
> +#endif /* _SYS_CPUSET_H_ */
> +
> #endif
>
> #ifdef __cplusplus
> --
> 2.20.1
>
>
> Please test or suggest an alternative.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: unknown type name 'cpu_set_t' in newlib/libc/include/sched.h
2019-08-12 18:13 ` Joel Sherrill
@ 2019-08-13 5:00 ` Sebastian Huber
2019-08-13 7:39 ` Corinna Vinschen
0 siblings, 1 reply; 10+ messages in thread
From: Sebastian Huber @ 2019-08-13 5:00 UTC (permalink / raw)
To: Newlib
On 12/08/2019 20:13, Joel Sherrill wrote:
> Corinna's patch looks like it resolve it.
>
> Is it safe to assume all <sys/cpuset.h> implementations will use the same
> header guards?
I think in the long run, it would be nice to have a standard
<sys/cpuset.h> in Newlib which works on all targets. For now, this patch
looks fine.
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.huber@embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: unknown type name 'cpu_set_t' in newlib/libc/include/sched.h
2019-08-13 5:00 ` Sebastian Huber
@ 2019-08-13 7:39 ` Corinna Vinschen
0 siblings, 0 replies; 10+ messages in thread
From: Corinna Vinschen @ 2019-08-13 7:39 UTC (permalink / raw)
To: Sebastian Huber; +Cc: Newlib
[-- Attachment #1: Type: text/plain, Size: 480 bytes --]
On Aug 13 07:00, Sebastian Huber wrote:
> On 12/08/2019 20:13, Joel Sherrill wrote:
> > Corinna's patch looks like it resolve it.
> >
> > Is it safe to assume all <sys/cpuset.h> implementations will use the same
> > header guards?
>
> I think in the long run, it would be nice to have a standard <sys/cpuset.h>
> in Newlib which works on all targets. For now, this patch looks fine.
Pushed.
Thanks,
Corinna
--
Corinna Vinschen
Cygwin Maintainer
Red Hat
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2019-08-13 7:39 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-12 0:28 unknown type name 'cpu_set_t' in newlib/libc/include/sched.h Giacomo Tesio
2019-08-12 7:52 ` Corinna Vinschen
2019-08-12 9:12 ` Giacomo Tesio
2019-08-12 10:16 ` Corinna Vinschen
2019-08-12 23:47 ` Giacomo Tesio
2019-08-12 12:42 ` Joel Sherrill
2019-08-12 17:01 ` Giacomo Tesio
2019-08-12 18:13 ` Joel Sherrill
2019-08-13 5:00 ` Sebastian Huber
2019-08-13 7:39 ` Corinna Vinschen
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 read-only IMAP folder(s) and NNTP newsgroup(s).