Resolution of Command-line bug (affects WinNT only)

From: Jonathan M. Gilligan (jonathan.gilligan@vanderbilt.edu)
Date: Tue Apr 20 1999 - 01:58:22 MEST


I would like to report the probable cause of the command-line argument bug
that I observed in Root 2.21/08 and reported on this list last month. To
recap, the incorrect behavior was that root would not execute macro files
specified on the command line (e.g., "cd \Root\Tutorials", then "root
demos.C").

The idiosyncracies: I could reproduce the bug 100% on two systems I have.
Others (e.g., V. Fine) were not able to reproduce it on their systems. My
system has Visual C++ 6.0 (SP2) installed, running WinNT 4.0 (128 bit) SP 4.

The solution: rebuild root from the root.cmz file under my system. Now
root.exe properly executes command-line macro files.

Conclusion (tentative): the bug arises from a version incompatibility
between one of the "system" shared libraries (I guess msvcrt.dll, the C/C++
runtime library) that I have installed on my system and the one that the
binary distribution of root 2.21/08 was linked with. It is a known problem
that Microsoft often invisibly updates shared libraries such as msvcrt.dll,
mfc.dll, etc. without renaming them. This has caused trouble in the past
(VS 6.0, SP 2 existed largely to fix bugs introduced by the previous
revision of msvcrt.dll, which broke older applications). Tbe problem is
essentially a "stupid Microsoft behavior" problem, but one to which I do
not see a good solution (statically linking the C/C++ runtime is possible,
but this would duplicate code in all the root dlls and thus bloat the
memory requirements).

The best thing is just for people to be aware that Microsoft's policy of
changing the shared msvcrt.dll library may cause problems and thus that for
those run into apparently system-configuration-dependent bugs or anomalies
in root, building root on their local machines may be preferable to using
the distributed binaries.

Regards,
Jonathan
===========================================================================
Jonathan M. Gilligan                     <jonathan.gilligan@vanderbilt.edu>
Research Assistant Professor of Physics                      (615) 343-6252
Dept. of Physics and Astronomy, Box 1807-B                    Fax: 343-7263
6823 Stevenson Center
Vanderbilt University, Nashville, TN 37235           Dep't Office: 322-2828
                  



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:32 MET