diff --git a/build-aux/subst-config-vals.in.sh b/build-aux/subst-config-vals.in.sh
index 48cecbc7bbd5..0ebd8717f80b 100644
--- a/build-aux/subst-config-vals.in.sh
+++ b/build-aux/subst-config-vals.in.sh
@@ -116,7 +116,6 @@ DEFAULT_PAGER="@DEFAULT_PAGER@"
 DEFS="@DEFS@"
 DEPEND_FLAGS="@DEPEND_FLAGS@"
 DEPEND_EXTRA_SED_PATTERN="@DEPEND_EXTRA_SED_PATTERN@"
-DL_LD="@DL_LD@"
 DL_LDFLAGS="@DL_LDFLAGS@"
 EXEEXT="@EXEEXT@"
 GCC_VERSION="@GCC_VERSION@"
@@ -151,7 +150,6 @@ KLU_CPPFLAGS="@KLU_CPPFLAGS@"
 KLU_LDFLAGS="@KLU_LDFLAGS@"
 KLU_LIBS="@KLU_LIBS@"
 LAPACK_LIBS="@LAPACK_LIBS@"
-LD_CXX="@LD_CXX@"
 LDFLAGS="@LDFLAGS@"
 LD_STATIC_FLAG="@LD_STATIC_FLAG@"
 LEX="@LEX@"
@@ -170,10 +168,8 @@ MAGICK_LIBS="@MAGICK_LIBS@"
 MKOCTFILE_AR="@MKOCTFILE_AR@"
 MKOCTFILE_CC="@MKOCTFILE_CC@"
 MKOCTFILE_CXX="@MKOCTFILE_CXX@"
-MKOCTFILE_DL_LD="@MKOCTFILE_DL_LD@"
 MKOCTFILE_DL_LDFLAGS="@MKOCTFILE_DL_LDFLAGS@"
 MKOCTFILE_F77="@MKOCTFILE_F77@"
-MKOCTFILE_LD_CXX="@MKOCTFILE_LD_CXX@"
 MKOCTFILE_RANLIB="@MKOCTFILE_RANLIB@"
 MKOCTFILE_OCTAVE_LINK_DEPS="@MKOCTFILE_OCTAVE_LINK_DEPS@"
 MKOCTFILE_OCT_LINK_DEPS="@MKOCTFILE_OCT_LINK_DEPS@"
@@ -201,7 +197,6 @@ RANLIB="@RANLIB@"
 RDYNAMIC_FLAG="@RDYNAMIC_FLAG@"
 READLINE_LIBS="@READLINE_LIBS@"
 SHARED_LIBS="@SHARED_LIBS@"
-SH_LD="@SH_LD@"
 SH_LDFLAGS="@SH_LDFLAGS@"
 STATIC_LIBS="@STATIC_LIBS@"
 SUITESPARSECONFIG_LIBS="@SUITESPARSECONFIG_LIBS@"
@@ -280,7 +275,6 @@ $SED \
   -e "s|%OCTAVE_CONF_DEFS%|\"${DEFS}\"|" \
   -e "s|%OCTAVE_CONF_DEPEND_EXTRA_SED_PATTERN%|\"${DEPEND_EXTRA_SED_PATTERN}\"|" \
   -e "s|%OCTAVE_CONF_DEPEND_FLAGS%|\"${DEPEND_FLAGS}\"|" \
-  -e "s|%OCTAVE_CONF_DL_LD%|\"${DL_LD}\"|" \
   -e "s|%OCTAVE_CONF_DL_LDFLAGS%|\"${DL_LDFLAGS}\"|" \
   -e "s|%OCTAVE_CONF_EXEC_PREFIX%|\"${exec_prefix}\"|" \
   -e "s|%OCTAVE_CONF_EXEEXT%|\"${EXEEXT}\"|" \
@@ -319,7 +313,6 @@ $SED \
   -e "s|%OCTAVE_CONF_KLU_LIBS%|\"${KLU_LIBS}\"|" \
   -e "s|%OCTAVE_CONF_LAPACK_LIBS%|\"${LAPACK_LIBS}\"|" \
   -e "s|%OCTAVE_CONF_LDFLAGS%|\"${LDFLAGS}\"|" \
-  -e "s|%OCTAVE_CONF_LD_CXX%|\"${LD_CXX}\"|" \
   -e "s|%OCTAVE_CONF_LD_STATIC_FLAG%|\"${LD_STATIC_FLAG}\"|" \
   -e "s|%OCTAVE_CONF_LEX%|\"${LEX}\"|" \
   -e "s|%OCTAVE_CONF_LEXLIB%|\"${LEXLIB}\"|" \
