[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: errors on QNX 6.4.1
From: |
mkraai |
Subject: |
Re: errors on QNX 6.4.1 |
Date: |
Mon, 27 Jul 2009 11:23:16 -0700 |
The changes for the math.h errors don't
work, because @GNULIB_MATHL@ is defined to 1, so the whole condition evaluates
to true.
I forgot to mention that there's also
a problem determining the dependencies of getdate.y. The command
fails with the following error:
getdate.y:116: error: negative width
in bit-field 'verify_error_if_negative_size__'
I believe this is because time_t is
unsigned on QNX.
Bruno Haible <address@hidden>
07/25/2009 02:19 AM
|
To
| address@hidden
|
cc
| address@hidden
|
Subject
| Re: errors on QNX 6.4.1 |
|
[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
The server made the following annotations
---------------------------------------------------------------------------------
This message contains information that may be privileged or confidential and is the property of Beckman Coulter, Inc. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
---------------------------------------------------------------------------------