> Am 27.06.2022 um 16:50 schrieb Sergei Trofimovich <sly...@gmail.com>: > > From: Sergei Trofimovich <siarh...@google.com> > > On musl <pthread.h> uses calloc() (via <sched.h>). <memory> includes > it indirectly and exposes use of poisoned calloc() when module code > is built: > > /build/build/./prev-gcc/xg++ ... > ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc > In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30, > from > /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/x86_64-unknown-linux-musl/bits/gthr-default.h:35, > .... > from > /build/build/prev-x86_64-unknown-linux-musl/libstdc++-v3/include/memory:77, > from ../../gcc-13-20220626/gcc/../libcody/cody.hh:24, > from > ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.h:25, > from > ../../gcc-13-20220626/gcc/cp/../../c++tools/resolver.cc:23, > from ../../gcc-13-20220626/gcc/cp/mapper-resolver.cc:32: > /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use > poisoned "calloc" > 84 | void *calloc(size_t, size_t); > | ^ > /<<NIX>>/musl-1.2.3-dev/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))) > | ^ > > gcc/cp/ > * mapper-client.cc: Include <memory> via "system.h". > * mapper-resolver.cc: Ditto. > * module.cc: Ditto. > > libcc1/ > * libcc1plugin.cc: Ditto. You should repeat the actual entry for the different ChangeLog. Ok wir that change Richard > * libcp1plugin.cc: Ditto. > --- > gcc/cp/mapper-client.cc | 1 + > gcc/cp/mapper-resolver.cc | 1 + > gcc/cp/module.cc | 1 + > libcc1/libcc1plugin.cc | 1 + > libcc1/libcp1plugin.cc | 1 + > 5 files changed, 5 insertions(+) > > diff --git a/gcc/cp/mapper-client.cc b/gcc/cp/mapper-client.cc > index 8603a886a09..fe9544b5ba4 100644 > --- a/gcc/cp/mapper-client.cc > +++ b/gcc/cp/mapper-client.cc > @@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see > #define INCLUDE_STRING > #define INCLUDE_VECTOR > #define INCLUDE_MAP > +#define INCLUDE_MEMORY > #include "system.h" > > #include "line-map.h" > diff --git a/gcc/cp/mapper-resolver.cc b/gcc/cp/mapper-resolver.cc > index e3d29fb5ada..e70d1b4ae2c 100644 > --- a/gcc/cp/mapper-resolver.cc > +++ b/gcc/cp/mapper-resolver.cc > @@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see > #define INCLUDE_VECTOR > #define INCLUDE_ALGORITHM > #define INCLUDE_MAP > +#define INCLUDE_MEMORY > #include "system.h" > > // We don't want or need to be aware of networking > diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc > index e7ce40ef464..99f10733d4b 100644 > --- a/gcc/cp/module.cc > +++ b/gcc/cp/module.cc > @@ -206,6 +206,7 @@ Classes used: > > #define _DEFAULT_SOURCE 1 /* To get TZ field of struct tm, if available. */ > #include "config.h" > +#define INCLUDE_MEMORY > #define INCLUDE_STRING > #define INCLUDE_VECTOR > #include "system.h" > diff --git a/libcc1/libcc1plugin.cc b/libcc1/libcc1plugin.cc > index 12ab5a57c8d..bdd0bdabe77 100644 > --- a/libcc1/libcc1plugin.cc > +++ b/libcc1/libcc1plugin.cc > @@ -31,6 +31,7 @@ > #undef PACKAGE_TARNAME > #undef PACKAGE_VERSION > > +#define INCLUDE_MEMORY > #include "gcc-plugin.h" > #include "system.h" > #include "coretypes.h" > diff --git a/libcc1/libcp1plugin.cc b/libcc1/libcp1plugin.cc > index 83dab7f58b1..e2d5039a0a1 100644 > --- a/libcc1/libcp1plugin.cc > +++ b/libcc1/libcp1plugin.cc > @@ -32,6 +32,7 @@ > #undef PACKAGE_TARNAME > #undef PACKAGE_VERSION > > +#define INCLUDE_MEMORY > #include "gcc-plugin.h" > #include "system.h" > #include "coretypes.h" > -- > 2.36.1 >
Re: [PATCH] c++: avoid poisoning on musl [PR106102]
Richard Biener via Gcc-patches Mon, 27 Jun 2022 08:58:47 -0700
- [PATCH] c++: avoid <memory> poiso... Sergei Trofimovich via Gcc-patches
- Re: [PATCH] c++: avoid <memory&... Richard Biener via Gcc-patches