@@ -338,10 +331,8 @@ $SED \
   -e "s|%OCTAVE_CONF_MKOCTFILE_AR%|\"${MKOCTFILE_AR}\"|" \
   -e "s|%OCTAVE_CONF_MKOCTFILE_CC%|\"${MKOCTFILE_CC}\"|" \
   -e "s|%OCTAVE_CONF_MKOCTFILE_CXX%|\"${MKOCTFILE_CXX}\"|" \
-  -e "s|%OCTAVE_CONF_MKOCTFILE_DL_LD%|\"${MKOCTFILE_DL_LD}\"|" \
   -e "s|%OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS%|\"${MKOCTFILE_DL_LDFLAGS}\"|" \
   -e "s|%OCTAVE_CONF_MKOCTFILE_F77%|\"${MKOCTFILE_F77}\"|" \
-  -e "s|%OCTAVE_CONF_MKOCTFILE_LD_CXX%|\"${MKOCTFILE_LD_CXX}\"|" \
   -e "s|%OCTAVE_CONF_MKOCTFILE_OCTAVE_LINK_DEPS%|\"${MKOCTFILE_OCTAVE_LINK_DEPS}\"|" \
   -e "s|%OCTAVE_CONF_MKOCTFILE_OCT_LINK_DEPS%|\"${MKOCTFILE_OCT_LINK_DEPS}\"|" \
   -e "s|%OCTAVE_CONF_MKOCTFILE_RANLIB%|\"${MKOCTFILE_RANLIB}\"|" \
@@ -373,7 +364,6 @@ $SED \
   -e "s|%OCTAVE_CONF_READLINE_LIBS%|\"${READLINE_LIBS}\"|" | \
   $SED \
   -e "s|%OCTAVE_CONF_SHARED_LIBS%|\"${SHARED_LIBS}\"|" \
-  -e "s|%OCTAVE_CONF_SH_LD%|\"${SH_LD}\"|" \
   -e "s|%OCTAVE_CONF_SH_LDFLAGS%|\"${SH_LDFLAGS}\"|" \
   -e "s|%OCTAVE_CONF_STATIC_LIBS%|\"${STATIC_LIBS}\"|" \
   -e "s|%OCTAVE_CONF_SUITESPARSECONFIG_LIBS%|\"${SUITESPARSECONFIG_LIBS}\"|" \
diff --git a/build-aux/subst-cross-config-vals.in.sh b/build-aux/subst-cross-config-vals.in.sh
index 2f6b90fa0232..111916aa0602 100644
--- a/build-aux/subst-cross-config-vals.in.sh
+++ b/build-aux/subst-cross-config-vals.in.sh
@@ -26,10 +26,8 @@
 ##   OCTAVE_CONF_MKOCTFILE_AR
 ##   OCTAVE_CONF_MKOCTFILE_CC
 ##   OCTAVE_CONF_MKOCTFILE_CXX
-##   OCTAVE_CONF_MKOCTFILE_DL_LD
 ##   OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS
 ##   OCTAVE_CONF_MKOCTFILE_F77
-##   OCTAVE_CONF_MKOCTFILE_LD_CXX
 ##   OCTAVE_CONF_MKOCTFILE_RANLIB
 
 canonical_host_type="@canonical_host_type@"
@@ -128,7 +126,6 @@ DEFAULT_PAGER="@DEFAULT_PAGER@"
 DEFS="@DEFS@"
 DEPEND_FLAGS="@DEPEND_FLAGS@"
 DEPEND_EXTRA_SED_PATTERN="@DEPEND_EXTRA_SED_PATTERN@"
-DL_LD="@DL_LD@"
 DL_LDFLAGS="@DL_LDFLAGS@"
 EXEEXT="@EXEEXT@"
 GCC_VERSION="@GCC_VERSION@"
@@ -163,7 +160,6 @@ KLU_CPPFLAGS="@KLU_CPPFLAGS@"
 KLU_LDFLAGS="@KLU_LDFLAGS@"
 KLU_LIBS="@KLU_LIBS@"
 LAPACK_LIBS="@LAPACK_LIBS@"
-LD_CXX="@LD_CXX@"
 LDFLAGS="@LDFLAGS@"
 LD_STATIC_FLAG="@LD_STATIC_FLAG@"
 LEX="@LEX@"
@@ -205,7 +201,6 @@ RANLIB="@RANLIB@"
 RDYNAMIC_FLAG="@RDYNAMIC_FLAG@"
 READLINE_LIBS="@READLINE_LIBS@"
 SHARED_LIBS="@SHARED_LIBS@"
