Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-9249

MariaDB un-buildable on linux64: fails @ "error: ‘ERR_remove_state’ was not declared in this scope" when linking against OpenSSL 1.0.2e

Details

    Description

      Building mariaDB 10.1.9 on linux/64,

      lsb_release -rd
      Description: openSUSE Leap 42.1 (x86_64)
      Release: 42.1
      gcc --version
      gcc (SUSE Linux) 5.3.1 20151207 [gcc-5-branch revision 231355]

      git log | head
      commit 370a2cbe96e026fdb8966d8e58e7c93f75597cb8
      Author: Nirbhay Choubey <nirbhay@mariadb.com>
      Date: Fri Nov 20 19:49:16 2015 -0500

      Fix syntax error in wsrep_sst_common.sh.

      commit 2fc3dc393d396647a220b286780f31d244ac2c53
      Merge: e52c753 1e156e1
      Author: Sergei Golubchik <serg@mariadb.org>
      Date: Fri Nov 20 09:31:13 2015 +0100

      linking to local build of openssl 1.0.2e libs,

      openssl version
      OpenSSL 1.0.2e 3 Dec 2015
      tree -L 1 /usr/local/ssl
      /usr/local/ssl
      ├── bin
      ├── certs
      ├── include
      ├── lib64
      ├── man
      ├── misc
      ├── openssl.cnf
      └── private

      The build FAILs

      echo $SSL_LDFLAGS
      -L/usr/local/ssl/lib64 -Wl,-rpath,/usr/local/ssl/lib64 -lssl -lcrypto
      cmake .. --debug-output \
      ...
      -DWITH_SSL=/usr/local/ssl \
      -DOPENSSL_ROOT_DIR=/usr/local/ssl \
      -DOPENSSL_INCLUDE_DIR=/usr/local/ssl/include \
      -DOPENSSL_LIBRARIES=/usr/local/ssl/lib64/libssl.so \
      -DCRYPTO_LIBRARY=/usr/local/ssl/lib64/libcrypto.so \
      ...
      make -j4 VERBOSE=1
      ...
      [ 18%] Linking CXX executable my_safe_process
      cd /usr/local/src/mariadb/bld/mysql-test/lib/My/SafeProcess && /usr/bin/cmake -E cmake_link_script CMakeFiles/my_safe_process.dir/link.txt --verbose=1
      /usr/bin/g++-5 -fno-delete-null-pointer-checks -D_FORTIFY_SOURCE=2 -fmessage-length=0 -fstack-protector -march=x86-64 -mtune=nocona -I/usr/local/include -pie -fPIC -Wl,-z,relro,-z,now -fstack-protector --param=ssp-buffer-size=4 -DWITH_INNODB_DISALLOW_WRITES -fno-exceptions -fno-rtti -O3 -DNDEBUG -D_FORTIFY_SOURCE=2 -DDBUG_OFF -DMY_PTHREAD_FASTMUTEX=1 -L/usr/local/lib64 -Wl,-rpath,/usr/local/lib64 -lpcre -lpcrecpp CMakeFiles/my_safe_process.dir/safe_process.cc.o -o my_safe_process -lpthread
      [ 18%] Linking C static library libwsrep.a
      cd /usr/local/src/mariadb/bld/wsrep && /usr/bin/cmake -P CMakeFiles/wsrep.dir/cmake_clean_target.cmake
      cd /usr/local/src/mariadb/bld/wsrep && /usr/bin/cmake -E cmake_link_script CMakeFiles/wsrep.dir/link.txt --verbose=1
      /usr/bin/ar qc libwsrep.a CMakeFiles/wsrep.dir/wsrep_gtid.c.o CMakeFiles/wsrep.dir/wsrep_uuid.c.o CMakeFiles/wsrep.dir/wsrep_loader.c.o CMakeFiles/wsrep.dir/wsrep_dummy.c.o
      /usr/bin/ranlib libwsrep.a
      make[2]: Leaving directory '/usr/local/src/mariadb/bld'
      [ 18%] Built target wsrep
      /usr/local/src/mariadb/mysys_ssl/my_crypt.cc: In destructor ‘virtual MyCTX::~MyCTX()’:
      /usr/local/src/mariadb/mysys_ssl/my_crypt.cc:37:70: error: ‘ERR_remove_state’ was not declared in this scope
      virtual ~MyCTX()

      { EVP_CIPHER_CTX_cleanup(&ctx); ERR_remove_state(0); }

      ^
      mysys_ssl/CMakeFiles/mysys_ssl.dir/build.make:158: recipe for target 'mysys_ssl/CMakeFiles/mysys_ssl.dir/my_crypt.cc.o' failed
      make[2]: *** [mysys_ssl/CMakeFiles/mysys_ssl.dir/my_crypt.cc.o] Error 1
      make[2]: Leaving directory '/usr/local/src/mariadb/bld'
      CMakeFiles/Makefile2:4566: recipe for target 'mysys_ssl/CMakeFiles/mysys_ssl.dir/all' failed
      make[1]: *** [mysys_ssl/CMakeFiles/mysys_ssl.dir/all] Error 2
      make[2]: Leaving directory '/usr/local/src/mariadb/bld'
      [ 18%] Built target my_safe_process
      make[1]: Leaving directory '/usr/local/src/mariadb/bld'
      Makefile:149: recipe for target 'all' failed
      make: *** [all] Error 2

      Per openSSL docs, ERR_remove_state() appears to be deprecated

      https://www.openssl.org/docs/manmaster/crypto/ERR_remove_state.html

      ERR_remove_state() was deprecated in OpenSSL 1.0.0 when ERR_remove_thread_state() was introduced and thread IDs were introduced to identify threads instead of 'unsigned long'.

      Attachments

        Activity

          There are no comments yet on this issue.

          People

            serg Sergei Golubchik
            pgnd pgnd
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.