-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
10 changed files
with
273 additions
and
108 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
105 changes: 105 additions & 0 deletions
105
srcpkgs/gcc/patches/3b21c21f3f5726823e19728fdd1571a14aae0fb3.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
From 3b21c21f3f5726823e19728fdd1571a14aae0fb3 Mon Sep 17 00:00:00 2001 | ||
From: Sergei Trofimovich <[email protected]> | ||
Date: Mon, 27 Jun 2022 13:27:24 +0100 | ||
Subject: [PATCH] c++: avoid <memory> poisoning on musl [PR106102] | ||
|
||
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/ | ||
|
||
PR c++/106102 | ||
* mapper-client.cc: Include <memory> via "system.h". | ||
* mapper-resolver.cc: Ditto. | ||
* module.cc: Ditto. | ||
|
||
libcc1/ | ||
|
||
PR c++/106102 | ||
* libcc1plugin.cc: Include <memory> via "system.h". | ||
* 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 8603a886a099..fe9544b5ba43 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 e3d29fb5ada1..e70d1b4ae2ca 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 753963a4b246..8bb22c2b305a 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 12ab5a57c8dd..bdd0bdabe77f 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 83dab7f58b11..e2d5039a0a1f 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" |
Oops, something went wrong.