head	1.1;
branch	1.1.1;
access;
symbols
	rpm-4_1-release:1.1.1.5
	rpm-4_1:1.1.1.5.0.2
	postmerge-libelf-0_8_2:1.1.1.5
	premerge-libelf-0_8_2:1.1.1.5
	libelf-0_8_2:1.1.1.5
	pre-libelf-0_8_2:1.1.1.4
	postmerge-libelf-0_8_0:1.1.1.4
	premerge-libelf-0_8_0:1.1.1.4
	libelf-0_8_0:1.1.1.4
	pre-libelf-0_8_0:1.1.1.3
	postmerge-libelf-0_7_0:1.1.1.3
	premerge-libelf-0_7_0:1.1.1.3
	libelf-0_7_0:1.1.1.3
	pre-libelf-0_7_0:1.1.1.2
	postmerge-libelf-0_6_4:1.1.1.2
	premerge-libelf-0_6_4:1.1.1.2
	libelf-0_6_4:1.1.1.2
	pre-libelf-0_6_4:1.1.1.1
	libelf-0_5_2:1.1.1.1
	libelf:1.1.1;
locks; strict;
comment	@# @;


1.1
date	2002.06.17.16.38.22;	author jbj;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	2002.06.17.16.38.22;	author jbj;	state Exp;
branches;
next	1.1.1.2;

1.1.1.2
date	2002.06.17.16.39.35;	author jbj;	state Exp;
branches;
next	1.1.1.3;

1.1.1.3
date	2002.06.17.16.40.07;	author jbj;	state Exp;
branches;
next	1.1.1.4;

1.1.1.4
date	2002.06.17.16.40.37;	author jbj;	state Exp;
branches;
next	1.1.1.5;

1.1.1.5
date	2002.06.17.16.41.09;	author jbj;	state Exp;
branches
	1.1.1.5.2.1;
next	;

1.1.1.5.2.1
date	2003.03.08.18.23.31;	author jbj;	state dead;
branches;
next	;


desc
@@


1.1
log
@Initial revision
@
text
@This is the first alpha release if libelf, a free ELF object file
access library.

This code is far from being perfect. If you have problems with
applications that use libelf and work with the commercial (SVR4,
Solaris) version but not with this one, please contact me. The one
most people asked for (elk-2.2) works fine, I'm using it myself.

Installation is straightforward - the package is autoconf'ed.
Just do "cd libelf-<version>; ./configure; make; make install".
Header files will be installed in .../include/libelf. If your system
does not provide its own version of libelf.h, nlist.h or elf.h,
these headers are installed in .../include, too. "make install" may
overwrite your system's version of libelf, though - be careful!

If you are running an ELF Linux system, you can build and install the
shared version of libelf by running "make shared; make install-shared".
Other systems will require changes in .../shared/Makefile.in. The
static version of the library compiles on Linux (ELF and a.out),
Solaris and SunOS (GCC required).

This package supports XPG3 style message catalogs, but there are no
message files included in the distribution (yet). You can create an
english message file suitable for gencat(1) by running "make libelf.m".
It is meant as a starting point for translators and is not installed.
You can turn off NLS support by passing "--disable-nls" to configure.

Missing things:
- There is no documentation.
- The COFF file format is not understood (see elf_kind(3)).
- nlist(3) is incomplete; the n_type and n_sclass members of struct nl
  are set to zero even if type information is available.
- Unlike the commercial version, this library does not use mmap(2).

Michael Riepe
<riepe@@ifwsn4.ifw.uni-hannover.de>
<michael@@tribble.ifw.uni-hannover.de>
@


1.1.1.1
log
@track: auto import
@
text
@@


1.1.1.2
log
@track: auto import
@
text
@d1 7
a7 9
This is the public release of libelf-0.6.4, a free ELF object
file access library. If you have problems with applications
that use libelf and work with the commercial (SVR4, Solaris)
version but not with this one, please contact me.

IMPORTANT NOTE: If you have libelf-0.5.2 installed, you probably
have a file .../include/elf.h that contains the single line
``#include <libelf/elf.h>''. REMOVE THIS FILE BEFORE YOU RUN
configure.
d10 17
a26 40
Just do ``cd libelf-<version>; ./configure; make; make install''.
Header files will be installed in .../include/libelf/.  If your
system does not provide its own version of libelf.h or nlist.h,
you may want to run ``make install-compat'' to install them. I
recommend that you use ``-I.../include/libelf'' instead.

You need an ANSI C compiler to build libelf. Gcc is optimal.

On some systems you can build and install a shared libelf
library. To do this, pass ``--enable-shared'' to configure.
Another configure option, ``--enable-debug'', adds debugging
code to libelf; if you don't run into problems, you will
probably not need it.

