--- a/libltdl/config/general.m4sh
+++ b/libltdl/config/general.m4sh
@@ -53,7 +53,7 @@ test "${ECHO+set}" = set || ECHO=${as_ec
 : ${MKDIR="mkdir"}
 : ${MV="mv -f"}
 : ${RM="rm -f"}
-: ${SED="@SED@"}
+test "${STAGING_DIR+set}" = set && ${SED="$STAGING_DIR/../host/bin/sed"} || ${SED="@SED@"}
 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
 : ${Xsed="$SED -e 1s/^X//"}
 
--- a/libtoolize.in
+++ b/libtoolize.in
@@ -334,7 +334,11 @@ test "${ECHO+set}" = set || ECHO=${as_ec
 : ${MKDIR="mkdir"}
 : ${MV="mv -f"}
 : ${RM="rm -f"}
-: ${SED="@SED@"}
+if test -n "$STAGING_DIR"; then
+	: ${SED="$STAGING_DIR/../host/bin/sed"}
+else
+	: ${SED="@SED@"}
+fi
 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
 : ${Xsed="$SED -e 1s/^X//"}
 
@@ -2476,10 +2480,17 @@ func_check_macros ()
 
   # Locations for important files:
   prefix=@prefix@
-  datadir=@datadir@
-  pkgdatadir=@pkgdatadir@
-  pkgltdldir=@pkgdatadir@
-  aclocaldir=@aclocaldir@
+  if test -n "$STAGING_DIR"; then
+    datadir="$STAGING_DIR/../host/share"
+    pkgdatadir="$STAGING_DIR/../host/share/libtool"
+    pkgltdldir="$STAGING_DIR/../host/share/libtool"
+    aclocaldir="$STAGING_DIR/../host/share/aclocal"
+  else
+    datadir=@datadir@
+    pkgdatadir=@pkgdatadir@
+    pkgltdldir=@pkgdatadir@
+    aclocaldir=@aclocaldir@
+  fi
   auxdir=
   macrodir=
   configure_ac=configure.in
--- a/libtoolize.m4sh
+++ b/libtoolize.m4sh
@@ -1450,10 +1450,17 @@ func_check_macros ()
 
   # Locations for important files:
   prefix=@prefix@
-  datadir=@datadir@
-  pkgdatadir=@pkgdatadir@
-  pkgltdldir=@pkgdatadir@
-  aclocaldir=@aclocaldir@
+  if test -n "$STAGING_DIR"; then
+    datadir="$STAGING_DIR/../host/share"
+    pkgdatadir="$STAGING_DIR/../host/share/libtool"
+    pkgltdldir="$STAGING_DIR/../host/share/libtool"
+    aclocaldir="$STAGING_DIR/../host/share/aclocal"
+  else
+    datadir=@datadir@
+    pkgdatadir=@pkgdatadir@
+    pkgltdldir=@pkgdatadir@
+    aclocaldir=@aclocaldir@
+  fi
   auxdir=
   macrodir=
   configure_ac=configure.in
--- a/libltdl/m4/libtool.m4
+++ b/libltdl/m4/libtool.m4
@@ -875,9 +875,8 @@ dnl AC_DEFUN([AC_LIBTOOL_RC], [])
 # ----------------
 m4_defun([_LT_TAG_COMPILER],
 [AC_REQUIRE([AC_PROG_CC])dnl
-
 _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
-_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
+_LT_DECL([LTCFLAGS], [CFLAGS], ["-O2 -I\${STAGING_DIR:-$STAGING_DIR}/../host/include"], [LTCC compiler flags])dnl
 _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
 _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
 
@@ -7544,9 +7543,8 @@ AC_SUBST([DLLTOOL])
 # as few characters as possible.  Prefer GNU sed if found.
 m4_defun([_LT_DECL_SED],
 [AC_PROG_SED
-test -z "$SED" && SED=sed
 Xsed="$SED -e 1s/^X//"
-_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
+_LT_DECL([], [SED], ["\${STAGING_DIR:-$STAGING_DIR}/../host/bin/sed"], [A sed program that does not truncate output])
 _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
     [Sed that helps us avoid accidentally triggering echo(1) options like -n])
 ])# _LT_DECL_SED
