diff --git a/lib/modules/Tools.pmod/Standalone.pmod/module.pike b/lib/modules/Tools.pmod/Standalone.pmod/module.pike
index fde29e92dfbb0d4611cc8ade9d4299fe85b728fc..945d7cb31601f7196eada118e875289b8ae0244d 100644
--- a/lib/modules/Tools.pmod/Standalone.pmod/module.pike
+++ b/lib/modules/Tools.pmod/Standalone.pmod/module.pike
@@ -1,6 +1,6 @@
 // -*- Pike -*-
 
-// $Id: module.pike,v 1.2 2002/09/12 16:37:34 marcus Exp $
+// $Id: module.pike,v 1.3 2002/09/13 01:14:26 marcus Exp $
 
 // Source directory
 string srcdir;
@@ -239,7 +239,8 @@ int main(int argc, array(string) argv)
 		    "CFLAGS="+(specs->CFLAGS||""),
 		    "CPPFLAGS="+(specs->CPPFLAGS||""),
 		    "CPP="+(specs->CPP||""),
-		    "LDFLAGS="+(specs->LDFLAGS||""));
+		    "LDFLAGS="+(specs->LDFLAGS||""),
+		    "LDSHARED="+(specs->LDSHARED||""));
       }
     }
   }
diff --git a/src/aclocal.m4 b/src/aclocal.m4
index edfb1a82168fb1ab090eb4814e465902b9996783..b37e688b7d9d9ec3939a9e6b3863800ca112aa95 100644
--- a/src/aclocal.m4
+++ b/src/aclocal.m4
@@ -1,4 +1,4 @@
-dnl $Id: aclocal.m4,v 1.47 2002/09/09 13:44:55 marcus Exp $
+dnl $Id: aclocal.m4,v 1.48 2002/09/13 01:14:26 marcus Exp $
 
 dnl Some compatibility with Autoconf 2.50+. Not complete.
 dnl newer autoconf call substr m4_substr
