I have founded that at 15 Nov 2020, commit a1ede3a40249ea2efe54e182998bd8519e37a31e, sthibaul have fixed includability of <hurd/signal.h> in all standards and removed the dependence of the `cthread.h`. But it hasn't been released and I would get the GLIBC source directly from the git repo.
15.01.2021, 22:34, "haha wang" <hahw...@yandex.com>:
I try to compile the Hurd from the source the first time with the help of cross-hurd. By calling `bash bootstrap.sh", the compiling procedure goes and passes a few stages.```cd src &&compile_binutils &&compile_gmp &&compile_mpfr &&compile_mpc &&compile_gcc &&compile_pkgconfiglite &&install_gnumach_headers &&install_gnumig &&install_hurd_headers &&compile_first_glibc &&compile_full_gcc &&compile_second_glibc &&print_info "bootstrap.sh finished successfully" &&exit 0```but it fails and the `compile_first_glibc` stage and get the following error:```mutex-solid.c:20:10: fatal error: cthreads.h: No such file or directory20 | #include <cthreads.h>| ^~~~~~~~~~~~compilation terminated.make[2]: *** [/home/hahawang/code/hurd/my-cross-hurd/tmp/src/glibc-2.32.first_obj/mach/mutex-solid.o] Error 1make[1]: *** [mach/subdir_lib] Error 2make: *** [all] Error 2mutex-solid.c:20:10: fatal error: cthreads.h: No such file or directory20 | #include <cthreads.h>| ^~~~~~~~~~~~compilation terminated.```I have found the `cthread.h` within the source package of the gnumach but not at the include path of the cross-building Hurd. It seems that it haven't been installed yet.By reading the `INSTALL-cross` guide, I have found the first compiling of glibc always fails and you can just ignore it. I do as it told, continue to compile gcc again. But the second compiling of gcc failed too and dumped the following error:```cc1: note: self-tests are not enabled in this buildcc1plus: note: self-tests are not enabled in this buildIn file included from ../../../gcc-9.2.0/libgcc/libgcc2.c:27:../../../gcc-9.2.0/libgcc/../gcc/tsystem.h:87:10: fatal error: stdio.h: No such file or directory87 | #include <stdio.h>| ^~~~~~~~~compilation terminated.make[2]: *** [_muldi3.o] Error 1make[1]: *** [all-target-libgcc] Error 2make: *** [all] Error 2```It seems that compiling gcc the second time needs glibc to provide a working `stdio.h`, but the glibc also needs a second compiling after the compiling of gcc succeeds. Now it stuck. I know its a chicken-and-egg problem, but how to fix it? Should I replace gcc with another version or find some patch files? Thank you in advance.GCC and GLIBC version:[1] GCC: gcc-9.2.0[2] GLIBC: glibc-2.32