Touch the correct variables for the system; shlib_wrap.sh on Solaris
authorRichard Levitte <levitte@openssl.org>
Wed, 9 Mar 2016 10:36:32 +0000 (11:36 +0100)
committerRichard Levitte <levitte@openssl.org>
Wed, 9 Mar 2016 11:21:01 +0000 (12:21 +0100)
If there is cause to think LD_LIBRARY_PATH_32 and LD_PRELOAD_32 are
appropriate variables to touch, do so.  Otherwise, touch the usual
LD_LIBRARY_PATH and LD_PRELOAD.  This covers for older installations
that don't have a mix of 32-bit and 64-bit libs.

Reviewed-by: Andy Polyakov <appro@openssl.org>
(cherry picked from commit a772e9d01a81dae132cb03107292b3ecc725e5af)

util/shlib_wrap.sh

index fb2915d21dd0fbbe830c084e4f48dae10642f097..de111e9a3f55ecd773f36e4a259be437ade78e2e 100755 (executable)
@@ -28,9 +28,13 @@ SunOS|IRIX*)
                preload_var=LD_PRELOAD_64
                ;;
        *ELF\ 32*SPARC*|*ELF\ 32*80386*)
-               [ -n "$LD_LIBRARY_PATH_32" ] && rld_var=LD_LIBRARY_PATH_32
-               LD_PRELOAD_32="$LIBCRYPTOSO $LIBSSLSO"; export LD_PRELOAD_32
-               preload_var=LD_PRELOAD_32
+               # We only need to change LD_PRELOAD_32 and LD_LIBRARY_PATH_32
+               # on a multi-arch system.  Otherwise, trust the fallbacks.
+               if [ -f /lib/64/ld.so.1 ]; then
+                   [ -n "$LD_LIBRARY_PATH_32" ] && rld_var=LD_LIBRARY_PATH_32
+                   LD_PRELOAD_32="$LIBCRYPTOSO $LIBSSLSO"; export LD_PRELOAD_32
+                   preload_var=LD_PRELOAD_32
+               fi
                ;;
        # Why are newly built .so's preloaded anyway? Because run-time
        # .so lookup path embedded into application takes precedence