NLS is available and enabled by default (although there are
no message catalogs included in the distribution (yet)). To
turn it off, pass the ``--disable-nls'' option to configure.

Libelf can use gettext or catgets for accessing message
catalogs.  If gettext is available AND is part of libc (i.e. not
in a separate library), it will be used. Otherwise, configure
will look for catgets.  If you have gettext in a separate
library and want to use it, you should pass the library's name
to configure, e.g. ``LIBS=-lintl ./configure''. Note that you
MUST link your libelf-based applications with -lintl then,
which is probably not what you want.

If you have GNU gettext installed on your system, and if GNU
gettext runs on top of the catgets interface (Linux systems),
configure will refuse to use it and use catgets instead. If
you absolutely want to use GNU gettext, go ahead and rebuild
it (which is IMHO a good idea in general in this case):

	cd .../gettext-0.10
	ac_cv_func_catgets=no ac_cv_func_gettext=no ./configure
	make
	make install

After that, return to the libelf build directory, remove
config.cache, and start over.
d29 5
d35 1
a35 28
	* There is no documentation.
	* The COFF file format is not understood.
	* nlist(3) is incomplete; the n_type and n_sclass
	  members of struct nl are set to zero even if type
	  information is available.
	* Libelf does not support 64bit ELF files (yet).

Changes since 0.5.2:

	* some bug fixes
	* mmap support
	* new directory layout
	* There is a new function, elf_delscn(), that deletes
	  a section from an ELF file. It also adjusts the
	  sh_link and sh_info members in the section header
	  table, if (and ONLY if) the ELF standard indicates
	  that these values are section indices. References
	  to the deleted section will be cleared, so be careful.
	* my email address has changed ;)

Where to get libelf:

	ftp://sunsite.unc.edu/pub/Linux/libs/
	ftp://ifwsn4.ifw.uni-hannover.de/private/linux/
	http://www.stud.uni-hannover.de/~michael/software/

Michael "Tired" Riepe
<michael@@stud.uni-hannover.de>
d37 1
@


1.1.1.3
log
@track: auto import
@
text
@d1 1
a1 1
This is the public release of libelf-0.7.0, a free ELF object
d12 1
a12 1
Just do ``cd libelf-0.7.0; ./configure; make; make install''.
a17 7
If you are running Linux with libc 5.* as the default C library,
and you plan to use the 64-bit functions, you must either use
``-I.../include/libelf'', or remove /usr/include/libelf.h and
run ``make install-compat''. Libc 6.* (aka glibc2) doesn't have
its own <libelf.h> or <nlist.h>, so ``make install-compat''
alone will be sufficient.

a25 11
If you build a shared library and want it to be installed as
``libelf-0.7.0.so'' rather than ``libelf.so.0.7.0'', please use
``./configure --enable-shared --enable-gnu-names''. Other files,
e.g. ``libelf.so'' and ``libelf.so.0'' are NOT affected.

When creating an ELF shared library, it is possible to add references
to other shared libraries in the DYNAMIC section of the resulting
file. The make variable DEPSHLIBS contains a list of libraries to add.
It is set to ``-lc'' on Linux systems, and empty otherwise. To
override this setting, use something like ``make DEPSHLIBS="-la -lb"''.

