Problem Running an Old Program on a New OS

Long story short: the computer on which I used to run my data analysis blew up. We managed to save the files and transfer them to a new computer. And now the program no longer runs. The program was written 10 years ago by someone else and I am both a complete newbie to Root (I just found out it existed on Monday) and barely know enough linux to move files around.

Basically I’m trying to run the same executable that worked on the old computer, and I get this error message:

./image_analysis: error while loading shared libraries: /home/fpes/software_dev/root/lib/ undefined symbol: __dynamic_cast_2

where image_analysis is the name of the executable file.

I’ve tried installing newer versions of Root but I just get different error messages about different library files that either contain undefined symbols or are completely missing. I’ve also trid installing Root binaries that use the same compiler as the new computer, but that still gives errors concerning undefined symbols in some shared library.

Some info about the two computers, in case that is relevant…

New: Suse linux 9.1 with the 2.6.5-7.193-smp kernel, gcc 3.3.3
Old: redhat linux 6.2 (Zoot) with the 2.2.16-3smp kernel, egcs-2.91.66
the version of Root on the old computer was 3.02/05

So I guess my question is this: “Is my problem with Root in the first place?” and then if so “How do I get Root to play nice with both my program and Suse Linux 9.1?”

Any help would be most appreciated.


If you are unable to recompile your old program, then you will need to install the old version of ROOT (3.02/05) and possibly the old compilter to ( egcs-2.91.66). One solution might be install redhat linux 6.2 inside a virtual machine on your new machine.


Thanks for the help. Finally got the program running yesterday. Turns out is mainly a problem of finding a version of Root that would run on Suse linux 9.1. If it tells anyone anything, the one I got to work was root_v5.08.00.Linux.FedoraCore2.gcc3.3.3.