RE: RE : [ROOT] Different behavior (i.e. Crash) of TString on Linux andWindows

From: Valeri Fine (fine@bnl.gov)
Date: Mon Mar 08 2004 - 19:08:36 MET


Hello ROOT'ers.

The matter had been discussed a while ago

http://root.cern.ch/cgi-bin/print_hit_bold.pl/root/roottalk/roottalk03/1
789.html?MSVCPRT#first_hit 

I think the problem comes from the 

!include <win32.mak>

That is to provide the local value for 2 make variables, namely:

  $(conlflags) 
  $(guilibsdll)

Since "include <win32.mak>" (from VC6 distribution) has no idea one is
linking against of VC7 libraries, it provides the wrong list of those
libraries. 
To test this I would appreciate a lot some one with VC6 in possession
try to correct the Makefile.win32 to see whether that makes any
difference?

( I can not check myself since I have no VC6 ;-(

conlflags =/INCREMENTAL:NO /NOLOGO -subsystem:console,5.0 

 or 

conlflags =/INCREMENTAL:NO /NOLOGO -subsystem:console,4.0 

guilibsdll=kernel32.lib  ws2_32.lib mswsock.lib advapi32.lib 
           user32.lib gdi32.lib comdlg32.lib winspool.lib



This should allow to link properly the obj files compiled with VC6
against if the libraries compiled with VC7  ( I am crossing my fingers )


On the other hand I have to highlight one never promises the forward
compatibility. 

  Hoep this helps

----
Best regards
                   Valeri


> -----Original Message-----
> From: ANCIANT E. [mailto:eric.anciant@sodern.fr]
> Sent: Monday, March 08, 2004 12:37 PM
> To: Valeri Fine; zog@mpe.mpg.de; Rene Brun
> Cc: Andreas Zoglauer; Nick van Eijndhoven; roottalk@pcroot.cern.ch
> Subject: RE : [ROOT] Different behaviour (i.e. Crash) of TString on
Linux
> andWindows
> 
> 
> Hello rooters,
> 
> I face the same problem as Andreas,
> using Visual 6 service pack 5,
> and ROOT 3.10.02 win32GDK (debug version)
> and msfrt40.dll, msvcr70.dll, msvcp70.dll, msvci70.dll and dformd.dll
libraries
> copied in the same directory where ROOT libraries are.
> 
> As I don't have cygwin 'make' installed, I use 'nmake',
> And therefore the Makefile.win32 file (see quote below):
> 
> P:\root_v3.10.02.win32gdk_Debug\test>nmake -f Makefile.win32
tstring.exe
> 
> Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
> Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
> 
>         cl -DWIN32  -D_WIN32 -D_MT -D_DLL -MD -EHsc  -nologo -G5 -GR
-MD -DWIN32
> -DVISUAL_CPLUSPLUS -D_WINDOWS
-Ip:\root_v3.10.02.win32gdk_Debug/include -O2 -c
> tstring.cxx
> tstring.cxx
>         link -opt:ref /NODEFAULTLIB /INCREMENTAL:NO /PDB:NONE /RELEASE
/NOLOGO -
> subsystem:console,4.0 -nologo tstring.obj
> p:\root_v3.10.02.win32gdk_Debug/lib/libCore.lib
> p:\root_v3.10.02.win32gdk_Debug/lib/libCint.lib
> p:\root_v3.10.02.win32gdk_Debug/lib/libHist.lib
> p:\root_v3.10.02.win32gdk_Debug/lib/libGraf.lib
> p:\root_v3.10.02.win32gdk_Debug/lib/libGraf3d.lib
> p:\root_v3.10.02.win32gdk_Debug/lib/libGpad.lib
> p:\root_v3.10.02.win32gdk_Debug/lib/libTree.lib
> p:\root_v3.10.02.win32gdk_Debug/lib/libRint.lib
> p:\root_v3.10.02.win32gdk_Debug/lib/libPostscript.lib
> p:\root_v3.10.02.win32gdk_Debug/lib/libMatrix.lib
> p:\root_v3.10.02.win32gdk_Debug/lib/libPhysics.lib msvcrt.lib
oldnames.lib
> kernel32.lib  ws2_32.lib mswsock.lib advapi32.lib user32.lib gdi32.lib
> comdlg32.lib winspool.lib MSVCPRT.LIB
>  -out:tstring.exe
> "tstring.exe done"
> 
> Running tstring.exe gives me a : "l'instruction à "0x..." emploie
l'adresse
> mémoire "0x0000014". La mémoire ne peut pas être "Read" "
> 
> If I choose to debug at that time I got from Visual the message :
"unhandled
> exception in tstring.exe (NTDLL.DLL) : 0x000005: Access Violation."
> 
> Since I have been said in reply of some previous post that the
compilation
> options are not correct with the 'Makefile.win32' file, I also tried
to import
> the tstring source in one Visual project and modify by hand the
options so that
> they stick as close as possible to the ones in 'Makefile', but could
not get
> tstring to work neither this way.
> In fact, when running step by step the debug version of tstring under
visual,
> the program crashes for the first instance of :
> 
>    cout << s << endl;
> 
> (exactly the instruction that was causing problems to Andreas)
> with the message : "Unhandled exception in tstring.exe
(NTDLL.exe)0xC0000005 :
> Access violation "
> 
> I also tried to removed the libNew.lib / dll / plg from the root
directories, as
> I read that these libraries may cause problem under Visual,
> But this did not help,
> 
> Eric
> 
> 
>  -----Message d'origine-----
> De : owner-roottalk@pcroot.cern.ch
[mailto:owner-roottalk@pcroot.cern.ch] De la
> part de Valeri Fine
> Envoyé : lundi 8 mars 2004 16:02
> À : zog@mpe.mpg.de; 'Rene Brun'
> Cc : 'Andreas Zoglauer'; 'Nick van Eijndhoven';
roottalk@pcroot.cern.ch
> Objet : RE: [ROOT] Different behaviour (i.e. Crash) of TString on
Linux
> andWindows
> 
> Hi Andreas,
> 
> Let me repeat my question,
> 
>   "Did you try to build ROOT test suite (especially "tstring" test)?"
> 
>   If your problem cause is the "DLL mess" adding new software (like
> cygwin) to your computer may have ended up with this mess "increased".
> 
> I'd like to call your attention the crash you were speaking about was
> not reproduced with either ROOT version.
> 
> Hope this helps,
> 
> ----
> Best regards
>                    Valeri
> 
> 
> > -----Original Message-----
> > From: Andreas Zoglauer [mailto:zog@mpe.mpg.de]
> > Sent: Monday, March 08, 2004 3:52 AM
> > To: Rene Brun
> > Cc: Andreas Zoglauer; Valeri Fine; 'Nick van Eijndhoven';
> > roottalk@pcroot.cern.ch
> > Subject: Re: [ROOT] Different behaviour (i.e. Crash) of TString on
> Linux
> > andWindows
> >
> 
> >
> 
> > Hi Rene,
> >
> 
> > Thanks for all the work you have done, but the problem is still the
> same:
> >
> 
> > My small test program still crashes.
> >
> 
> > Furthermore, compiling all programs in $ROOTSYS/test leads to all
> > programs running smoothly, except tstring, which crashes immediately
> >
> 
> > I will try to set up a cygwin environment in the next days, to
compile
> > my own version of ROOT. If I can figure out the reason of the
problem
> I
> > will let you know.
> >
> 
> > Thanks a lot for all of your efforts,
> > Andreas
> >
> 
> >
> 
> >
> 
> > --
> >
> 
> > Andreas Zoglauer
> >
> 
> > MPI fuer extraterrestrische Physik         Phone:
+49/89-30000-3848
> > Postfach 1312                              Fax:
+49/89-30000-3569
> > 85741 Garching, Germany                    Email:    zog@mpe.mpg.de
> 
> 
> ********
> Ce message et eventuellement les pieces jointes sont exclusivement
transmis a
> l'usage de leur destinataire. Leur contenu est strictement
confidentiel. Si vous
> n etes pas le bon destinataire nous vous demandons de ne pas
conserver, copier,
> utiliser ou divulguer cette communication. Merci de le detruire et de
me
> notifier cette erreur.
> 
> INTERNET ne permettant pas d assurer l integrite de ce message, SODERN
decline
> toute responsabilite au cas ou il aurait ete intercepte ou modifie.
> 
> 
> This message and possibly attachments are transmit for the exclusive
use of
> their address. Their content is strictly confidential. If you are not
the
> intended recipient please do not keep, copy, use or disclose this
communication
> to others. Also please delete it and notify the sender at once.
> 
> Because of the nature of INTERNET the sender is not in a position to
ensure the
> integrity of this message, therefore SODERN disclaims any liability
whatoever in
> the event of this message having been intercepted and/or altered.



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:06 MET