commit:     51e4a893ee0d303cbabc1870c78962487caa9b35
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 19 21:45:01 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Mar 19 21:45:29 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=51e4a893

dev-lang/mrustc: workaround failure on hardened (pass -U_GLIBCXX_ASSERTIONS)

I've not yet investigated or filed a bug upstream, sorry.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...1.2-no-glibcxx-assertions-workaround-more.patch | 79 ++++++++++++++++++++++
 ...c-0.11.2-no-glibcxx-assertions-workaround.patch | 12 ++++
 ...{mrustc-9999.ebuild => mrustc-0.11.2-r1.ebuild} |  5 ++
 dev-lang/mrustc/mrustc-9999.ebuild                 |  2 +
 4 files changed, 98 insertions(+)

diff --git 
a/dev-lang/mrustc/files/mrustc-0.11.2-no-glibcxx-assertions-workaround-more.patch
 
b/dev-lang/mrustc/files/mrustc-0.11.2-no-glibcxx-assertions-workaround-more.patch
new file mode 100644
index 000000000000..a9207f79472a
--- /dev/null
+++ 
b/dev-lang/mrustc/files/mrustc-0.11.2-no-glibcxx-assertions-workaround-more.patch
@@ -0,0 +1,79 @@
+Pass -U_GLIBCXX_ASSERTIONS when building mrustc as a workaround (not yet
+reported, sorry).
+--- a/Makefile
++++ b/Makefile
+@@ -47,7 +47,7 @@ CXXFLAGS := -g -Wall
+ CXXFLAGS += -std=c++14
+ #CXXFLAGS += -Wextra
+ CXXFLAGS += -O2
+-CXXFLAGS += $(CXXFLAGS_EXTRA)
++CXXFLAGS += $(CXXFLAGS_EXTRA) -U_GLIBCXX_ASSERTIONS
+ 
+ CPPFLAGS := -I src/include/ -I src/
+ CPPFLAGS += -I tools/common/
+--- a/tools/common/Makefile
++++ b/tools/common/Makefile
+@@ -12,7 +12,7 @@ OBJS += jobserver.o
+ 
+ CXXFLAGS := -Wall -std=c++14 -g -O2
+ 
+-CXXFLAGS += $(CXXFLAGS_EXTRA)
++CXXFLAGS += $(CXXFLAGS_EXTRA) -U_GLIBCXX_ASSERTIONS
+ 
+ OBJS := $(OBJS:%=$(OBJDIR)%)
+ 
+--- a/tools/dump_hirfile/Makefile
++++ b/tools/dump_hirfile/Makefile
+@@ -16,7 +16,7 @@ OBJS := main.o
+ 
+ LINKFLAGS := -g -lpthread -lz
+ CXXFLAGS := -Wall -std=c++14 -g -O2
+-CXXFLAGS += -I ../common -I ../../src -I ../../src/include
++CXXFLAGS += -I ../common -I ../../src -I ../../src/include 
-U_GLIBCXX_ASSERTIONS
+ 
+ CXXFLAGS += $(CXXFLAGS_EXTRA)
+ LINKFLAGS += $(LINKFLAGS_EXTRA)
+--- a/tools/minicargo/Makefile
++++ b/tools/minicargo/Makefile
+@@ -23,7 +23,7 @@ OBJS += file_timestamp.o os.o
+ 
+ LINKFLAGS := -g -lpthread
+ CXXFLAGS := -Wall -std=c++14 -g -O2
+-CXXFLAGS += -I ../common
++CXXFLAGS += -I ../common -U_GLIBCXX_ASSERTIONS
+ 
+ CXXFLAGS += $(CXXFLAGS_EXTRA)
+ LINKFLAGS += $(LINKFLAGS_EXTRA)
+--- a/tools/mir_opt_test/Makefile
++++ b/tools/mir_opt_test/Makefile
+@@ -16,7 +16,7 @@ LIBS := ../../bin/mrustc.a ../../bin/common_lib.a
+ 
+ LINKFLAGS := -g -lpthread -lz
+ CXXFLAGS := -Wall -std=c++14 -g -O2
+-CXXFLAGS += -I ../common -I ../../src/include -I ../../src -I .
++CXXFLAGS += -I ../common -I ../../src/include -I ../../src -I . 
-U_GLIBCXX_ASSERTIONS
+ CXXFLAGS += -Wno-misleading-indentation       # Gets REALLY confused by the 
TU_ARM macro
+ 
+ CXXFLAGS += $(CXXFLAGS_EXTRA)
+--- a/tools/standalone_miri/Makefile
++++ b/tools/standalone_miri/Makefile
+@@ -16,7 +16,7 @@ OBJS += miri.o miri_extern.o miri_intrinsic.o
+ 
+ LINKFLAGS := -g -lpthread
+ CXXFLAGS := -Wall -std=c++14 -g -O2
+-CXXFLAGS += -I ../common -I ../../src/include -I .
++CXXFLAGS += -I ../common -I ../../src/include -I . -U_GLIBCXX_ASSERTIONS
+ CXXFLAGS += -Wno-misleading-indentation       # Gets REALLY confused by the 
TU_ARM macro
+ 
+ CXXFLAGS += $(CXXFLAGS_EXTRA)
+--- a/tools/testrunner/Makefile
++++ b/tools/testrunner/Makefile
+@@ -8,7 +8,7 @@ OBJS := main.o path.o
+ LINKFLAGS := -g
+ CXXFLAGS := -Wall -std=c++14 -g -O2
+ 
+-CXXFLAGS += $(CXXFLAGS_EXTRA)
++CXXFLAGS += $(CXXFLAGS_EXTRA) -U_GLIBCXX_ASSERTIONS
+ LINKFLAGS += $(LINKFLAGS_EXTRA)
+ 
+ OBJS := $(OBJS:%=$(OBJDIR)%)

