Bug #37517 falcon -DENGINE conflicts --with-ssl leading to build failure
Submitted: 19 Jun 2008 9:04 Modified: 30 Jul 2008 13:54
Reporter: Stewart Smith Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Falcon storage engine Severity:S1 (Critical)
Version:6.0 OS:Any
Assigned to: Jim Starkey CPU Architecture:Any
Triage: D2 (Serious)

[19 Jun 2008 9:04] Stewart Smith
Description:
./configure --with-plugins=max --prefix=/usr/local/mysql --with-debug=full --with-ssl
make

make[3]: Entering directory `/home/stewart/mysql/stew-encrypted-backup/storage/falcon'
if ccache distcc g++ -DHAVE_CONFIG_H -D_REENTRANT -D_PTHREADS -DENGINE -DSTORAGE_ENGINE -DNAMESPACE=Nfs -I. -I. -I../../include -I../../include -I../../include -I../../regex -I../../sql -I. -I./TransformLib     -g -DSAFE_MUTEX -DSAFEMALLOC    -fno-implicit-templates -fno-exceptions -fno-rtti -fimplicit-templates -Wno-invalid-offsetof -fexceptions -D_DEBUG -DMEM_DEBUG -MT libhafalcon_a-ha_falcon.o -MD -MP -MF ".deps/libhafalcon_a-ha_falcon.Tpo" -c -o libhafalcon_a-ha_falcon.o `test -f 'ha_falcon.cpp' || echo './'`ha_falcon.cpp; \
	then mv -f ".deps/libhafalcon_a-ha_falcon.Tpo" ".deps/libhafalcon_a-ha_falcon.Po"; else rm -f ".deps/libhafalcon_a-ha_falcon.Tpo"; exit 1; fi
distcc[15523] ERROR: compile /home/stewart/.ccache/ha_falcon.tmp.willster.15519.ii on localhost failed
In file included from /usr/include/openssl/crypto.h:132,
                 from /usr/include/openssl/comp.h:6,
                 from /usr/include/openssl/ssl.h:177,
                 from ../../include/violite.h:110,
                 from ../../sql/mysql_priv.h:98,
                 from ha_falcon.cpp:23:
/usr/include/openssl/ossl_typ.h:154: error: expected unqualified-id before numeric constant
In file included from /usr/include/openssl/x509.h:74,
                 from /usr/include/openssl/ssl.h:184,
                 from ../../include/violite.h:110,
                 from ../../sql/mysql_priv.h:98,
                 from ha_falcon.cpp:23:
/usr/include/openssl/evp.h:293: error: expected unqualified-id before numeric constant
/usr/include/openssl/evp.h:370: error: expected unqualified-id before numeric constant
/usr/include/openssl/evp.h:508: error: expected identifier before numeric constant
/usr/include/openssl/evp.h:508: error: expected ‘,’ or ‘...’ before numeric constant
/usr/include/openssl/evp.h:513: error: expected identifier before numeric constant
/usr/include/openssl/evp.h:513: error: expected ‘,’ or ‘...’ before numeric constant
/usr/include/openssl/evp.h:529: error: expected identifier before numeric constant
/usr/include/openssl/evp.h:529: error: expected ‘,’ or ‘...’ before numeric constant
/usr/include/openssl/evp.h:538: error: expected identifier before numeric constant
/usr/include/openssl/evp.h:538: error: expected ‘,’ or ‘...’ before numeric constant
/usr/include/openssl/evp.h:548: error: expected identifier before numeric constant
/usr/include/openssl/evp.h:548: error: expected ‘,’ or ‘...’ before numeric constant
In file included from /usr/include/openssl/x509.h:97,
                 from /usr/include/openssl/ssl.h:184,
                 from ../../include/violite.h:110,
                 from ../../sql/mysql_priv.h:98,
                 from ha_falcon.cpp:23:
/usr/include/openssl/rsa.h:136: error: expected unqualified-id before numeric constant
/usr/include/openssl/rsa.h:232: error: ‘engine’ was not declared in this scope
In file included from /usr/include/openssl/dsa.h:84,
                 from /usr/include/openssl/x509.h:100,
                 from /usr/include/openssl/ssl.h:184,
                 from ../../include/violite.h:110,
                 from ../../sql/mysql_priv.h:98,
                 from ha_falcon.cpp:23:
/usr/include/openssl/dh.h:139: error: expected unqualified-id before numeric constant
/usr/include/openssl/dh.h:173: error: ‘engine’ was not declared in this scope
In file included from /usr/include/openssl/x509.h:100,
                 from /usr/include/openssl/ssl.h:184,
                 from ../../include/violite.h:110,
                 from ../../sql/mysql_priv.h:98,
                 from ha_falcon.cpp:23:
/usr/include/openssl/dsa.h:165: error: expected unqualified-id before numeric constant
/usr/include/openssl/dsa.h:193: error: ‘engine’ was not declared in this scope
make[3]: *** [libhafalcon_a-ha_falcon.o] Error 1
make[3]: Leaving directory `/home/stewart/mysql/stew-encrypted-backup/storage/falcon'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/stewart/mysql/stew-encrypted-backup/storage/falcon'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/stewart/mysql/stew-encrypted-backup/storage'
make: *** [all-recursive] Error 1

line 165 of dsa.h is:
        ENGINE *engine;

with this failing, i'll be unable to push encrypted online backup code, as it uses SSL and i bet pushbuild builds with falcon.

How to repeat:
cd mysql-6.0-backup
./configure --with-plugins=max --prefix=/usr/local/mysql --with-debug=full --with-ssl
make

Suggested fix:
use something else other than ENGINE (falcon already has STORAGE_ENGINE)
[19 Jun 2008 18:21] Hakan Küçükyılmaz
Stewart,

Jim just pushed his fix for this issue into bzr:mysql-6.0-falcon tree. Please give it a try.

Thanks,

Hakan
[20 Jun 2008 6:48] Stewart Smith
tested, now builds okay.
[18 Jul 2008 8:32] Hakan Küçükyılmaz
Fix is in 6.0.6
[30 Jul 2008 13:54] MC Brown
A note has been added to the 6.0.6 changelog: 

Building MySQL with SSL and Falcon enabled would lead to a build failure.