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

Cannot build with include files from binary tarballs (fatal error: mysql/plugin.h: No such file or directory)

    XMLWordPrintable

    Details

      Description

      An attempt to build e.g MySQL ODBC connector with include files from MariaDB binary tarball ends with a failure:

      [elenst@fedora17-64 mysql-connector-odbc-5.2.3-src]$ make 
      [  1%] Building C object util/CMakeFiles/myodbc3u.dir/stringutil.c.o
      In file included from /data/releases/mariadb-5.5.29-linux-x86_64/include/mysql/my_valgrind.h:18:0,
                       from /data/releases/mariadb-5.5.29-linux-x86_64/include/mysql/my_sys.h:31,
                       from /home/elenst/Downloads/mysql-connector-odbc-5.2.3-src/util/../MYODBC_MYSQL.h:30,
                       from /home/elenst/Downloads/mysql-connector-odbc-5.2.3-src/util/stringutil.h:37,
                       from /home/elenst/Downloads/mysql-connector-odbc-5.2.3-src/util/stringutil.c:32:
      /data/releases/mariadb-5.5.29-linux-x86_64/include/mysql/m_string.h:204:26: fatal error: mysql/plugin.h: No such file or directory
      compilation terminated.
      make[2]: *** [util/CMakeFiles/myodbc3u.dir/stringutil.c.o] Error 1
      make[1]: *** [util/CMakeFiles/myodbc3u.dir/all] Error 2
      make: *** [all] Error 2

      Indeed, the file structure in the tarball is such that m_string.h and plugin.h are on the same level in include/mysql, while m_string.h wants mysql/plugin.h.

      cmake command and log:

      [elenst@fedora17-64 mysql-connector-odbc-5.2.3-src]$ ODBC_PATH=/home/elenst/mysql-connector-odbc-5.1.12-src cmake -G "Unix Makefiles" -DWITH_UNIXODBC=1 -DMYSQL_INCLUDE_DIR=/data/releases/mariadb-5.5.25-linux-x86_64/include/ -DMYSQL_INCLUDE_DIR=/data/releases/mariadb-5.5.29-linux-x86_64/include/mysql/ -DMYSQL_LIB_DIR=/data/releases/mariadb-5.5.29-linux-x86_64/lib/
      -- Configuring to build Unicode driver
      -- MySQL Include dir: /data/releases/mariadb-5.5.29-linux-x86_64/include/mysql  library dir: /data/releases/mariadb-5.5.29-linux-x86_64/lib/
      -- MySQL client libraries: mysqlclient_r;-lpthread
      -- unixODBC: Found odbc_config in /usr/bin/odbc_config
      -- Checking if LPCWSTR type is present - TRUE
      -- Checking if SQLColAttribute last arg is compatible with SQLLEN* - TRUE
      -- Checking if SQLParamOptions() 2nd and 3rd arg is compatible with SQLULEN - TRUE
      -- Enabling threads support
      -- Configuring done
      -- Generating done
      -- Build files have been written to: /home/elenst/Downloads/mysql-connector-odbc-5.2.3-src
      [elenst@fedora17-64 mysql-connector-odbc-5.2.3-src]$ make clean
      [elenst@fedora17-64 mysql-connector-odbc-5.2.3-src]$ rm CMakeCache.txt 
      [elenst@fedora17-64 mysql-connector-odbc-5.2.3-src]$ ODBC_PATH=/home/elenst/mysql-connector-odbc-5.1.12-src cmake -G "Unix Makefiles" -DWITH_UNIXODBC=1 -DMYSQL_INCLUDE_DIR=/data/releases/mariadb-5.5.25-linux-x86_64/include/ -DMYSQL_INCLUDE_DIR=/data/releases/mariadb-5.5.29-linux-x86_64/include/mysql/ -DMYSQL_LIB_DIR=/data/releases/mariadb-5.5.29-linux-x86_64/lib/
      -- The C compiler identification is GNU 4.7.2
      -- The CXX compiler identification is GNU 4.7.2
      -- Check for working C compiler: /usr/bin/gcc
      -- Check for working C compiler: /usr/bin/gcc -- works
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Check for working CXX compiler: /usr/bin/c++
      -- Check for working CXX compiler: /usr/bin/c++ -- works
      -- Detecting CXX compiler ABI info
      -- Detecting CXX compiler ABI info - done
      -- Configuring to build Unicode driver
      -- Looking for include file pthread.h
      -- Looking for include file pthread.h - found
      -- Looking for pthread_create
      -- Looking for pthread_create - not found.
      -- Looking for pthread_create in pthreads
      -- Looking for pthread_create in pthreads - not found
      -- Looking for pthread_create in pthread
      -- Looking for pthread_create in pthread - found
      -- Found Threads: TRUE  
      -- MySQL Include dir: /data/releases/mariadb-5.5.29-linux-x86_64/include/mysql  library dir: /data/releases/mariadb-5.5.29-linux-x86_64/lib/
      -- MySQL client libraries: mysqlclient_r;-lpthread
      -- unixODBC: Found odbc_config in /usr/bin/odbc_config
      -- Checking if LPCWSTR type is present - TRUE
      -- Looking for dlopen
      -- Looking for dlopen - not found
      -- Checking if SQLColAttribute last arg is compatible with SQLLEN* - TRUE
      -- Checking if SQLParamOptions() 2nd and 3rd arg is compatible with SQLULEN - TRUE
      -- Enabling threads support
      -- Configuring done
      -- Generating done
      -- Build files have been written to: /home/elenst/Downloads/mysql-connector-odbc-5.2.3-src

      The workaround is creating include/mysql/mysql link pointing at include/mysql.

        Attachments

          Activity

            People

            Assignee:
            serg Sergei Golubchik
            Reporter:
            elenst Elena Stepanova
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Git Integration