GCC is just one implementation, you can't make such a generalization about "no freestanding C++" from one implementation. The fact that libstdc++ has a freestanding mode which still has certain requirements doesn't mean "there are no freestanding C++". Of course LLVM is even worse, but I am not going to trash talk about that here. The GCC team did a horrible job in the past. Not just because of the reason of exception handling. The freestanding C++ is an absolute joke. Like BUFSIZ macro on windows, which is wrong for 30 years (just fixed in GCC11 because I reported the bug). There are a lot of historical issues with GCC implementations and I tried to submit patches to fix them. No one actually tries to fix this until I come. The same freaking issue was been mentioned 10 years ago. > You give reasons for Trolls like Richard Stallman and Linus to attack this > still the only language for writing OS kernel. > Anyone who attempted to write OS in C++ feel the same way. > Also why people like Linux hate C++ so much. > That is why people are not using C++ for writing operating system. > Because libstdc++ may not be the only target library with the stdint.h issue. > CFLAGS_FOR_TARGET="-g -O2 -ffreestanding". > Did you try forcing -ffreestanding for target library build with > But maybe it's just specifics for x86_64-elf and other targets work fine > So first of all -disable-hosted-libstdcxx doesn't work up to its standard? > (In reply to Richard Biener from comment #18) use autotool to include stdint-gcc.h when stdint.h does not exist. just redefine them in cstdint with freestanding.Ģ. What we have is stdint-gcc.h which is automatically generated by the compiler.ġ. The issue is that there is no such header called stdint.h. Make: Leaving directory '/home/cqwrteur/myhome/gcc2_elf_build' configure: error: no 8-bit type, please report a bug stddef.h (using manual detection)Ĭhecking for type equivalent to int8_t. noĬhecking what to include in include/gstdint.h. ![]() Looking for u_intXX_t types in sys/inttypes.h, checking for u_int32_t. Looking for u_intXX_t types in inttypes.h, checking for u_int32_t. Looking for u_intXX_t types in sys/types.h, checking for u_int32_t. Looking for an incomplete stdint.h in sys/inttypes.h, checking for uint32_t. ![]() Looking for an incomplete stdint.h in inttypes.h, checking for uint32_t. Looking for an incomplete stdint.h in stdint.h, checking for uint32_t. Looking for a compliant stdint.h in sys/inttypes.h, checking for uintmax_t. Looking for a compliant stdint.h in inttypes.h, checking for uintmax_t. Looking for a compliant stdint.h in stdint.h, checking for uintmax_t.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |