On 3/11/22 16:12, Jonathan Wakely wrote:
On Fri, 11 Mar 2022 at 14:28, Detlef Vollmann wrote:With this and the other fix I was able to build the complete libstdc++ for AVR based on AVR Libc 2.0 (plus some ad hoc AVR header fixes) from git master 5e28be89.Nice. I finally figure out that I need to use --enable-libstdcxx *not* --enable-libstdc++-v3 to build for AVR,
Yes, I had the same problem. A comment in the 'configure' script still says libstdc++-v3 and in the configure docs at <https://gcc.gnu.org/install/configure.html> or <https://gcc.gnu.org/onlinedocs/libstdc++/manual/configure.html> there's neither :-(
and now I get errors due to EOVERFLOW being undefined. Is that what you fixed?
One of them.
We should make that work. Arguably, all values of std::errc should exist, even if the OS <errno.h> doesn't provide a constant. We could define the missing ones ourselves, choosing numbers > 1000 (and hope the OS uses small numbers for its own errno values).
I simply defined all that were required. I've attached a tarball with all my header fixes. To get them picked up while compiling libstdc++ I had to put them into ${prefix}/avr/lib/include. But these are really ad hoc, some of the problems I think should be fixed in the libstdc++ sources. E.g. I think it's wrong to expect that specific functions are available if a respective header is available (e.g. close() in unistd.h). Detlef
avr-fixups.tar.bz2
Description: Binary data