1c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. 2c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 3c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott# This program is free software; you can redistribute it and/or modify 4c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott# it under the terms of the GNU General Public License as published by 5c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott# the Free Software Foundation; either version 3 of the License, or 6c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott# (at your option) any later version. 7c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott# 8c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott# This program is distributed in the hope that it will be useful, 9c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott# but WITHOUT ANY WARRANTY; without even the implied warranty of 10c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott# GNU General Public License for more details. 12c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott# 13c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott# You should have received a copy of the GNU General Public License 14c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott# along with GCC; see the file COPYING3. If not see 15c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott# <http://www.gnu.org/licenses/>. 16c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 17c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott# This file was contributed by John David Anglin (dave.anglin@nrc-cnrc.gc.ca) 18c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 19c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottset orig_environment_saved 0 20c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottset orig_ld_library_path_saved 0 21c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottset orig_ld_run_path_saved 0 22c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottset orig_shlib_path_saved 0 23c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottset orig_ld_libraryn32_path_saved 0 24c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottset orig_ld_library64_path_saved 0 25c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottset orig_ld_library_path_32_saved 0 26c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottset orig_ld_library_path_64_saved 0 27c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottset orig_dyld_library_path_saved 0 28c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 29c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 30c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott####################################### 31c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott# proc set_ld_library_path_env_vars { } 32c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott####################################### 33c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 34c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottproc set_ld_library_path_env_vars { } { 35c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global ld_library_path 36c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_environment_saved 37c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_library_path_saved 38c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_run_path_saved 39c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_shlib_path_saved 40c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_libraryn32_path_saved 41c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_library64_path_saved 42c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_library_path_32_saved 43c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_library_path_64_saved 44c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_dyld_library_path_saved 45c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_library_path 46c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_run_path 47c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_shlib_path 48c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_libraryn32_path 49c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_library64_path 50c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_library_path_32 51c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_library_path_64 52c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_dyld_library_path 53c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global GCC_EXEC_PREFIX 54c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 55c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # Set the relocated compiler prefix, but only if the user hasn't specified one. 56c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if { [info exists GCC_EXEC_PREFIX] && ![info exists env(GCC_EXEC_PREFIX)] } { 57c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv GCC_EXEC_PREFIX "$GCC_EXEC_PREFIX" 58c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 59c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 60c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # Setting the ld library path causes trouble when testing cross-compilers. 61c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if { [is_remote target] } { 62c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott return 63c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 64c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 65c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if { $orig_environment_saved == 0 } { 66c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global env 67c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 68c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott set orig_environment_saved 1 69c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 70c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # Save the original environment. 71c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if [info exists env(LD_LIBRARY_PATH)] { 72c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott set orig_ld_library_path "$env(LD_LIBRARY_PATH)" 73c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott set orig_ld_library_path_saved 1 74c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 75c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if [info exists env(LD_RUN_PATH)] { 76c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott set orig_ld_run_path "$env(LD_RUN_PATH)" 77c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott set orig_ld_run_path_saved 1 78c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 79c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if [info exists env(SHLIB_PATH)] { 80c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott set orig_shlib_path "$env(SHLIB_PATH)" 81c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott set orig_shlib_path_saved 1 82c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 83c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if [info exists env(LD_LIBRARYN32_PATH)] { 84c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott set orig_ld_libraryn32_path "$env(LD_LIBRARYN32_PATH)" 85c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott set orig_ld_libraryn32_path_saved 1 86c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 87c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if [info exists env(LD_LIBRARY64_PATH)] { 88c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott set orig_ld_library64_path "$env(LD_LIBRARY64_PATH)" 89c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott set orig_ld_library64_path_saved 1 90c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 91c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if [info exists env(LD_LIBRARY_PATH_32)] { 92c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott set orig_ld_library_path_32 "$env(LD_LIBRARY_PATH_32)" 93c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott set orig_ld_library_path_32_saved 1 94c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 95c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if [info exists env(LD_LIBRARY_PATH_64)] { 96c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott set orig_ld_library_path_64 "$env(LD_LIBRARY_PATH_64)" 97c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott set orig_ld_library_path_64_saved 1 98c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 99c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if [info exists env(DYLD_LIBRARY_PATH)] { 100c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott set orig_dyld_library_path "$env(DYLD_LIBRARY_PATH)" 101c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott set orig_dyld_library_path_saved 1 102c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 103c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 104c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 105c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # We need to set ld library path in the environment. Currently, 106c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # unix.exp doesn't set the environment correctly for all systems. 107c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # It only sets SHLIB_PATH and LD_LIBRARY_PATH when it executes a 108c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # program. We also need the environment set for compilations, etc. 109c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # 110c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but 111c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH 112c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # (for the 64-bit ABI). The same applies to Darwin (DYLD_LIBRARY_PATH), 113c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # Solaris 32 bit (LD_LIBRARY_PATH_32), Solaris 64 bit (LD_LIBRARY_PATH_64), 114c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # and HP-UX (SHLIB_PATH). In some cases, the variables are independent 115c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # of LD_LIBRARY_PATH, and in other cases LD_LIBRARY_PATH is used if the 116c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # variable is not defined. 117c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # 118c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # Doing this is somewhat of a hack as ld_library_path gets repeated in 119c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # SHLIB_PATH and LD_LIBRARY_PATH when unix_load sets these variables. 120c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if { $orig_ld_library_path_saved } { 121c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv LD_LIBRARY_PATH "$ld_library_path:$orig_ld_library_path" 122c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } else { 123c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv LD_LIBRARY_PATH "$ld_library_path" 124c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 125c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if { $orig_ld_run_path_saved } { 126c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv LD_RUN_PATH "$ld_library_path:$orig_ld_run_path" 127c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } else { 128c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv LD_RUN_PATH "$ld_library_path" 129c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 130c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # The default shared library dynamic path search for 64-bit 131c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # HP-UX executables searches LD_LIBRARY_PATH before SHLIB_PATH. 132c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # LD_LIBRARY_PATH isn't used for 32-bit executables. Thus, we 133c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott # set LD_LIBRARY_PATH and SHLIB_PATH as if they were independent. 134c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if { $orig_shlib_path_saved } { 135c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv SHLIB_PATH "$ld_library_path:$orig_shlib_path" 136c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } else { 137c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv SHLIB_PATH "$ld_library_path" 138c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 139c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if { $orig_ld_libraryn32_path_saved } { 140c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv LD_LIBRARYN32_PATH "$ld_library_path:$orig_ld_libraryn32_path" 141c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } elseif { $orig_ld_library_path_saved } { 142c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv LD_LIBRARYN32_PATH "$ld_library_path:$orig_ld_library_path" 143c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } else { 144c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv LD_LIBRARYN32_PATH "$ld_library_path" 145c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 146c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if { $orig_ld_library64_path_saved } { 147c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv LD_LIBRARY64_PATH "$ld_library_path:$orig_ld_library64_path" 148c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } elseif { $orig_ld_library_path_saved } { 149c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv LD_LIBRARY64_PATH "$ld_library_path:$orig_ld_library_path" 150c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } else { 151c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv LD_LIBRARY64_PATH "$ld_library_path" 152c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 153c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if { $orig_ld_library_path_32_saved } { 154c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv LD_LIBRARY_PATH_32 "$ld_library_path:$orig_ld_library_path_32" 155c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } elseif { $orig_ld_library_path_saved } { 156c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv LD_LIBRARY_PATH_32 "$ld_library_path:$orig_ld_library_path" 157c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } else { 158c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv LD_LIBRARY_PATH_32 "$ld_library_path" 159c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 160c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if { $orig_ld_library_path_64_saved } { 161c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv LD_LIBRARY_PATH_64 "$ld_library_path:$orig_ld_library_path_64" 162c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } elseif { $orig_ld_library_path_saved } { 163c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv LD_LIBRARY_PATH_64 "$ld_library_path:$orig_ld_library_path" 164c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } else { 165c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv LD_LIBRARY_PATH_64 "$ld_library_path" 166c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 167c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if { $orig_dyld_library_path_saved } { 168c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv DYLD_LIBRARY_PATH "$ld_library_path:$orig_dyld_library_path" 169c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } else { 170c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv DYLD_LIBRARY_PATH "$ld_library_path" 171c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 172c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 173c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott verbose -log "set_ld_library_path_env_vars: ld_library_path=$ld_library_path" 174c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} 175c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 176c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott####################################### 177c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott# proc restore_ld_library_path_env_vars { } 178c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott####################################### 179c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 180c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottproc restore_ld_library_path_env_vars { } { 181c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_environment_saved 182c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_library_path_saved 183c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_run_path_saved 184c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_shlib_path_saved 185c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_libraryn32_path_saved 186c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_library64_path_saved 187c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_library_path_32_saved 188c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_library_path_64_saved 189c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_dyld_library_path_saved 190c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_library_path 191c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_run_path 192c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_shlib_path 193c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_libraryn32_path 194c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_library64_path 195c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_library_path_32 196c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_ld_library_path_64 197c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott global orig_dyld_library_path 198c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 199c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if { $orig_environment_saved == 0 } { 200c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott return 201c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 202c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 203c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if { $orig_ld_library_path_saved } { 204c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott setenv LD_LIBRARY_PATH "$orig_ld_library_path" 205c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } elseif [info exists env(LD_LIBRARY_PATH)] { 206 unsetenv LD_LIBRARY_PATH 207 } 208 if { $orig_ld_run_path_saved } { 209 setenv LD_RUN_PATH "$orig_ld_run_path" 210 } elseif [info exists env(LD_RUN_PATH)] { 211 unsetenv LD_RUN_PATH 212 } 213 if { $orig_shlib_path_saved } { 214 setenv SHLIB_PATH "$orig_shlib_path" 215 } elseif [info exists env(SHLIB_PATH)] { 216 unsetenv SHLIB_PATH 217 } 218 if { $orig_ld_libraryn32_path_saved } { 219 setenv LD_LIBRARYN32_PATH "$orig_ld_libraryn32_path" 220 } elseif [info exists env(LD_LIBRARYN32_PATH)] { 221 unsetenv LD_LIBRARYN32_PATH 222 } 223 if { $orig_ld_library64_path_saved } { 224 setenv LD_LIBRARY64_PATH "$orig_ld_library64_path" 225 } elseif [info exists env(LD_LIBRARY64_PATH)] { 226 unsetenv LD_LIBRARY64_PATH 227 } 228 if { $orig_ld_library_path_32_saved } { 229 setenv LD_LIBRARY_PATH_32 "$orig_ld_library_path_32" 230 } elseif [info exists env(LD_LIBRARY_PATH_32)] { 231 unsetenv LD_LIBRARY_PATH_32 232 } 233 if { $orig_ld_library_path_64_saved } { 234 setenv LD_LIBRARY_PATH_64 "$orig_ld_library_path_64" 235 } elseif [info exists env(LD_LIBRARY_PATH_64)] { 236 unsetenv LD_LIBRARY_PATH_64 237 } 238 if { $orig_dyld_library_path_saved } { 239 setenv DYLD_LIBRARY_PATH "$orig_dyld_library_path" 240 } elseif [info exists env(DYLD_LIBRARY_PATH)] { 241 unsetenv DYLD_LIBRARY_PATH 242 } 243} 244 245####################################### 246# proc get_shlib_extension { } 247####################################### 248 249proc get_shlib_extension { } { 250 global shlib_ext 251 252 if { [ istarget *-*-darwin* ] } { 253 set shlib_ext "dylib" 254 } elseif { [ istarget *-*-cygwin* ] || [ istarget *-*-mingw* ] } { 255 set shlib_ext "dll" 256 } elseif { [ istarget hppa*-*-hpux* ] } { 257 set shlib_ext "sl" 258 } else { 259 set shlib_ext "so" 260 } 261 return $shlib_ext 262} 263 264