Message ID | 20230314002354.367655-1-sam@gentoo.org |
---|---|
State | New |
Headers | show |
Series | [v4,1/2] RISC-V: Avoid calloc() poisoning on musl | expand |
On Tue, Mar 14, 2023 at 1:24 AM Sam James via Gcc-patches <gcc-patches@gcc.gnu.org> wrote: > > This fixes errors like: > ``` > In file included from /usr/include/pthread.h:30, > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/riscv64-gentoo-linux-musl/bits/gthr-default.h:35, > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/riscv64-gentoo-linux-musl/bits/gthr.h:148, > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/ext/atomicity.h:35, > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/bits/ios_base.h:39, > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/ios:42, > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/istream:38, > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/sstream:38, > from /var/tmp/portage/sys-devel/gcc-13.0.1_pre20230305/work/gcc-13-20230305/gcc/config/riscv/genrvv-type-indexer.cc:22: > /usr/include/sched.h:84:7: error: attempt to use poisoned "calloc" > 84 | void *calloc(size_t, size_t); > | ^ > /usr/include/sched.h:124:36: error: attempt to use poisoned "calloc" > 124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n))) > | ^ > make[3]: *** [Makefile:2855: build/genrvv-type-indexer.o] Error 1 > ``` > > See also 3b21c21f3f5726823e19728fdd1571a14aae0fb3 and 49d508065bdd36fb1a9b6aad9666b1edb5e06474, > which was fixed in PR106102. The system.h change is OK > gcc/ChangeLog: > * config/riscv/genrvv-type-indexer.cc: Avoid calloc() poisoning on musl by > including <sstream> earlier. > * system.h: Add INCLUDE_SSTREAM. > > Signed-off-by: Sam James <sam@gentoo.org> > --- > gcc/config/riscv/genrvv-type-indexer.cc | 2 +- > gcc/system.h | 4 ++++ > 2 files changed, 5 insertions(+), 1 deletion(-) > > diff --git a/gcc/config/riscv/genrvv-type-indexer.cc b/gcc/config/riscv/genrvv-type-indexer.cc > index 0ef1d766002..e677b55290c 100644 > --- a/gcc/config/riscv/genrvv-type-indexer.cc > +++ b/gcc/config/riscv/genrvv-type-indexer.cc > @@ -14,12 +14,12 @@ along with GCC; see the file COPYING3. If not see > <http://www.gnu.org/licenses/>. */ > > #include "bconfig.h" > +#define INCLUDE_SSTREAM > #include "system.h" > #include "errors.h" > > #include "coretypes.h" > > -#include <sstream> > #include <assert.h> > #include <math.h> > > diff --git a/gcc/system.h b/gcc/system.h > index 64cd5a49258..cf45db3f97e 100644 > --- a/gcc/system.h > +++ b/gcc/system.h > @@ -751,6 +751,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list); > # include <mutex> > #endif > > +#ifdef INCLUDE_SSTREAM > +# include <sstream> > +#endif > + > #ifdef INCLUDE_MALLOC_H > #if defined(HAVE_MALLINFO) || defined(HAVE_MALLINFO2) > #include <malloc.h> > -- > 2.40.0 >
RISC-V part is ok, and I assume you didn't have write access so I'm gonna push that since the system.h change also got approved :) On Tue, Mar 14, 2023 at 5:07 PM Richard Biener via Gcc-patches <gcc-patches@gcc.gnu.org> wrote: > > On Tue, Mar 14, 2023 at 1:24 AM Sam James via Gcc-patches > <gcc-patches@gcc.gnu.org> wrote: > > > > This fixes errors like: > > ``` > > In file included from /usr/include/pthread.h:30, > > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/riscv64-gentoo-linux-musl/bits/gthr-default.h:35, > > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/riscv64-gentoo-linux-musl/bits/gthr.h:148, > > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/ext/atomicity.h:35, > > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/bits/ios_base.h:39, > > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/ios:42, > > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/istream:38, > > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/sstream:38, > > from /var/tmp/portage/sys-devel/gcc-13.0.1_pre20230305/work/gcc-13-20230305/gcc/config/riscv/genrvv-type-indexer.cc:22: > > /usr/include/sched.h:84:7: error: attempt to use poisoned "calloc" > > 84 | void *calloc(size_t, size_t); > > | ^ > > /usr/include/sched.h:124:36: error: attempt to use poisoned "calloc" > > 124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n))) > > | ^ > > make[3]: *** [Makefile:2855: build/genrvv-type-indexer.o] Error 1 > > ``` > > > > See also 3b21c21f3f5726823e19728fdd1571a14aae0fb3 and 49d508065bdd36fb1a9b6aad9666b1edb5e06474, > > which was fixed in PR106102. > > The system.h change is OK > > > gcc/ChangeLog: > > * config/riscv/genrvv-type-indexer.cc: Avoid calloc() poisoning on musl by > > including <sstream> earlier. > > * system.h: Add INCLUDE_SSTREAM. > > > > Signed-off-by: Sam James <sam@gentoo.org> > > --- > > gcc/config/riscv/genrvv-type-indexer.cc | 2 +- > > gcc/system.h | 4 ++++ > > 2 files changed, 5 insertions(+), 1 deletion(-) > > > > diff --git a/gcc/config/riscv/genrvv-type-indexer.cc b/gcc/config/riscv/genrvv-type-indexer.cc > > index 0ef1d766002..e677b55290c 100644 > > --- a/gcc/config/riscv/genrvv-type-indexer.cc > > +++ b/gcc/config/riscv/genrvv-type-indexer.cc > > @@ -14,12 +14,12 @@ along with GCC; see the file COPYING3. If not see > > <http://www.gnu.org/licenses/>. */ > > > > #include "bconfig.h" > > +#define INCLUDE_SSTREAM > > #include "system.h" > > #include "errors.h" > > > > #include "coretypes.h" > > > > -#include <sstream> > > #include <assert.h> > > #include <math.h> > > > > diff --git a/gcc/system.h b/gcc/system.h > > index 64cd5a49258..cf45db3f97e 100644 > > --- a/gcc/system.h > > +++ b/gcc/system.h > > @@ -751,6 +751,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list); > > # include <mutex> > > #endif > > > > +#ifdef INCLUDE_SSTREAM > > +# include <sstream> > > +#endif > > + > > #ifdef INCLUDE_MALLOC_H > > #if defined(HAVE_MALLINFO) || defined(HAVE_MALLINFO2) > > #include <malloc.h> > > -- > > 2.40.0 > >
committed to trunk, thanks :) On Tue, Mar 14, 2023 at 9:44 PM Kito Cheng <kito.cheng@gmail.com> wrote: > > RISC-V part is ok, and I assume you didn't have write access so I'm > gonna push that since the system.h change also got approved :) > > On Tue, Mar 14, 2023 at 5:07 PM Richard Biener via Gcc-patches > <gcc-patches@gcc.gnu.org> wrote: > > > > On Tue, Mar 14, 2023 at 1:24 AM Sam James via Gcc-patches > > <gcc-patches@gcc.gnu.org> wrote: > > > > > > This fixes errors like: > > > ``` > > > In file included from /usr/include/pthread.h:30, > > > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/riscv64-gentoo-linux-musl/bits/gthr-default.h:35, > > > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/riscv64-gentoo-linux-musl/bits/gthr.h:148, > > > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/ext/atomicity.h:35, > > > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/bits/ios_base.h:39, > > > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/ios:42, > > > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/istream:38, > > > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/sstream:38, > > > from /var/tmp/portage/sys-devel/gcc-13.0.1_pre20230305/work/gcc-13-20230305/gcc/config/riscv/genrvv-type-indexer.cc:22: > > > /usr/include/sched.h:84:7: error: attempt to use poisoned "calloc" > > > 84 | void *calloc(size_t, size_t); > > > | ^ > > > /usr/include/sched.h:124:36: error: attempt to use poisoned "calloc" > > > 124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n))) > > > | ^ > > > make[3]: *** [Makefile:2855: build/genrvv-type-indexer.o] Error 1 > > > ``` > > > > > > See also 3b21c21f3f5726823e19728fdd1571a14aae0fb3 and 49d508065bdd36fb1a9b6aad9666b1edb5e06474, > > > which was fixed in PR106102. > > > > The system.h change is OK > > > > > gcc/ChangeLog: > > > * config/riscv/genrvv-type-indexer.cc: Avoid calloc() poisoning on musl by > > > including <sstream> earlier. > > > * system.h: Add INCLUDE_SSTREAM. > > > > > > Signed-off-by: Sam James <sam@gentoo.org> > > > --- > > > gcc/config/riscv/genrvv-type-indexer.cc | 2 +- > > > gcc/system.h | 4 ++++ > > > 2 files changed, 5 insertions(+), 1 deletion(-) > > > > > > diff --git a/gcc/config/riscv/genrvv-type-indexer.cc b/gcc/config/riscv/genrvv-type-indexer.cc > > > index 0ef1d766002..e677b55290c 100644 > > > --- a/gcc/config/riscv/genrvv-type-indexer.cc > > > +++ b/gcc/config/riscv/genrvv-type-indexer.cc > > > @@ -14,12 +14,12 @@ along with GCC; see the file COPYING3. If not see > > > <http://www.gnu.org/licenses/>. */ > > > > > > #include "bconfig.h" > > > +#define INCLUDE_SSTREAM > > > #include "system.h" > > > #include "errors.h" > > > > > > #include "coretypes.h" > > > > > > -#include <sstream> > > > #include <assert.h> > > > #include <math.h> > > > > > > diff --git a/gcc/system.h b/gcc/system.h > > > index 64cd5a49258..cf45db3f97e 100644 > > > --- a/gcc/system.h > > > +++ b/gcc/system.h > > > @@ -751,6 +751,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list); > > > # include <mutex> > > > #endif > > > > > > +#ifdef INCLUDE_SSTREAM > > > +# include <sstream> > > > +#endif > > > + > > > #ifdef INCLUDE_MALLOC_H > > > #if defined(HAVE_MALLINFO) || defined(HAVE_MALLINFO2) > > > #include <malloc.h> > > > -- > > > 2.40.0 > > >
Kito Cheng <kito.cheng@gmail.com> writes: > RISC-V part is ok, and I assume you didn't have write access so I'm > gonna push that since the system.h change also got approved :) > > On Tue, Mar 14, 2023 at 5:07 PM Richard Biener via Gcc-patches > <gcc-patches@gcc.gnu.org> wrote: >> >> On Tue, Mar 14, 2023 at 1:24 AM Sam James via Gcc-patches >> <gcc-patches@gcc.gnu.org> wrote: >> > >> > This fixes errors like: >> > ``` >> > In file included from /usr/include/pthread.h:30, >> > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/riscv64-gentoo-linux-musl/bits/gthr-default.h:35, >> > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/riscv64-gentoo-linux-musl/bits/gthr.h:148, >> > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/ext/atomicity.h:35, >> > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/bits/ios_base.h:39, >> > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/ios:42, >> > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/istream:38, >> > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/sstream:38, >> > from /var/tmp/portage/sys-devel/gcc-13.0.1_pre20230305/work/gcc-13-20230305/gcc/config/riscv/genrvv-type-indexer.cc:22: >> > /usr/include/sched.h:84:7: error: attempt to use poisoned "calloc" >> > 84 | void *calloc(size_t, size_t); >> > | ^ >> > /usr/include/sched.h:124:36: error: attempt to use poisoned "calloc" >> > 124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n))) >> > | ^ >> > make[3]: *** [Makefile:2855: build/genrvv-type-indexer.o] Error 1 >> > ``` >> > >> > See also 3b21c21f3f5726823e19728fdd1571a14aae0fb3 and 49d508065bdd36fb1a9b6aad9666b1edb5e06474, >> > which was fixed in PR106102. >> >> The system.h change is OK Thanks Richard. Are you able to commit this for me? best, sam >> >> > gcc/ChangeLog: >> > * config/riscv/genrvv-type-indexer.cc: Avoid calloc() poisoning on musl by >> > including <sstream> earlier. >> > * system.h: Add INCLUDE_SSTREAM. >> > >> > Signed-off-by: Sam James <sam@gentoo.org> >> > --- >> > gcc/config/riscv/genrvv-type-indexer.cc | 2 +- >> > gcc/system.h | 4 ++++ >> > 2 files changed, 5 insertions(+), 1 deletion(-) >> > >> > diff --git a/gcc/config/riscv/genrvv-type-indexer.cc b/gcc/config/riscv/genrvv-type-indexer.cc >> > index 0ef1d766002..e677b55290c 100644 >> > --- a/gcc/config/riscv/genrvv-type-indexer.cc >> > +++ b/gcc/config/riscv/genrvv-type-indexer.cc >> > @@ -14,12 +14,12 @@ along with GCC; see the file COPYING3. If not see >> > <http://www.gnu.org/licenses/>. */ >> > >> > #include "bconfig.h" >> > +#define INCLUDE_SSTREAM >> > #include "system.h" >> > #include "errors.h" >> > >> > #include "coretypes.h" >> > >> > -#include <sstream> >> > #include <assert.h> >> > #include <math.h> >> > >> > diff --git a/gcc/system.h b/gcc/system.h >> > index 64cd5a49258..cf45db3f97e 100644 >> > --- a/gcc/system.h >> > +++ b/gcc/system.h >> > @@ -751,6 +751,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list); >> > # include <mutex> >> > #endif >> > >> > +#ifdef INCLUDE_SSTREAM >> > +# include <sstream> >> > +#endif >> > + >> > #ifdef INCLUDE_MALLOC_H >> > #if defined(HAVE_MALLINFO) || defined(HAVE_MALLINFO2) >> > #include <malloc.h> >> > -- >> > 2.40.0 >> >
Kito Cheng <kito.cheng@gmail.com> writes: > committed to trunk, thanks :) > > On Tue, Mar 14, 2023 at 9:44 PM Kito Cheng <kito.cheng@gmail.com> wrote: >> >> RISC-V part is ok, and I assume you didn't have write access so I'm >> gonna push that since the system.h change also got approved :) Thanks a bunch! :) >> >> On Tue, Mar 14, 2023 at 5:07 PM Richard Biener via Gcc-patches >> <gcc-patches@gcc.gnu.org> wrote: >> > >> > On Tue, Mar 14, 2023 at 1:24 AM Sam James via Gcc-patches >> > <gcc-patches@gcc.gnu.org> wrote: >> > > >> > > This fixes errors like: >> > > ``` >> > > In file included from /usr/include/pthread.h:30, >> > > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/riscv64-gentoo-linux-musl/bits/gthr-default.h:35, >> > > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/riscv64-gentoo-linux-musl/bits/gthr.h:148, >> > > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/ext/atomicity.h:35, >> > > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/bits/ios_base.h:39, >> > > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/ios:42, >> > > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/istream:38, >> > > from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/sstream:38, >> > > from /var/tmp/portage/sys-devel/gcc-13.0.1_pre20230305/work/gcc-13-20230305/gcc/config/riscv/genrvv-type-indexer.cc:22: >> > > /usr/include/sched.h:84:7: error: attempt to use poisoned "calloc" >> > > 84 | void *calloc(size_t, size_t); >> > > | ^ >> > > /usr/include/sched.h:124:36: error: attempt to use poisoned "calloc" >> > > 124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n))) >> > > | ^ >> > > make[3]: *** [Makefile:2855: build/genrvv-type-indexer.o] Error 1 >> > > ``` >> > > >> > > See also 3b21c21f3f5726823e19728fdd1571a14aae0fb3 and 49d508065bdd36fb1a9b6aad9666b1edb5e06474, >> > > which was fixed in PR106102. >> > >> > The system.h change is OK >> > >> > > gcc/ChangeLog: >> > > * config/riscv/genrvv-type-indexer.cc: Avoid calloc() poisoning on musl by >> > > including <sstream> earlier. >> > > * system.h: Add INCLUDE_SSTREAM. >> > > >> > > Signed-off-by: Sam James <sam@gentoo.org> >> > > --- >> > > gcc/config/riscv/genrvv-type-indexer.cc | 2 +- >> > > gcc/system.h | 4 ++++ >> > > 2 files changed, 5 insertions(+), 1 deletion(-) >> > > >> > > diff --git a/gcc/config/riscv/genrvv-type-indexer.cc b/gcc/config/riscv/genrvv-type-indexer.cc >> > > index 0ef1d766002..e677b55290c 100644 >> > > --- a/gcc/config/riscv/genrvv-type-indexer.cc >> > > +++ b/gcc/config/riscv/genrvv-type-indexer.cc >> > > @@ -14,12 +14,12 @@ along with GCC; see the file COPYING3. If not see >> > > <http://www.gnu.org/licenses/>. */ >> > > >> > > #include "bconfig.h" >> > > +#define INCLUDE_SSTREAM >> > > #include "system.h" >> > > #include "errors.h" >> > > >> > > #include "coretypes.h" >> > > >> > > -#include <sstream> >> > > #include <assert.h> >> > > #include <math.h> >> > > >> > > diff --git a/gcc/system.h b/gcc/system.h >> > > index 64cd5a49258..cf45db3f97e 100644 >> > > --- a/gcc/system.h >> > > +++ b/gcc/system.h >> > > @@ -751,6 +751,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list); >> > > # include <mutex> >> > > #endif >> > > >> > > +#ifdef INCLUDE_SSTREAM >> > > +# include <sstream> >> > > +#endif >> > > + >> > > #ifdef INCLUDE_MALLOC_H >> > > #if defined(HAVE_MALLINFO) || defined(HAVE_MALLINFO2) >> > > #include <malloc.h> >> > > -- >> > > 2.40.0 >> > >
diff --git a/gcc/config/riscv/genrvv-type-indexer.cc b/gcc/config/riscv/genrvv-type-indexer.cc index 0ef1d766002..e677b55290c 100644 --- a/gcc/config/riscv/genrvv-type-indexer.cc +++ b/gcc/config/riscv/genrvv-type-indexer.cc @@ -14,12 +14,12 @@ along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>. */ #include "bconfig.h" +#define INCLUDE_SSTREAM #include "system.h" #include "errors.h" #include "coretypes.h" -#include <sstream> #include <assert.h> #include <math.h> diff --git a/gcc/system.h b/gcc/system.h index 64cd5a49258..cf45db3f97e 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -751,6 +751,10 @@ extern int vsnprintf (char *, size_t, const char *, va_list); # include <mutex> #endif +#ifdef INCLUDE_SSTREAM +# include <sstream> +#endif + #ifdef INCLUDE_MALLOC_H #if defined(HAVE_MALLINFO) || defined(HAVE_MALLINFO2) #include <malloc.h>
This fixes errors like: ``` In file included from /usr/include/pthread.h:30, from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/riscv64-gentoo-linux-musl/bits/gthr-default.h:35, from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/riscv64-gentoo-linux-musl/bits/gthr.h:148, from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/ext/atomicity.h:35, from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/bits/ios_base.h:39, from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/ios:42, from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/istream:38, from /usr/lib/gcc/riscv64-gentoo-linux-musl/12/include/g++-v12/sstream:38, from /var/tmp/portage/sys-devel/gcc-13.0.1_pre20230305/work/gcc-13-20230305/gcc/config/riscv/genrvv-type-indexer.cc:22: /usr/include/sched.h:84:7: error: attempt to use poisoned "calloc" 84 | void *calloc(size_t, size_t); | ^ /usr/include/sched.h:124:36: error: attempt to use poisoned "calloc" 124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n))) | ^ make[3]: *** [Makefile:2855: build/genrvv-type-indexer.o] Error 1 ``` See also 3b21c21f3f5726823e19728fdd1571a14aae0fb3 and 49d508065bdd36fb1a9b6aad9666b1edb5e06474, which was fixed in PR106102. gcc/ChangeLog: * config/riscv/genrvv-type-indexer.cc: Avoid calloc() poisoning on musl by including <sstream> earlier. * system.h: Add INCLUDE_SSTREAM. Signed-off-by: Sam James <sam@gentoo.org> --- gcc/config/riscv/genrvv-type-indexer.cc | 2 +- gcc/system.h | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-)