Linear Collider Forum



Home » Software Tools » Marlin et al » Installation of ilcsoft v01-17-03 - Bug in DD4hep installation?! (DD4hep installation vulnerable to user environment)
warning.gif  Installation of ilcsoft v01-17-03 - Bug in DD4hep installation?! [message #2277] Wed, 16 October 2013 09:20 Go to next message
poeschl
Messages: 22
Registered: June 2004
Location: LAL Orsay
Dear Experts,

I am about to carry out an ilcsoft installation from *scratch* and I think I have stumbled over a bug in the installation of the dd4hep package

I got an error message saying

*** ERROR in module [ DD4hep ]: failed to compile!!

Further upstream it is written e.g.

/srv/ilcsoft/v01-17-03/DD4hep/v00-04/DDCore/include/DD4hep/O bjects.h:25:27: error: Math/Vector3D.h: No such file or directory

This means that the installation doesn't find some root include files.

It appears that the FindROOT.cmake in dd4hep finds my system wide root installation, which indeed doesn't contain the requested include files (why not is my problem but this doesn't matter here). When installed from *scratch* dd4hep should however always use the root version which got installed through the corresponding ilcinstall scripts.

The problem is (to my mind) in this line of code

find_program(ROOT_CONFIG_EXECUTABLE root-config
PATHS $ENV{ROOTSYS}/bin)

By this it stops searching on the first root-config it finds, which in my case is my (maybe buggy) system wide root installation.

I think one has to remedy this vulnerability, i.e. the FindROOT.cmake has somehow to be told which root version to use instead of starting to search on its own. It is very likely that on a system an additional root version is installed.

A temporary patch is:

find_program( ROOT_CONFIG_EXECUTABLE root-config HINTS ${ILC_HOME}/root/5.34.05/bin NO_DEFAULT_PATH)

After that build tells me

Found ROOT: /srv/ilcsoft/v01-17-03/root/5.34.05

while before it told me

Found ROOT: /usr

I prefer to use however a kind of official patch because I am afraid to destroy things down the line if I start to joke around with my private patches.

Thanks in advance and cheers,

Roman

