diff options
Diffstat (limited to 'src/lib/libcrypto/util/shlib_wrap.sh')
-rwxr-xr-x | src/lib/libcrypto/util/shlib_wrap.sh | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/src/lib/libcrypto/util/shlib_wrap.sh b/src/lib/libcrypto/util/shlib_wrap.sh index dc5f5b1ce4..a2f62d696f 100755 --- a/src/lib/libcrypto/util/shlib_wrap.sh +++ b/src/lib/libcrypto/util/shlib_wrap.sh | |||
@@ -22,19 +22,39 @@ SunOS|IRIX*) | |||
22 | # variables depending on target ABI... | 22 | # variables depending on target ABI... |
23 | rld_var=LD_LIBRARY_PATH | 23 | rld_var=LD_LIBRARY_PATH |
24 | case "`(/usr/bin/file "$LIBCRYPTOSO") 2>/dev/null`" in | 24 | case "`(/usr/bin/file "$LIBCRYPTOSO") 2>/dev/null`" in |
25 | *ELF\ 64*SPARC*) | 25 | *ELF\ 64*SPARC*|*ELF\ 64*AMD64*) |
26 | [ -n "$LD_LIBRARY_PATH_64" ] && rld_var=LD_LIBRARY_PATH_64 | 26 | [ -n "$LD_LIBRARY_PATH_64" ] && rld_var=LD_LIBRARY_PATH_64 |
27 | LD_PRELOAD_64="$LIBCRYPTOSO $LIBSSLSO"; export LD_PRELOAD_64 | ||
28 | preload_var=LD_PRELOAD_64 | ||
29 | ;; | ||
30 | # Why are newly built .so's preloaded anyway? Because run-time | ||
31 | # .so lookup path embedded into application takes precedence | ||
32 | # over LD_LIBRARY_PATH and as result application ends up linking | ||
33 | # to previously installed .so's. On IRIX instead of preloading | ||
34 | # newly built .so's we trick run-time linker to fail to find | ||
35 | # the installed .so by setting _RLD_ROOT variable. | ||
36 | *ELF\ 32*MIPS*) | ||
37 | #_RLD_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT"; export _RLD_LIST | ||
38 | _RLD_ROOT=/no/such/dir; export _RLD_ROOT | ||
39 | eval $rld_var=\"/usr/lib'${'$rld_var':+:$'$rld_var'}'\" | ||
40 | preload_var=_RLD_LIST | ||
27 | ;; | 41 | ;; |
28 | *ELF\ N32*MIPS*) | 42 | *ELF\ N32*MIPS*) |
29 | [ -n "$LD_LIBRARYN32_PATH" ] && rld_var=LD_LIBRARYN32_PATH | 43 | [ -n "$LD_LIBRARYN32_PATH" ] && rld_var=LD_LIBRARYN32_PATH |
30 | _RLDN32_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT"; export _RLDN32_LIST | 44 | #_RLDN32_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT"; export _RLDN32_LIST |
45 | _RLDN32_ROOT=/no/such/dir; export _RLDN32_ROOT | ||
46 | eval $rld_var=\"/usr/lib32'${'$rld_var':+:$'$rld_var'}'\" | ||
47 | preload_var=_RLDN32_LIST | ||
31 | ;; | 48 | ;; |
32 | *ELF\ 64*MIPS*) | 49 | *ELF\ 64*MIPS*) |
33 | [ -n "$LD_LIBRARY64_PATH" ] && rld_var=LD_LIBRARY64_PATH | 50 | [ -n "$LD_LIBRARY64_PATH" ] && rld_var=LD_LIBRARY64_PATH |
34 | _RLD64_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT"; export _RLD64_LIST | 51 | #_RLD64_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT"; export _RLD64_LIST |
52 | _RLD64_ROOT=/no/such/dir; export _RLD64_ROOT | ||
53 | eval $rld_var=\"/usr/lib64'${'$rld_var':+:$'$rld_var'}'\" | ||
54 | preload_var=_RLD64_LIST | ||
35 | ;; | 55 | ;; |
36 | esac | 56 | esac |
37 | eval $rld_var=\"${THERE}:'$'$rld_var\"; export $rld_var | 57 | eval $rld_var=\"${THERE}'${'$rld_var':+:$'$rld_var'}'\"; export $rld_var |
38 | unset rld_var | 58 | unset rld_var |
39 | ;; | 59 | ;; |
40 | *) LD_LIBRARY_PATH="${THERE}:$LD_LIBRARY_PATH" # Linux, ELF HP-UX | 60 | *) LD_LIBRARY_PATH="${THERE}:$LD_LIBRARY_PATH" # Linux, ELF HP-UX |
@@ -52,7 +72,7 @@ SunOS|IRIX*) | |||
52 | ;; | 72 | ;; |
53 | esac | 73 | esac |
54 | 74 | ||
55 | if [ -f "$LIBCRYPTOSO" ]; then | 75 | if [ -f "$LIBCRYPTOSO" -a -z "$preload_var" ]; then |
56 | # Following three lines are major excuse for isolating them into | 76 | # Following three lines are major excuse for isolating them into |
57 | # this wrapper script. Original reason for setting LD_PRELOAD | 77 | # this wrapper script. Original reason for setting LD_PRELOAD |
58 | # was to make it possible to pass 'make test' when user linked | 78 | # was to make it possible to pass 'make test' when user linked |
@@ -64,7 +84,8 @@ if [ -f "$LIBCRYPTOSO" ]; then | |||
64 | *) LD_PRELOAD="$LIBCRYPTOSO $LIBSSLSO" ;; # SunOS, Linux, ELF HP-UX | 84 | *) LD_PRELOAD="$LIBCRYPTOSO $LIBSSLSO" ;; # SunOS, Linux, ELF HP-UX |
65 | esac | 85 | esac |
66 | _RLD_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT" # Tru64, o32 IRIX | 86 | _RLD_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT" # Tru64, o32 IRIX |
67 | export LD_PRELOAD _RLD_LIST | 87 | DYLD_INSERT_LIBRARIES="$LIBCRYPTOSO:$LIBSSLSO" # MacOS X |
88 | export LD_PRELOAD _RLD_LIST DYLD_INSERT_LIBRARIES | ||
68 | fi | 89 | fi |
69 | 90 | ||
70 | exec "$@" | 91 | exec "$@" |