From 07e4dc341fa73e8521b7964a1eebdd811c96a160 Mon Sep 17 00:00:00 2001
From: Andy Polyakov <appro@openssl.org>
Date: Mon, 18 Jun 2018 19:08:50 +0200
Subject: [PATCH] Configure,util/shlib_wrap.sh: harmonize -Wl and -rpath
 handling.

Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/6515)
---
 Configure             | 12 ++++++------
 util/shlib_wrap.sh.in |  4 ++--
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/Configure b/Configure
index 2e1902aeff..05b798bc7c 100755
--- a/Configure
+++ b/Configure
@@ -823,11 +823,7 @@ while (@argvcopy)
 			{
 			read_config $1;
 			}
-		elsif (/^-L(.*)$/)
-			{
-			push @{$useradd{LDFLAGS}}, $_;
-			}
-		elsif (/^-l(.*)$/ or /^-Wl,/)
+		elsif (/^-l(.*)$/)
 			{
 			push @{$useradd{LDLIBS}}, $_;
 			}
@@ -835,6 +831,10 @@ while (@argvcopy)
 			{
 			push @{$useradd{LDLIBS}}, $_, shift(@argvcopy);
 			}
+		elsif (/^-L(.*)$/ or /^-Wl,/)
+			{
+			push @{$useradd{LDFLAGS}}, $_;
+			}
 		elsif (/^-rpath$/ or /^-R$/)
 			# -rpath is the OSF1 rpath flag
 			# -R is the old Solaris rpath flag
@@ -954,7 +954,7 @@ foreach (keys %user) {
     }
 }
 
-if (grep { $_ =~ /(^|\s)-Wl,-rpath,/ } ($user{LDLIBS} ? @{$user{LDLIBS}} : ())
+if (grep { /-rpath\b/ } ($user{LDFLAGS} ? @{$user{LDFLAGS}} : ())
     && !$disabled{shared}
     && !($disabled{asan} && $disabled{msan} && $disabled{ubsan})) {
     die "***** Cannot simultaneously use -rpath, shared libraries, and\n",
diff --git a/util/shlib_wrap.sh.in b/util/shlib_wrap.sh.in
index b9e3ddf874..9199d12fc7 100755
--- a/util/shlib_wrap.sh.in
+++ b/util/shlib_wrap.sh.in
@@ -101,7 +101,7 @@ SunOS|IRIX*)
 	;;
 esac
 
-{- output_off() if $config{ex_libs} !~ /,-rpath,/; ""; -}
+{- output_off() unless grep (/-rpath\b/, @{$config{LDFLAGS}}); ""; -}
 if [ -f "$LIBCRYPTOSO" -a -z "$preload_var" ]; then
 	# Following three lines are major excuse for isolating them into
 	# this wrapper script. Original reason for setting LD_PRELOAD
@@ -117,7 +117,7 @@ if [ -f "$LIBCRYPTOSO" -a -z "$preload_var" ]; then
 	DYLD_INSERT_LIBRARIES="$LIBCRYPTOSO:$LIBSSLSO"	# MacOS X
 	export LD_PRELOAD _RLD_LIST DYLD_INSERT_LIBRARIES
 fi
-{- output_on() if $config{ex_libs} !~ /,-rpath,/; ""; -}
+{- output_on() unless grep (/-rpath\b/, @{$config{LDFLAGS}}); ""; -}
 
 cmd="$1"; [ -x "$cmd" ] || cmd="$cmd${EXE_EXT}"
 shift
-- 
2.25.1