P.S.: If the bug has been reported elsewhere and is corrected in the mean time, please excuse my ignorance
Re: Installation of ilcsoft v01-17-03 - Bug in DD4hep installation?! [message #2280 is a reply to message #2277] Thu, 24 October 2013 07:29 Go to previous messageGo to next message
rosemann
Messages: 41
Registered: March 2009
Location: hamburg.de
Hi Roman,

sorry, but I've overlooked your message. I have to admit that I can't follow.

I've built dd4hep many times, but I've never encountered the problem you describe.

How do you intialize the installation -- using ilcinstall or a different approach?

If you try to build DD4hep directly (or any other ilcsoft package for that matter), then it's advisable to use the ILCSoft.cmake file as a basis for configuration. It would need to be modified, e.g. the package you want to build needs to be commented out.

Cheers,
Christoph


When you have eliminated the impossible, whatever remains, however improbable, must be the truth. (Sir A.C. Doyle in Sign of Four)
Re: Installation of ilcsoft v01-17-03 - Bug in DD4hep installation?! [message #2281 is a reply to message #2280] Sun, 27 October 2013 09:37 Go to previous messageGo to next message
poeschl
Messages: 22
Registered: June 2004
Location: LAL Orsay
Hi Christoph,

thanks a lot for your reply.

I use standard the ilcsoft installation, i.e. ./ilcsoft-install -i release/v01-17/release-scratch.cfg

After having encountered my problem I have also try to build dd4hep standalone using the correct ILCsoft.cmake.
I think I did everything as it should be.

It might be that you have never encountered the problem since the system wide root installation on the system you were installing always complied with the
requirements of dd4hep. In this case you will not notice (you may want to check, which root version dd4hep actually uses in your case). Anyway the problem can be solved by the
user by installing a proper root version system wide (or by my patch). When you install dd4hep/ilcsoft on a multi-user system the vulnerability continues to exist.

That said I have further problems with dd4hep

In file included from /srv/ilcsoft/v01-17-03/DD4hep/v00-04/DDCore/include/DD4hep/L CDD.h:14,
from /srv/ilcsoft/v01-17-03/DD4hep/v00-04/DDCore/src/Volumes.cpp: 10:
/srv/ilcsoft/v01-17-03/DD4hep/v00-04/DDCore/include/DD4hep/H andle.h:108: error: integer constant is too large for รข type

where the line in question in Handle.h is

108 inline unsigned long magic_word() { return 0xFEEDAFFEDEADFACEL; }

Maybe this goes along with the following warning

CMake Warning:
Manually-specified variables were not used by the project:

BUILD_32BIT_COMPATIBLE
INSTALL_DOC

... and with the cmake instructions in

****************************** Installing software ******************************

############################################################ ####################
##### Compiling DD4hep version v00-04...
############################################################ ####################

----- adding additional commands to build_env.sh :


----- adding additional command to build_env.sh test -r ${G4ENV_INIT} && { cd $(dirname ${G4ENV_INIT}) ; . ./$(basename ${G4ENV_INIT}) ; cd $OLDPWD ; }

+ Generated cmake build command:
$ cmake -C /srv/ilcsoft/v01-17-03/ILCSoft.cmake -DDD4HEP_USE_XERCESC="0" -DINSTALL_DOC="ON" -DBUILD_32BIT_COMPATIBLE="OFF" -DDD4HEP_WITH_GEANT4="1" -DCMAKE_BUILD_TYPE="RelWithDebInfo" -DDD4HEP_USE_PYROOT="0" /srv/ilcsoft/v01-17-03/DD4hep/v00-04

...

All this comes from the official ilcsoft installation.

I should say that I have indeed still a 32 bit machine. I don't know why dd4hep switches BUILD_32BIT_COMPATIBLE to OFF.
Maybe the following output is also helpful

*** ERROR in module [ DD4hep ]: DEBUG INFO: {'PLATFORM': 'Linux - Scientific Linux CERN SLC release 5.10 (Boron)', 'GCC_VERSION': 'gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-54)', 'LSB_RELEASE': 'LSB Version:\t:core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:g raphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch\nDi stributor ID:\tScientificCERNSLC\nDescription:\tScientific Linux CERN SLC release 5.10 (Boron)\nRelease:\t5.10\nCodename:\tBoron', 'UNAME': 'Linux pc-91231.lal.in2p3.fr 2.6.18-371.1.2.el5 #1 SMP Wed Oct 23 09:42:05 CEST 2013 i686 i686 i386 GNU/Linux'}


Thanks a lot and cheers,

Roman
Re: Installation of ilcsoft v01-17-03 - Bug in DD4hep installation?! [message #2282 is a reply to message #2277] Tue, 29 October 2013 07:51 Go to previous messageGo to next message
rosemann
Messages: 41
Registered: March 2009
Location: hamburg.de
Hi Roman,

coming back to the original problem:

poeschl wrote on Wed, 16 October 2013 09:20
[...]It appears that the FindROOT.cmake in dd4hep finds my system wide root installation, which indeed doesn't contain the requested include files (why not is my problem but this doesn't matter here). When installed from *scratch* dd4hep should however always use the root version which got installed through the corresponding ilcinstall scripts.
[...]
I think one has to remedy this vulnerability, i.e. the FindROOT.cmake has somehow to be told which root version to use instead of starting to search on its own. It is very likely that on a system an additional root version is installed.

...


This /shouldn't/ be any problem, so I still don't completely understand how this is happening.

Citing from the cmake documentation: Quote:
CMake searches for a file called "Find<package>.cmake" in the CMAKE_MODULE_PATH followed by the CMake installation


So if you've set/extended the CMAKE_MODULE_PATH prior to calling the individual installation, then the ROOT version specified there is used. If you use the ilcinstall method, this is done automatically.

The following explanations come to my mind:
- you didn't install ROOT with ilcinstall
- there is a bug with your specific CMake version (which is not unheard of)

If you could provide me please (directly or pointers):
- the install config file (release-scratch.py)
- release-versions.py
- the OS

Cheers,
Christoph


When you have eliminated the impossible, whatever remains, however improbable, must be the truth. (Sir A.C. Doyle in Sign of Four)
Re: Installation of ilcsoft v01-17-03 - Bug in DD4hep installation?! [message #2290 is a reply to message #2281] Sat, 14 December 2013 02:51 Go to previous messageGo to next message
poeschl
Messages: 22
Registered: June 2004
Location: LAL Orsay
Dear Christoph,

I just want to inform you that at least the 32-64 bit issue is solved by.

inline unsigned long magic_word() { return 0xFEEDAFFEDEADFACEL; }
->
inline unsigned long magic_word() { return 0xFEEDAFFEDEADFACELLU; }

I have found the hint on the web

bytes.com/topic/c/answers/137121-problems-64bit-integer-cons tant .

The other issue is still open for me but I can work so we may look at it at another occasion.

Thanks for your support and cheers,

Roman
Re: Installation of ilcsoft v01-17-03 - Bug in DD4hep installation?! [message #2291 is a reply to message #2290] Sat, 14 December 2013 05:10 Go to previous message
gaede
Messages: 233
Registered: January 2004
Location: DESY, Hamburg
Hi Roman,

thanks for your bug fix report. It seems that Markus had fixed this silently already 5 weeks ago. So the HEAD version should build also on 32-bit systems.

Cheers, Frank.
Previous Topic:new ilcsoft developers release v01-17-04
Next Topic:new ilcsoft developers release v01-17-05
Goto Forum:
  

[ PDF ]

Current Time: Sun Dec 8 04:29:52 Pacific Standard Time 2019
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.1.
Copyright ©2001-2010 FUDforum Bulletin Board Software