-SH_LD="@SH_LD@"
 SH_LDFLAGS="@SH_LDFLAGS@"
 STATIC_LIBS="@STATIC_LIBS@"
 SUITESPARSECONFIG_LIBS="@SUITESPARSECONFIG_LIBS@"
@@ -284,7 +279,6 @@ $SED \
   -e "s|%OCTAVE_CONF_DEFS%|\"${DEFS}\"|" \
   -e "s|%OCTAVE_CONF_DEPEND_EXTRA_SED_PATTERN%|\"${DEPEND_EXTRA_SED_PATTERN}\"|" \
   -e "s|%OCTAVE_CONF_DEPEND_FLAGS%|\"${DEPEND_FLAGS}\"|" \
-  -e "s|%OCTAVE_CONF_DL_LD%|\"${DL_LD}\"|" \
   -e "s|%OCTAVE_CONF_DL_LDFLAGS%|\"${DL_LDFLAGS}\"|" \
   -e "s|%OCTAVE_CONF_EXEC_PREFIX%|\"${exec_prefix}\"|" \
   -e "s|%OCTAVE_CONF_EXEEXT%|\"${EXEEXT}\"|" \
@@ -323,7 +317,6 @@ $SED \
   -e "s|%OCTAVE_CONF_KLU_LIBS%|\"${KLU_LIBS}\"|" \
   -e "s|%OCTAVE_CONF_LAPACK_LIBS%|\"${LAPACK_LIBS}\"|" \
   -e "s|%OCTAVE_CONF_LDFLAGS%|\"${LDFLAGS}\"|" \
-  -e "s|%OCTAVE_CONF_LD_CXX%|\"${LD_CXX}\"|" \
   -e "s|%OCTAVE_CONF_LD_STATIC_FLAG%|\"${LD_STATIC_FLAG}\"|" \
   -e "s|%OCTAVE_CONF_LEX%|\"${LEX}\"|" \
   -e "s|%OCTAVE_CONF_LEXLIB%|\"${LEXLIB}\"|" \
@@ -342,10 +335,8 @@ $SED \
   -e "s|%OCTAVE_CONF_MKOCTFILE_AR%|\"${AR}\"|" \
   -e "s|%OCTAVE_CONF_MKOCTFILE_CC%|\"${CC}\"|" \
   -e "s|%OCTAVE_CONF_MKOCTFILE_CXX%|\"${CXX}\"|" \
-  -e "s|%OCTAVE_CONF_MKOCTFILE_DL_LD%|\"${DL_LD}\"|" \
   -e "s|%OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS%|\"${DL_LDFLAGS}\"|" \
   -e "s|%OCTAVE_CONF_MKOCTFILE_F77%|\"${F77}\"|" \
-  -e "s|%OCTAVE_CONF_MKOCTFILE_LD_CXX%|\"${LD_CXX}\"|" \
   -e "s|%OCTAVE_CONF_MKOCTFILE_OCTAVE_LINK_DEPS%|\"${MKOCTFILE_OCTAVE_LINK_DEPS}\"|" \
   -e "s|%OCTAVE_CONF_MKOCTFILE_OCT_LINK_DEPS%|\"${MKOCTFILE_OCT_LINK_DEPS}\"|" \
   -e "s|%OCTAVE_CONF_MKOCTFILE_RANLIB%|\"${RANLIB}\"|" \
@@ -377,7 +368,6 @@ $SED \
   -e "s|%OCTAVE_CONF_READLINE_LIBS%|\"${READLINE_LIBS}\"|" | \
   $SED \
   -e "s|%OCTAVE_CONF_SHARED_LIBS%|\"${SHARED_LIBS}\"|" \
-  -e "s|%OCTAVE_CONF_SH_LD%|\"${SH_LD}\"|" \
   -e "s|%OCTAVE_CONF_SH_LDFLAGS%|\"${SH_LDFLAGS}\"|" \
   -e "s|%OCTAVE_CONF_STATIC_LIBS%|\"${STATIC_LIBS}\"|" \
   -e "s|%OCTAVE_CONF_SUITESPARSECONFIG_LIBS%|\"${SUITESPARSECONFIG_LIBS}\"|" \
