From 4050a04413dda769b60118e3bbb518639be6828a Mon Sep 17 00:00:00 2001 From: Phil Pennock Date: Mon, 24 Jan 2011 14:35:04 -0500 Subject: [PATCH] Compatibility fixes for dynlookup makefile builder. Don't abort if CFLAGS_DYNAMIC not defined. Oops! Attempt to get a POSIX environment on Solaris. Document POSIXy assumptions going forward. Problems reported by: Dennis Davis --- src/README | 6 ++++++ src/README.UPDATING | 15 +++++++++++---- src/scripts/lookups-Makefile | 17 +++++++++++++++-- 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/src/README b/src/README index cdf3792f9..850a35460 100644 --- a/src/README +++ b/src/README @@ -80,6 +80,12 @@ to which Exim has already been ported, the building process is as follows: comments in exim_monitor/EDITME about the values set therein, but in this case everything can be defaulted if you wish. +. If your system is not POSIX compliant by default, then you might experience + fewer problems if you help point the build tools to the POSIX variants. For + instance, on Solaris: + + PATH=/usr/xpg4/bin:$PATH make SHELL=/usr/xpg4/bin/sh + . Type "make". This will determine what your machine's architecture and operating system are, and create a build directory from those names (e.g. "build-SunOS5-sparc"). Symbolic links are created from the build directory diff --git a/src/README.UPDATING b/src/README.UPDATING index 40210a800..0b70caa2b 100644 --- a/src/README.UPDATING +++ b/src/README.UPDATING @@ -31,10 +31,17 @@ that might affect a running system. Exim version 4.74 ----------------- - * No incompatible changes within Exim itself, but the integrated support for - dynamically loadable lookup modules has an ABI change from the modules - supported by some OS vendors through an unofficial patch. Don't try to - mix & match. + * The integrated support for dynamically loadable lookup modules has an ABI + change from the modules supported by some OS vendors through an unofficial + patch. Don't try to mix & match. + + * Some parts of the build system are now beginning to assume that the host + environment is POSIX. If you're building on a system where POSIX tools are + not the default, you might have an easier time if you switch to the POSIX + tools. Feel free to report non-POSIX issues as a request for a feature + enhancement, but if the POSIX variants are available then the fix will + probably just involve some coercion. See the README instructions for + building on such hosts. Exim version 4.73 diff --git a/src/scripts/lookups-Makefile b/src/scripts/lookups-Makefile index 7f2dd1b9e..959d49e11 100755 --- a/src/scripts/lookups-Makefile +++ b/src/scripts/lookups-Makefile @@ -2,6 +2,15 @@ # We turn the configure-built build-$foo/lookups/Makefile.predynamic into Makefile +if [ -x /usr/xpg4/bin/sh ] && [ -z "EXIM_BLOCK_XPG4_LOOP" ] +then + EXIM_BLOCK_XPG4_LOOP=yes + export EXIM_BLOCK_XPG4_LOOP + PATH="/usr/xpg4/bin:$PATH" + export PATH + exec /usr/xpg4/bin/sh "$@" +fi + input=lookups/Makefile.predynamic target=lookups/Makefile defs_source=Makefile @@ -15,10 +24,10 @@ tab=' ' if grep -q "^CFLAGS_DYNAMIC[ $tab]*=" "$defs_source" then # we have a definition, we're good to go - : # noop (true) statement for bash compatibility + enable_dynamic=yes else echo >&2 "Missing CFLAGS_DYNAMIC inhibits building dynamic module lookup" - exit 1 + enable_dynamic='' fi tmp="$target.t" @@ -46,6 +55,10 @@ emit_module_rule() { if want_dynamic "$lookup_name" then + if [ -z "$enable_dynamic" ]; then + echo >&2 "Inhibited dynamic modules prevents building dynamic $lookup_name" + exit 1 + fi echo "MODS += ${mod_name}.so" grep "^LOOKUP_${lookup_name}_" "$defs_source" echo "LOOKUP_${mod_name}_INCLUDE = \$(LOOKUP_${lookup_name}_INCLUDE)" -- 2.30.2