diff options
author | Chris Packham <judge.packham@gmail.com> | 2023-05-08 21:10:05 +1200 |
---|---|---|
committer | Chris Packham <judge.packham@gmail.com> | 2023-05-14 10:35:14 +1200 |
commit | e8b3eccd8a036e6f3602cd25b2307e3db5476734 (patch) | |
tree | 2802767dd5c669fa869b0dd785d05a498f1d552b /packages/gcc | |
parent | 584b25da7a81d2f08935256df3cf16a115001e9d (diff) | |
download | crosstool-ng-e8b3eccd8a036e6f3602cd25b2307e3db5476734.tar.gz crosstool-ng-e8b3eccd8a036e6f3602cd25b2307e3db5476734.tar.bz2 crosstool-ng-e8b3eccd8a036e6f3602cd25b2307e3db5476734.zip |
gcc: Add upstream patch for build issue on RISCV
Depending on the host C++ compiler GCC13 fails on riscv configurations
with the following error
src/gcc/gcc/config/riscv/genrvv-type-indexer.cc:118:30: error: no member named 'log2' in namespace 'std'; did you mean simply 'log2'?
elmul_log2 = lmul_log2 - std::log2 (sew / eew);
^~~~~~~~~
log2
/usr/include/c++/v1/math.h:1463:1: note: 'log2' declared here
log2(_A1 __lcpp_x) _NOEXCEPT {return ::log2((double)__lcpp_x);}
^
Bring in an upstream fix for the build error.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Diffstat (limited to 'packages/gcc')
-rw-r--r-- | packages/gcc/13.1.0/0010-RISC-V-fix-build-issue-with-gcc-4.9.x.patch | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/packages/gcc/13.1.0/0010-RISC-V-fix-build-issue-with-gcc-4.9.x.patch b/packages/gcc/13.1.0/0010-RISC-V-fix-build-issue-with-gcc-4.9.x.patch new file mode 100644 index 00000000..f6d9e0bc --- /dev/null +++ b/packages/gcc/13.1.0/0010-RISC-V-fix-build-issue-with-gcc-4.9.x.patch @@ -0,0 +1,41 @@ +From 87c347c2897537a6aa391efbfc5ed00c625434fe Mon Sep 17 00:00:00 2001 +From: Romain Naour <romain.naour@gmail.com> +Date: Tue, 2 May 2023 14:21:55 +0200 +Subject: [PATCH] RISC-V: fix build issue with gcc 4.9.x + +GCC should still build with GCC 4.8.3 or newer [1] +using C++03 by default. But a recent change in +RISC-V port introduced a C++11 feature "std::log2" [2]. + +Use log2 from the C header, without the namespace [3]. + +[1] https://gcc.gnu.org/install/prerequisites.html +[2] https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=7caa1ae5e451e780fbc4746a54e3f19d4f4304dc +[3] https://stackoverflow.com/questions/26733413/error-log2-is-not-a-member-of-std + +Fixes: +https://gitlab.com/buildroot.org/toolchains-builder/-/jobs/4202276589 + +gcc/ChangeLog: + * config/riscv/genrvv-type-indexer.cc: Use log2 from the C header, without + the namespace. + +Signed-off-by: Romain Naour <romain.naour@gmail.com> +--- + gcc/config/riscv/genrvv-type-indexer.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/gcc/config/riscv/genrvv-type-indexer.cc ++++ b/gcc/config/riscv/genrvv-type-indexer.cc +@@ -115,9 +115,9 @@ + if (sew == eew) + elmul_log2 = lmul_log2; + else if (sew > eew) +- elmul_log2 = lmul_log2 - std::log2 (sew / eew); ++ elmul_log2 = lmul_log2 - log2 (sew / eew); + else /* sew < eew */ +- elmul_log2 = lmul_log2 + std::log2 (eew / sew); ++ elmul_log2 = lmul_log2 + log2 (eew / sew); + + if (float_p) + return floattype (eew, elmul_log2); |