Open EwoutCornette opened 3 years ago
I met the same error. Anyone can help to solve this issue?
Hi @longingji I was able to make
this on a 64bit Raspberry Pi running Debian. TLDR: I downgraded GCC to 6.3 and had to patch two sets of filenames. Below are my steps in more detail:
/etc/apt/sources.list
that includes gcc-6. See below for my history of bash commands:
437 sudo vim /etc/apt/sources.list
# I appended `deb http://ftp.us.debian.org/debian stretch main`
438 sudo apt update
440 sudo apt-get install gcc-6 g++-6 -y
441 which gcc-6
442 sudo update-alternatives
443 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 6
444 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 6
445 which gcc
446 sudo update-alternatives -configure
447 sudo update-alternatives --configure gcc
448 update-alternatives --help
449 sudo update-alternatives --config gcc
450 which gcc
451 gcc -v
452 sudo update-alternatives --config g++
453 g++ -v
454 sudo make
364 find . -name "wide-int.h"
update "wide-int.h" according to this patch (i did it manually)455 find . -name "cfns.h"
update according to this answer see below:
456 sudo vim ./build/src/newlib-gcc/gcc/cp/cfns.h
457 sudo vim ./build/src/gcc/gcc/cp/cfns.h
458 sudo vim ./build/src/original-gcc/gcc/cp/cfns.h
Good luck!
I used your steps to complete the operation, but it seems to have no effect.
run the make file mutiple times always the same error.
In file included from /home/ewout/ri5cy_gnu_toolchain/build/src/newlib-gcc/gcc/real.h:25, from /home/ewout/ri5cy_gnu_toolchain/build/src/newlib-gcc/gcc/rtl.h:26, from /home/ewout/ri5cy_gnu_toolchain/build/src/newlib-gcc/gcc/genpreds.c:27: /home/ewout/ri5cy_gnu_toolchain/build/src/newlib-gcc/gcc/wide-int.h:370:10: error: too many template-parameter-lists 370 | struct binary_traits <T1, T2, FLEXIBLE_PRECISION, FLEXIBLE_PRECISION> | ^
~~~~~~~~~~~~~ /home/ewout/ri5cy_gnu_toolchain/build/src/newlib-gcc/gcc/wide-int.h:377:10: error: too many template-parameter-lists 377 | struct binary_traits <T1, T2, FLEXIBLE_PRECISION, VAR_PRECISION> | ^~~~~~~~~~~~~ /home/ewout/ri5cy_gnu_toolchain/build/src/newlib-gcc/gcc/wide-int.h:384:10: error: too many template-parameter-lists 384 | struct binary_traits <T1, T2, FLEXIBLE_PRECISION, CONST_PRECISION> | ^~~~~~~~~~~~~~~ /home/ewout/ri5cy_gnu_toolchain/build/src/newlib-gcc/gcc/wide-int.h:394:10: error: too many template-parameter-lists....
/home/ewout/ri5cy_gnu_toolchain/build/src/newlib-gcc/gcc/wide-int.h:696:20: error: incomplete type ‘wi::int_traits<generic_wide_int >’ used in nested name specifier
696 | BINARY_OPERATOR (operator , mul)
| ^
~~~ /home/ewout/ri5cy_gnu_toolchain/build/src/newlib-gcc/gcc/wide-int.h:676:5: note: in definition of macro ‘BINARY_OPERATOR’ 676 | OP (const T &c) const { return wi::F (this, c); } | ^~ In file included from /home/ewout/ri5cy_gnu_toolchain/build/src/newlib-gcc/gcc/rtl.h:27, from /home/ewout/ri5cy_gnu_toolchain/build/src/newlib-gcc/gcc/genpreds.c:27: /home/ewout/ri5cy_gnu_toolchain/build/src/newlib-gcc/gcc/vec.h: In instantiation of ‘bool vec<T, va_heap, vl_ptr>::reserve(unsigned int, bool) [with T = std::pair<unsigned int, const char>]’: /home/ewout/ri5cy_gnu_toolchain/build/src/newlib-gcc/gcc/vec.h:1537:3: required from ‘T vec<T, va_heap, vl_ptr>::safe_push(const T&) [with T = std::pair<unsigned int, const char>]’ /home/ewout/ri5cy_gnu_toolchain/build/src/newlib-gcc/gcc/genpreds.c:1383:68: required from here /home/ewout/ri5cy_gnu_toolchain/build/src/newlib-gcc/gcc/vec.h:1431:14: warning: ‘void memcpy(void, const void, size_t)’ writing to an object of type ‘struct std::pair<unsigned int, const char>’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] 1431 | memcpy (m_vec->address (), oldvec->address (), sizeof (T) oldsize); |~^~~~~~~~~~~~~~~ In file included from /usr/include/c++/9/bits/stl_algobase.h:64, from /usr/include/c++/9/bits/char_traits.h:39, from /usr/include/c++/9/string:40, from /home/ewout/ri5cy_gnu_toolchain/build/src/newlib-gcc/gcc/system.h:201, from /home/ewout/ri5cy_gnu_toolchain/build/src/newlib-gcc/gcc/genpreds.c:24: /usr/include/c++/9/bits/stl_pair.h:208:12: note: ‘struct std::pair<unsigned int, const char*>’ declared here 208 | struct pair | ^~~~ make[4]: [Makefile:2428: build/genpreds.o] Fout 1 make[4]: Map '/home/ewout/ri5cy_gnu_toolchain/build/build-gcc-newlib/gcc' wordt verlaten make[3]: [Makefile:4112: all-gcc] Fout 2 make[3]: Map '/home/ewout/ri5cy_gnu_toolchain/build/build-gcc-newlib' wordt verlaten make[2]: [Makefile:868: all] Fout 2 make[2]: Map '/home/ewout/ri5cy_gnu_toolchain/build/build-gcc-newlib' wordt verlaten make[1]: [Makefile:217: stamps/build-gcc-newlib] Fout 2 make[1]: Map '/home/ewout/ri5cy_gnu_toolchain/build' wordt verlaten make: *** [Makefile:33: build] Fout 2