Towards GNU/MINIX - libstdc++
Cross-compiled C++ program running on Minix To compile a C++ program, we need C++ standard library. While Clang libc++.so comes with Minix distribution, GCC version of libstdc++.so has to be cross-compiled . Interestingly, while GNU C library Glibc is a separate project, libstdc++ is part of the GCC project. In other words, you can use a different C library (like musl or ulibc) with GCC if you want. Lessons Learnt Clang uses inline namespaces by default whereas GCC does not. anand@PureBook:~/work/minix/usr/lib$ nm -s libstdc++.so | c++filt | grep cout 00328a20 b __gnu_internal::buf_cout_sync 00329080 b __gnu_internal::buf_wcout_sync 00328ae0 b __gnu_internal::buf_cout 00329140 b __gnu_internal::buf_wcout 003285c0 B std::cout 00328840 B std::wcout anand@PureBook:~/work/minix/usr/lib$ nm -s libc++.so | c++filt | grep cout 000c2b00 B std::__1::cout 000c2c54 B std::__1::wcout You can use objcopy to alter symbol name in an object file or library. mthread.h has provisions for supporti