Bug#505012: FTBFS with GCC 4.4: #elif is missing defined()

Martin Michlmayr tbm at cyrius.com
Sat Nov 8 16:02:34 UTC 2008

Package: boinc-app-seti
Version: 5.13+cvs20060510-4
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-4.4
Tags: patch

Your package fails to build with the upcoming GCC 4.4.  Version 4.4
has not been released yet but I'm building with a snapshot in order
to find errors and give people an advance warning.

GCC 4.4 will introduce better checks in the preprocessor, which made
me found a typo in your code.

You can reproduce this problem with gcc-snapshot from unstable.

> Automatic build of boinc-app-seti_5.13+cvs20060510-4 on em64t by sbuild/amd64 0.53
> Making all in client
> make[3]: Entering directory `/build/tbm/boinc-app-seti-5.13+cvs20060510/client'
> if g++ -DHAVE_CONFIG_H -I. -I. -I..  -g -O2 -g -Wall -O2 -I/usr/include -I/usr/include/openssl  -fPIC -DPIC -DHAVE_CONFIG_H  -g -O2 -g -Wall -O2 -I/usr/include -I/usr/include/openssl -DHAVE_CONFIG_H -DTEXT_UI -DNDEBUG -DCLIENT -I../db -I/usr/share/boinc-dev/api -I/usr/share/boinc-dev/lib  -pthread   -g -O2 -g -Wall -O2 -I/usr/include -I/usr/include/openssl -MT seti_boinc-main.o -MD -MP -MF ".deps/seti_boinc-main.Tpo" -c -o seti_boinc-main.o `test -f 'main.cpp' || echo './'`main.cpp; \
> 	then mv -f ".deps/seti_boinc-main.Tpo" ".deps/seti_boinc-main.Po"; else rm -f ".deps/seti_boinc-main.Tpo"; exit 1; fi
> In file included from analyzeFuncs.h:31,
>                  from main.cpp:81:
> seti.h:100:13: error: missing binary operator before token "("
> In file included from ../db/sqlrow.h:27,
>                  from ../db/db_table.h:27,
>                  from seti_header.h:43,
>                  from seti.h:39,
>                  from analyzeFuncs.h:31,
>                  from main.cpp:81:
> ../db/xml_util.h: In function 'std::string base64_encode(const T*, size_t)':
> ../db/xml_util.h:269: warning: array subscript has type 'char'
> ../db/xml_util.h: In function 'std::string base85_encode(const T*, size_t)':
> ../db/xml_util.h:363: warning: array subscript has type 'char'
> make[3]: *** [seti_boinc-main.o] Error 1

--- client/seti.h~	2008-11-08 13:57:29.000000000 +0000
+++ client/seti.h	2008-11-08 13:57:35.000000000 +0000
@@ -97,7 +97,7 @@
 #define UINT8_FMT_CAST(x) static_cast<double>(x)
-#elif define(HAVE_LONG_DOUBLE)
+#elif defined(HAVE_LONG_DOUBLE)
 typedef long double sh_sint8_t;
 typedef long double sh_uint8_t;
 #define SINT8_FMT "%20.0lf"

Martin Michlmayr

More information about the pkg-boinc-devel mailing list