This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: libgcj/17465: Testsuite in libffi overrides LD_LIBRARY_PATH


On Tue, Sep 14, 2004 at 08:57:29PM +0200, Andreas Tobler wrote:
> H. J. Lu wrote:
> 
> >On Tue, Sep 14, 2004 at 07:09:34AM +0200, Andreas Tobler wrote:
> >
> >>H. J. Lu wrote:
> >>
> >>
> >>>Using global ld_library_path means to override LD_LIBRART_PATH. Don't
> >>>do it. When LD_LIBRART_PATH is needed, override it will cause failure.
> >>>
> >>>
> >>>H.J.
> >>>---
> >>>2004-09-13  H.J. Lu  <hongjiu.lu@intel.com>
> >>>
> >>>	PR libgcj/17465
> >>>	* testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
> >>>	Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
> >>>	LD_LIBRARY64_PATH and DYLD_LIBRARY_PATH.
> >>
> >>Why do you leave the LD_LIBRARY_PATH_32/64 away ? Needed on solaris.
> >>
> >>If fixed it seems ok to me. Thanks.
> >>
> >
> >
> >Thanks. Here is the updated patch. Is that OK?
> 
> 
> 
> Yes, thank you! Ok for main and 3.4.3.
> 
> Andreas
> 

I noticed that a problem. I was using

               if {$ld_library_path == $env($path)
                   || [string first $ld_library_path: $env($path)] ==
} {
                   setenv $path "$ld_library_path:$env($path)"
               }

It should be

		if {$ld_library_path != $env($path)
		    && [string first $ld_library_path: $env($path)] != 0} {
		    setenv $path "$ld_library_path:$env($path)"
		}

so that we only modify the path once. I will check in this version
instead.

H.J.
----
2004-09-13  H.J. Lu  <hongjiu.lu@intel.com>

	PR libgcj/17465
	* testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
	Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
	LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
	DYLD_LIBRARY_PATH.

--- libffi/testsuite/lib/libffi-dg.exp.shlib	2004-01-13 09:11:25.000000000 -0800
+++ libffi/testsuite/lib/libffi-dg.exp	2004-09-14 10:13:48.000000000 -0700
@@ -73,7 +73,7 @@ proc libffi-init { args } {
     global blddirffi
     global blddircxx
     global TOOL_OPTIONS
-    global ld_library_path
+    global tool
     global libffi_include
     global libffi_link_flags
     global tool_root_dir
@@ -133,13 +133,21 @@ proc libffi-init { args } {
     # 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).
-    setenv  LD_LIBRARY_PATH     $ld_library_path
-    setenv  SHLIB_PATH          $ld_library_path
-    setenv  LD_LIBRARYN32_PATH  $ld_library_path
-    setenv  LD_LIBRARY64_PATH   $ld_library_path
-    setenv  LD_LIBRARY_PATH_32  $ld_library_path
-    setenv  LD_LIBRARY_PATH_64  $ld_library_path
-    setenv  DYLD_LIBRARY_PATH   $ld_library_path
+    if {![is_remote target]} {
+	set ld_path "LD_LIBRARY_PATH SHLIB_PATH LD_LIBRARYN32_PATH LD_LIBRARY64_PATH LD_LIBRARY_PATH_32 LD_LIBRARY_PATH_64 DYLD_LIBRARY_PATH"
+	foreach path $ld_path {
+	    if [info exists env($path)] {
+		# If we've already added these directories once, keep
+		# the existing path.
+		if {$ld_library_path != $env($path)
+		    && [string first $ld_library_path: $env($path)] != 0} {
+		    setenv $path "$ld_library_path:$env($path)"
+		}
+	    } else {
+		setenv $path "$ld_library_path"
+	    }
+	}
+    }
 }
 
 proc libffi_target_compile { source dest type options } {
@@ -147,7 +155,6 @@ proc libffi_target_compile { source dest
     global srcdir
     global blddirffi
     global TOOL_OPTIONS
-    global ld_library_path
     global libffi_link_flags
     global libffi_include
     global target_triplet


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]