Skip to content

bircoph/symlookup

Repository files navigation

Welcome to symlookup!

This is an utility for searching object symbols in system
libraries (both dynamic and static) and not only in them.
In particular it will be useful for troubleshooting
"unresolved symbol" errors.

This program is distributed under the terms of explicitly
GNU GPL v.3 license. Please read LICENSE file for details.

In order to be license compatible with Gentoo, the Portage
part of this project: all files under packaging/portage 
directory are subjected under *dual* GPL v.2 and GPL v.3 
licenses. For files inside packaging/portage directory you
may use either GPL v.2 or GPL v.3 license at your choice.
The text of GNU GPL v.2 is available at:
packaging/portage/LICENSE.portage
_____________
Requirements:
~~~~~~~~~~~~~
Mandatory:

- Working build suit. Even gcc 3.x would be enough, but
  gcc 4.x is recommended for better code optimization and
  gcc >= 4.2.0 for the most reliable CPU detection.

- libelf. It is needed for processing so and ar files.
  Version 0.123 or higher from elfutils should be enough;
  however, program should work with older versions of
  the library, I didn't check this though.

Optional:

- librpm required for rpm support, both 4.x and 5.x versions
  may be used. 

______________
How to obtain:
~~~~~~~~~~~~~~
You can get releases from:
https://sourceforge.net/projects/symbol-lookup/

SVN repository with the latest code is available here:
https://symbol-lookup.svn.sourceforge.net/svnroot/symbol-lookup/trunk

Use this command to obtain sources in the first time:
svn co https://symbol-lookup.svn.sourceforge.net/svnroot/symbol-lookup/trunk symlookup
To update code later you can just type:
svn up
within symlookup directory.

_____________
Installation:
~~~~~~~~~~~~~
Compiler and build options can be tweaked via $CC, $CFLAGS,
$LDFLAGS and $DESTDIR environment variables.

To configure program type:
./configure
See ./configure --help for more details.
Please note, configure script is smart enough and can detect
even your CPU optimizations flags automatically (but better
use gcc >= 4.2.0 with native architecture support).

To compile program type:
make

Build system honors standard install path variables.
Currently useful $DESTDIR, $prefix, $bindir, $mandir and $docdir;
so you may tweak install paths.

To install program you may just type:
make install
But package-based installation is recommended.

To cleanup build directory use:
make destclean

To uninstall program use:
make uninstall

_________
Packages:
~~~~~~~~~
It is advisable to use some package system instead of just using
make install. This will help to keep your system in order and will
simplify its maintenance.

Currently supported package systems:
- deb (tested on Debian);
- portage (works for any Gentoo);
- rpm (tested on Scientific Linux CERN).

1) dpkg
Install packages as usual via dpkg or apt-get.

2) portage
Put ebuild in your local overlay and use it as usual via emerge.

3) rpm
To make your own rpm for desired architecture:
1) copy symlookup.spec file to your SPECS dir, tune it as
required for your system if needed;
2) copy source tarball into your SOURCES directory;
3) type:
rpmbuild -bb --clean symlookup.spec
within your SPECS directory.
If you need to use system wide CFLAGS, add --enable-cflags to
configure script.
4) install as root compiled rpm from SOURCES/<arch_type> directory.

If you made a package of another type (deb, etc) and want 
to provide it for people, please let me know and I'll consider
its inclusion in the main program source tree.

______
Usage:
~~~~~~
The simplest way to use the program is to type:
symlookup symbol_name

This will search in standard system paths for dynamic libraries 
in which symbol 'symbol_name' is defined. Standard path are
detected in the same way as ld(2) utility does.

This program provides a couple of useful features, such as
regular expression handling or output customizing.

Please look at manual page for details, for shorter remainder see
symlookup -h.

About

A clone of Andrew Savchenko project repository: svn://svn.code.sf.net/p/symbol-lookup/code/trunk

Resources

License

Stars

Watchers

Forks

Packages

No packages published