Re: [CINT] RE: [ROOT] Re: Cint and MSVC7

From: Rene Brun (Rene.Brun@cern.ch)
Date: Wed Dec 04 2002 - 08:14:37 MET


Hi Valery,

Thanks for sending these corrections to compile ROOT under VC++7
Now in CVS

Rene Brun


On Tue, 3 Dec 2002, Faine, Valeri wrote:

> Hello
> Please, find the corrections to compile root under "Microsoft Studio
> NET."
> 
> It was tested to build ROOT 3.03.09 with Qt 3.1.0 
> and Windows XP look and feel (see http://root.bnl.gov )
> (with no optimization though :-(
> 
> (rrrr) [192] cvs diff -u base/inc/RConfig.h
> build/win/bindexplib/bindexplib.cx
> x
> Index: base/inc/RConfig.h
> ===================================================================
> RCS file: /user/cvs/root/base/inc/RConfig.h,v
> retrieving revision 1.46
> diff -u -r1.46 RConfig.h
> --- RConfig.h   2002/07/29 09:20:25     1.46
> +++ RConfig.h   2002/12/04 02:07:17
> @@ -1,4 +1,4 @@
> -/* @(#)root/base:$Name:  $:$Id: RConfig.h,v 1.46 2002/07/29 09:20:25
> rdm Exp $ */
> +/* @(#)root/base:$Name: v3-03-09 $:$Id: RConfig.h,v 1.46 2002/07/29
> 09:20:25 rdm Exp $ */
> 
>  
> /***********************************************************************
> **
>   * Copyright (C) 1995-2002, Rene Brun and Fons Rademakers.
> *
> @@ -333,6 +333,9 @@
>  #   define ANSICPP
>  #   define R__VECNEWDELETE    /* supports overloading of new[] and
> delete[] */
>  #   define R__PLACEMENTDELETE /* supports overloading placement delete
> */
> +#   if _MSC_VER > 1200
> +#     define R__ANSISTREAM    /* ANSI C++ Standard Library conformant
> */
> +#   endif
>  #endif
> 
>  #ifdef __MWERKS__
> Index: build/win/bindexplib/bindexplib.cxx
> ===================================================================
> RCS file: /user/cvs/root/build/win/bindexplib/bindexplib.cxx,v
> retrieving revision 1.2
> diff -u -r1.2 bindexplib.cxx
> --- bindexplib.cxx      2002/04/10 18:20:29     1.2
> +++ bindexplib.cxx      2002/12/04 02:07:17
> @@ -382,11 +382,20 @@
>  */
>              if (!strstr(s,"AEPAXI@Z") && !strstr(s,"real@"))
>              {
> -              fprintf(fout, "\t%s", s);
>                SectChar =
> pSectionHeaders[pSymbolTable->SectionNumber-1].Characteristics;
> -              if (!pSymbolTable->Type  && (SectChar &
> IMAGE_SCN_MEM_WRITE)) // Read only (i.e. constants) must be exclude
> -                                                          fprintf(fout,
> " \t DATA");
> -              fprintf(fout, "\n");
> +              if (!pSymbolTable->Type  && (SectChar &
> IMAGE_SCN_MEM_WRITE)) {
> +                 // Read only (i.e. constants) must be excluded
> +                 fprintf(fout, "\t%s", s);
> +                 fprintf(fout, " \t DATA");
> +                 fprintf(fout, "\n");
> +              } else {
> +                 if ( pSymbolTable->Type  || !(SectChar &
> IMAGE_SCN_MEM_READ)) {
> +                    fprintf(fout, "\t%s", s);
> +                    fprintf(fout, "\n");
> +                 } else {
> +//                    printf(" strange symbol: %s \n",s);
> +                 }
> +              }
>              }
>            }
>          }
> 
> 
>  My best regards, Valeri
> 
> > -----Original Message-----
> > From: owner-roottalk@pcroot.cern.ch
> [mailto:owner-roottalk@pcroot.cern.ch]
> > On Behalf Of Masaharu Goto
> > Sent: Monday, December 02, 2002 5:22 PM
> > To: Axel Naumann
> > Cc: Marc Irsch; cint@pcroot.cern.ch; roottalk@pcroot.cern.ch
> > Subject: [ROOT] Re: Cint and MSVC7
> > 
> > Hello Alex,
> > 
> > Thank you for trying this.  Let me look into this.   Meanwhile,
> > will you send me the modified bcvstrm.cxx? I'll try to generate
> > vc7strm.cxx out from it.
> > 
> > There is another person who is compiling Cint (pure cint) with
> > VC++7.0.  Sounds like he uses vcstrm.cxx and his original
> > VC++6.0 setup as is.  Just for your information.
> > 
> > Thank you
> > Masa Goto
> > 
> > =======================================================
> > Marc Irsch(marc@computerspacken.org) wrote:
> > 
> > MG> I don't think debug and release build make big difference. It is
> > encouraging
> > MG> that you can run Cint with VC++7.0. We have several people who
> have
> > MG> VC++7.0 and having problem with Cint. It will be quite helpful if
> you
> > MG> provide us some information.
> > 
> > MG>   - How you compiled Cint with VC++7.0?
> > MG>         a. with platform/visual/setup.bat  script
> > MG>         b. with src/libcint/libcint.mdp and cint/cint.mdp
> > MG>         c. other
> > 
> > The answer is c. I built my own project files on VC++ 6.0 and
> > imported them on VC++ 7.0 later on.
> > Worked immediately, without any modification.
> > 
> > I didn't use the setup files with VC++ 7.0 yet.
> > 
> > MG>   - Which iostream dictionary file did you use?
> > MG>         a. src/libstrm.cxx
> > MG>         b. src/vcstrm.cxx
> > MG>         c. src/cbstrm.cxx
> > MG>         d. src/gcc3strm.cxx
> > MG>         e. src/fakestrm.cxx
> > MG>         f.  other...
> > 
> > b.
> > 
> > MG>    - I guess you compiled libcint.dll and cint.exe. How about
> other
> > MG> libraries
> > MG>       especially precompiled STL container class libraries.
> > MG>            stl/string.dll , stl/vector.dll , stl/list.dll ,
> > stl/deque.dll ,
> > MG> stl/map.dll , etc...
> > 
> > Nope, sorry. Never touched these files.
> > 
> > Regards,
> >   Marc
> > 
> > 
> > 
> > ----- Original Message -----
> > From: "Axel Naumann" <axel-naumann@gmx.de>
> > To: "'Masaharu Goto'" <MXJ02154@nifty.ne.jp>
> > Sent: Tuesday, December 03, 2002 3:00 AM
> > Subject: Cint and MSVC7
> > 
> > 
> > > Dear Masa,
> > >
> > > I finally sat down and tried to build CInt (well, Root's version of
> > > CInt) with Microsoft Visual C++.NET. As you suggested during the
> root
> > > workshop I started out with the bcstream files. Those worked quite
> well,
> > > the only changes I had to make were
> > > * remove wrappers to streambuf::sputn and sgetn (not supported by
> MSVC's
> > > streambuf)
> > > * fstreambase and strstreambase (they are not base classes for
> MSVC's
> > > fstream and strstream, only iostream is base for strstream): Remove
> > > class setup, method wrappers and inheritance setup
> > > * remove wrapper to strstreambuf::doallocate (declared as protected
> in
> > > MSVC)
> > >
> > >
> > > Now all I'm left with is
> > >
> > > libCint.exp : error LNK2001: unresolved external symbol
> > > _CT??_R0?AVexception@@@8
> > > ??0exception@@QAE@ABV0@@Z12
> > > libCint.exp : error LNK2001: unresolved external symbol
> > > _CT??_R0?AVlength_error@
> > > std@@@8??0length_error@std@@QAE@ABV01@@Z40
> > > libCint.exp : error LNK2001: unresolved external symbol
> > > _CT??_R0?AVlogic_error@s
> > > td@@@8??0logic_error@std@@QAE@ABV01@@Z40
> > > libCint.exp : error LNK2001: unresolved external symbol
> > > _CT??_R0?AVout_of_range@
> > > std@@@8??0out_of_range@std@@QAE@ABV01@@Z40
> > > libCint.exp : error LNK2001: unresolved external symbol
> > > _CTA3?AVlength_error@std
> > > @@
> > > libCint.exp : error LNK2001: unresolved external symbol
> > > _CTA3?AVout_of_range@std
> > > @@
> > > libCint.exp : error LNK2001: unresolved external symbol
> > > _TI3?AVlength_error@std@
> > > @
> > > libCint.exp : error LNK2001: unresolved external symbol
> > > _TI3?AVout_of_range@std@
> > > @
> > > bin\libCint.dll : fatal error LNK1120: 8 unresolved externals
> > > make: *** [lib/libCint.dll] Error 96
> > >
> > > An #include <exception> doesn't solve that problem. There are two
> things
> > > I don't understand with that:
> > > * why does the linker search for the symbol std::length_error and
> not
> > > length_error (without std::)?
> > > * why is the exception stuff not in MSVCIRT.LIB, the multi threaded
> > > dynamic link default library that supports the old iostream library
> > > (instead of the new std c++ lib)
> > >
> > > MS states clearly that the old iostream library (e.g. <iostream.h>)
> and
> > > the new std c++ lib are incompatible, and only one will be used at a
> > > time to search for symbols. If MSVC finds any #include<..h> (like
> > > <iostream.h> or <strstream.h>) it will use the old one. Maybe
> exception
> > > is not part of the old library? I really don't know, all I could
> find is
> > > that exception _is_ part of the _new_ std c++ library, but that
> still
> > > doesn't tell me whether it's also in the old iostream lib. Do you
> happen
> > > to know that?
> > >
> > > Hope we can figure this one out.
> > > Cheers, Axel.
> > >
> > >
> 



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:22 MET