[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: errors on QNX 6.4.1
From: |
Bruno Haible |
Subject: |
Re: errors on QNX 6.4.1 |
Date: |
Sat, 25 Jul 2009 11:19:22 +0200 |
User-agent: |
KMail/1.9.9 |
[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 <address@hidden>
* gnulib-tool (func_create_testdir, func_create_megatestdir): Exclude
the maintainer-makefile module.
Reported by Matt Kraai <address@hidden>.
--- 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 <address@hidden>
* 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 <address@hidden>.
--- 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@ || address@hidden@
+#if @GNULIB_MATHL@ || (address@hidden@ && !defined cosl)
extern long double cosl (long double x);
#endif
#if address@hidden@ && defined GNULIB_POSIXCHECK
@@ -237,7 +237,7 @@
#endif
-#if @GNULIB_MATHL@ || address@hidden@
+#if @GNULIB_MATHL@ || (address@hidden@ && !defined logl)
extern long double logl (long double x);
#endif
#if address@hidden@ && defined GNULIB_POSIXCHECK
@@ -292,7 +292,7 @@
#endif
-#if @GNULIB_MATHL@ || address@hidden@
+#if @GNULIB_MATHL@ || (address@hidden@ && !defined sinl)
extern long double sinl (long double x);
#endif
#if address@hidden@ && defined GNULIB_POSIXCHECK
Thanks for these two reports. You can now retry the
"./gnulib-tool --create-testdir --dir=/tmp/testdir" command.
Bruno