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.9.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.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" | |||
11 | SRC_URI = "http://ftp.unixodbc.org/unixODBC-${PV}.tar.gz \ | 11 | SRC_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 | " |
15 | SRC_URI[sha256sum] = "52833eac3d681c8b0c9a5a65f2ebd745b3a964f208fc748f977e44015a31b207" | 16 | SRC_URI[sha256sum] = "52833eac3d681c8b0c9a5a65f2ebd745b3a964f208fc748f977e44015a31b207" |
16 | 17 | ||
17 | UPSTREAM_CHECK_REGEX = "unixODBC-(?P<pver>\d+(\.\d+)+)\.tar" | 18 | UPSTREAM_CHECK_REGEX = "unixODBC-(?P<pver>\d+(\.\d+)+)\.tar" |
18 | 19 | ||
19 | inherit autotools-brokensep multilib_header | 20 | inherit autotools-brokensep multilib_header qemu |
20 | 21 | ||
21 | S = "${WORKDIR}/unixODBC-${PV}" | 22 | S = "${WORKDIR}/unixODBC-${PV}" |
22 | 23 | ||
23 | EXTRA_OEMAKE += "LIBS=-lltdl" | 24 | EXTRA_OEMAKE += "LIBS=-lltdl" |
24 | 25 | ||
26 | DEPENDS:append:class-target = "${@' qemu-native' if bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d) else ''}" | ||
27 | QEMU_WRAPPER = "${@qemu_wrapper_cmdline(d, '${STAGING_DIR_HOST}', ['${STAGING_DIR_HOST}/${libdir}','${STAGING_DIR_HOST}/${base_libdir}'])}" | ||
28 | |||
25 | do_configure:prepend() { | 29 | do_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 | ||
35 | do_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 | |||
41 | do_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 | |||
31 | do_install:append() { | 47 | do_install:append() { |
32 | oe_multilib_header unixodbc_conf.h | 48 | oe_multilib_header unixodbc_conf.h |
33 | } | 49 | } |