Worrysome warning with Root built with Cygwin 1.7

Hello,

I’ve built Root 5.24/04 from source with gcc 4.3.4 and Cygwin 1.7. I believe it built fine, but I do see one “feature”:

When root loads a shared library I get:

root [0] gSystem->Load("libMathMore")
cygcheck: could not find '/home/cplager/build/root/bin/root_exe'

(int)0

I believe the library was loaded correctly, but I do not understand the warning message. Any ideas?

Thanks,
Charles

Hi,

This is a minor problem (I.e. this operation failing should not affect the proper running of ROOT). Can you try to call directlycygcheck /home/cplager/build/root/bin/root_exe (and then try against with and without the .exe extension)

Cheers,
Philippe.

Salut Philippe,

First, it appears to be a path problem, not an extention problem:

cplager@Hagrid> cygcheck /home/cplager/build/root/bin/root_exe
cygcheck: could not find '/home/cplager/build/root/bin/root_exe'

cplager@Hagrid> cygcheck /home/cplager/build/root/bin/root_exe.exe
cygcheck: could not find '/home/cplager/build/root/bin/root_exe.exe'

cplager@Hagrid> cygcheck ./root/bin/root_exe.exe
C:\Documents and Settings\cplager\My Documents\cplager\build\root\bin\root_exe.exe
  C:\cygwin1.7\bin\cygwin1.dll
    C:\WINDOWS\system32\ADVAPI32.DLL
      C:\WINDOWS\system32\KERNEL32.dll
        C:\WINDOWS\system32\ntdll.dll
      C:\WINDOWS\system32\RPCRT4.dll
        C:\WINDOWS\system32\Secur32.dll
  C:\cygwin1.7\bin\cyggcc_s-1.dll
  C:\cygwin1.7\bin\cygstdc++-6.dll
  C:\Documents and Settings\cplager\My Documents\cplager\build\fireworksroot\root\bin\libRint.dll
    C:\Documents and Settings\cplager\My Documents\cplager\build\fireworksroot\root\bin\libCint.dll
    C:\Documents and Settings\cplager\My Documents\cplager\build\fireworksroot\root\bin\libCore.dll
  C:\Documents and Settings\cplager\My Documents\cplager\build\fireworksroot\root\bin\libMathCore.dll
cplager@Hagrid> cygcheck ./root/bin/root_exe
C:\Documents and Settings\cplager\My Documents\cplager\build\root\bin\root_exe.exe
  C:\cygwin1.7\bin\cygwin1.dll
    C:\WINDOWS\system32\ADVAPI32.DLL
      C:\WINDOWS\system32\KERNEL32.dll
        C:\WINDOWS\system32\ntdll.dll
      C:\WINDOWS\system32\RPCRT4.dll
        C:\WINDOWS\system32\Secur32.dll
  C:\cygwin1.7\bin\cyggcc_s-1.dll
  C:\cygwin1.7\bin\cygstdc++-6.dll
  C:\Documents and Settings\cplager\My Documents\cplager\build\fireworksroot\root\bin\libRint.dll
    C:\Documents and Settings\cplager\My Documents\cplager\build\fireworksroot\root\bin\libCint.dll
    C:\Documents and Settings\cplager\My Documents\cplager\build\fireworksroot\root\bin\libCore.dll
  C:\Documents and Settings\cplager\My Documents\cplager\build\fireworksroot\root\bin\libMathCore.dll
cplager@Hagrid> pwd
/home/cplager/build

Second, why/how is root calling cygcheck in the first place?

Merci,
  Charles

[quote]Second, why/how is root calling cygcheck in the first place? [/quote]To discover the list of library that have been hard linked to the executable (which may or may not be root.exe itself).

Cheers,
Philippe.

Hi,

this is fixed in the trunk - thanks for reporting, Charles!

Cheers, Axel.

Hi,

I misread your posting :frowning: It’s probably an issue with putting your home into “Documents and Settings”. Spaces in directories are evil :slight_smile:

Cheers, Axel.

Hi Axel,

I agree about spaces in filenames, but in Cygwin-proper, it isn’t a problem: In Cygwin, /home/cplager is a link to /mount/cplagerdoc/cplager, so Cygwin doesn’t see any of those evil spaces.

cplager@tableau> mount
C:/Documents and Settings/User/Application Data on /mount/cplagerappdata type ntfs (binary)
C:/Documents and Settings/User/My Documents on /mount/cplagerdoc type ntfs (binary)
C:/cygwin1.7/bin on /usr/bin type ntfs (binary,auto)
C:/cygwin1.7/lib on /usr/lib type ntfs (binary,auto)
C:/cygwin1.7 on / type ntfs (binary,auto)
C: on /cygdrive/c type ntfs (binary,posix=0,user,noumount,auto)

If you change “cygcheck $FILE” to “cygcheck cygpath -d $FILE”, then this problem goes away.

Cheers,
Charles

[quote=“pcanal”][quote]Second, why/how is root calling cygcheck in the first place? [/quote]To discover the list of library that have been hard linked to the executable (which may or may not be root.exe itself).
[/quote]

Sorry, this may not belong to the original question, however, I also had a bad encounter with cygcheck.
Every time I call a program compiled and linked under Cygwin 1.7, first cygcheck is executed and since the program is linked against ROOT-libraries it happens that the cygcheck call takes longer than the actual program execution.
Well, that’s fine with me, if it happens once but when the program is called many times it is a kind of annoying (to say the least) to do this check over and over again.

Does anybody know if this checks can be switched off? Or if they are absolutely needed, maybe one could do the check only once and just run the program without them at successive calls?!

I’d be glad if somebody knew a solution to that “problem”.

Cheers,
Marvin

Hi!

I’ve found one “dirty trick” which can serve as a temporary workaround for my problem described above until a real solution for it will emerge.

If in Cygwin everything has been set-up and also no development or debugging is done one can substitute the cygcheck-executable for example by an empty script and all the checks will be skipped resulting in a huge performance gain.

cd /usr/bin mv cygcheck.exe cygcheck.exe.dist echo "#!/bin/sh" > cygcheck.exe chmod +x cygcheck.exe

However, I suggest this kind of action is only taken if one is sure everything works as it should and one should not forget about this utility since it is very useful for debugging certain problems.

Marvin