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:
>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;
>$ 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.


Unsubscribe info:
Problem reports:

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