]>
Commit | Line | Data |
---|---|---|
bba13cd2 JP |
1 | From e77f5ac322b24fbcde94a55ed99ba61755c983eb Mon Sep 17 00:00:00 2001 |
2 | From: Jan Palus <jpalus@fastmail.com> | |
3 | Date: Sun, 10 Jul 2022 18:02:46 +0200 | |
4 | Subject: [PATCH] autotools: relax soname pattern for dynamic loading | |
5 | ||
6 | SDL makes assumption that each dynamically loaded library must have | |
7 | SONAME matching pattern <libname>.so.<digit>+ hence it discards any file | |
8 | that has two (or more) digits after ".so". in practice however SONAME | |
9 | might be in the form of ie <libname>.so.<major>.<minor>. | |
10 | ||
11 | as a solution keep requirement for dynamically loaded files to be named | |
12 | <libname>.so.* but consider all the possibilities and prefer the shortest | |
13 | one. | |
14 | ||
15 | Fixes: #289 | |
16 | From: libsdl-org/SDL#5901 | |
17 | --- | |
18 | configure.ac | 7 ++++++- | |
19 | 1 file changed, 6 insertions(+), 1 deletion(-) | |
20 | ||
21 | diff --git a/configure.ac b/configure.ac | |
22 | index ca1013a..9cff1e7 100644 | |
23 | --- a/configure.ac | |
24 | +++ b/configure.ac | |
25 | @@ -67,6 +67,11 @@ AC_CHECK_TOOL(RC,[windres],[:]) | |
26 | AC_PROG_INSTALL | |
27 | AC_PROG_MAKE_SET | |
28 | PKG_PROG_PKG_CONFIG | |
29 | +AC_PROG_AWK | |
30 | + | |
31 | +if test -z "$AWK"; then | |
32 | + AC_MSG_ERROR([*** Required awk tool not found!]) | |
33 | +fi | |
34 | ||
35 | case "$host" in | |
36 | *-*-beos*) | |
37 | @@ -132,7 +137,7 @@ find_lib() | |
38 | host_lib_path="$ac_default_prefix/$base_libdir $ac_default_prefix/$base_bindir /usr/$base_libdir /usr/local/$base_libdir" | |
39 | fi | |
40 | for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do | |
41 | - lib=[`ls -- $path/$1 2>/dev/null | sed -e '/\.so\..*\./d' -e 's,.*/,,' | sort | tail -1`] | |
42 | + lib=[`ls -- $path/$1 2>/dev/null | sed -e 's,.*/,,' | $AWK '{print length() " " $0;}' | sort -n -r | tail -1 | sed 's/^[0-9]\+ //'`] | |
43 | if test x$lib != x; then | |
44 | echo $lib | |
45 | return | |
46 | -- | |
47 | 2.37.0 | |
48 |