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

mysql_config does not work when cross compiling

    XMLWordPrintable

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • 10.4.8
    • None
    • None
    • None
    • Buildroot

    Description

      When trying to build rsyslog with mysql support via mariadb, the build will fail because it can not get the cflags from mysql_config. It fails to get the cflags because mysql_config is calling mariadb_config which is compiled for the target architecture and not the host that is performing the build.

      Error shown by mysql_config

      jmbents@bacon:~/rclinux/target_build/apm86290_common_platform_debug_defconfig$ /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mysql_config --cflags
      /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: 1: /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: Syntax error: "(" unexpected
      /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: 1: /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: Syntax error: "(" unexpected
      /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: 1: /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: Syntax error: "(" unexpected
      /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: 1: /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: Syntax error: "(" unexpected
      /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: 1: /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: Syntax error: "(" unexpected
      /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: 1: /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: Syntax error: "(" unexpected
      /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: 1: /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: Syntax error: "(" unexpected

      Error shown by mysql_config when run as bash

      jmbents@bacon:~/rclinux/target_build/apm86290_common_platform_debug_defconfig$ bash /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mysql_config --cflags
      /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mysql_config: line 100: /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: cannot execute binary file: Exec format error
      /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mysql_config: line 101: /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: cannot execute binary file: Exec format error
      /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mysql_config: line 102: /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: cannot execute binary file: Exec format error
      /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mysql_config: line 103: /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: cannot execute binary file: Exec format error
      /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mysql_config: line 104: /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: cannot execute binary file: Exec format error
      /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mysql_config: line 105: /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: cannot execute binary file: Exec format error
      /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mysql_config: line 106: /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: cannot execute binary file: Exec format error

      output showing mariadb_config is compiled for powerpc (host is x86)

      jmbents@bacon:~/rclinux/target_build/apm86290_common_platform_debug_defconfig$ file /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config
      /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mariadb_config: ELF 32-bit MSB shared object, PowerPC or cisco 4500, version 1 (SYSV), dynamically linked, interpreter /lib/ld., for GNU/Linux 4.9.0, not stripped

      Makefile of rsyslog missing mysql_cflags due to error

      jmbents@bacon:~/rclinux/target_build/apm86290_common_platform_debug_defconfig$ grep -r -n "MYSQL" build/rsyslog-8.22.0/Makefile
      411:MYSQL_CFLAGS =
      412:MYSQL_CONFIG = /accts/jmbents/rclinux/target_build/apm86290_common_platform_debug_defconfig/host/powerpc-buildroot-linux-gnu/sysroot/usr/bin/mysql_config
      413:MYSQL_LIBS =

      This issue is avoided in oracle mysql by having mysql_config be a standalone script instead of wrapping around a c app that's been compiled for the target.

      Attachments

        Activity

          People

            Unassigned Unassigned
            jmbents Jared Bents
            Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:

              Git Integration

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