mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-19 21:07:54 +00:00
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>
This commit is contained in:
parent
584b25da7a
commit
e8b3eccd8a
41
packages/gcc/13.1.0/0010-RISC-V-fix-build-issue-with-gcc-4.9.x.patch
vendored
Normal file
41
packages/gcc/13.1.0/0010-RISC-V-fix-build-issue-with-gcc-4.9.x.patch
vendored
Normal file
@ -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);
|
Loading…
Reference in New Issue
Block a user