whereis: include native multiarch path in lib search paths

This includes atleast the native multiarch path in the paths to search.
(Maybe also other multiarch paths should also be searched? But atleast
this is a first step.)

Before this change (on Debian):
$ whereis libc
libc: /usr/share/man/man7/libc.7.gz

After this change:
$ whereis libc
libc: /usr/lib/x86_64-linux-gnu/libc.so /usr/lib/x86_64-linux-gnu/libc.a /usr/share/man/man7/libc.7.gz

Addresses: https://bugs.debian.org/856968
Signed-off-by: Andreas Henriksson <andreas@fatal.se>
pull/492/head
Andreas Henriksson 2017-07-30 19:52:17 +02:00 committed by Karel Zak
parent d52eb4bd90
commit c9ab738706
2 changed files with 10 additions and 0 deletions

View File

@ -1490,6 +1490,11 @@ AM_CONDITIONAL([BUILD_MCOOKIE], [test "x$build_mcookie" = xyes])
UL_BUILD_INIT([namei], [yes])
AM_CONDITIONAL([BUILD_NAMEI], [test "x$build_namei" = xyes])
matriplet="$($CC -print-multiarch 2>/dev/null || true)"
if test "x$matriplet" != "x"; then
AC_DEFINE_UNQUOTED([MULTIARCHTRIPLET], ["$matriplet"],
["Multi-arch triplet for whereis library search path"])
fi
UL_BUILD_INIT([whereis], [yes])
AM_CONDITIONAL([BUILD_WHEREIS], [test "x$build_whereis" = xyes])

View File

@ -96,6 +96,11 @@ struct wh_dirlist {
static const char *bindirs[] = {
"/usr/bin",
"/usr/sbin",
#if defined(MULTIARCHTRIPLET)
"/lib/" MULTIARCHTRIPLET,
"/usr/lib/" MULTIARCHTRIPLET,
"/usr/local/lib/" MULTIARCHTRIPLET,
#endif
"/usr/lib",
"/usr/lib64",
"/bin",