@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2004-2017 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -20,12 +20,28 @@
set orig_ld_library_path_saved 0
set orig_ld_run_path_saved 0
set orig_shlib_path_saved 0
-set orig_ld_libraryn32_path_saved 0
-set orig_ld_library64_path_saved 0
set orig_ld_library_path_32_saved 0
set orig_ld_library_path_64_saved 0
set orig_dyld_library_path_saved 0
set orig_path_saved 0
+set orig_gcc_exec_prefix_saved 0
+set orig_gcc_exec_prefix_checked 0
+
+
+#######################################
+# proc set_gcc_exec_prefix_env_var { }
+#######################################
+
+proc set_gcc_exec_prefix_env_var { } {
+ global TEST_GCC_EXEC_PREFIX
+ global env
+
+ # Set GCC_EXEC_PREFIX for the compiler under test to pick up files not in
+ # the build tree from a specified location (normally the install tree).
+ if [info exists TEST_GCC_EXEC_PREFIX] {
+ setenv GCC_EXEC_PREFIX "$TEST_GCC_EXEC_PREFIX"
+ }
+}
#######################################
# proc set_ld_library_path_env_vars { }
@@ -37,36 +53,39 @@
global orig_ld_library_path_saved
global orig_ld_run_path_saved
global orig_shlib_path_saved
- global orig_ld_libraryn32_path_saved
- global orig_ld_library64_path_saved
global orig_ld_library_path_32_saved
global orig_ld_library_path_64_saved
global orig_dyld_library_path_saved
global orig_path_saved
+ global orig_gcc_exec_prefix_saved
+ global orig_gcc_exec_prefix_checked
global orig_ld_library_path
global orig_ld_run_path
global orig_shlib_path
- global orig_ld_libraryn32_path
- global orig_ld_library64_path
global orig_ld_library_path_32
global orig_ld_library_path_64
global orig_dyld_library_path
global orig_path
- global GCC_EXEC_PREFIX
+ global orig_gcc_exec_prefix
+ global env
- # Set the relocated compiler prefix, but only if the user hasn't specified one.
- if { [info exists GCC_EXEC_PREFIX] && ![info exists env(GCC_EXEC_PREFIX)] } {
- setenv GCC_EXEC_PREFIX "$GCC_EXEC_PREFIX"
+ # Save the original GCC_EXEC_PREFIX.
+ if { $orig_gcc_exec_prefix_checked == 0 } {
+ if [info exists env(GCC_EXEC_PREFIX)] {
+ set orig_gcc_exec_prefix "$env(GCC_EXEC_PREFIX)"
+ set orig_gcc_exec_prefix_saved 1
+ }
+ set orig_gcc_exec_prefix_checked 1
}
+ set_gcc_exec_prefix_env_var
+
# Setting the ld library path causes trouble when testing cross-compilers.
if { [is_remote target] } {
return
}
if { $orig_environment_saved == 0 } {
- global env
-
set orig_environment_saved 1
# Save the original environment.
@@ -82,14 +101,6 @@
set orig_shlib_path "$env(SHLIB_PATH)"
set orig_shlib_path_saved 1
}
- if [info exists env(LD_LIBRARYN32_PATH)] {
- set orig_ld_libraryn32_path "$env(LD_LIBRARYN32_PATH)"
- set orig_ld_libraryn32_path_saved 1
- }
- if [info exists env(LD_LIBRARY64_PATH)] {
- set orig_ld_library64_path "$env(LD_LIBRARY64_PATH)"
- set orig_ld_library64_path_saved 1
- }
if [info exists env(LD_LIBRARY_PATH_32)] {
set orig_ld_library_path_32 "$env(LD_LIBRARY_PATH_32)"
set orig_ld_library_path_32_saved 1
@@ -113,12 +124,11 @@
# It only sets SHLIB_PATH and LD_LIBRARY_PATH when it executes a
# program. We also need the environment set for compilations, etc.
#
- # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
- # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
- # (for the 64-bit ABI). The same applies to Darwin (DYLD_LIBRARY_PATH),
- # Solaris 32 bit (LD_LIBRARY_PATH_32), Solaris 64 bit (LD_LIBRARY_PATH_64),
- # and HP-UX (SHLIB_PATH). In some cases, the variables are independent
- # of LD_LIBRARY_PATH, and in other cases LD_LIBRARY_PATH is used if the
+ # On Darwin, we have to set variables akin to LD_LIBRARY_PATH, but called
+ # DYLD_LIBRARY_PATH. The same applies to Solaris 32 bit
+ # (LD_LIBRARY_PATH_32), Solaris 64 bit (LD_LIBRARY_PATH_64), and HP-UX
+ # (SHLIB_PATH). In some cases, the variables are independent of
+ # LD_LIBRARY_PATH, and in other cases LD_LIBRARY_PATH is used if the
# variable is not defined.
#
# Doing this is somewhat of a hack as ld_library_path gets repeated in
@@ -142,20 +152,6 @@
} else {
setenv SHLIB_PATH "$ld_library_path"
}
- if { $orig_ld_libraryn32_path_saved } {
- setenv LD_LIBRARYN32_PATH "$ld_library_path:$orig_ld_libraryn32_path"
- } elseif { $orig_ld_library_path_saved } {
- setenv LD_LIBRARYN32_PATH "$ld_library_path:$orig_ld_library_path"
- } else {
- setenv LD_LIBRARYN32_PATH "$ld_library_path"
- }
- if { $orig_ld_library64_path_saved } {
- setenv LD_LIBRARY64_PATH "$ld_library_path:$orig_ld_library64_path"
- } elseif { $orig_ld_library_path_saved } {
- setenv LD_LIBRARY64_PATH "$ld_library_path:$orig_ld_library_path"
- } else {
- setenv LD_LIBRARY64_PATH "$ld_library_path"
- }
if { $orig_ld_library_path_32_saved } {
setenv LD_LIBRARY_PATH_32 "$ld_library_path:$orig_ld_library_path_32"
} elseif { $orig_ld_library_path_saved } {
@@ -183,7 +179,28 @@
}
}
- verbose -log "set_ld_library_path_env_vars: ld_library_path=$ld_library_path"
+ verbose -log "LD_LIBRARY_PATH=[getenv LD_LIBRARY_PATH]"
+ verbose -log "LD_RUN_PATH=[getenv LD_RUN_PATH]"
+ verbose -log "SHLIB_PATH=[getenv SHLIB_PATH]"
+ verbose -log "LD_LIBRARY_PATH_32=[getenv LD_LIBRARY_PATH_32]"
+ verbose -log "LD_LIBRARY_PATH_64=[getenv LD_LIBRARY_PATH_64]"
+ verbose -log "DYLD_LIBRARY_PATH=[getenv DYLD_LIBRARY_PATH]"
+}
+
+#######################################
+# proc restore_gcc_exec_prefix_env_var { }
+#######################################
+
+proc restore_gcc_exec_prefix_env_var { } {
+ global orig_gcc_exec_prefix_saved
+ global orig_gcc_exec_prefix
+ global env
+
+ if { $orig_gcc_exec_prefix_saved } {
+ setenv GCC_EXEC_PREFIX "$orig_gcc_exec_prefix"
+ } elseif [info exists env(GCC_EXEC_PREFIX)] {
+ unsetenv GCC_EXEC_PREFIX
+ }
}
#######################################
@@ -195,8 +212,6 @@
global orig_ld_library_path_saved
global orig_ld_run_path_saved
global orig_shlib_path_saved
- global orig_ld_libraryn32_path_saved
- global orig_ld_library64_path_saved
global orig_ld_library_path_32_saved
global orig_ld_library_path_64_saved
global orig_dyld_library_path_saved
@@ -204,12 +219,13 @@
global orig_ld_library_path
global orig_ld_run_path
global orig_shlib_path
- global orig_ld_libraryn32_path
- global orig_ld_library64_path
global orig_ld_library_path_32
global orig_ld_library_path_64
global orig_dyld_library_path
global orig_path
+ global env
+
+ restore_gcc_exec_prefix_env_var
if { $orig_environment_saved == 0 } {
return
@@ -230,16 +246,6 @@
} elseif [info exists env(SHLIB_PATH)] {
unsetenv SHLIB_PATH
}
- if { $orig_ld_libraryn32_path_saved } {
- setenv LD_LIBRARYN32_PATH "$orig_ld_libraryn32_path"
- } elseif [info exists env(LD_LIBRARYN32_PATH)] {
- unsetenv LD_LIBRARYN32_PATH
- }
- if { $orig_ld_library64_path_saved } {
- setenv LD_LIBRARY64_PATH "$orig_ld_library64_path"
- } elseif [info exists env(LD_LIBRARY64_PATH)] {
- unsetenv LD_LIBRARY64_PATH
- }
if { $orig_ld_library_path_32_saved } {
setenv LD_LIBRARY_PATH_32 "$orig_ld_library_path_32"
} elseif [info exists env(LD_LIBRARY_PATH_32)] {
@@ -269,11 +275,11 @@
proc get_shlib_extension { } {
global shlib_ext
- if { [ istarget *-*-darwin* ] } {
+ if { [istarget *-*-darwin*] } {
set shlib_ext "dylib"
- } elseif { [ istarget *-*-cygwin* ] || [ istarget *-*-mingw* ] } {
+ } elseif { [istarget *-*-cygwin*] || [istarget *-*-mingw*] } {
set shlib_ext "dll"
- } elseif { [ istarget hppa*-*-hpux* ] } {
+ } elseif { [istarget hppa*-*-hpux*] } {
set shlib_ext "sl"
} else {
set shlib_ext "so"