d37 1
a37 2
which is probably not what you want, or change the DEPSHLIBS variable
described above (in case you're building a shared library).
a52 21
*** 64-bit support ***

Starting with libelf-0.7.0, libelf also supports 64-bit ELF files.
This is enabled by default unless your system (or your compiler) does
not support 64-bit integers, or lacks 64-bit declarations in <elf.h>.
If you have problems building with 64-bit support, please do

    ./configure --disable-elf64

for the moment, and contact me. Please note that I haven't tested
64-bit support (I still don't have access to any 64-bit systems).
There are still some unresolved problems, e.g. IRIX uses different
Elf64_Rel and Elf64_Rela structures (they replaced the r_info member),
and the enumeration values for Elf_Type differ from the commercial
(SVR4) implementation of libelf - they broke binary compatibility for
no good reason, and I'm not willing to follow their footsteps. The
result is that libelf-0.7.0 ist upward compatible with libelf-0.6.4
(as it should be) but INCOMPATIBLE WITH SVR4 LIBELF. If you have both
versions installed, you'd better make sure that you link with the
library that matches the <libelf.h> you're #include'ing.

d60 1
a60 9

Changes since 0.6.4:

	* Fixed configure for IRIX systems
	* Added check for truncated archive members
	* Added check for misaligned SHDR/PHDR tables
	* Support for building libelf together with GNU libc
	* Added elf_memory(3)
	* Added 64-bit support
d78 1
a78 1
	ftp://ftp.stud.uni-hannover.de/pub/users/michael/
d83 1
@


1.1.1.4
log
@track: auto import
@
text
@d1 1
a1 1
This is the public release of libelf-0.8.0, a free ELF object
d11 6
a16 8
Installation is straightforward - the package is autoconf'ed.  Just do
``cd libelf-0.8.0; ./configure; make; make install''.  Header files
will be installed in .../include/libelf/.  If your system does not
provide its own versions of libelf.h, nlist.h or gelf.h, ``make
install'' will add the missing headers.  If you prefer not to have
these files installed in /usr/include, use ``--disable-compat'' and
add ``-I /usr/include/libelf'' to your CFLAGS when compiling
libelf-based programs.
d20 4
a23 3
``-I.../include/libelf'', or remove /usr/include/libelf.h and use
``--enable-compat'' when running configure. Libc 6.* (aka glibc2)
doesn't have its own <libelf.h>, <nlist.h> or <gelf.h>.
d25 1
a25 1
You need an ANSI/ISO C compiler to build libelf. Gcc is optimal.
d34 1
a34 1
``libelf-0.8.0.so'' rather than ``libelf.so.0.8.0'', please use
a42 1
For Linux, `-lc' is included automagically.
d44 3
a46 2
NLS is available and enabled by default.  To turn it off, pass the
``--disable-nls'' option to configure.
d58 5
a62 5
If you have GNU gettext 0.10 installed on your system, and if GNU gettext
runs on top of the catgets interface (rather old Linux systems, using
libc5), configure will refuse to use it and use catgets instead. If you
absolutely want to use GNU gettext, go ahead and rebuild it (which is
IMHO a good idea in general in this case):
d81 11
a91 39
for the moment, and contact me. Please note that I haven't tested 64-bit
support much.  There are still some unresolved problems, e.g. IRIX
uses different Elf64_Rel and Elf64_Rela structures (they replaced the
r_info member), and the enumeration values for Elf_Type differ from
the commercial (SVR4) implementation of libelf - they broke binary
compatibility for no good reason, and I'm not willing to follow their
footsteps. The result is that libelf-0.7.* ist upward compatible with
libelf-0.6.4 (as it should be) but INCOMPATIBLE WITH SVR4 LIBELF. If you
have both versions installed, you'd better make sure that you link with
the library that matches the <libelf.h> you're #include'ing.

*** Symbol Versioning ***

Libelf >= 0.8.0 supports the data structures and definitions used for
symbol versioning on Solaris and Linux, in particular, the Elfxx_Verdef,
Elfxx_Verdaux, Elfxx_Verneed, Elfxx_Vernaux and Elfxx_Versym structures
and the SHT_XXX_verdef, SHT_XXX_verneed and SHT_XXX_versym section types
(where `xx' is either `32' or `64', and `XXX' is either `SUNW' or `GNU').
Libelf now translates versioning sections to/from their external
representation properly (earlier versions left them in `raw' format,
with the data type set to ELF_T_BYTE).  This may cause problems on
systems which use the same (OS-specific) section types for different
purposes.  The configure program tries to figure out if your OS uses
versioning; if that check fails, you can use

    ./configure --disable-versioning

to turn off versioning translation support.

*** Missing things ***

	* There is no documentation.  You can use the Solaris
	  manpages instead (available at http://docs.sun.com/).
	  The ELF file format is described in several places;
	  among them Suns "Linker and Libraries Guide" and the
	  "System V Application Binary Interface" documents;
	  http://www.sco.com/developer/devspecs/gabi41.pdf and
	  http://www.sco.com/developer/gabi/contents.html are
	  probably good starting points.
d93 3
a96 1

d99 1
a99 16
	  (that is, debug) information is available.

	* Libelf does not support Solaris' `Move' and `Syminfo'
	  sections.

Changes since 0.7.0:

	* I implemented the gelf_* interface, as found on Solaris.
	  I don't know whether it's compatible -- the Solaris manpage
	  isn't very specific, so I had to guess return values etc. in
	  some cases.

	* Added elf{32,64}_checksum (supposed to be compatible with
	  Solaris).

	* Added symbol versioning support.
d126 1
a130 1
<michael@@han.de>
@


1.1.1.5
log
@track: auto import
@
text
@d1 1
a1 1
This is the public release of libelf-0.8.2, a free ELF object
d12 1
a12 1
``cd libelf-0.8.2; ./configure; make; make install''.  Header files
d35 1
a35 1
``libelf-0.8.2.so'' rather than ``libelf.so.0.8.2'', please use
a129 7

Changes since 0.8.0:

	* Corrected typo in lib/{32,64}.xlatetof.c that sometimes
	  caused a compilation failure.

	* Use open(name, O_RDONLY|O_BINARY) in lib/nlist.c.
@


1.1.1.5.2.1
log
@Use elfutils instead of libelf.
@
text
@@


