diff options
author | Sam James <sam@gentoo.org> | 2023-03-14 00:23:53 +0000 |
---|---|---|
committer | Kito Cheng <kito.cheng@sifive.com> | 2023-03-14 21:47:33 +0800 |
commit | 0e6f87835ccabfe84afe412583544ff6e6292352 (patch) | |
tree | 6d30090a27194e0644feed4b0c6ec93c784688f7 /gcc | |
parent | bd6e566e9dc543cf4f6df69dcefb40bb8b4100f1 (diff) | |
download | gcc-0e6f87835ccabfe84afe412583544ff6e6292352.zip gcc-0e6f87835ccabfe84afe412583544ff6e6292352.tar.gz gcc-0e6f87835ccabfe84afe412583544ff6e6292352.tar.bz2 |
RISC-V: Avoid calloc() poisoning on musl
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>
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/riscv/genrvv-type-indexer.cc | 2 | ||||
-rw-r--r-- | gcc/system.h | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/gcc/config/riscv/genrvv-type-indexer.cc b/gcc/config/riscv/genrvv-type-indexer.cc index 0ef1d76..e677b55 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 64cd5a4..cf45db3 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> |