diff --git a/configure.ac b/configure.ac
index 35ed7b26ec66..a79ae3e94330 100644
--- a/configure.ac
+++ b/configure.ac
@@ -846,7 +846,6 @@ AM_CONDITIONAL([AMCOND_BUILD_EXTERNAL_LIBXERBLA],
 dnl FIXME: A lot of the following duplicates the functionality of
 dnl code generated by the dlopen option for LT_INIT.
 
-LD_CXX="${CXX}"
 RDYNAMIC_FLAG=
 DL_API_MSG=""
 dlopen_api=no
@@ -881,7 +880,6 @@ else
   LIBOCTAVE="${top_builddir}/liboctave/liboctave.a"
 fi
 
-AC_SUBST(LD_CXX)
 AC_SUBST(RDYNAMIC_FLAG)
 AC_SUBST(LIBOCTINTERP)
 AC_SUBST(LIBOCTAVE)
@@ -891,34 +889,26 @@ if test "$cross_compiling" = yes && test -n "$ac_tool_prefix"; then
   MKOCTFILE_AR=`echo "$AR" | $SED "s,$CROSS_TOOL_PREFIX,,"`
   MKOCTFILE_CC=`echo "$CC" | $SED "s,$CROSS_TOOL_PREFIX,,"`
   MKOCTFILE_CXX=`echo "$CXX" | $SED "s,$CROSS_TOOL_PREFIX,,"`
-  MKOCTFILE_DL_LD=`echo "$DL_LD" | $SED "s,$CROSS_TOOL_PREFIX,,"`
   MKOCTFILE_F77=`echo "$F77" | $SED "s,$CROSS_TOOL_PREFIX,,"`
-  MKOCTFILE_LD_CXX=`echo "$LD_CXX" | $SED "s,$CROSS_TOOL_PREFIX,,"`
   MKOCTFILE_RANLIB=`echo "$RANLIB" | $SED "s,$CROSS_TOOL_PREFIX,,"`
 else
   MKOCTFILE_AR="$AR"
   MKOCTFILE_CC="$CC"
   MKOCTFILE_CXX="$CXX"
-  MKOCTFILE_DL_LD="$DL_LD"
   MKOCTFILE_F77="$F77"
-  MKOCTFILE_LD_CXX="$LD_CXX"
   MKOCTFILE_RANLIB="$RANLIB"
 fi
 AC_MSG_NOTICE([defining CROSS_TOOL_PREFIX to be $CROSS_TOOL_PREFIX])
 AC_MSG_NOTICE([defining MKOCTFILE_AR to be $MKOCTFILE_AR])
 AC_MSG_NOTICE([defining MKOCTFILE_CC to be $MKOCTFILE_CC])
 AC_MSG_NOTICE([defining MKOCTFILE_CXX to be $MKOCTFILE_CXX])
-AC_MSG_NOTICE([defining MKOCTFILE_DL_LD to be $MKOCTFILE_DL_LD])
 AC_MSG_NOTICE([defining MKOCTFILE_F77 to be $MKOCTFILE_F77])
-AC_MSG_NOTICE([defining MKOCTFILE_LD_CXX to be $MKOCTFILE_LD_CXX])
 AC_MSG_NOTICE([defining MKOCTFILE_RANLIB to be $MKOCTFILE_RANLIB])
 AC_SUBST(CROSS_TOOL_PREFIX)
 AC_SUBST(MKOCTFILE_AR)
 AC_SUBST(MKOCTFILE_CC)
 AC_SUBST(MKOCTFILE_CXX)
-AC_SUBST(MKOCTFILE_DL_LD)
 AC_SUBST(MKOCTFILE_F77)
-AC_SUBST(MKOCTFILE_LD_CXX)
 AC_SUBST(MKOCTFILE_RANLIB)
 
 ### Enable float truncation to work around issues with x87 co-processors
diff --git a/doc/interpreter/mkoctfile.1 b/doc/interpreter/mkoctfile.1
index deb4784fa8b3..642e82f011ed 100644
--- a/doc/interpreter/mkoctfile.1
+++ b/doc/interpreter/mkoctfile.1
@@ -99,9 +99,9 @@ Octave configuration variables that users may override with environment
 variables.  These are used in commands that mkoctfile executes.
 .RS
 .Vb
-    ALL_CFLAGS                  LAPACK_LIBS
-    ALL_CXXFLAGS                LDFLAGS
-    ALL_FFLAGS                  LD_CXX
+    ALL_CFLAGS                  INCLUDEDIR
+    ALL_CXXFLAGS                LAPACK_LIBS
+    ALL_FFLAGS                  LDFLAGS
     ALL_LDFLAGS                 LD_STATIC_FLAG
     BLAS_LIBS                   LFLAGS
     CC                          LIBDIR
@@ -110,15 +110,14 @@ variables.  These are used in commands that mkoctfile executes.
     CPPFLAGS                    OCTAVE_LINK_OPTS
     CXX                         OCTINCLUDEDIR
     CXXFLAGS                    OCTAVE_LIBS
-    CXXPICFLAG                  OCTAVE_LINK_DEPS
-    DL_LD                       OCTLIBDIR
+    CXXLD                       OCTAVE_LINK_DEPS
+    CXXPICFLAG                  OCTLIBDIR
     DL_LDFLAGS                  OCT_LINK_DEPS
     F77                         OCT_LINK_OPTS
     F77_INTEGER8_FLAG           RDYNAMIC_FLAG
     FFLAGS                      SPECIAL_MATH_LIB
     FPICFLAG                    XTRA_CFLAGS
     INCFLAGS                    XTRA_CXXFLAGS
-    INCLUDEDIR
 .Ve
 .RE
 .IP
diff --git a/libinterp/build-env.h b/libinterp/build-env.h
index 789cdf160e7e..533056b6cbea 100644
--- a/libinterp/build-env.h
+++ b/libinterp/build-env.h
@@ -67,11 +67,11 @@ namespace octave
     extern const char *CXSPARSE_LIBS;
     extern const char *CXXCPP;
     extern const char *CXXFLAGS;
+    extern const char *CXXLD;
     extern const char *CXXPICFLAG;
     extern const char *CXX;
     extern const char *DEFAULT_PAGER;
     extern const char *DEFS;
-    extern const char *DL_LD;
     extern const char *DL_LDFLAGS;
     extern const char *EXEEXT;
     extern const char *GCC_VERSION;
@@ -108,7 +108,6 @@ namespace octave
     extern const char *KLU_LIBS;
     extern const char *LAPACK_LIBS;
     extern const char *LDFLAGS;
-    extern const char *LD_CXX;
     extern const char *LD_STATIC_FLAG;
     extern const char *LEXLIB;
     extern const char *LEX;
@@ -151,7 +150,6 @@ namespace octave
     extern const char *RDYNAMIC_FLAG;
     extern const char *READLINE_LIBS;
     extern const char *SHARED_LIBS;
-    extern const char *SH_LD;
     extern const char *SH_LDFLAGS;
     extern const char *STATIC_LIBS;
     extern const char *SUITESPARSECONFIG_LIBS;
diff --git a/libinterp/build-env.in.cc b/libinterp/build-env.in.cc
index a8d887f7f974..03bf8eb4e2c7 100644
--- a/libinterp/build-env.in.cc
+++ b/libinterp/build-env.in.cc
@@ -99,6 +99,8 @@ namespace octave
 
     const char *CXXFLAGS = %OCTAVE_CONF_CXXFLAGS%;
 
+    const char *CXXLD = %OCTAVE_CONF_CXX%;
+
     const char *CXXPICFLAG = %OCTAVE_CONF_CXXPICFLAG%;
 
     const char *CXX = %OCTAVE_CONF_CXX%;
@@ -107,8 +109,6 @@ namespace octave
 
     const char *DEFS = %OCTAVE_CONF_DEFS%;
 
-    const char *DL_LD = %OCTAVE_CONF_DL_LD%;
-
     const char *DL_LDFLAGS = %OCTAVE_CONF_DL_LDFLAGS%;
 
     const char *EXEEXT = %OCTAVE_CONF_EXEEXT%;
@@ -181,8 +181,6 @@ namespace octave
 
     const char *LDFLAGS = %OCTAVE_CONF_LDFLAGS%;
 
-    const char *LD_CXX = %OCTAVE_CONF_LD_CXX%;
-
     const char *LD_STATIC_FLAG = %OCTAVE_CONF_LD_STATIC_FLAG%;
 
     const char *LEXLIB = %OCTAVE_CONF_LEXLIB%;
@@ -267,8 +265,6 @@ namespace octave
 
     const char *SHARED_LIBS = %OCTAVE_CONF_SHARED_LIBS%;
 
-    const char *SH_LD = %OCTAVE_CONF_SH_LD%;
-
     const char *SH_LDFLAGS = %OCTAVE_CONF_SH_LDFLAGS%;
 
     const char *STATIC_LIBS = %OCTAVE_CONF_STATIC_LIBS%;
diff --git a/libinterp/corefcn/toplev.cc b/libinterp/corefcn/toplev.cc
index 986d853dfe2e..eb1775445213 100644
--- a/libinterp/corefcn/toplev.cc
+++ b/libinterp/corefcn/toplev.cc
@@ -473,9 +473,9 @@ specified option.
            { "CXX", octave::build_env::CXX },
            { "CXXCPP", octave::build_env::CXXCPP },
            { "CXXFLAGS", octave::build_env::CXXFLAGS },
+           { "CXXLD", octave::build_env::CXXLD },
            { "CXXPICFLAG", octave::build_env::CXXPICFLAG },
            { "DEFS", octave::build_env::DEFS },
-           { "DL_LD", octave::build_env::DL_LD },
            { "DL_LDFLAGS", octave::build_env::DL_LDFLAGS },
            { "GCC_VERSION", octave::build_env::GCC_VERSION },
            { "GXX_VERSION", octave::build_env::GXX_VERSION },
@@ -508,7 +508,6 @@ specified option.
            { "HDF5_LIBS", octave::build_env::HDF5_LIBS },
            { "LAPACK_LIBS", octave::build_env::LAPACK_LIBS },
            { "LDFLAGS", octave::build_env::LDFLAGS },
-           { "LD_CXX", octave::build_env::LD_CXX },
            { "LD_STATIC_FLAG", octave::build_env::LD_STATIC_FLAG },
            { "LEX", octave::build_env::LEX },
            { "LEXLIB", octave::build_env::LEXLIB },
@@ -548,7 +547,6 @@ specified option.
            { "RDYNAMIC_FLAG", octave::build_env::RDYNAMIC_FLAG },
            { "READLINE_LIBS", octave::build_env::READLINE_LIBS },
            { "SHARED_LIBS", octave::build_env::SHARED_LIBS },
-           { "SH_LD", octave::build_env::SH_LD },
            { "SH_LDFLAGS", octave::build_env::SH_LDFLAGS },
            { "STATIC_LIBS", octave::build_env::STATIC_LIBS },
            { "SUITESPARSECONFIG_LIBS", octave::build_env::SUITESPARSECONFIG_LIBS },
diff --git a/m4/acinclude.m4 b/m4/acinclude.m4
index 5476a20c9cd2..020b20c6f985 100644
--- a/m4/acinclude.m4
+++ b/m4/acinclude.m4
@@ -3005,9 +3005,7 @@ AC_DEFUN_ONCE([OCTAVE_DEFINE_MKOCTFILE_DYNAMIC_LINK_OPTIONS], [
   CPICFLAG=-fPIC
   CXXPICFLAG=-fPIC
   FPICFLAG=-fPIC
-  SH_LD="${CXX}"
   SH_LDFLAGS=-shared
-  DL_LD="${SH_LD}"
   DL_LDFLAGS="${SH_LDFLAGS}"
   MKOCTFILE_DL_LDFLAGS="${DL_LDFLAGS}"
   NO_OCT_FILE_STRIP=false
@@ -3022,7 +3020,6 @@ AC_DEFUN_ONCE([OCTAVE_DEFINE_MKOCTFILE_DYNAMIC_LINK_OPTIONS], [
   ldpreloadsep=" "
   case $canonical_host_type in
     *-*-386bsd* | *-*-netbsd*)
-      SH_LD=ld
       SH_LDFLAGS=-Bshareable
     ;;
     *-*-openbsd*)
@@ -3147,7 +3144,6 @@ AC_DEFUN_ONCE([OCTAVE_DEFINE_MKOCTFILE_DYNAMIC_LINK_OPTIONS], [
       else
         FPICFLAG=-PIC
       fi
-      SH_LD=ld
       SH_LDFLAGS="-assert nodefinitions"
     ;;
     sparc-sun-solaris2* | i386-pc-solaris2*)
@@ -3179,9 +3175,7 @@ AC_DEFUN_ONCE([OCTAVE_DEFINE_MKOCTFILE_DYNAMIC_LINK_OPTIONS], [
   AC_MSG_NOTICE([defining FPICFLAG to be $FPICFLAG])
   AC_MSG_NOTICE([defining CPICFLAG to be $CPICFLAG])
   AC_MSG_NOTICE([defining CXXPICFLAG to be $CXXPICFLAG])
-  AC_MSG_NOTICE([defining SH_LD to be $SH_LD])
   AC_MSG_NOTICE([defining SH_LDFLAGS to be $SH_LDFLAGS])
-  AC_MSG_NOTICE([defining DL_LD to be $DL_LD])
   AC_MSG_NOTICE([defining DL_LDFLAGS to be $DL_LDFLAGS])
   AC_MSG_NOTICE([defining MKOCTFILE_DL_LDFLAGS to be $MKOCTFILE_DL_LDFLAGS])
   AC_MSG_NOTICE([defining NO_OCT_FILE_STRIP to be $NO_OCT_FILE_STRIP])
@@ -3196,9 +3190,7 @@ AC_DEFUN_ONCE([OCTAVE_DEFINE_MKOCTFILE_DYNAMIC_LINK_OPTIONS], [
   AC_SUBST(FPICFLAG)
   AC_SUBST(CPICFLAG)
   AC_SUBST(CXXPICFLAG)
-  AC_SUBST(SH_LD)
   AC_SUBST(SH_LDFLAGS)
-  AC_SUBST(DL_LD)
   AC_SUBST(DL_LDFLAGS)
   AC_SUBST(MKOCTFILE_DL_LDFLAGS)
   AC_SUBST(NO_OCT_FILE_STRIP)
diff --git a/scripts/miscellaneous/mkoctfile.m b/scripts/miscellaneous/mkoctfile.m
index 27361f6c698d..9b1c21a6d859 100644
--- a/scripts/miscellaneous/mkoctfile.m
+++ b/scripts/miscellaneous/mkoctfile.m
@@ -85,9 +85,9 @@
 ## variables.  These are used in commands that @code{mkoctfile} executes.
 ##
 ## @example
-##    ALL_CFLAGS                  LAPACK_LIBS
-##    ALL_CXXFLAGS                LDFLAGS
-##    ALL_FFLAGS                  LD_CXX
+##    ALL_CFLAGS                  INCLUDEDIR
+##    ALL_CXXFLAGS                LAPACK_LIBS
+##    ALL_FFLAGS                  LDFLAGS
 ##    ALL_LDFLAGS                 LD_STATIC_FLAG
 ##    BLAS_LIBS                   LFLAGS
 ##    CC                          LIBDIR
@@ -96,15 +96,14 @@
 ##    CPPFLAGS                    OCTAVE_LINK_OPTS
 ##    CXX                         OCTINCLUDEDIR
 ##    CXXFLAGS                    OCTAVE_LIBS
-##    CXXPICFLAG                  OCTAVE_LINK_DEPS
-##    DL_LD                       OCTLIBDIR
+##    CXXLD                       OCTAVE_LINK_DEPS
+##    CXXPICFLAG                  OCTLIBDIR
 ##    DL_LDFLAGS                  OCT_LINK_DEPS
 ##    F77                         OCT_LINK_OPTS
 ##    F77_INTEGER8_FLAG           RDYNAMIC_FLAG
 ##    FFLAGS                      SPECIAL_MATH_LIB
 ##    FPICFLAG                    XTRA_CFLAGS
 ##    INCFLAGS                    XTRA_CXXFLAGS
-##    INCLUDEDIR
 ## @end example
 ##
 ## Octave configuration variables as above, but currently unused by
diff --git a/src/mkoctfile.in.cc b/src/mkoctfile.in.cc
index f7795cc2303e..d59554cc3f3f 100644
--- a/src/mkoctfile.in.cc
+++ b/src/mkoctfile.in.cc
@@ -244,6 +244,11 @@ initialize (void)
 
   vars["CXXFLAGS"] = get_variable ("CXXFLAGS", %OCTAVE_CONF_CXXFLAGS%);
 
+  vars["CXXLD"] = get_variable ("CXXLD", "");
+
+  if (vars["CXXLD"].empty ())
+    vars["CXXLD"] = vars["CXX"];
+
   vars["CXXPICFLAG"] = get_variable ("CXXPICFLAG", %OCTAVE_CONF_CXXPICFLAG%);
 
   vars["XTRA_CFLAGS"] = get_variable ("XTRA_CFLAGS", %OCTAVE_CONF_XTRA_CFLAGS%);
@@ -262,8 +267,6 @@ initialize (void)
     = get_variable ("DEPEND_EXTRA_SED_PATTERN",
                     %OCTAVE_CONF_DEPEND_EXTRA_SED_PATTERN%);
 
-  vars["DL_LD"] = get_variable ("DL_LD", %OCTAVE_CONF_MKOCTFILE_DL_LD%);
-
   vars["DL_LDFLAGS"] = get_variable ("DL_LDFLAGS",
                                      %OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS%);
 
@@ -308,8 +311,6 @@ initialize (void)
 
   vars["LDFLAGS"] = get_variable ("LDFLAGS", %OCTAVE_CONF_LDFLAGS%);
 
-  vars["LD_CXX"] = get_variable ("LD_CXX", %OCTAVE_CONF_MKOCTFILE_LD_CXX%);
-
   vars["LD_STATIC_FLAG"] = get_variable ("LD_STATIC_FLAG",
                                          %OCTAVE_CONF_LD_STATIC_FLAG%);
 
@@ -392,22 +393,22 @@ static std::string help_msg =
 "                            ALL_CFLAGS                  INCLUDEDIR\n"
 "                            ALL_CXXFLAGS                LAPACK_LIBS\n"
 "                            ALL_FFLAGS                  LDFLAGS\n"
-"                            ALL_LDFLAGS                 LD_CXX\n"
-"                            BLAS_LIBS                   LD_STATIC_FLAG\n"
-"                            CC                          LIBDIR\n"
-"                            CFLAGS                      LIBOCTAVE\n"
-"                            CPICFLAG                    LIBOCTINTERP\n"
-"                            CPPFLAGS                    OCTAVE_LINK_OPTS\n"
-"                            CXX                         OCTINCLUDEDIR\n"
-"                            CXXFLAGS                    OCTAVE_LIBS\n"
-"                            CXXPICFLAG                  OCTAVE_LINK_DEPS\n"
-"                            DL_LD                       OCTLIBDIR\n"
-"                            DL_LDFLAGS                  OCT_LINK_DEPS\n"
-"                            F77                         OCT_LINK_OPTS\n"
-"                            F77_INTEGER8_FLAG           RDYNAMIC_FLAG\n"
-"                            FFLAGS                      SPECIAL_MATH_LIB\n"
-"                            FPICFLAG                    XTRA_CFLAGS\n"
-"                            INCFLAGS                    XTRA_CXXFLAGS\n"
+"                            ALL_LDFLAGS                 LD_STATIC_FLAG\n"
+"                            BLAS_LIBS                   LIBDIR\n"
+"                            CC                          LIBOCTAVE\n"
+"                            CFLAGS                      LIBOCTINTERP\n"
+"                            CPICFLAG                    OCTAVE_LINK_OPTS\n"
+"                            CPPFLAGS                    OCTINCLUDEDIR\n"
+"                            CXX                         OCTAVE_LIBS\n"
+"                            CXXFLAGS                    OCTAVE_LINK_DEPS\n"
+"                            CXXLD                       OCTLIBDIR\n"
+"                            CXXPICFLAG                  OCT_LINK_DEPS\n"
+"                            DL_LDFLAGS                  OCT_LINK_OPTS\n"
+"                            F77                         RDYNAMIC_FLAG\n"
+"                            F77_INTEGER8_FLAG           SPECIAL_MATH_LIB\n"
+"                            FFLAGS                      XTRA_CFLAGS\n"
+"                            FPICFLAG                    XTRA_CXXFLAGS\n"
+"                            INCFLAGS\n"
 "\n"
 "                          Octave configuration variables as above, but\n"
 "                          currently unused by mkoctfile.\n"
@@ -695,8 +696,8 @@ main (int argc, char **argv)
             vars["CC"] += " -d";
           if (vars["CXX"] == "cc-msvc")
             vars["CXX"] += " -d";
-          if (vars["DL_LD"] == "cc-msvc")
-            vars["DL_LD"] += " -d";
+          if (vars["CXXLD"] == "cc-msvc")
+            vars["CXXLD"] += " -d";
         }
       else if (arg == "-h" || arg == "-?" || arg == "-help" || arg == "--help")
         {
@@ -1083,13 +1084,13 @@ main (int argc, char **argv)
 
   if (link_stand_alone)
     {
-      if (! vars["LD_CXX"].empty ())
+      if (! vars["CXXLD"].empty ())
         {
           octave_libs = "-L" + quote_path (vars["OCTLIBDIR"])
                       + ' ' + vars["OCTAVE_LIBS"];
 
           std::string cmd
-            = (vars["LD_CXX"] + ' ' + vars["CPPFLAGS"] + ' '
+            = (vars["CXXLD"] + ' ' + vars["CPPFLAGS"] + ' '
                + vars["ALL_CXXFLAGS"] + ' ' + vars["RDYNAMIC_FLAG"] + ' '
                + vars["ALL_LDFLAGS"] + ' ' + pass_on_options + ' '
                + output_option + ' ' + objfiles + ' ' + libfiles + ' '
@@ -1119,7 +1120,7 @@ main (int argc, char **argv)
 #endif
 
       std::string cmd
-        = (vars["DL_LD"] + ' ' + vars["ALL_CXXFLAGS"] + ' '
+        = (vars["CXXLD"] + ' ' + vars["ALL_CXXFLAGS"] + ' '
            + vars["DL_LDFLAGS"] + ' ' + vars["LDFLAGS"] + ' ' + pass_on_options
            + " -o " + octfile + ' ' + objfiles + ' ' + libfiles + ' '
            + ldflags + ' ' + vars["LFLAGS"] + ' ' + octave_libs + ' '