diff --git 
a/dev-lang/mrustc/files/mrustc-0.11.2-no-glibcxx-assertions-workaround.patch 
b/dev-lang/mrustc/files/mrustc-0.11.2-no-glibcxx-assertions-workaround.patch
new file mode 100644
index 000000000000..516bca4ac13c
--- /dev/null
+++ b/dev-lang/mrustc/files/mrustc-0.11.2-no-glibcxx-assertions-workaround.patch
@@ -0,0 +1,12 @@
+We need this otherwise the built code will assert when building dev-lang/rust
+later. Not yet reported upstream.
+--- a/src/trans/codegen_c.cpp
++++ b/src/trans/codegen_c.cpp
+@@ -1274,6 +1274,7 @@ namespace {
+                 {
+                     args.push_back( a.c_str() );
+                 }
++                args.push_back("-U_GLIBCXX_ASSERTIONS"); // TODO
+                 args.push_back("-Wno-psabi");   // Suppress "note: the ABI 
for passing parameters with 128-byte alignment has changed in GCC 4.6"
+                 switch(opt.opt_level)
+                 {

diff --git a/dev-lang/mrustc/mrustc-9999.ebuild 
b/dev-lang/mrustc/mrustc-0.11.2-r1.ebuild
similarity index 92%
copy from dev-lang/mrustc/mrustc-9999.ebuild
copy to dev-lang/mrustc/mrustc-0.11.2-r1.ebuild
index 2d39a52cbcb6..12add5b79790 100644
--- a/dev-lang/mrustc/mrustc-9999.ebuild
+++ b/dev-lang/mrustc/mrustc-0.11.2-r1.ebuild
@@ -35,8 +35,13 @@ RDEPEND="
 BDEPEND="sys-devel/gcc:*"
 
 PATCHES=(
+       "${FILESDIR}/${PN}-0.11.2-gcc15.patch"
+       "${FILESDIR}/${PN}-0.11.2-dont-strip-bins.patch"
        "${FILESDIR}/${PN}-0.11.0-default-to-rust-1_74.patch"
        "${FILESDIR}/${PN}-0.11.0-RUSTC_SRC_PROVIDED.patch"
+       "${FILESDIR}/${PN}-0.10.1-git-be-gone.patch"
+       "${FILESDIR}/${PN}-0.11.2-no-glibcxx-assertions-workaround.patch"
+       "${FILESDIR}/${PN}-0.11.2-no-glibcxx-assertions-workaround-more.patch"
 )
 
 QA_FLAGS_IGNORED="

diff --git a/dev-lang/mrustc/mrustc-9999.ebuild 
b/dev-lang/mrustc/mrustc-9999.ebuild
index 2d39a52cbcb6..8a3d460ca787 100644
--- a/dev-lang/mrustc/mrustc-9999.ebuild
+++ b/dev-lang/mrustc/mrustc-9999.ebuild
@@ -37,6 +37,8 @@ BDEPEND="sys-devel/gcc:*"
 PATCHES=(
        "${FILESDIR}/${PN}-0.11.0-default-to-rust-1_74.patch"
        "${FILESDIR}/${PN}-0.11.0-RUSTC_SRC_PROVIDED.patch"
+       "${FILESDIR}/${PN}-0.11.2-no-glibcxx-assertions-workaround.patch"
+       "${FILESDIR}/${PN}-0.11.2-no-glibcxx-assertions-workaround-more.patch"
 )
 
 QA_FLAGS_IGNORED="

Reply via email to