This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
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