Hi,
I tried to compile a programme which basically opens a ROOT file, reads
a TTree from it, does something with the data and writes a TTree to
another file. However, when I statically link it with ROOT (Version
4.03.02 ), I get the warnings quoted below. The OS is SLC 3.03 using the
GNU C library version 2.3. Although an executable is produced, it will
immediately crash with an 'Illegal instruction' when run on a system
using libc version 2.1. Gdb fails to produce a traceback.
Is there any way to make a "truly statically linked" executable that
uses ROOT's functionality?
Thanks,
Henning.
Linker command and output follows:
g++ -static -o backtrace trajek.o igrf.o numdgl.o trans.o tsymod89.o
AMS_Event.o AMS_NtupleStructDef.o AMS_GeoCalculator.o
AMS_BacktracingResult.o AMS_BacktracingStatistics.o AMS_ParticleField.o
AMS_ParticleFieldArray.o AMS_EventDict.o backtrace.o
-L/net/data_cms/institut_1b/olzem/sw/root/v4.03.02__INTEL32/lib -lRoot
-ldl -lcrypt -lfreetype -lcrypto
/net/data_cms/institut_1b/olzem/sw/root/v4.03.02__INTEL32/lib/libRoot.a(shl.o)(.text+0x238):
In function `G__dlopen':
: Using 'dlopen' in statically linked applications requires at runtime
the shared libraries from the glibc version used for linking
/net/data_cms/institut_1b/olzem/sw/root/v4.03.02__INTEL32/lib/libRoot.a(TSystem.o)(.text+0x6642):
In function `TSystem::CompileMacro(char const*, char const*, char
const*, char const*)':
: the use of `tmpnam' is dangerous, better use `mkstemp'
/net/data_cms/institut_1b/olzem/sw/root/v4.03.02__INTEL32/lib/libRoot.a(TUnixSystem.o)(.text+0x2fe1):
In function `TUnixSystem::GetGroupInfo(int)':
: Using 'getgrgid' in statically linked applications requires at runtime
the shared libraries from the glibc version used for linking
/net/data_cms/institut_1b/olzem/sw/root/v4.03.02__INTEL32/lib/libRoot.a(TUnixSystem.o)(.text+0x2d8f):
In function `TUnixSystem::GetGid(char const*)':
: Using 'getgrnam' in statically linked applications requires at runtime
the shared libraries from the glibc version used for linking
/net/data_cms/institut_1b/olzem/sw/root/v4.03.02__INTEL32/lib/libRoot.a(TUnixSystem.o)(.text+0x2d2b):
In function `TUnixSystem::GetUid(char const*)':
: Using 'getpwnam' in statically linked applications requires at runtime
the shared libraries from the glibc version used for linking
/net/data_cms/institut_1b/olzem/sw/root/v4.03.02__INTEL32/lib/libRoot.a(TUnixSystem.o)(.text+0x2de1):
In function `TUnixSystem::GetUserInfo(int)':
: Using 'getpwuid' in statically linked applications requires at runtime
the shared libraries from the glibc version used for linking
/net/data_cms/institut_1b/olzem/sw/root/v4.03.02__INTEL32/lib/libRoot.a(TUnixSystem.o)(.text+0x511):
In function `TUnixSystem::SetDisplay()':
: Using 'gethostbyaddr' in statically linked applications requires at
runtime the shared libraries from the glibc version used for linking
/net/data_cms/institut_1b/olzem/sw/root/v4.03.02__INTEL32/lib/libRoot.a(TUnixSystem.o)(.text+0x497b):
In function `TUnixSystem::GetHostByName(char const*)':
: Using 'gethostbyname' in statically linked applications requires at
runtime the shared libraries from the glibc version used for linking
/net/data_cms/institut_1b/olzem/sw/root/v4.03.02__INTEL32/lib/libRoot.a(TUnixSystem.o)(.text+0x4d60):
In function `TUnixSystem::GetServiceByName(char const*)':
: Using 'getservbyname' in statically linked applications requires at
runtime the shared libraries from the glibc version used for linking
/net/data_cms/institut_1b/olzem/sw/root/v4.03.02__INTEL32/lib/libRoot.a(TUnixSystem.o)(.text+0x4dd2):
In function `TUnixSystem::GetServiceByPort(int)':
: Using 'getservbyport' in statically linked applications requires at
runtime the shared libraries from the glibc version used for linking
Received on Thu Feb 17 2005 - 14:29:11 MET