Hi all CygWin champions developers ;)

Since this version, the LD_PRELOAD tag is no more replicated to subprocess 
(Win32 version of cygwin).
That means, if I set the LD_PRELOAD variable, only the parent process calls the 
LoadLibrary & load the DLL defined in LD_PRELOAD.

In this case, when starting bash, the LD_PRELOAD command is executed. but when 
starting a cp.exe, cat.exe or another cygwin command from the bash shell, the 
LD_PRELOAD is no more executed !
If I performed :
SET LD_PRELOAD=/cygdrive/d/mydll.dll
c:\bash (mydll.dll loaded correctly)
$cp toto.txt titi.txt (no mydll.dll loaded !)

If I performed :
SET LD_PRELOAD=/cygdrive/d/mydll.dll
c:\bash (mydll.dll loaded correctly)
$cmd
c:\cp toto.txt titi.txt (mydll.dll loaded)

So, it works now in this last build of cygwin as it was working previously the 
snapshot #20050811

To correct this, a snapshot has been provided, snapshot #20050811, See 
ChangeLog in winsup\cygwinChangeLog :
2005-08-11  Christopher Faylor  <[EMAIL PROTECTED]>

 * dcrt0.cc: Remove ld_preload declaration.
 * winsup.h: Move ld_preload declaration here.
 * fork.cc (fork_child): Call ld_preload() before returning.

So this issue was corrected by ffork.cc version 1.158 of ffork.ccd
I took a quick look into the ffork.cc, & I saw that the fixup_hooks_after_fork 
() &  _my_tls.fixup_after_fork () are now called after ld_preload instead of 
before as deliverd in snapshot #20050811.
I don't know exactly if this is the reason of my issue.

This is not maybe a regression as I suppose this because it does not work now 
as it has been designed since this snapshot to work.
Did this behavior has been since modified to work by another way ?

Thx in advance for all the help you will be able to provide me,
Louis
  

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

Reply via email to