cross-arm-linux-gnueabi/gcc-10.1.0 does not find crypt.h if cross-arm-linux-gnueabi/glibc is built without the ‘crypt’ use flag: […] /bin/bash ../libtool --tag=CXX --mode=compile /var/tmp/portage/cross-arm-linux-gnueabi/gcc-10.1.0/work/build/./gcc/xgcc -shared-libgcc -B/var/tmp/portage/cross-arm-linux-gnueabi/gcc-10.1.0/work/build/./gcc -nostdinc++ -L/var/tmp/portage/cross-arm-linux-gnueabi/gcc-10.1.0/work/build/arm-linux-gnueabi/libstdc++-v3/src -L/var/tmp/portage/cross-arm-linux-gnueabi/gcc-10.1.0/work/build/arm-linux-gnueabi/libstdc++-v3/src/.libs -L/var/tmp/portage/cross-arm-linux-gnueabi/gcc-10.1.0/work/build/arm-linux-gnueabi/libstdc++-v3/libsupc++/.libs -B/usr/arm-linux-gnueabi/bin/ -B/usr/arm-linux-gnueabi/lib/ -isystem /usr/arm-linux-gnueabi/include -isystem /usr/arm-linux-gnueabi/sys-include -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DHAVE_RPC_XDR_H=0 -DHAVE_TIRPC_RPC_XDR_H=0 -I. -I/var/tmp/portage/cross-arm-linux-gnueabi/gcc-10.1.0/work/gcc-10.1.0/libsanitizer/sanitizer_common -I.. -I /var/tmp/portage/cross-arm-linux-gnueabi/gcc-10.1.0/work/gcc-10.1.0/libsanitizer/include -I /var/tmp/portage/cross-arm-linux-gnueabi/gcc-10.1.0/work/gcc-10.1.0/libsanitizer -isystem /var/tmp/portage/cross-arm-linux-gnueabi/gcc-10.1.0/work/gcc-10.1.0/libsanitizer/include/system -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros -I../../libstdc++-v3/include -I../../libstdc++-v3/include/arm-linux-gnueabi -I/var/tmp/portage/cross-arm-linux-gnueabi/gcc-10.1.0/work/gcc-10.1.0/libsanitizer/../libstdc++-v3/libsupc++ -std=gnu++11 -DSANITIZER_LIBBACKTRACE -DSANITIZER_CP_DEMANGLE -I /var/tmp/portage/cross-arm-linux-gnueabi/gcc-10.1.0/work/gcc-10.1.0/libsanitizer/../libbacktrace -I ../libbacktrace -I /var/tmp/portage/cross-arm-linux-gnueabi/gcc-10.1.0/work/gcc-10.1.0/libsanitizer/../include -include /var/tmp/portage/cross-arm-linux-gnueabi/gcc-10.1.0/work/gcc-10.1.0/libsanitizer/libbacktrace/backtrace-rename.h -g -O2 -D_GNU_SOURCE -MT sanitizer_procmaps_bsd.lo -MD -MP -MF .deps/sanitizer_procmaps_bsd.Tpo -c -o sanitizer_procmaps_bsd.lo /var/tmp/portage/cross-arm-linux-gnueabi/gcc-10.1.0/work/gcc-10.1.0/libsanitizer/sanitizer_common/sanitizer_procmaps_bsd.cpp /var/tmp/portage/cross-arm-linux-gnueabi/gcc-10.1.0/work/gcc-10.1.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp:143:10: fatal error: crypt.h: No such file or directory 143 | #include <crypt.h> | ^~~~~~~~~ compilation terminated. mv -f .deps/sanitizer_libignore.Tpo .deps/sanitizer_libignore.Plo make[4]: *** [Makefile:612: sanitizer_platform_limits_posix.lo] Error 1 make[4]: *** Waiting for unfinished jobs.... […] make[4]: Leaving directory '/var/tmp/portage/cross-arm-linux-gnueabi/gcc-10.1.0/work/build/arm-linux-gnueabi/libsanitizer/sanitizer_common' make[3]: *** [Makefile:528: all-recursive] Error 1 […] Emerging cross-arm-linux-gnueabi/gcc-10.1.0 works fine when cross-arm-linux-gnueabi/glibc has been installed with ‘crypt’.
It's not clear from the log if you are building gcc-sgae1 or stage2. I assume stage2. You can install virtual/libcrypt into ROOT=/usr/${CTARGET} as a workaround.
I really like and appreciate your article post. Much thanks again. https://bit.ly/3l7pHjk