aboutsummaryrefslogtreecommitdiffstats
path: root/testing/openocd-git/fix-jimtcl-link.patch
blob: 657f3333c65e0144b4be984a14c1edcc1ee41791 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Without this patch, OpenOCD only adds -ljim when linking against the
internal version of jimtcl is disabled. This is insufficient as we build
jimtcl with various additional features (OpenSSL, …) and thus also need
to link against the libraries needed for these features (e.g. -lssl).
For this reason, it is required to extract libraries needed by jimtcl
using pkg-config. In the GNU autotools context, this can be achieved using
the PKG_CHECK_MODULES macro from pkg.m4(7).

This patch uses this macro for jimtcl and adds the required
CFLAGS/LDFLAGS values for linking against jimtcl for the openocd target.

diff -upr a/configure.ac b/configure.ac
--- a/configure.ac	2021-09-14 17:31:53.000000000 +0200
+++ b/configure.ac	2021-10-02 11:32:04.066085040 +0200
@@ -622,6 +622,9 @@ PKG_CHECK_MODULES([LIBGPIOD], [libgpiod]
 PKG_CHECK_MODULES([LIBJAYLINK], [libjaylink >= 0.2],
 	[use_libjaylink=yes], [use_libjaylink=no])
 
+PKG_CHECK_MODULES([LIBJIM], [jimtcl >= 0.80],
+	[use_internal_jimtcl=no], [use_internal_jimtcl=yes])
+
 m4_define([PROCESS_ADAPTERS], [
   m4_foreach([adapter], [$1], [
 	AS_IF([test $2], [
diff -upr a/src/Makefile.am b/src/Makefile.am
--- a/src/Makefile.am	2021-09-14 17:31:53.000000000 +0200
+++ b/src/Makefile.am	2021-10-02 11:31:57.529416686 +0200
@@ -9,13 +9,15 @@ bin_PROGRAMS += %D%/openocd
 	%D%/openocd.c %D%/openocd.h
 
 %C%_openocd_LDADD = %D%/libopenocd.la
+%C%_openocd_CFLAGS =
 
 %C%_openocd_LDADD += $(MINGWLDADD)
 
 if INTERNAL_JIMTCL
 %C%_openocd_LDADD += $(top_builddir)/jimtcl/libjim.a
 else
-%C%_openocd_LDADD += -ljim
+%C%_openocd_CFLAGS += $(LIBJIM_CFLAGS)
+%C%_openocd_LDADD += $(LIBJIM_LIBS)
 endif
 
 %C%_libopenocd_la_CPPFLAGS =