summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-oe/recipes-support/unixodbc/files/0001-exe-Makefile.am-add-CROSS_LAUNCHER-to-run-odbc_confi.patch54
-rw-r--r--meta-oe/recipes-support/unixodbc/unixodbc_2.3.9.bb18
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 @@
1From e886222c70d4b251f0785f670477b7aee938e5af Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Wed, 21 Feb 2024 13:55:41 +0800
4Subject: [PATCH] exe/Makefile.am: add CROSS_LAUNCHER to run odbc_config
5
6In case of cross compilation, the odbc_config cannot run, the error message
7would be like below:
8
9 /bin/bash: line 1: ../exe/odbc_config: cannot execute binary file: Exec format error
10
11Add CROSS_LAUNCHER to allow the possibility of running odbc_config correctly in
12case of cross compilation.
13
14For 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
19Other projects can use the launcher they like to allow correct generation of
20the odbc.pc file in cross compilation environment.
21
22Upstream-Status: Submitted [Personal Email, nick.gorham@easysoft.com]
23
24As said in the official website, https://www.unixodbc.org/, the way to report bug and send
25out patch is via personal email. So there's a public link above.
26
27Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
28---
29 exe/Makefile.am | 6 ++++--
30 1 file changed, 4 insertions(+), 2 deletions(-)
31
32diff --git a/exe/Makefile.am b/exe/Makefile.am
33index 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--
532.34.1
54
diff --git a/meta-oe/recipes-support/unixodbc/unixodbc_2.3.9.bb b/meta-oe/recipes-support/unixodbc/unixodbc_2.3.9.bb
index 66881a223e..0f6aacb37e 100644
--- a/meta-oe/recipes-support/unixodbc/unixodbc_2.3.9.bb
+++ b/meta-oe/recipes-support/unixodbc/unixodbc_2.3.9.bb
@@ -11,23 +11,39 @@ DEPENDS = "libtool readline"
11SRC_URI = "http://ftp.unixodbc.org/unixODBC-${PV}.tar.gz \ 11SRC_URI = "http://ftp.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://CVE-2024-1013.patch \ 13 file://CVE-2024-1013.patch \
14 file://0001-exe-Makefile.am-add-CROSS_LAUNCHER-to-run-odbc_confi.patch \
14" 15"
15SRC_URI[sha256sum] = "52833eac3d681c8b0c9a5a65f2ebd745b3a964f208fc748f977e44015a31b207" 16SRC_URI[sha256sum] = "52833eac3d681c8b0c9a5a65f2ebd745b3a964f208fc748f977e44015a31b207"
16 17
17UPSTREAM_CHECK_REGEX = "unixODBC-(?P<pver>\d+(\.\d+)+)\.tar" 18UPSTREAM_CHECK_REGEX = "unixODBC-(?P<pver>\d+(\.\d+)+)\.tar"
18 19
19inherit autotools-brokensep multilib_header 20inherit autotools-brokensep multilib_header qemu
20 21
21S = "${WORKDIR}/unixODBC-${PV}" 22S = "${WORKDIR}/unixODBC-${PV}"
22 23
23EXTRA_OEMAKE += "LIBS=-lltdl" 24EXTRA_OEMAKE += "LIBS=-lltdl"
24 25
26DEPENDS:append:class-target = "${@' qemu-native' if bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d) else ''}"
27QEMU_WRAPPER = "${@qemu_wrapper_cmdline(d, '${STAGING_DIR_HOST}', ['${STAGING_DIR_HOST}/${libdir}','${STAGING_DIR_HOST}/${base_libdir}'])}"
28
25do_configure:prepend() { 29do_configure:prepend() {
26 # old m4 files will cause libtool version don't match 30 # old m4 files will cause libtool version don't match
27 rm -rf m4/* 31 rm -rf m4/*
28 rm -fr libltdl 32 rm -fr libltdl
29} 33}
30 34
35do_compile:prepend() {
36 if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'true', 'false', d)}; then
37 export CROSS_LAUNCHER="${QEMU_WRAPPER} "
38 fi
39}
40
41do_install:prepend() {
42 if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'true', 'false', d)}; then
43 export CROSS_LAUNCHER="${QEMU_WRAPPER} "
44 fi
45}
46
31do_install:append() { 47do_install:append() {
32 oe_multilib_header unixodbc_conf.h 48 oe_multilib_header unixodbc_conf.h
33} 49}