roland 7d6f19
THIS IS HERE ONLY TO SUPPORT SYSTEMTAP DEVELOPMENT.  IT IS NOT FOR GENERAL USE.
roland 7d6f19
roland 7d6f19
Building systemtap requires a recent development version of elfutils,
roland 7d6f19
which provides libraries for making use of debugging information.
roland 7d6f19
roland 7d6f19
This is unfinished work in active development.  This code is not intended
roland 7d6f19
for general consumption in its present form.  Development of these
roland 7d6f19
libraries is simultaneous with Systemtap development.  The Systemtap code
roland 7d6f19
will require new versions as things evolve; the systemtap.spec.in file in
roland 7d6f19
the systemtap source tree should always indicate the minimum version of
roland 7d6f19
elfutils libraries that will suffice.  We will make an effort to make a
roland 7d6f19
compatible version available here, that you can use for compiling Systemtap.
roland 7d6f19
roland 7d6f19
Current elfutils can always be found in Fedora Core Development, AKA Rawhide.
roland 7d6f19
If you are interested in the elfutils code in general or for any purpose
roland 7d6f19
other than developing Systemtap, please see http://fedora.redhat.com/ about
roland 7d6f19
getting involved with Fedora Core Development directly.
roland 7d6f19
roland c24df0
To use the elfutils libraries to build Systemtap, you can either use
roland c24df0
installed libraries, or you can build elfutils from source as part of the
roland c24df0
systemtap build.  To use installed libraries, you'll need to have the
roland c24df0
current elfutils version installed on your system where the compiler will
roland c24df0
find it with whatever build flags you pass systemtap's configure script.
roland c24df0
Unless your system already has the current elfutils installed
roland c24df0
(i.e. Rawhide), you'll have to install a nonstandard build either via RPM
roland c24df0
or by hand with "make" as detailed below.  To build the elfutils source
roland c24df0
locally as part of the systemtap build, see systemtap's README about the
roland c24df0
--with-elfutils=... option to systemtap's configure.
roland c24df0
roland 7d6f19
You can find the rawhide rpms updated daily on a variety of sites
roland 7d6f19
(see http://fedora.redhat.com/download/mirrors.html) under core/development.
roland 7d6f19
What's distributed in this directory is made trivially from those same sources.
roland 7d6f19
roland 7d6f19
The vanilla elfutils code, in elfutils-VERSION.tar.gz and what the rawhide
roland 7d6f19
RPMs ordinarily build, can only be built using GCC 4 and a recent glibc.
roland 7d6f19
Fedora Core 4 is the only released system meeting the requirements.
roland 7d6f19
roland 7d6f19
To rebuild the rawhide src.rpm on an older system, you can use:
roland 7d6f19
roland 7d6f19
	rpmbuild --with compat --rebuild elfutils-VERSION-N.src.rpm
roland 7d6f19
roland 7d6f19
The SRPMS/elfutils-VERSION-0.N.src.rpm provided here is exactly the same as
roland 7d6f19
the elfutils-VERSION-N.src.rpm from Rawhide except that it doesn't require
roland 7d6f19
that you specify --with compat to build on an older system.
roland 7d6f19
roland 7d6f19
We have done this for you for a few architectures, and those RPMs are
roland 7d6f19
available here.  These were built on RHEL3, and so their requirements
roland 7d6f19
should not be too demanding.  We must remind you that this is unsupported,
roland 7d6f19
pre-beta development code.  Furthermore, these builds are completely
roland 7d6f19
unofficial, unsupported, unsigned, unlikely to have been tested,
roland 7d6f19
unequivocally not guaranteed not to ruin your whole day, and we really
roland 7d6f19
cannot recommend that anyone install them on their system.  Do so at your
roland 7d6f19
own risk.  All that said, here they is, and if you copy this file:
roland 7d6f19
roland 7d6f19
	ftp://sources.redhat.com/pub/systemtap/elfutils/systemtap-elfutils.repo
roland 7d6f19
roland 0efeb0
into your /etc/yum.repos.d/ directory, then you can get them all with just:
roland 7d6f19
roland 0efeb0
	yum install elfutils-devel
roland 7d6f19
roland 7d6f19
roland 7d6f19
To compile elfutils from source by hand, simply use elfutils-VERSION.tar.gz
roland 7d6f19
and follow the usual procedure for GNU configure conventions.  The patch
roland 7d6f19
available here has to be applied before you can compile on an older system:
roland 7d6f19
roland 7d6f19
	tar xzf elfutils-VERSION.tar.gz
roland 7d6f19
	patch -p1 -d elfutils-VERSION < elfutils-portability.patch
roland 7d6f19
	cd elfutils-VERSION
roland 2fca47
	./configure --program-prefix=eu-devel-
roland 2fca47
	make && make check && make install
roland 7d6f19
roland 7d6f19
(That of course installs things under /usr/local, unlike the RPMs.)
roland 7d6f19
roland 7d6f19
roland c24df0
Caveat emptor.  Carpe noctem.
fche 58d3b9
Reply to <systemtap@sources.redhat.com>.