Bug #89476 Mysql: Compilation fails on FreeBsd 11.1 with WITH_SSL=system
Submitted: 30 Jan 2018 19:12 Modified: 29 Jul 2019 9:04
Reporter: vikas mahajan Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server: Compiling Severity:S1 (Critical)
Version:5.7.21 OS:FreeBSD (11.1)
Assigned to: CPU Architecture:Any

[30 Jan 2018 19:12] vikas mahajan
Description:
MySql compilation (tried with Mysql 5.7 and 8) is failing when openssl is installed from ports on FreeBsd 11.1. But when I use base openssl then mysql compilation goes through.

[ 13%] Building C object vio/CMakeFiles/vio.dir/viossl.c.o

cd /usr/ports/databases/mysql57-client/work/.build/vio && /usr/bin/cc -DHAVE_CONFIG_H -DHAVE_LIBEVENT2 -DHAVE_OPENSSL -I/usr/ports/databases/mysql57-client/work/.build/include -I/usr/ports/databases/mysql57-client/work/mysql-5.7.21/extra/rapidjson/include -I/usr/ports/databases/mysql57-client/work/.build/libbinlogevents/include -I/usr/ports/databases/mysql57-client/work/mysql-5.7.21/libbinlogevents/export -I/usr/ports/databases/mysql57-client/work/mysql-5.7.21/include -I/usr/local/include -O2 -pipe  -fstack-protector -isystem /usr/local/include -fno-strict-aliasing -Wall -Wextra -Wformat-security -Wvla -Wwrite-strings -Wdeclaration-after-statement -O2 -pipe  -fstack-protector -isystem /usr/local/include -fno-strict-aliasing -DDBUG_OFF -fPIC -o CMakeFiles/vio.dir/viossl.c.o   -c /usr/ports/databases/mysql57-client/work/mysql-5.7.21/vio/viossl.c

[ 13%] Building C object vio/CMakeFiles/vio.dir/viosslfactories.c.o

cd /usr/ports/databases/mysql57-client/work/.build/vio && /usr/bin/cc -DHAVE_CONFIG_H -DHAVE_LIBEVENT2 -DHAVE_OPENSSL -I/usr/ports/databases/mysql57-client/work/.build/include -I/usr/ports/databases/mysql57-client/work/mysql-5.7.21/extra/rapidjson/include -I/usr/ports/databases/mysql57-client/work/.build/libbinlogevents/include -I/usr/ports/databases/mysql57-client/work/mysql-5.7.21/libbinlogevents/export -I/usr/ports/databases/mysql57-client/work/mysql-5.7.21/include -I/usr/local/include -O2 -pipe  -fstack-protector -isystem /usr/local/include -fno-strict-aliasing -Wall -Wextra -Wformat-security -Wvla -Wwrite-strings -Wdeclaration-after-statement -O2 -pipe  -fstack-protector -isystem /usr/local/include -fno-strict-aliasing -DDBUG_OFF -fPIC -o CMakeFiles/vio.dir/viosslfactories.c.o   -c /usr/ports/databases/mysql57-client/work/mysql-5.7.21/vio/viosslfactories.c

/usr/ports/databases/mysql57-client/work/mysql-5.7.21/vio/viosslfactories.c:122:11: warning: implicit declaration of function 'DH_new' is invalid in C99 [-Wimplicit-function-declaration]

  if ((dh=DH_new()))

          ^

/usr/ports/databases/mysql57-client/work/mysql-5.7.21/vio/viosslfactories.c:122:10: warning: incompatible integer to pointer conversion assigning to 'DH *' (aka 'struct dh_st *') from 'int' [-Wint-conversion]

  if ((dh=DH_new()))

         ^~~~~~~~~

/usr/ports/databases/mysql57-client/work/mysql-5.7.21/vio/viosslfactories.c:124:7: error: incomplete definition of type 'struct dh_st'

    dh->p=BN_bin2bn(dh2048_p,sizeof(dh2048_p),NULL);

    ~~^

/usr/local/include/openssl/ossl_typ.h:140:16: note: forward declaration of 'struct dh_st'

typedef struct dh_st DH;

               ^

