> Mmm, I wonder why. The libc_add_on_subdirs=. line in configure should > have made the build system take the libpthread/sysdeps path into account > (at least in the Debian package it does).
It takes into account the libpthread/sysdeps tree path. I have pasted the corresponding output of the configure script in the link below. > http://paste.debian.net/plain/91552 The error appears when we include "<bits/(filename).h>". It just looks for the headers in the bits/ folder, while they are at "libpthread/sysdeps/generic/bits/". > A workaround is to add lines in Makerules just like there are for > *__libc_thread_subfreeres There are already lines in Makerules for that. > PROVIDE(__start__hurd_fork_parent_hook = .);\ > _hurd_fork_parent_hook : { *(_hurd_fork_parent_hook) }\ I am investigating if everything works as it should in my environment. I have attached the output of the configure part of the building process, so you can have a better look.
checking build system type... x86_64-unknown-linux-gnu checking host system type... i686-pc-gnu checking for i686-pc-gnu-gcc... i686-pc-gnu-gcc checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether i686-pc-gnu-gcc accepts -g... yes checking for gcc... gcc checking for i686-pc-gnu-g++... no checking for i686-pc-gnu-c++... no checking for i686-pc-gnu-gpp... no checking for i686-pc-gnu-aCC... no checking for i686-pc-gnu-CC... no checking for i686-pc-gnu-cxx... no checking for i686-pc-gnu-cc++... no checking for i686-pc-gnu-cl.exe... no checking for i686-pc-gnu-FCC... no checking for i686-pc-gnu-KCC... no checking for i686-pc-gnu-RCC... no checking for i686-pc-gnu-xlC_r... no checking for i686-pc-gnu-xlC... no checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking for i686-pc-gnu-readelf... i686-pc-gnu-readelf checking for sysdeps preconfigure fragments... x86_64 configure: running configure fragment for add-on libidn configure: running configure fragment for add-on libpthread configure: running configure fragment for add-on nptl checking add-on ports for preconfigure fragments... aarch64 alpha am33 arm hppa ia64 m68k microblaze mips tile checking for assembler and linker STT_GNU_IFUNC support... yes checking whether .text pseudo-op must be used... yes checking sysdep dirs... libpthread/sysdeps/mach/hurd/i386 sysdeps/mach/hurd/i386 libpthread/sysdeps/mach/hurd libpthread/sysdeps/hurd sysdeps/mach/hurd sysdeps/gnu sysdeps/unix/bsd/bsd4.4 sysdeps/mach/i386 libpthread/sysdeps/mach sysdeps/mach sysdeps/i386/i686/fpu sysdeps/i386/i686 sysdeps/i386/i486 sysdeps/i386/fpu sysdeps/x86/fpu libpthread/sysdeps/i386 sysdeps/i386 sysdeps/x86 sysdeps/wordsize-32 sysdeps/ieee754/ldbl-96 sysdeps/ieee754/dbl-64 sysdeps/ieee754/flt-32 sysdeps/unix/bsd sysdeps/unix/inet sysdeps/ieee754 sysdeps/unix sysdeps/posix libpthread/sysdeps/posix sysdeps/generic configure: WARNING: add-on ports contributed no sysdeps directories checking for a BSD-compatible install... /gnu/store/gjl05yl9lvgjhznz5v985mys861svp34-coreutils-8.21/bin/install -c checking whether ln -s works... yes checking whether /gnu/store/hl1rsbjzq5pwph850al9y52xrjqjg4f5-gcc-cross-sans-libc-i686-pc-gnu-4.8.2/libexec/gcc/i686-pc-gnu/as is GNU as... yes checking whether /gnu/store/hl1rsbjzq5pwph850al9y52xrjqjg4f5-gcc-cross-sans-libc-i686-pc-gnu-4.8.2/libexec/gcc/i686-pc-gnu/ld is GNU ld... yes checking for /gnu/store/hl1rsbjzq5pwph850al9y52xrjqjg4f5-gcc-cross-sans-libc-i686-pc-gnu-4.8.2/libexec/gcc/i686-pc-gnu/as... /gnu/store/hl1rsbjzq5pwph850al9y52xrjqjg4f5-gcc-cross-sans-libc-i686-pc-gnu-4.8.2/libexec/gcc/i686-pc-gnu/as checking version of /gnu/store/hl1rsbjzq5pwph850al9y52xrjqjg4f5-gcc-cross-sans-libc-i686-pc-gnu-4.8.2/libexec/gcc/i686-pc-gnu/as... 2.23.2, ok checking for /gnu/store/hl1rsbjzq5pwph850al9y52xrjqjg4f5-gcc-cross-sans-libc-i686-pc-gnu-4.8.2/libexec/gcc/i686-pc-gnu/ld... /gnu/store/hl1rsbjzq5pwph850al9y52xrjqjg4f5-gcc-cross-sans-libc-i686-pc-gnu-4.8.2/libexec/gcc/i686-pc-gnu/ld checking version of /gnu/store/hl1rsbjzq5pwph850al9y52xrjqjg4f5-gcc-cross-sans-libc-i686-pc-gnu-4.8.2/libexec/gcc/i686-pc-gnu/ld... 2.23.2, ok checking for i686-pc-gnu-gcc... (cached) i686-pc-gnu-gcc checking version of i686-pc-gnu-gcc... 4.8.2, ok checking for gnumake... no checking for gmake... no checking for make... make checking version of make... 4.0, ok checking for gnumsgfmt... no checking for gmsgfmt... no checking for msgfmt... no checking for makeinfo... no checking for sed... sed checking version of sed... 4.2.2, ok checking for gawk... gawk checking version of gawk... 4.1.0, ok checking for i686-pc-gnu-nm... i686-pc-gnu-nm checking for autoconf... autoconf checking whether autoconf works... yes configure: WARNING: *** These auxiliary programs are missing or incompatible versions: msgfmt makeinfo *** some features will be disabled. *** Check the INSTALL file for required versions. checking LD_LIBRARY_PATH variable... ok checking whether GCC supports -static-libgcc... -static-libgcc checking for bash... /gnu/store/281n6ma5jxy9sb3nwc09mzpqx43vczr6-bash-4.2/bin/bash checking for perl... /gnu/store/qdd0hz0sclms1rz3ss01f75r3ys8r58z-perl-5.16.1/bin/perl checking for install-info... no checking for bison... no checking for libc-friendly stddef.h... yes checking whether we need to use -P to assemble .S files... no checking for .set assembler directive... yes checking for assembler gnu_unique_object symbol type... yes checking for .symver assembler directive... yes checking for ld --version-script... yes checking for .previous assembler directive... yes checking for .protected and .hidden assembler directive... yes checking whether __attribute__((visibility())) is supported... yes checking for broken __attribute__((visibility()))... no checking for broken __attribute__((alias()))... no checking whether to put _rtld_local into .sdata section... no checking for .preinit_array/.init_array/.fini_array support... yes checking whether to use .ctors/.dtors header and trailer... yes checking for libunwind-support in compiler... no checking for linker that supports -z nodelete... yes checking for linker that supports -z nodlopen... yes checking for linker that supports -z initfirst... yes checking for -z relro option... yes checking for -Bgroup option... yes checking whether --noexecstack is desirable for .S files... yes checking for -z combreloc... yes checking for linker that supports -z execstack... yes checking for -fpie... yes checking for --hash-style option... yes checking for sufficient default -shared layout... no checking linker output format... elf32-i386 checking for -fno-toplevel-reorder -fno-section-anchors... yes checking for -fstack-protector... yes checking for -fgnu89-inline... yes checking whether cc puts quotes around section names... no checking for assembler .weak directive... yes checking whether CFI directives are supported... yes checking for ld --no-whole-archive... yes checking for gcc -fexceptions... yes checking for __builtin_memset... yes checking for redirection of built-in functions... yes checking for __thread... yes checking for tls_model attribute... yes checking for compiler option to disable generation of FMA instructions... -ffp-contract=off checking for libgd... no checking for is_selinux_enabled in -lselinux... no checking size of long double... 0 checking for _FORTIFY_SOURCE predefine... no checking whether i686-pc-gnu-gcc implicitly enables -fstack-protector... no running configure fragment for sysdeps/mach/hurd checking Hurd header version... ok running configure fragment for sysdeps/gnu running configure fragment for sysdeps/mach checking for i686-pc-gnu-mig... no checking for mig... mig checking for mach/mach_types.h... yes checking for mach/mach_types.defs... yes checking for task_t in mach/mach_types.h... task_t checking for thread_t in mach/mach_types.h... thread_t checking for creation_time in task_basic_info... yes checking for mach/mach.defs... yes checking for mach/mach4.defs... yes checking for mach/clock.defs... no checking for mach/clock_priv.defs... no checking for mach/host_priv.defs... no checking for mach/host_security.defs... no checking for mach/ledger.defs... no checking for mach/lock_set.defs... no checking for mach/processor.defs... no checking for mach/processor_set.defs... no checking for mach/task.defs... no checking for mach/thread_act.defs... no checking for mach/vm_map.defs... no checking for mach/memory_object.defs... yes checking for mach/memory_object_default.defs... yes checking for mach/default_pager.defs... yes checking for mach/i386/mach_i386.defs... yes checking for grep that handles long lines and -e... /gnu/store/v2q2595q6n4gs32j15ga65bgy0yqg76g-grep-2.15/bin/grep checking for egrep... /gnu/store/v2q2595q6n4gs32j15ga65bgy0yqg76g-grep-2.15/bin/grep -E checking for host_page_size in mach_host.defs... no checking for mach/machine/ndr_def.h... no checking for machine/ndr_def.h... no checking for i386_io_perm_modify in mach_i386.defs... yes checking for i386_set_gdt in mach_i386.defs... yes checking whether mig supports the retcode keyword... yes running configure fragment for sysdeps/i386 checking for compiler support of inlined builtin function __sync_val_compare_and_swap... yes checking for cpuid.h... yes checking for SSE4 support... yes checking for assembler -mtune=i686 support... yes checking for AVX support... yes checking for AVX encoding of SSE instructions... yes checking for FMA4 support... yes checking for -mno-vzeroupper support... yes checking for old glibc 2.0.x headers... no checking whether -fPIC is default... no configure: creating ./config.status config.status: creating config.make config.status: creating Makefile config.status: creating config.h config.status: executing default commands phase `configure' succeeded after 3 seconds starting phase `patch-generated-file-shebangs' patch-shebang: ./config.status: changing `/gnu/store/281n6ma5jxy9sb3nwc09mzpqx43vczr6-bash-4.2/bin/bash' to `/gnu/store/x26nnlh6azmnd0ibdyfwafdc6rkzx17w-bash-light-4.2/bin/bash' phase `patch-generated-file-shebangs' succeeded after 0 seconds starting phase `build' make -r PARALLELMFLAGS="" -C ../source objdir=`pwd` all make[1]: Entering directory '/tmp/nix-build-glibc-hurd-cross-i686-pc-gnu-2.18.drv-32/source' autoconf sysdeps/x86_64/preconfigure.in > sysdeps/x86_64/preconfigure.new chmod a-w sysdeps/x86_64/preconfigure.new mv -f sysdeps/x86_64/preconfigure.new sysdeps/x86_64/preconfigure autoconf libidn/configure.in > libidn/configure.new chmod a-w libidn/configure.new mv -f libidn/configure.new libidn/configure autoconf ports/sysdeps/arm/preconfigure.in > ports/sysdeps/arm/preconfigure.new chmod a-w ports/sysdeps/arm/preconfigure.new mv -f ports/sysdeps/arm/preconfigure.new ports/sysdeps/arm/preconfigure running CONFIG_SHELL=/gnu/store/281n6ma5jxy9sb3nwc09mzpqx43vczr6-bash-4.2/bin/bash /gnu/store/281n6ma5jxy9sb3nwc09mzpqx43vczr6-bash-4.2/bin/bash ../source/configure CONFIG_SHELL=/gnu/store/281n6ma5jxy9sb3nwc09mzpqx43vczr6-bash-4.2/bin/bash SHELL=/gnu/store/281n6ma5jxy9sb3nwc09mzpqx43vczr6-bash-4.2/bin/bash --prefix=/gnu/store/0imj5sr24hv9lvfb84nzzlgxkn7zgyvk-glibc-hurd-cross-i686-pc-gnu-2.18 --enable-fast-install --without-cvs --enable-add-ons --host=i686-pc-gnu --sysconfdir=/etc --disable-profile --disable-multi-arch --disable-sanity-checks --disable-nscd --enable-obsolete-rpc --enable-stackguard-randomization libc_cv_localedir=/gnu/store/50lqngxvr9rsx2ip1hai1ldy9f1phwia-glibc-hurd-cross-i686-pc-gnu-2.18-locales/share/locale BASH_SHELL=/gnu/store/281n6ma5jxy9sb3nwc09mzpqx43vczr6-bash-4.2/bin/bash host_alias=i686-pc-gnu --no-create --no-recursion configure: WARNING: if you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used checking build system type... x86_64-unknown-linux-gnu checking host system type... i686-pc-gnu checking for i686-pc-gnu-gcc... i686-pc-gnu-gcc checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether i686-pc-gnu-gcc accepts -g... yes checking for gcc... gcc checking for i686-pc-gnu-g++... no checking for i686-pc-gnu-c++... no checking for i686-pc-gnu-gpp... no checking for i686-pc-gnu-aCC... no checking for i686-pc-gnu-CC... no checking for i686-pc-gnu-cxx... no checking for i686-pc-gnu-cc++... no checking for i686-pc-gnu-cl.exe... no checking for i686-pc-gnu-FCC... no checking for i686-pc-gnu-KCC... no checking for i686-pc-gnu-RCC... no checking for i686-pc-gnu-xlC_r... no checking for i686-pc-gnu-xlC... no checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking for i686-pc-gnu-readelf... i686-pc-gnu-readelf checking for sysdeps preconfigure fragments... x86_64 configure: running configure fragment for add-on libidn configure: running configure fragment for add-on libpthread configure: running configure fragment for add-on nptl checking add-on ports for preconfigure fragments... aarch64 alpha am33 arm hppa ia64 m68k microblaze mips tile checking for assembler and linker STT_GNU_IFUNC support... yes checking whether .text pseudo-op must be used... yes checking sysdep dirs... libpthread/sysdeps/mach/hurd/i386 sysdeps/mach/hurd/i386 libpthread/sysdeps/mach/hurd libpthread/sysdeps/hurd sysdeps/mach/hurd sysdeps/gnu sysdeps/unix/bsd/bsd4.4 sysdeps/mach/i386 libpthread/sysdeps/mach sysdeps/mach sysdeps/i386/i686/fpu sysdeps/i386/i686 sysdeps/i386/i486 sysdeps/i386/fpu sysdeps/x86/fpu libpthread/sysdeps/i386 sysdeps/i386 sysdeps/x86 sysdeps/wordsize-32 sysdeps/ieee754/ldbl-96 sysdeps/ieee754/dbl-64 sysdeps/ieee754/flt-32 sysdeps/unix/bsd sysdeps/unix/inet sysdeps/ieee754 sysdeps/unix sysdeps/posix libpthread/sysdeps/posix sysdeps/generic configure: WARNING: add-on ports contributed no sysdeps directories checking for a BSD-compatible install... /gnu/store/gjl05yl9lvgjhznz5v985mys861svp34-coreutils-8.21/bin/install -c checking whether ln -s works... yes checking whether /gnu/store/hl1rsbjzq5pwph850al9y52xrjqjg4f5-gcc-cross-sans-libc-i686-pc-gnu-4.8.2/libexec/gcc/i686-pc-gnu/as is GNU as... yes checking whether /gnu/store/hl1rsbjzq5pwph850al9y52xrjqjg4f5-gcc-cross-sans-libc-i686-pc-gnu-4.8.2/libexec/gcc/i686-pc-gnu/ld is GNU ld... yes checking for /gnu/store/hl1rsbjzq5pwph850al9y52xrjqjg4f5-gcc-cross-sans-libc-i686-pc-gnu-4.8.2/libexec/gcc/i686-pc-gnu/as... /gnu/store/hl1rsbjzq5pwph850al9y52xrjqjg4f5-gcc-cross-sans-libc-i686-pc-gnu-4.8.2/libexec/gcc/i686-pc-gnu/as checking version of /gnu/store/hl1rsbjzq5pwph850al9y52xrjqjg4f5-gcc-cross-sans-libc-i686-pc-gnu-4.8.2/libexec/gcc/i686-pc-gnu/as... 2.23.2, ok checking for /gnu/store/hl1rsbjzq5pwph850al9y52xrjqjg4f5-gcc-cross-sans-libc-i686-pc-gnu-4.8.2/libexec/gcc/i686-pc-gnu/ld... /gnu/store/hl1rsbjzq5pwph850al9y52xrjqjg4f5-gcc-cross-sans-libc-i686-pc-gnu-4.8.2/libexec/gcc/i686-pc-gnu/ld checking version of /gnu/store/hl1rsbjzq5pwph850al9y52xrjqjg4f5-gcc-cross-sans-libc-i686-pc-gnu-4.8.2/libexec/gcc/i686-pc-gnu/ld... 2.23.2, ok checking for i686-pc-gnu-gcc... (cached) i686-pc-gnu-gcc checking version of i686-pc-gnu-gcc... 4.8.2, ok checking for gnumake... no checking for gmake... no checking for make... make checking version of make... 4.0, ok checking for gnumsgfmt... no checking for gmsgfmt... no checking for msgfmt... no checking for makeinfo... no checking for sed... sed checking version of sed... 4.2.2, ok checking for gawk... gawk checking version of gawk... 4.1.0, ok checking for i686-pc-gnu-nm... i686-pc-gnu-nm checking for autoconf... autoconf checking whether autoconf works... yes configure: WARNING: *** These auxiliary programs are missing or incompatible versions: msgfmt makeinfo *** some features will be disabled. *** Check the INSTALL file for required versions. checking LD_LIBRARY_PATH variable... ok checking whether GCC supports -static-libgcc... -static-libgcc checking for bash... /gnu/store/281n6ma5jxy9sb3nwc09mzpqx43vczr6-bash-4.2/bin/bash checking for perl... /gnu/store/qdd0hz0sclms1rz3ss01f75r3ys8r58z-perl-5.16.1/bin/perl checking for install-info... no checking for bison... no checking for libc-friendly stddef.h... yes checking whether we need to use -P to assemble .S files... no checking for .set assembler directive... yes checking for assembler gnu_unique_object symbol type... yes checking for .symver assembler directive... yes checking for ld --version-script... yes checking for .previous assembler directive... yes checking for .protected and .hidden assembler directive... yes checking whether __attribute__((visibility())) is supported... yes checking for broken __attribute__((visibility()))... no checking for broken __attribute__((alias()))... no checking whether to put _rtld_local into .sdata section... no checking for .preinit_array/.init_array/.fini_array support... yes checking whether to use .ctors/.dtors header and trailer... yes checking for libunwind-support in compiler... no checking for linker that supports -z nodelete... yes checking for linker that supports -z nodlopen... yes checking for linker that supports -z initfirst... yes checking for -z relro option... yes checking for -Bgroup option... yes checking whether --noexecstack is desirable for .S files... yes checking for -z combreloc... yes checking for linker that supports -z execstack... yes checking for -fpie... yes checking for --hash-style option... yes checking for sufficient default -shared layout... no checking linker output format... elf32-i386 checking for -fno-toplevel-reorder -fno-section-anchors... yes checking for -fstack-protector... yes checking for -fgnu89-inline... yes checking whether cc puts quotes around section names... no checking for assembler .weak directive... yes checking whether CFI directives are supported... yes checking for ld --no-whole-archive... yes checking for gcc -fexceptions... yes checking for __builtin_memset... yes checking for redirection of built-in functions... yes checking for __thread... yes checking for tls_model attribute... yes checking for compiler option to disable generation of FMA instructions... -ffp-contract=off checking for libgd... no checking for is_selinux_enabled in -lselinux... no checking size of long double... 0 checking for _FORTIFY_SOURCE predefine... no checking whether i686-pc-gnu-gcc implicitly enables -fstack-protector... no running configure fragment for sysdeps/mach/hurd checking Hurd header version... ok running configure fragment for sysdeps/gnu running configure fragment for sysdeps/mach checking for i686-pc-gnu-mig... no checking for mig... mig checking for mach/mach_types.h... yes checking for mach/mach_types.defs... yes checking for task_t in mach/mach_types.h... task_t checking for thread_t in mach/mach_types.h... thread_t checking for creation_time in task_basic_info... yes checking for mach/mach.defs... yes checking for mach/mach4.defs... yes checking for mach/clock.defs... no checking for mach/clock_priv.defs... no checking for mach/host_priv.defs... no checking for mach/host_security.defs... no checking for mach/ledger.defs... no checking for mach/lock_set.defs... no checking for mach/processor.defs... no checking for mach/processor_set.defs... no checking for mach/task.defs... no checking for mach/thread_act.defs... no checking for mach/vm_map.defs... no checking for mach/memory_object.defs... yes checking for mach/memory_object_default.defs... yes checking for mach/default_pager.defs... yes checking for mach/i386/mach_i386.defs... yes checking for grep that handles long lines and -e... /gnu/store/v2q2595q6n4gs32j15ga65bgy0yqg76g-grep-2.15/bin/grep checking for egrep... /gnu/store/v2q2595q6n4gs32j15ga65bgy0yqg76g-grep-2.15/bin/grep -E checking for host_page_size in mach_host.defs... no checking for mach/machine/ndr_def.h... no checking for machine/ndr_def.h... no checking for i386_io_perm_modify in mach_i386.defs... yes checking for i386_set_gdt in mach_i386.defs... yes checking whether mig supports the retcode keyword... yes running configure fragment for sysdeps/i386 checking for compiler support of inlined builtin function __sync_val_compare_and_swap... yes checking for cpuid.h... yes checking for SSE4 support... yes checking for assembler -mtune=i686 support... yes checking for AVX support... yes checking for AVX encoding of SSE instructions... yes checking for FMA4 support... yes checking for -mno-vzeroupper support... yes checking for old glibc 2.0.x headers... no checking whether -fPIC is default... no configure: creating ./config.status cd /tmp/nix-build-glibc-hurd-cross-i686-pc-gnu-2.18.drv-32/build; /gnu/store/281n6ma5jxy9sb3nwc09mzpqx43vczr6-bash-4.2/bin/bash config.status config.status: creating config.make config.status: creating Makefile config.status: creating config.h config.status: config.h is unchanged config.status: executing default commands