[Bug 334820] Re: h2root crashes on amd64

David Eriksson meldavid at acc.umu.se
Wed Apr 1 11:12:14 UTC 2009


After some testing I finally got it working.
The problem is solved by using static linking as described in /usr/share/doc/cernlib/README.64-bit
I made a small hack for this:

--- root-system-5.18.00.orig/main/Module.mk
+++ root-system-5.18.00/main/Module.mk
@@ -2,7 +2,7 @@
 # Copyright (c) 2000 Rene Brun and Fons Rademakers
 #
 # Author: Fons Rademakers, 29/2/2000
-
+CERNLIBSSTAT := `cernlib kernlib packlib`
 MODDIR       := main
 MODDIRS      := $(MODDIR)/src
 MODDIRI      := $(MODDIR)/inc
@@ -159,17 +159,17 @@
 $(H2ROOT):      $(H2ROOTO) $(ROOTLIBSDEP)
                $(LD) $(LDFLAGS) -o $@ $(H2ROOTO) \
                   $(RPATH) $(ROOTLIBS) \
-                  $(CERNLIBDIR) $(CERNLIBS) $(SHIFTLIBDIR) \
+                  $(CERNLIBDIR) $(CERNLIBSSTAT) $(SHIFTLIBDIR) \
                   $(SHIFTLIB) $(F77LIBS) $(SYSLIBS)

 $(G2ROOT):      $(G2ROOTO)
                $(F77LD) $(F77LDFLAGS) -o $@ $(G2ROOTO) \
-                  $(CERNLIBDIR) $(CERNLIBS) $(SHIFTLIBDIR) \
+                  $(CERNLIBDIR) $(CERNLIBSSTAT) $(SHIFTLIBDIR) \
                   $(SHIFTLIB) $(F77LIBS) $(SYSLIBS)

 $(G2ROOTOLD):   $(G2ROOTOLDO)
                $(F77LD) $(F77LDFLAGS) -o $@ $(G2ROOTOLDO) \
-                  $(CERNLIBDIR) $(CERNLIBS) $(SHIFTLIBDIR) \
+                  $(CERNLIBDIR) $(CERNLIBSSTAT) $(SHIFTLIBDIR) \
                   $(SHIFTLIB) $(F77LIBS) $(SYSLIBS)

 ifeq ($(BUILDHBOOK),yes)

This removed the error message but the histograms produced contained no
data. This second problem was solved with this patch:

--- root-system-5.18.00.orig/main/src/h2root.cxx
+++ root-system-5.18.00/main/src/h2root.cxx
@@ -205,19 +205,11 @@
 extern "C" void  type_of_call hix(const int&,const int&,const float&);
 extern "C" void  type_of_call hijxy(const int&,const int&,const int&,const float&,const float&);

-#ifndef R__B64
 extern "C" float type_of_call hi(const int&,const int&);
 extern "C" float type_of_call hie(const int&,const int&);
 extern "C" float type_of_call hif(const int&,const int&);
 extern "C" float type_of_call hij(const int&,const int&,const int&);
 extern "C" float type_of_call hije(const int&,const int&,const int&);
-#else
-extern "C" double type_of_call hi(const int&,const int&);
-extern "C" double type_of_call hie(const int&,const int&);
-extern "C" double type_of_call hif(const int&,const int&);
-extern "C" double type_of_call hij(const int&,const int&,const int&);
-extern "C" double type_of_call hije(const int&,const int&,const int&);
-#endif

 #ifndef WIN32
 extern "C" void  type_of_call hcdir(DEFCHAR,DEFCHAR ,const int,const int);

Using this two patches I can build a working h2root.

-- 
h2root crashes on amd64
https://bugs.launchpad.net/bugs/334820
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs at lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs




More information about the universe-bugs mailing list