Hello, I know it has been reported by Tobias on lfs-support, but it seems to me it is an issue with the current version of check, and it should be addressed in the book: - the error occurs during make: ---------------------------- /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -O3 -pipe -march=native -Wall -ansi -pedantic -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wwrite-strings -Wno-variadic-macros -MT putenv.lo -MD -MP -MF .deps/putenv.Tpo -c -o putenv.lo putenv.c libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -O3 -pipe -march=native -Wall -ansi -pedantic -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wwrite-strings -Wno-variadic-macros -MT putenv.lo -MD -MP -MF .deps/putenv.Tpo -c putenv.c -fPIC -DPIC -o .libs/putenv.o putenv.c:5:1: error: expected identifier or '(' before '{' token make[2]: *** [putenv.lo] Error 1 make[2]: Leaving directory `/mnt/lfs/sources/check-0.9.9/lib' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/mnt/lfs/sources/check-0.9.9' make: *** [all] Error 2 ------------------------------ The reason is clearly a syntax error in the file putenv.c : ---------------------- > less lib/putenv.c
#include "libcompat.h" int putenv (const char *string CK_ATTRIBUTE_UNUSED); { assert (0); return 0; } ------------------------- On the other hand, this file should not be compiled, since it is a fallback if putenv is not present, but it is easy to check that putenv is in the glibc library. Now, in configure output, we have: -------------------------- checking for pipe... no checking for putenv... no checking for setenv... no checking for sleep... no checking for strdup... no checking for strsignal... no checking for unsetenv... no -------------------------------- and config.log has: ----------------------------- configure:13124: checking for putenv configure:13124: gcc -o conftest -O3 -pipe -march=native -Wall -ansi -pedantic -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wwrite-strings -Wno-variadic-macros conftest.c -lrt >&5 conftest.c:71:1: warning: function declaration isn't a prototype [-Wstrict-prototypes] conftest.c:80:1: warning: function declaration isn't a prototype [-Wstrict-prototypes] /mnt/lfs/tools/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../lib64/librt.so: undefined reference to `__pthread_get_minstack@GLIBC_PRIVATE' collect2: error: ld returned 1 exit status configure:13124: $? = 1 --------------------------------- in fact, -lrt should not be used without -lpthread. Now, the reason I think is that configure has LIBS=-lrt too early, that is before testing the thread library. It is a bug, which I plan to report upstream. A workaround for now is to change the configure command: LDFLAGS=-lpthread ./configure --prefix=/tools I am amazed that nobody else has reported that: I use jhalfs on Debian sid (64 bit). Regards Pierre -- http://linuxfromscratch.org/mailman/listinfo/lfs-dev FAQ: http://www.linuxfromscratch.org/faq/ Unsubscribe: See the above information page