[Re-adding bug-gnulib as CC.] Matt Kraai wrote: > When I ran > > ./gnulib-tool --create-testdir --dir=/tmp/testdir csharpcomp fbufmode > fpurge freadable freadahead freading freadptr freadseek fseeko fseterr > fwritable > > (which are the modules that mention QNX) and ran "make check", there > weren't any errors.
Thanks! That means that the extended I/O modules fully work on QNX. > I tried creating a test directory with > > ./gnulib-tool --create-testdir --dir=/tmp/testdir This command creates a test directory comprising all gnulib modules. It's likely to find some bugs, and you already have two of them: > but when I ran make in the /tmp/testdir, it failed with the following > errors; > > ./.prev-version: No such file or directory > sed: can't read ./cfg.mk: No such file or directory > make all-recursive > ./.prev-version: No such file or directory > sed: can't read ./cfg.mk: No such file or directory This is a bug in gnulib-tool and the maintainer-makefile module. I'm committing this workaround: 2009-07-25 Bruno Haible <br...@clisp.org> * gnulib-tool (func_create_testdir, func_create_megatestdir): Exclude the maintainer-makefile module. Reported by Matt Kraai <mkr...@beckman.com>. --- gnulib-tool.orig 2009-07-25 11:10:25.000000000 +0200 +++ gnulib-tool 2009-07-25 11:08:45.000000000 +0200 @@ -3818,9 +3818,10 @@ if test -z "$modules"; then # All modules together. # Except config-h, which breaks all modules which use HAVE_CONFIG_H. + # Except maintainer-makefile, which requires a cfg.mk file. # Except ftruncate, mountlist, which abort the configuration on mingw. FIXME. modules=`func_all_modules` - modules=`for m in $modules; do case $m in config-h | ftruncate | mountlist) ;; *) echo $m;; esac; done` + modules=`for m in $modules; do case $m in config-h | maintainer-makefile | ftruncate | mountlist) ;; *) echo $m;; esac; done` fi modules=`for m in $modules; do echo $m; done | LC_ALL=C sort -u` @@ -4311,7 +4312,8 @@ done # Then, all modules all together. # Except config-h, which breaks all modules which use HAVE_CONFIG_H. - allmodules=`for m in $allmodules; do if test $m != config-h; then echo $m; fi; done` + # Except maintainer-makefile, which requires a cfg.mk file. + allmodules=`for m in $allmodules; do if test $m != config-h && test $m != maintainer-makefile; then echo $m; fi; done` func_create_testdir "$megatestdir/ALL" "$allmodules" func_append megasubdirs "ALL" > make[1]: Entering directory `/tmp/testdir' > Making all in gllib > make[2]: Entering directory `/tmp/testdir/gllib' > make all-recursive > make[3]: Entering directory `/tmp/testdir/gllib' > make[4]: Entering directory `/tmp/testdir/gllib' > depbase=`echo printf-frexp.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\ > gcc -std=gnu99 -DHAVE_CONFIG_H -DEXEEXT=\"\" -DEXEEXT=\"\" > -DNO_XMALLOC -DEXEEXT=\"\" -I. -I.. -I../intl -I/usr/local/include > -fvisibility=hidden -g -O2 -MT printf-frexp.o -MD -MP -MF $depbase.Tpo -c > -o printf-frexp.o printf-frexp.c &&\ > mv -f $depbase.Tpo $depbase.Po > In file included from printf-frexp.c:27: > ./math.h:181: error: expected declaration specifiers or '...' before > numeric constant > ./math.h:181: error: conflicting types for '_LSin' > /usr/qnx641/target/qnx6/usr/include/ymath.h:171: error: previous > declaration of '_LSin' was here > ./math.h:270: error: expected declaration specifiers or '...' before > numeric constant > ./math.h:270: error: conflicting types for '_LLog' > /usr/qnx641/target/qnx6/usr/include/ymath.h:170: error: previous > declaration of '_LLog' was here > ./math.h:325: error: expected declaration specifiers or '...' before > numeric constant > ./math.h:325: error: conflicting types for '_LSin' > /usr/qnx641/target/qnx6/usr/include/ymath.h:171: error: previous > declaration of '_LSin' was here > make[4]: *** [printf-frexp.o] Error 1 This is apparently due to some declarations in QNX's <math.h> header, see <http://lists.boost.org/Archives/boost/2005/12/97593.php>: #define cosl(x) _LSin(x, 1) #define coshl(x) _LCosh(x, 1) #define logl(x) _LLog(x, 0) #define log10l(x) _LLog(x, 1) #define sinl(x) _LSin(x, 0) #define sinhl(x) _LSinh(x, 1) I'm applying this fix: 2009-07-25 Bruno Haible <br...@clisp.org> * lib/math.in.h (cosl, logl, sinl): Don't declare if they are already defined as macros. Needed on QNX 6.4.1. Reported by Matt Kraai <mkr...@beckman.com>. --- lib/math.in.h.orig 2009-07-25 11:16:18.000000000 +0200 +++ lib/math.in.h 2009-07-25 11:15:57.000000000 +0200 @@ -148,7 +148,7 @@ #endif -#if @GNULIB_MATHL@ || !...@have_decl_cosl@ +#if @GNULIB_MATHL@ || (!...@have_decl_cosl@ && !defined cosl) extern long double cosl (long double x); #endif #if !...@gnulib_mathl@ && defined GNULIB_POSIXCHECK @@ -237,7 +237,7 @@ #endif -#if @GNULIB_MATHL@ || !...@have_decl_logl@ +#if @GNULIB_MATHL@ || (!...@have_decl_logl@ && !defined logl) extern long double logl (long double x); #endif #if !...@gnulib_mathl@ && defined GNULIB_POSIXCHECK @@ -292,7 +292,7 @@ #endif -#if @GNULIB_MATHL@ || !...@have_decl_sinl@ +#if @GNULIB_MATHL@ || (!...@have_decl_sinl@ && !defined sinl) extern long double sinl (long double x); #endif #if !...@gnulib_mathl@ && defined GNULIB_POSIXCHECK Thanks for these two reports. You can now retry the "./gnulib-tool --create-testdir --dir=/tmp/testdir" command. Bruno