ENH: additional handling of questionable bad FOAM_EXT_LIBBIN values

- if FOAM_EXT_LIBBIN is unset and some scripts set this to /usr/lib*
  as a fallback (eg, to avoid an undefined value) this will cause a
  system library to be found before appropriate *_ARCH_PATH entry.

  This was noticed during a scotch compilation without third-party:
  resulting in the system library (/usr/lib64/libscotch.so) to be found
  instead of the SCOTCH_ARCH_PATH location
  (/usr/lib64/mpi/gcc/openmpi/lib64/).

  Simply changing the search order doesn't work for use, since we wish
  to retain a preference for any dynamic libraries discovered in a
  real FOAM_EXT_LIBBIN.

  Circumvent these issues by only taking libraries from
  FOAM_EXT_LIBBIN if it also points to a location within ThirdParty.
This commit is contained in:
Mark Olesen
2018-11-27 12:23:11 +01:00
parent 38d3a36c2d
commit 9065346a05
13 changed files with 33 additions and 24 deletions

View File

@ -21,6 +21,7 @@
# isSystem
# isAbsdir, hasAbsdir
# findFirstFile
# thirdExtLib
#
# Variables provided
# extLiba
@ -104,6 +105,26 @@ then
return 2
}
# Check for existence of file in FOAM_EXT_LIBBIN,
# but not if either file or FOAM_EXT_LIBBIN are empty or
# if the FOAM_EXT_LIBBIN is not located in the ThirdParty directory
#
# On success, echoes the resolved file and returns 0, otherwise returns 2
thirdExtLib()
{
local file="$FOAM_EXT_LIBBIN/$1"
if [ -n "$1" ] && \
[ -n "$FOAM_EXT_LIBBIN" ] && \
[ -n "$WM_THIRD_PARTY_DIR" ] && \
[ -f "$file" -a -r "$file" ] && \
[ "${FOAM_EXT_LIBBIN#$WM_THIRD_PARTY_DIR}" != "$FOAM_EXT_LIBBIN" ]
then
echo "$file"
else
return 2
fi
}
fi