@@ -245,7 +245,7 @@ define(PIKE_FEATURE_OK,[
 
 define([AC_LOW_MODULE_INIT],
 [
-# $Id: aclocal.m4,v 1.47 2002/09/09 13:44:55 marcus Exp $
+# $Id: aclocal.m4,v 1.48 2002/09/13 01:14:26 marcus Exp $
 
 MY_AC_PROG_CC
 
@@ -356,6 +356,8 @@ pushdef([AC_OUTPUT],
   export WARN
   AC_SUBST(CCSHARED)
   export CCSHARED
+  AC_SUBST(LDSHARED)
+  export LDSHARED
 
   PMOD_TARGETS=`echo $srcdir/*.cmod | sed -e "s/\.cmod/\.c/g" | sed -e "s|$srcdir/|\\$(SRCDIR)/|g"`
   test "$PMOD_TARGETS" = '$(SRCDIR)/*.c' && PMOD_TARGETS=
diff --git a/src/make_variables.in b/src/make_variables.in
index e7f1f8c6a31f9372337b21a00c5dae4bb16da05a..f932e357055c4af3cb00a3e0f66693f2a6bc661b 100644
--- a/src/make_variables.in
+++ b/src/make_variables.in
@@ -1,6 +1,6 @@
 # -*- Makefile -*-
 #
-# $Id: make_variables.in,v 1.10 2002/03/10 03:26:33 mast Exp $
+# $Id: make_variables.in,v 1.11 2002/09/13 01:14:26 marcus Exp $
 #
 # Note: This template is actually used only for make_variables in the
 # subdirectories; the one created in the build base dir is just an
@@ -11,6 +11,7 @@ prefix=@prefix@
 exec_prefix=$(prefix)/bin
 CC=@CC@
 CPP=@CPP@
+LDSHARED=@LDSHARED@
 TMP_BUILDDIR=@BUILDDIR@
 TMP_BINDIR=@BINDIR@
 DEFINES=@CPPFLAGS@
diff --git a/src/modules/Makefile.in b/src/modules/Makefile.in
index 0102b9681bb50f3b8413395d924d4e3f965b4be3..a43c4fef2730a0e6775591d0b2b0d5cd310db970 100644
--- a/src/modules/Makefile.in
+++ b/src/modules/Makefile.in
@@ -1,4 +1,4 @@
-# $Id: Makefile.in,v 1.43 2002/05/04 15:18:13 mast Exp $
+# $Id: Makefile.in,v 1.44 2002/09/13 01:14:27 marcus Exp $
 
 @make_variables@
 
@@ -51,7 +51,7 @@ $(SRCDIR)/configure: $(SRCDIR)/configure.in $(PIKE_SRC_DIR)/aclocal.m4
 	cd $(SRCDIR) && autoconf --localdir=$(PIKE_SRC_DIR)
 
 config.status: $(SRCDIR)/configure
-	CFLAGS="$(REAL_CFLAGS)" LDFLAGS="$(REAL_LDFLAGS)" CPPFLAGS="$(REAL_CPPFLAGS)" BUILDDIR="$(TMP_BUILDDIR)" BINDIR="$(TMP_BINDIR)" PIKE_SRC_DIR="$(PIKE_SRC_DIR)" BUILD_BASE="$(BUILD_BASE)" ./config.status --recheck
+	CFLAGS="$(REAL_CFLAGS)" LDFLAGS="$(REAL_LDFLAGS)" CPPFLAGS="$(REAL_CPPFLAGS)" LDSHARED="$(REAL_LDSHARED)" BUILDDIR="$(TMP_BUILDDIR)" BINDIR="$(TMP_BINDIR)" PIKE_SRC_DIR="$(PIKE_SRC_DIR)" BUILD_BASE="$(BUILD_BASE)" ./config.status --recheck
 
 depend: Makefile
 	@for a in $(MODULES) ; do \
diff --git a/src/modules/dynamic_module_makefile.in b/src/modules/dynamic_module_makefile.in
index e573273954c2466f97e900baa81873bddbe21dea..7b0f71dc7c30f2738f6e3a74e754878011d24a9a 100644
--- a/src/modules/dynamic_module_makefile.in
+++ b/src/modules/dynamic_module_makefile.in
@@ -1,5 +1,5 @@
 #
-# $Id: dynamic_module_makefile.in,v 1.98 2002/09/09 12:50:39 marcus Exp $
+# $Id: dynamic_module_makefile.in,v 1.99 2002/09/13 01:14:27 marcus Exp $
 #
 
 
@@ -8,6 +8,7 @@ CPP=@CPP@
 AR=@AR@
 LIBGCC=@LIBGCC@
 REAL_LDFLAGS=@LDFLAGS@
+REAL_LDSHARED=@LDSHARED@
 REAL_CFLAGS=@CFLAGS@
 REAL_CPPFLAGS=@CPPFLAGS@
 LC_REQ=@LC_REQ@
@@ -113,16 +114,16 @@ $(SRCDIR)/configure: $(SRCDIR)/configure.in $(PIKE_SRC_DIR)/aclocal.m4
 	else :; fi
 
 config.status: $(SRCDIR)/configure
-	CFLAGS="$(REAL_CFLAGS)" LDFLAGS="$(REAL_LDFLAGS)" CPPFLAGS="$(REAL_CPPFLAGS)" BUILDDIR="$(TMP_BUILDDIR)" BINDIR="$(TMP_BINDIR)" PIKE_SRC_DIR="$(PIKE_SRC_DIR)" BUILD_BASE="$(BUILD_BASE)" ./config.status --recheck
+	CFLAGS="$(REAL_CFLAGS)" LDFLAGS="$(REAL_LDFLAGS)" LDSHARED="$(REAL_LDSHARED)" CPPFLAGS="$(REAL_CPPFLAGS)" BUILDDIR="$(TMP_BUILDDIR)" BINDIR="$(TMP_BINDIR)" PIKE_SRC_DIR="$(PIKE_SRC_DIR)" BUILD_BASE="$(BUILD_BASE)" ./config.status --recheck
 
 
 module.so: $(OBJS)  $(MODULE_ARCHIVES)
 	@echo "Linking $(MODNAME)" ;\
-	if $(TMP_BINDIR)/smartlink "@LDSHARED@" $(LDFLAGS) -o module.@SO@ $(OBJS) $(MODULE_ARCHIVES) $(MODULE_LDFLAGS) $(LIBGCC) $(LC_REQ) $(LIBGCC) ; then \
+	if $(TMP_BINDIR)/smartlink "$(LDSHARED)" $(LDFLAGS) -o module.@SO@ $(OBJS) $(MODULE_ARCHIVES) $(MODULE_LDFLAGS) $(LIBGCC) $(LC_REQ) $(LIBGCC) ; then \
 	  if test @SO@ != so ; then mv module.@SO@ module.so ; else :; fi ;\
 	else \
 	  echo "Linking failed:" >&2; \
-	  echo $(TMP_BINDIR)/smartlink "@LDSHARED@" $(LDFLAGS) -o module.@SO@ $(OBJS) $(MODULE_ARCHIVES) $(MODULE_LDFLAGS) $(LIBGCC) $(LC_REQ) $(LIBGCC) >&2 ;\
+	  echo $(TMP_BINDIR)/smartlink "$(LDSHARED)" $(LDFLAGS) -o module.@SO@ $(OBJS) $(MODULE_ARCHIVES) $(MODULE_LDFLAGS) $(LIBGCC) $(LC_REQ) $(LIBGCC) >&2 ;\
 	  exit 1; \
 	fi
 
diff --git a/src/modules/static_module_makefile.in b/src/modules/static_module_makefile.in
index 62f7c9831f458a353088cb9a20dcb70700051956..48ad5041bf00c23e375ca0a7f2c5c198586e0964 100644
--- a/src/modules/static_module_makefile.in
+++ b/src/modules/static_module_makefile.in
@@ -1,5 +1,5 @@
 #
-# $Id: static_module_makefile.in,v 1.89 2002/09/09 12:50:39 marcus Exp $
+# $Id: static_module_makefile.in,v 1.90 2002/09/13 01:14:27 marcus Exp $
 #
 
 
@@ -7,6 +7,7 @@ CC=@CC@
 CPP=@CPP@
 AR=@AR@
 REAL_LDFLAGS=@LDFLAGS@
+REAL_LDSHARED=@LDSHARED@
 REAL_CFLAGS=@CFLAGS@
 REAL_CPPFLAGS=@CPPFLAGS@
 
@@ -112,7 +113,7 @@ $(SRCDIR)/configure: $(SRCDIR)/configure.in $(PIKE_SRC_DIR)/aclocal.m4
 	else :; fi
 
 config.status: $(SRCDIR)/configure
-	CFLAGS="$(REAL_CFLAGS)" LDFLAGS="$(REAL_LDFLAGS)" CPPFLAGS="$(REAL_CPPFLAGS)" BUILDDIR="$(TMP_BUILDDIR)" BINDIR="$(TMP_BINDIR)" PIKE_SRC_DIR="$(PIKE_SRC_DIR)" BUILD_BASE="$(BUILD_BASE)" ./config.status --recheck
+	CFLAGS="$(REAL_CFLAGS)" LDFLAGS="$(REAL_LDFLAGS)" LDSHARED="$(REAL_LDSHARED)" CPPFLAGS="$(REAL_CPPFLAGS)" BUILDDIR="$(TMP_BUILDDIR)" BINDIR="$(TMP_BINDIR)" PIKE_SRC_DIR="$(PIKE_SRC_DIR)" BUILD_BASE="$(BUILD_BASE)" ./config.status --recheck
 
 module.pmod: Makefile
 	@echo "Making module.pmod" ; if [ -f $(SRCDIR)/module.pmod.in ]; then \
diff --git a/src/specs.in b/src/specs.in
index 5d74d487c06863ac19a75feb2915601d0b7a620e..f35c483a9e671d5186265c6af3a1d2c979b1ca15 100644
--- a/src/specs.in
+++ b/src/specs.in
@@ -1,7 +1,8 @@
-# $Id: specs.in,v 1.1 2002/09/09 13:43:28 marcus Exp $
+# $Id: specs.in,v 1.2 2002/09/13 01:14:26 marcus Exp $
 CC=@CC@
 CFLAGS=@CFLAGS@
 LDFLAGS=@LDFLAGS@
 CPPFLAGS=@CPPFLAGS@
 CPP=@CPP@
+LDSHARED=@LDSHARED@
 configure_args=@ac_configure_args@