????

Your IP : 3.141.31.100


Current Path : /usr/local/ssl/bin/
Upload File :
Current File : //usr/local/ssl/bin/rpmelfsym

#!/bin/sh -ef
export LC_ALL=C

rpmelfsym()
{
	rpmfile "$1" >files
	awk -F'\t' '$NF~/\<ELF .*(dynamically linked|shared object)/{printf"./%s\0",$1}' files >elfs0
	[ -s elfs0 ] || return 0
	rpmpeek "$1" xargs -r0 nm -Do <elfs0 >nm.out
	awk '{OFS="\t";sub("^./","",$1);sub(":[0-9a-fA-F]*$","",$1);print}' nm.out
}

. rpmargs -c rpmelfsym "$@"

: <<'__EOF__'

=head1	NAME

rpmelfsym - list symbols from object files in RPM packages

=head1	SYNOPSIS

B<rpmelfsym> [B<-h>] [B<-p>] [I<FILE>...] [I<DIR>...]

=head1	DESCRIPTION

B<rpmelfsym> produces three-column output: file name, symbol type,
and symbol name, as determined by nm(1).  Only dynamically linked
executable files and shared libraries are processed, and only dynamic
symbols are listed.
When processing a directory, an additional column is prepended to the
output, which is typically RPM file basename.

=head1	OPTIONS

=over

=item	B<-p>

When processing a directory, list package names, not file names;
furthermore, enable special treatment of packages with the same name;
that is, process only the one with the latest version.

=item	B<-h>

Display this help and exit.

=back

=head1	AUTHOR

Written by Alexey Tourbin <at@altlinux.org>.

=head1	COPYING

Copyright (c) 2005 Alexey Tourbin, ALT Linux Team.

This is free software; you can redistribute it and/or modify it under the terms
of the GNU General Public License as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later version.

=head1	SEE ALSO

rpmfile(1),
rpmpeek(1),
nm(1)

=cut

__EOF__