This is the mail archive of the cygwin mailing list for the Cygwin 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: R: [1.7] does LD_PRELOAD support more than 1 dll ?


--- Sab 30/5/09, Christopher ha scritto:

> >> ? Did you export it?? That might make a
> >> difference if the shell is involved.
> >> 
> >> ? ? cheers,
> >> ? ? ? DaveK
> >> 
> >Hi Dave,
> >also exporting all the 3 variables in the script
> >does make no difference
> >
> >export
> PATH="$builddir/src:$builddir/liboctave:$builddir/libcruft:$PATH"
> >export LD_PRELOAD="$liboctinterp:$liboctave:$libcruft"
> >export
> LD_LIBRARY_PATH="$builddir/src:$builddir/liboctave:$builddir/libcruft:$LD_LIBRARY_PATH"
> >OCTAVE_SITE_INITFILE="$top_srcdir/scripts/startup/main-rcfile"
> \
> >? exec $driver "$builddir/src/octave"
> --no-init-path --path="$LOADPATH" --image-path="$IMAGEPATH"
> --doc-cache-file="$DOCFILE" --info-file="$INFOFILE" "$@"
> >
> >
> >? ? ? 5 [main] sh 3964
> C:\cygwin2\bin\sh.exe: *** fatal error - error while loading
> shared libraries:
> /pub/cygports/octave/octave-3.2.0-rc4_build/src/cygoctinterp.dll:
> cannot open shared object file: No such process
> 
>  From the source:
> 
> ? ? ? if (!LoadLibraryW
> (lib.get_wide_win32_path (libname)))
> ? ? ? ? {
> ? ? ? ? ? __seterrno ();
> ? ? ? ? ? api_fatal ("error while
> loading shared libraries: %s: "
> ? ? ? ? ? ? ? ?
> ? ???"cannot open shared object file:
> %s", p,
> ? ? ? ? ? ? ? ?
> ? ???strerror (get_errno ()));
> ? ? ? ? }
> 
>  "No such process" == ESRCH == PROC_NOT_FOUND
> 
> cgf

Hi Christopher
but the dll file is there:

$ ls -lh /pub/cygports/octave/octave-3.2.0-rc4_build/src/cygoctinterp.dll
-rwxr-xr-x 1 itq00146 Domain_Users 202M May 27 20:01 /pub/cygports/octave/octave-3.2.0-rc4_build/src/cygoctinterp.dll

so how can it fail to load dlls only with LD_PRELOAD defined ?

Ok, I found it. 
The order is also relevant

cygoctinterp.dll requires 
   cygcruft.dll and cygoctave.dll

cygoctave.dll requires 
  cygcruft.dll

So the working way is :

export LD_PRELOAD="$libcruft:$liboctave:$liboctinterp"



Regards
Marco





--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


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