Hi Tim, > I see these linker warnings: > > undefined reference to `rpl_fclose' > undefined reference to `rpl_nanosleep' > > and I don't see what's wrong, looks like I need some help. > > From the extra/Makefile: > # Reproduce by: gnulib-tool --import --local-dir=extra/override -- > lib=libextra --source-base=extra --m4-base=extra/m4 -- > doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional- > dependencies --libtool --macro-prefix=extra c-ctype > c-strcase c-strcasestr cond dirname gettext-h gettime limits-h > nanosleep sockets thread > > I am using libtool for creating a libextra.la, if that matters. > > After 'make', in extra/ there is no nanosleep.[l]o, just the .c file.
Sorry, but that's too little information to even begin an analysis. Typically you debug it like this, from two ends: A. 1. Determine, by looking at the configure output and the gnulib documentation and the corresponding .m4 file, whether a gnulib override of fclose() is meant to be provided by gnulib. 2. Look at the values of the AC_SUBSTed variables HAVE_FCLOSE, REPLACE_FCLOSE etc. in config.status. (I hope you have only one config.status!) B. 1. Find out the .o file which is containing the undefined reference to rpl_fclose. 2. Use 'nm' to get an overview of the symbols required and provided by this object file. 3. Compile its source with "gcc -E" to see the preprocessed source code and with "gcc -E -dM | sort" to see the macros in effect. And similarly for rpl_nanosleep. Bruno