diff options
| -rw-r--r-- | meta-oe/recipes-support/unixodbc/files/0001-exe-Makefile.am-add-CROSS_LAUNCHER-to-run-odbc_confi.patch | 54 | ||||
| -rw-r--r-- | meta-oe/recipes-support/unixodbc/unixodbc_2.3.11.bb | 18 |
2 files changed, 71 insertions, 1 deletions
diff --git a/meta-oe/recipes-support/unixodbc/files/0001-exe-Makefile.am-add-CROSS_LAUNCHER-to-run-odbc_confi.patch b/meta-oe/recipes-support/unixodbc/files/0001-exe-Makefile.am-add-CROSS_LAUNCHER-to-run-odbc_confi.patch new file mode 100644 index 0000000000..c763a9feb6 --- /dev/null +++ b/meta-oe/recipes-support/unixodbc/files/0001-exe-Makefile.am-add-CROSS_LAUNCHER-to-run-odbc_confi.patch | |||
| @@ -0,0 +1,54 @@ | |||
| 1 | From e886222c70d4b251f0785f670477b7aee938e5af Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Chen Qi <Qi.Chen@windriver.com> | ||
| 3 | Date: Wed, 21 Feb 2024 13:55:41 +0800 | ||
| 4 | Subject: [PATCH] exe/Makefile.am: add CROSS_LAUNCHER to run odbc_config | ||
| 5 | |||
| 6 | In case of cross compilation, the odbc_config cannot run, the error message | ||
| 7 | would be like below: | ||
| 8 | |||
| 9 | /bin/bash: line 1: ../exe/odbc_config: cannot execute binary file: Exec format error | ||
| 10 | |||
| 11 | Add CROSS_LAUNCHER to allow the possibility of running odbc_config correctly in | ||
| 12 | case of cross compilation. | ||
| 13 | |||
| 14 | For example, here's a possible value for it (Yocto project environment, aarch64 target). | ||
| 15 | export CROSS_LAUNCHER="PSEUDO_UNLOAD=1 qemu-aarch64 -r 5.15 \ | ||
| 16 | -L /PATH/TO/unixodbc/2.3.11/recipe-sysroot \ | ||
| 17 | -E LD_LIBRARY_PATH=/PATH/TO/unixodbc/2.3.11/recipe-sysroot//usr/lib:/PATH/TO/unixodbc/2.3.11/recipe-sysroot//usr/lib " | ||
| 18 | |||
| 19 | Other projects can use the launcher they like to allow correct generation of | ||
| 20 | the odbc.pc file in cross compilation environment. | ||
| 21 | |||
| 22 | Upstream-Status: Submitted [Personal Email, nick.gorham@easysoft.com] | ||
| 23 | |||
| 24 | As said in the official website, https://www.unixodbc.org/, the way to report bug and send | ||
| 25 | out patch is via personal email. So there's a public link above. | ||
| 26 | |||
| 27 | Signed-off-by: Chen Qi <Qi.Chen@windriver.com> | ||
| 28 | --- | ||
| 29 | exe/Makefile.am | 6 ++++-- | ||
| 30 | 1 file changed, 4 insertions(+), 2 deletions(-) | ||
| 31 | |||
| 32 | diff --git a/exe/Makefile.am b/exe/Makefile.am | ||
| 33 | index 03f3d5a..5f33cf2 100644 | ||
| 34 | --- a/exe/Makefile.am | ||
| 35 | +++ b/exe/Makefile.am | ||
| 36 | @@ -59,11 +59,13 @@ slencheck_SOURCES = slencheck.c | ||
| 37 | dltest_DEPENDENCIES = $(LTDLDEPS) | ||
| 38 | dltest_LDADD = $(LIBLTDL) | ||
| 39 | |||
| 40 | +CROSS_LAUNCHER ?= "" | ||
| 41 | + | ||
| 42 | all-am: | ||
| 43 | - @sed "s![@]ODBC_ULEN[@]!`$(top_builddir)/exe/odbc_config$(EXEEXT) --ulen`!" \ | ||
| 44 | + @sed "s![@]ODBC_ULEN[@]!`$(CROSS_LAUNCHER)$(top_builddir)/exe/odbc_config$(EXEEXT) --ulen`!" \ | ||
| 45 | $(top_builddir)/DriverManager/odbc.pc > $(top_builddir)/exe/odbc.pc.tmp | ||
| 46 | @mv -f $(top_builddir)/exe/odbc.pc.tmp $(top_builddir)/DriverManager/odbc.pc | ||
| 47 | - @sed "s![@]ODBC_CFLAGS[@]!`$(top_builddir)/exe/odbc_config$(EXEEXT) --cflags | sed 's/ -I.*//'`!" \ | ||
| 48 | + @sed "s![@]ODBC_CFLAGS[@]!`$(CROSS_LAUNCHER)$(top_builddir)/exe/odbc_config$(EXEEXT) --cflags | sed 's/ -I.*//'`!" \ | ||
| 49 | $(top_builddir)/DriverManager/odbc.pc > $(top_builddir)/exe/odbc.pc.tmp | ||
| 50 | @mv -f $(top_builddir)/exe/odbc.pc.tmp $(top_builddir)/DriverManager/odbc.pc | ||
| 51 | |||
| 52 | -- | ||
| 53 | 2.34.1 | ||
| 54 | |||
diff --git a/meta-oe/recipes-support/unixodbc/unixodbc_2.3.11.bb b/meta-oe/recipes-support/unixodbc/unixodbc_2.3.11.bb index 3a9e390a2b..0ab4f8864d 100644 --- a/meta-oe/recipes-support/unixodbc/unixodbc_2.3.11.bb +++ b/meta-oe/recipes-support/unixodbc/unixodbc_2.3.11.bb | |||
| @@ -10,23 +10,39 @@ DEPENDS = "libtool readline" | |||
| 10 | 10 | ||
| 11 | SRC_URI = "https://www.unixodbc.org/unixODBC-${PV}.tar.gz \ | 11 | SRC_URI = "https://www.unixodbc.org/unixODBC-${PV}.tar.gz \ |
| 12 | file://do-not-use-libltdl-source-directory.patch \ | 12 | file://do-not-use-libltdl-source-directory.patch \ |
| 13 | file://0001-exe-Makefile.am-add-CROSS_LAUNCHER-to-run-odbc_confi.patch \ | ||
| 13 | " | 14 | " |
| 14 | SRC_URI[sha256sum] = "d9e55c8e7118347e3c66c87338856dad1516b490fb7c756c1562a2c267c73b5c" | 15 | SRC_URI[sha256sum] = "d9e55c8e7118347e3c66c87338856dad1516b490fb7c756c1562a2c267c73b5c" |
| 15 | 16 | ||
| 16 | UPSTREAM_CHECK_REGEX = "unixODBC-(?P<pver>\d+(\.\d+)+)\.tar" | 17 | UPSTREAM_CHECK_REGEX = "unixODBC-(?P<pver>\d+(\.\d+)+)\.tar" |
| 17 | 18 | ||
| 18 | inherit autotools-brokensep multilib_header | 19 | inherit autotools-brokensep multilib_header qemu |
| 19 | 20 | ||
| 20 | S = "${WORKDIR}/unixODBC-${PV}" | 21 | S = "${WORKDIR}/unixODBC-${PV}" |
| 21 | 22 | ||
| 22 | EXTRA_OEMAKE += "LIBS=-lltdl" | 23 | EXTRA_OEMAKE += "LIBS=-lltdl" |
| 23 | 24 | ||
| 25 | DEPENDS:append:class-target = "${@' qemu-native' if bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d) else ''}" | ||
| 26 | QEMU_WRAPPER = "${@qemu_wrapper_cmdline(d, '${STAGING_DIR_HOST}', ['${STAGING_DIR_HOST}/${libdir}','${STAGING_DIR_HOST}/${base_libdir}'])}" | ||
| 27 | |||
| 24 | do_configure:prepend() { | 28 | do_configure:prepend() { |
| 25 | # old m4 files will cause libtool version don't match | 29 | # old m4 files will cause libtool version don't match |
| 26 | rm -rf m4/* | 30 | rm -rf m4/* |
| 27 | rm -fr libltdl | 31 | rm -fr libltdl |
| 28 | } | 32 | } |
| 29 | 33 | ||
| 34 | do_compile:prepend() { | ||
| 35 | if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'true', 'false', d)}; then | ||
| 36 | export CROSS_LAUNCHER="${QEMU_WRAPPER} " | ||
| 37 | fi | ||
| 38 | } | ||
| 39 | |||
| 40 | do_install:prepend() { | ||
| 41 | if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'true', 'false', d)}; then | ||
| 42 | export CROSS_LAUNCHER="${QEMU_WRAPPER} " | ||
| 43 | fi | ||
| 44 | } | ||
| 45 | |||
| 30 | do_install:append() { | 46 | do_install:append() { |
| 31 | oe_multilib_header unixodbc.h unixODBC/config.h unixODBC/unixodbc_conf.h | 47 | oe_multilib_header unixodbc.h unixODBC/config.h unixODBC/unixodbc_conf.h |
| 32 | } | 48 | } |