/usr/ports/databases/mysql57-client/work/mysql-5.7.21/vio/viosslfactories.c:124:11: warning: implicit declaration of function 'BN_bin2bn' is invalid in C99 [-Wimplicit-function-declaration]

    dh->p=BN_bin2bn(dh2048_p,sizeof(dh2048_p),NULL);

          ^

/usr/ports/databases/mysql57-client/work/mysql-5.7.21/vio/viosslfactories.c:125:7: error: incomplete definition of type 'struct dh_st'

    dh->g=BN_bin2bn(dh2048_g,sizeof(dh2048_g),NULL);

    ~~^

/usr/local/include/openssl/ossl_typ.h:140:16: note: forward declaration of 'struct dh_st'

typedef struct dh_st DH;

               ^

/usr/ports/databases/mysql57-client/work/mysql-5.7.21/vio/viosslfactories.c:126:13: error: incomplete definition of type 'struct dh_st'

    if (! dh->p || ! dh->g)

          ~~^

/usr/local/include/openssl/ossl_typ.h:140:16: note: forward declaration of 'struct dh_st'

typedef struct dh_st DH;

               ^

/usr/ports/databases/mysql57-client/work/mysql-5.7.21/vio/viosslfactories.c:126:24: error: incomplete definition of type 'struct dh_st'

    if (! dh->p || ! dh->g)

                     ~~^

/usr/local/include/openssl/ossl_typ.h:140:16: note: forward declaration of 'struct dh_st'

typedef struct dh_st DH;

               ^

/usr/ports/databases/mysql57-client/work/mysql-5.7.21/vio/viosslfactories.c:128:7: warning: implicit declaration of function 'DH_free' is invalid in C99 [-Wimplicit-function-declaration]

      DH_free(dh);

      ^

/usr/ports/databases/mysql57-client/work/mysql-5.7.21/vio/viosslfactories.c:377:3: warning: implicit declaration of function 'CRYPTO_set_id_callback' is invalid in C99 [-Wimplicit-function-declaration]

  CRYPTO_set_id_callback(init ? openssl_id_function : NULL);

  ^

/usr/ports/databases/mysql57-client/work/mysql-5.7.21/vio/viosslfactories.c:398:5: warning: implicit declaration of function 'ERR_remove_state' is invalid in C99 [-Wimplicit-function-declaration]

    ERR_remove_state(0);

    ^

6 warnings and 4 errors generated.

*** [vio/CMakeFiles/vio.dir/viosslfactories.c.o] Error code 1

make[4]: stopped in /usr/ports/databases/mysql57-client/work/.build

1 error

make[4]: stopped in /usr/ports/databases/mysql57-client/work/.build

*** [vio/CMakeFiles/vio.dir/all] Error code 2

make[3]: stopped in /usr/ports/databases/mysql57-client/work/.build

1 error

make[3]: stopped in /usr/ports/databases/mysql57-client/work/.build

*** [all] Error code 2

make[2]: stopped in /usr/ports/databases/mysql57-client/work/.build

1 error

make[2]: stopped in /usr/ports/databases/mysql57-client/work/.build

===> Compilation failed unexpectedly.

Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to

the maintainer.

*** Error code 1

Stop.

make[1]: stopped in /usr/ports/databases/mysql57-client

*** Error code 1

Stop.

How to repeat:
Try to build mysql 5.7 on FreeBsd 11.1 from ports when openssl is installed on system from security/openssl port and make file is configured to use system openssl instead of base one.

/etc/make.conf

DEFAULT_VERSIONS+=ssl=openssl

Suggested fix:
Please fix this installation issue.
[2 Feb 2018 11:46] MySQL Verification Team
Hello Vikas,

Thank you for the report and feedback!

Thanks,
Umesh
[2 Feb 2018 11:47] MySQL Verification Team
MySQL 5.7.21 ,FreeBSD - Build log

Attachment: 89476.build (application/octet-stream, text), 38.77 KiB.

[7 Feb 2018 20:23] vikas mahajan
Hi Umesh,

Do you know when this bug will be fixed ?

Thanks,
Vikas
[29 Jul 2019 9:04] Erlend Dahl
Duplicate of Bug#83814 Add support for OpenSSL 1.1