Revision cc8edaf7e8e8eff2fc61804b5f00f0d32db7887d authored by Rene Brun on 01 July 2004, 20:02:52 UTC, committed by Rene Brun on 01 July 2004, 20:02:52 UTC
I attached the modifications that are needed in gcc3strm.cxx to compile with gcc 3.4.0.

There are 2 problems.

One is that I could not find any trace of
    ostream& operator<< (ostream&,const streampos&);
in the gcc 3.3.1 or the gcc 3.4.0 header files.
However it is in cint/lib/gcc3strm/iostrm.h and of course in gcc3strm.cxx

The second problem is more fundamental.  In gcc 3.4.0, streamoff is defined
as (include/c++/3.4.0/bits/postypes.h)
  #ifdef _GLIBCXX_HAVE_INT64_T
    typedef int64_t       streamoff;
  #else
    typedef long long     streamoff;
  #endif
in turn int64_t is platform dependent.  In particular, on my node int64_t
is typedef to an int.  In gcc 3.3.1, streamoff was a long.

This leads to the compilation error:

  cint/src/gcc3strm.cxx: In function `int G__G__stream_6_4_0(G__value*, const char*, G__param*, int)':
  cint/src/gcc3strm.cxx:149: error: 'const class std::fpos<mbstate_t>' has no member named 'operator long int'

As a quick fix, I simply replaced the implementatio of the wrapper so
that it does not do an explicit call to the operator long:
   const fpos<mbstate_t>*pos = (const fpos<mbstate_t>*)(G__getstructoffset());
   G__letint(result7,108,(long)(*pos));
instead of
   G__letint(result7,108,(long)((const fpos<mbstate_t>*)(G__getstructoffset()))->operator long());

Of course, this is fundamentally wrong, since on a 64 bit platform, this will truncate the long long
into a long.

I am not sure what would be good solution (theoritically, it would require to make sure that the
dictionary for fpos<mbstate_t> is different (long vs long long) on the appropriate platforms).


git-svn-id: http://root.cern.ch/svn/root/trunk@9367 27541ba8-7e3a-0410-8455-c3a389f83636
1 parent 023bf10
History
File Mode Size
Bswapcpy.h -rw-r--r-- 3.5 KB
Buttons.h -rw-r--r-- 1.7 KB
Bytes.h -rw-r--r-- 14.9 KB
Byteswap.h -rw-r--r-- 5.9 KB
DllImport.h -rw-r--r-- 1017 bytes
GLConstants.h -rw-r--r-- 16.3 KB
Gtypes.h -rw-r--r-- 2.3 KB
GuiTypes.h -rw-r--r-- 16.2 KB
Htypes.h -rw-r--r-- 1.3 KB
KeySymbols.h -rw-r--r-- 7.2 KB
LinkDef1.h -rw-r--r-- 6.0 KB
LinkDef2.h -rw-r--r-- 4.4 KB
LinkDef3.h -rw-r--r-- 8.7 KB
LinkDef4.h -rw-r--r-- 1.3 KB
Match.h -rw-r--r-- 1.2 KB
MessageTypes.h -rw-r--r-- 6.4 KB
RConfig.h -rw-r--r-- 12.6 KB
RQ_OBJECT.h -rw-r--r-- 4.1 KB
RVersion.h -rw-r--r-- 447 bytes
Riosfwd.h -rw-r--r-- 1.7 KB
Riostream.h -rw-r--r-- 1.2 KB
Rpair.h -rw-r--r-- 1005 bytes
Rstrstream.h -rw-r--r-- 923 bytes
Rtypeinfo.h -rw-r--r-- 1.0 KB
Rtypes.h -rw-r--r-- 13.8 KB
RtypesCint.h -rw-r--r-- 2.4 KB
RtypesImp.h -rw-r--r-- 2.8 KB
Strlen.h -rw-r--r-- 705 bytes
TApplication.h -rw-r--r-- 5.1 KB
TApplicationImp.h -rw-r--r-- 2.2 KB
TAtt3D.h -rw-r--r-- 1.3 KB
TAttAxis.h -rw-r--r-- 3.8 KB
TAttFill.h -rw-r--r-- 2.2 KB
TAttLine.h -rw-r--r-- 2.5 KB
TAttMarker.h -rw-r--r-- 2.5 KB
TAttPad.h -rw-r--r-- 5.0 KB
TAttText.h -rw-r--r-- 2.8 KB
TBenchmark.h -rw-r--r-- 2.4 KB
TBrowser.h -rw-r--r-- 4.8 KB
TBrowserImp.h -rw-r--r-- 2.4 KB
TBuffer.h -rw-r--r-- 23.9 KB
TCanvasImp.h -rw-r--r-- 3.5 KB
TColor.h -rw-r--r-- 4.9 KB
TComplex.h -rw-r--r-- 7.5 KB
TContextMenu.h -rw-r--r-- 5.0 KB
TContextMenuImp.h -rw-r--r-- 2.2 KB
TControlBarImp.h -rw-r--r-- 2.2 KB
TDatime.h -rw-r--r-- 3.9 KB
TDirectory.h -rw-r--r-- 7.3 KB
TEnv.h -rw-r--r-- 6.8 KB
TError.h -rw-r--r-- 3.0 KB
TException.h -rw-r--r-- 2.2 KB
TExec.h -rw-r--r-- 1.7 KB
TFile.h -rw-r--r-- 7.7 KB
TFolder.h -rw-r--r-- 2.9 KB
TFree.h -rw-r--r-- 2.1 KB
TGuiFactory.h -rw-r--r-- 2.9 KB
TInetAddress.h -rw-r--r-- 2.7 KB
TInspectorImp.h -rw-r--r-- 1.6 KB
TKey.h -rw-r--r-- 4.2 KB
TKeyMapFile.h -rw-r--r-- 1.6 KB
TMD5.h -rw-r--r-- 3.6 KB
TMapFile.h -rw-r--r-- 8.9 KB
TMath.h -rw-r--r-- 22.6 KB
TMemberInspector.h -rw-r--r-- 1.7 KB
TMessageHandler.h -rw-r--r-- 2.9 KB
TNamed.h -rw-r--r-- 2.6 KB
TObjString.h -rw-r--r-- 2.3 KB
TObject.h -rw-r--r-- 8.3 KB
TPadView3D.h -rw-r--r-- 4.9 KB
TParameter.h -rw-r--r-- 1.7 KB
TPluginManager.h -rw-r--r-- 6.5 KB
TPoint.h -rw-r--r-- 2.2 KB
TProcessID.h -rw-r--r-- 2.8 KB
TProcessUUID.h -rw-r--r-- 1.9 KB
TQCommand.h -rw-r--r-- 5.2 KB
TQConnection.h -rw-r--r-- 3.0 KB
TQObject.h -rw-r--r-- 9.9 KB
TROOT.h -rw-r--r-- 14.2 KB
TRandom.h -rw-r--r-- 2.5 KB
TRandom2.h -rw-r--r-- 1.9 KB
TRandom3.h -rw-r--r-- 1.7 KB
TRealData.h -rw-r--r-- 2.6 KB
TRef.h -rw-r--r-- 2.3 KB
TRefCnt.h -rw-r--r-- 1.7 KB
TRegexp.h -rw-r--r-- 2.3 KB
TStopwatch.h -rw-r--r-- 2.5 KB
TStorage.h -rw-r--r-- 3.9 KB
TString.h -rw-r--r-- 26.3 KB
TStringLong.h -rw-r--r-- 2.3 KB
TStyle.h -rw-r--r-- 24.9 KB
TSysEvtHandler.h -rw-r--r-- 5.3 KB
TSystem.h -rw-r--r-- 16.6 KB
TSystemDirectory.h -rw-r--r-- 2.3 KB
TSystemFile.h -rw-r--r-- 1.6 KB
TTask.h -rw-r--r-- 2.9 KB
TTime.h -rw-r--r-- 4.1 KB
TTimeStamp.h -rw-r--r-- 7.6 KB
TTimer.h -rw-r--r-- 5.1 KB
TUUID.h -rw-r--r-- 4.0 KB
TUrl.h -rw-r--r-- 2.8 KB
TView.h -rw-r--r-- 9.1 KB
TVirtualFitter.h -rw-r--r-- 5.7 KB
TVirtualGL.h -rw-r--r-- 8.0 KB
TVirtualMutex.h -rw-r--r-- 3.4 KB
TVirtualPS.h -rw-r--r-- 3.3 KB
TVirtualPad.h -rw-r--r-- 12.7 KB
TVirtualPadEditor.h -rw-r--r-- 3.0 KB
TVirtualPerfStats.h -rw-r--r-- 2.7 KB
TVirtualProof.h -rw-r--r-- 4.5 KB
TVirtualUtil3D.h -rw-r--r-- 2.5 KB
TVirtualUtilHist.h -rw-r--r-- 2.7 KB
TVirtualUtilPad.h -rw-r--r-- 2.6 KB
TVirtualX.h -rw-r--r-- 20.0 KB
Varargs.h -rw-r--r-- 1.4 KB
Windows4Root.h -rw-r--r-- 3.3 KB

back to top