 build/ltmain.sh | 32 +++++++++++++++++++++++++++-----
 1 file changed, 27 insertions(+), 5 deletions(-)

Index: httpd-2.4.29/build/ltmain.sh
===================================================================
--- httpd-2.4.29.orig/build/ltmain.sh
+++ httpd-2.4.29/build/ltmain.sh
@@ -6969,7 +6969,7 @@ func_mode_link ()
 	dir=$func_resolve_sysroot_result
 	# We need an absolute path.
 	case $dir in
-	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	=* | [\\/]* | [A-Za-z]:[\\/]*) ;;
 	*)
 	  absdir=`cd "$dir" && pwd`
 	  test -z "$absdir" && \
@@ -8167,7 +8167,7 @@ func_mode_link ()
 	    $ECHO "*** $linklib is not portable!"
 	  fi
 	  if test lib = "$linkmode" &&
-	     test yes = "$hardcode_into_libs"; then
+	     test "x$wrs_use_rpaths" = "xyes" && test "$hardcode_into_libs" = yes; then
 	    # Hardcode the library path.
 	    # Skip directories that are in the system default run-time
 	    # search path.
@@ -8434,7 +8434,7 @@ func_mode_link ()
 
 	if test lib = "$linkmode"; then
 	  if test -n "$dependency_libs" &&
-	     { test yes != "$hardcode_into_libs" ||
+              { test yes != "$hardcode_into_libs" || test "x$wrs_use_rpaths" != "xyes" ||
 	       test yes = "$build_old_libs" ||
 	       test yes = "$link_static"; }; then
 	    # Extract -R from dependency_libs
@@ -9086,7 +9086,8 @@ func_mode_link ()
 	  *) func_append finalize_rpath " $libdir" ;;
 	  esac
 	done
-	if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then
+        if test yes != "$hardcode_into_libs"  || test "x$wrs_use_rpaths" != "xyes" ||
+           test yes = "$build_old_libs"; then
 	  dependency_libs="$temp_xrpath $dependency_libs"
 	fi
       fi
@@ -9534,7 +9535,7 @@ EOF
 	case $archive_cmds in
 	  *\$LD\ *) wl= ;;
         esac
-	if test yes = "$hardcode_into_libs"; then
+	if test yes = "$hardcode_into_libs" && test "x$wrs_use_rpaths" = "xyes"; then
 	  # Hardcode the library paths
 	  hardcode_libdirs=
 	  dep_rpath=
@@ -10272,6 +10273,27 @@ EOF
       # Now hardcode the library paths
       rpath=
       hardcode_libdirs=
+
+      # short circuit putting rpaths in executables
+      #
+      if test "x$wrs_use_rpaths" != "xyes" ; then
+        flag=
+        for libdir in $compile_rpath; do
+          case $(echo $libdir | ${SED} 's,/[/]*,/,g') in
+            /usr/lib/* | /usr/lib32/* | /usr/lib64/* ) flag="$flag $libdir" ;;
+          esac
+        done
+        compile_rpath="$flag"
+
+        flag=
+        for libdir in $finalize_rpath; do
+          case $(echo $libdir | ${SED} 's,/[/]*,/,g') in
+            /usr/lib/* | /usr/lib32/* | /usr/lib64/* ) flag="$flag $libdir" ;;
+          esac
+        done
+        finalize_rpath="$flag"
+      fi
+
       for libdir in $compile_rpath $finalize_rpath; do
 	if test -n "$hardcode_libdir_flag_spec"; then
 	  if test -n "$hardcode_libdir_separator"; then
