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: Usage of LD_PRELOAD


On Wed, Mar 05, 2008 at 08:47:13AM +0000, Matthieu CASTET wrote:
>Hi,
>
>I am trying to use LD_PRELOAD on cygwin, but I don't manage to make work.
>I suppose I do something wrong when creating my library.
>
>What I do is :
>
>$ cat << EOF > /tmp/toto1.c 
>#include <sys/stat.h>
>int chmod(const char *path, mode_t mode)
>{
>  printf("123\n");
>  return -1;
>}
>EOF
>
>$ module=toto1 gcc -shared -o /tmp/cyg${module}.dll    
>-Wl,--out-implib=lib${module}.dll.a     -Wl,--export-all-symbols    
>-Wl,--enable-auto-import -Wl,--whole-archive /tmp/toto1.c -Wl,--no-whole-archive
>
>$ export LD_PRELOAD=/tmp/cygtoto1.dll
>
>$ chmod a+w /tmp/toto1.c <-- chmod isn't redirected here (but the 
>library is loaded).
>
>
>Any idea why it doesn't work ?

Sorry for the delay. I had to research this to refresh my memory.

Cygwin requires that you hook the symbol using something like the following:

cygwin_internal (CW_HOOK, symname, sym);

Where "symname" is the name of the symbol and sym is the address of the
hook function.

cgf

--
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]