ruby-elf 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/COPYING +339 -0
- data/DONATING +42 -0
- data/bin/cowstats +264 -0
- data/bin/elfgrep +185 -0
- data/bin/missingstatic +112 -0
- data/bin/rbelf-size +123 -0
- data/bin/verify-lfs +120 -0
- data/extras/README.extras +5 -0
- data/extras/bindings-parsers.rb +157 -0
- data/lib/bytestream-reader.rb +271 -0
- data/lib/elf.rb +248 -0
- data/lib/elf/dynamic.rb +392 -0
- data/lib/elf/file.rb +366 -0
- data/lib/elf/gnu.rb +174 -0
- data/lib/elf/section.rb +321 -0
- data/lib/elf/stringtable.rb +49 -0
- data/lib/elf/sunw.rb +158 -0
- data/lib/elf/symbol.rb +368 -0
- data/lib/elf/symbol/demangler_gcc3.rb +1952 -0
- data/lib/elf/symboltable.rb +90 -0
- data/lib/elf/tools.rb +228 -0
- data/lib/elf/utils/loader.rb +112 -0
- data/lib/elf/utils/pool.rb +37 -0
- data/lib/elf/value.rb +128 -0
- data/manpages/cowstats.1 +180 -0
- data/manpages/elfgrep.1 +188 -0
- data/manpages/missingstatic.1 +176 -0
- data/manpages/rbelf-size.1 +186 -0
- data/manpages/verify-lfs.1 +95 -0
- data/tools/assess_duplicate_save.rb +105 -0
- data/tools/link-collisions/analyse.rb +57 -0
- data/tools/link-collisions/harvest.rb +367 -0
- data/tools/link-collisions/known-broken +165 -0
- data/tools/link-collisions/multimplementations +125 -0
- data/tools/link-collisions/suppress.rb +84 -0
- data/tools/link-collisions/suppressions +279 -0
- data/tools/nm.rb +78 -0
- data/tools/rbelf-lddtree.rb +49 -0
- data/tools/readelf-d.rb +76 -0
- metadata +114 -0
@@ -0,0 +1,165 @@
|
|
1
|
+
# Suppressions for known-broken software, avoid reporting it until fixed.
|
2
|
+
|
3
|
+
.*/libkcal\.so.* ^ical.*$
|
4
|
+
|
5
|
+
/usr/bin/gs
|
6
|
+
/usr/bin/gdbtui
|
7
|
+
|
8
|
+
/usr/lib(|32|64)/dri/.*
|
9
|
+
|
10
|
+
# KPDF contains XPDF code, which is also contained in libpoppler.
|
11
|
+
# Ignore KPDF symbols then.
|
12
|
+
libkpdfpart.so
|
13
|
+
|
14
|
+
# Net-SNMP for some reasons build two separate libraries out of the
|
15
|
+
# same object files, their code is 1:1 the same. Ignore one of them
|
16
|
+
# until it's sorted out upstream.
|
17
|
+
libsnmp\.so
|
18
|
+
|
19
|
+
# Multiple copies of Qt4 libraries from proprietary software like
|
20
|
+
# Skype, GoogleEarth and so on.
|
21
|
+
/opt/.*/libQt.*
|
22
|
+
|
23
|
+
# Intel C and Fortran compilers keep the same code
|
24
|
+
/opt/intel/[cf]c/.*/lib/.*
|
25
|
+
|
26
|
+
# The binary versions of xulrunner, firefox and thunderbird have
|
27
|
+
# duplicate symbols.
|
28
|
+
/opt/(xulrunner|firefox|thunderbird|)/.*
|
29
|
+
|
30
|
+
# Quake-engine based games duplicate numbers of symbols, bad.
|
31
|
+
.*/gamei386\.so
|
32
|
+
|
33
|
+
# Aegis does not know about shared libraries it seems
|
34
|
+
.*/bin/ae(cvsserver|patch|annotate|subunit|rect|dist|de-policy|find|import|lcf|tar|complete|-repo-ci|ls|svt|lock|get|lpf|sub|xml|diff|finish|gis|report|revml|makegen|promptcmd)
|
35
|
+
|
36
|
+
# asis-gcc links libasis statically in the commands, no idea why.
|
37
|
+
.*/gnat-gcc-bin/.*/(gnatelim|gnatpp|gnatmetric|adasubst|adadep|adabrowse|gnatstub)
|
38
|
+
|
39
|
+
# Sane should use a core library
|
40
|
+
.*/(libsane-.*\.so|xcam|saned) ^sanei_.*$
|
41
|
+
|
42
|
+
# idb comes with Qt (unknown version)
|
43
|
+
intel/idb/.*/bin/iidb
|
44
|
+
|
45
|
+
# abiword does not link to libabiword
|
46
|
+
/bin/[Aa]bi[wW]ord
|
47
|
+
|
48
|
+
# Qt Embedded has the same API of Qt 3
|
49
|
+
/lib/libqte-mt\.so\..*
|
50
|
+
|
51
|
+
# Samba should really use a libsambacore
|
52
|
+
/bin/eventlogadm
|
53
|
+
/bin/net
|
54
|
+
/bin/nmblookup
|
55
|
+
/bin/ntlm_auth
|
56
|
+
/bin/pdbedit
|
57
|
+
/bin/profiles
|
58
|
+
/bin/rpcclient
|
59
|
+
/bin/smb(cacls|client|control|cquotas|get|mount|passwd|spool|status|tree)
|
60
|
+
/bin/testparm
|
61
|
+
/lib(32|64)?/python[0-9\.]+/site-packages/samba/(lsa|samr|smb|spoolss|srvsvc|tdb|winbind|winreg)\.so
|
62
|
+
/lib(32|64)?/samba/lib(msrpc|smbclient)\.so
|
63
|
+
/lib(32|64)?/security/pam_smbpass\.so
|
64
|
+
/sbin/[sn]mbd
|
65
|
+
|
66
|
+
# wvstream links dbus statically, and so does dbus-daemon (d'oh!)
|
67
|
+
/lib(32|64)?/libwvdbus\.so.* ^dbus_
|
68
|
+
/bin/dbus-daemon ^dbus_
|
69
|
+
|
70
|
+
# The static version links all statically obviously
|
71
|
+
/bin/paw(\+\+|X11)\.static
|
72
|
+
|
73
|
+
# Inkscape comes with copies of GDL and libcroco
|
74
|
+
/bin/ink(scape|view) ^(gdl|cr)_
|
75
|
+
|
76
|
+
# gettext comes with a copy of libcroco
|
77
|
+
/lib(32|64)?/libgettextlib-[0-9\.]+\.so ^cr_
|
78
|
+
|
79
|
+
# screem with a copy of gdl
|
80
|
+
/bin/screem ^gdl_
|
81
|
+
|
82
|
+
# MySQL could also use a libmysqlcore
|
83
|
+
/bin/comp_err
|
84
|
+
/bin/my(_print_defaults|isam(_ftdump|chk|log|pack)|sql_(tzinfo_to_sql|waitpid))
|
85
|
+
/bin/perror
|
86
|
+
/bin/replace
|
87
|
+
/bin/resolve(_stack_dump|ip)
|
88
|
+
/sbin/mysql(d|manager)
|
89
|
+
|
90
|
+
# MyDNS is linking statically to mysql
|
91
|
+
/bin/mydns(-conf|export|ptrconvert|check|import)
|
92
|
+
/sbin/mydns
|
93
|
+
|
94
|
+
# bash links to libreadline statically in Gentoo as it's mission-critical
|
95
|
+
^/bin/bash$ ^_?rl_
|
96
|
+
|
97
|
+
# byld stuff is always duplicated
|
98
|
+
^/usr/lib/byld/
|
99
|
+
|
100
|
+
# Some packages like to bundle sqlite3
|
101
|
+
/lib(32|64)?/libgda-([0-9\.]+)/providers/libgda-sqlite\.so ^sqlite3
|
102
|
+
/lib(32|64)?/perl5/vendor_perl/[0-9\.]+/.*/auto/DBD/SQLite/SQLite.so ^sqlite3
|
103
|
+
/lib(32|64)?/lib(showimg)?kexisql3\.so ^sqlite3
|
104
|
+
/lib(32|64)/hk_classes/drivers/libhk_sqlite3driver\.so ^sqlite3
|
105
|
+
|
106
|
+
# Some packages like to bundle boehm-gc
|
107
|
+
/lib(32|64)?/mercury-[0-9\.]/lib/libgc(_prof)?\.so ^GC_
|
108
|
+
lib(gcj|gauche|Synopsis)\.so ^GC_
|
109
|
+
/bin/pedump ^GC_
|
110
|
+
|
111
|
+
# alliance links libX11 statically
|
112
|
+
/alliance/bin/.* ^_?X
|
113
|
+
|
114
|
+
# This is just boring
|
115
|
+
/lib(32|64)?/gnucap/models-.*
|
116
|
+
|
117
|
+
# Inkscape needs a core library
|
118
|
+
/bin/inkview
|
119
|
+
|
120
|
+
# Smoke does static linking
|
121
|
+
/lib(32|64)?/libsmokekde\.so
|
122
|
+
|
123
|
+
# Broken proprietaryware
|
124
|
+
/lib/fmodex
|
125
|
+
|
126
|
+
# Link statically to libpcap, may bundle libopts
|
127
|
+
/bin/tcp(rewrite|bridge|prep|replay) ^(options[A-Z]|pcap_)
|
128
|
+
|
129
|
+
# Link statically to libdspam
|
130
|
+
/bin/(css(clean|stat|convert)|dispamc) ^_ds_
|
131
|
+
|
132
|
+
# Static link to readline (unwarranted)
|
133
|
+
/bin/(gdb-armulator|insight) ^_?rl_
|
134
|
+
|
135
|
+
# Static internal link
|
136
|
+
/bin/fun(calc|cen|cnts|cone|disp|head|hist|image|join|merge|sky|table)
|
137
|
+
|
138
|
+
# They use liboscar
|
139
|
+
/bin/(bitlbee|pork) ^aim_
|
140
|
+
|
141
|
+
# KDE3 and ARTS come with a modified libltdl.
|
142
|
+
/lib(32|64)?/lib(kdecore|arts(c|dsp_st)|mcop)\.so ^_?lt_dl
|
143
|
+
|
144
|
+
# MythTV has its own copy of FFmpeg, and of liveMedia
|
145
|
+
/lib(32|64)?/libmyth(av(codec|format|util)|livemedia)-[0-9\.]+\.so
|
146
|
+
|
147
|
+
# Stuff bundling or deriving Expat
|
148
|
+
/lib/einit/bootstrap/bootstrap-configuration-xml-expat.so ^XML_
|
149
|
+
/lib(tlen|wxsvg|Tclexpat[0-9\.]+|txml|MiKTeX[0-9]+-expat)\.so ^XML_
|
150
|
+
/bin/(yasim|fg[fj]s) ^XML_
|
151
|
+
/bin/scorched3d ^XML_
|
152
|
+
/opt/ICAClient/wfcmgr\.bin ^XML_
|
153
|
+
|
154
|
+
# paraview bundles vtk
|
155
|
+
/lib/paraview-[0-9\.]+/libvtk.*\.so
|
156
|
+
|
157
|
+
# ardour incluess all the libraries it uses
|
158
|
+
/lib/ardour2/lib(rubberband|soundtouch|vampsdk)\.so
|
159
|
+
|
160
|
+
# These binaries contain a copy of their library rather than using it.
|
161
|
+
/bin/alsaplayer
|
162
|
+
/bin/aften
|
163
|
+
|
164
|
+
# bash and gdb are known for linking readline statically
|
165
|
+
/bin/(bash|gdb) ^(_?rl_|readline).*
|
@@ -0,0 +1,125 @@
|
|
1
|
+
# Multi-implementation: compressor file for multiple implementations
|
2
|
+
# This file is used to describe which libraries compose multiple implementations
|
3
|
+
# ignoring eventual problems with multiple libraries implementing the same
|
4
|
+
# interface
|
5
|
+
|
6
|
+
libc /lib(32|64)?/(loki_)?libc(-[0-9\.]+)?\.so
|
7
|
+
|
8
|
+
perl /usr/bin/perl5\..*
|
9
|
+
perl /usr/lib(|32|64)/libperl\.so\..*
|
10
|
+
|
11
|
+
libgpgme .*/libgpgme(-pth(read)?)?\.so.*
|
12
|
+
|
13
|
+
# JAVA libraries, especially graphic libraries.
|
14
|
+
java-libawt jre/lib/(amd64|i386)/libawt\.so$
|
15
|
+
java-libmawt jre/lib/(amd64|i386)/(xawt|motif21|headless)/libmawt.so
|
16
|
+
|
17
|
+
ncurses-lib$2 /lib(|32|64)/lib(n?curses|form|menu|panel)w?\.so
|
18
|
+
|
19
|
+
php5 php5/bin/php(-cgi)?$
|
20
|
+
php5 apache2/modules/libphp5\.so
|
21
|
+
|
22
|
+
mysqlclient /lib(|32|64)/mysql/libmysqlclient(_r)?\.so
|
23
|
+
libldap$3 /lib(|32|64)/libldap(_r)?((-[0-9\.]+)?)\.so
|
24
|
+
|
25
|
+
libXaw /lib(|32|64)/libXaw(6|7|3d)\.so
|
26
|
+
libXaw /lib/(32|64)/libneXtaw\.so
|
27
|
+
libXmu /lib(|32|64)/libXmuu?\.so
|
28
|
+
|
29
|
+
osswrappers /lib(|32|64)/lib(aoss|(esd|pa|)dsp)\.so$
|
30
|
+
|
31
|
+
libxerces /lib(|32|64)/libxerces-(c|depdom)\.so
|
32
|
+
|
33
|
+
# Boost
|
34
|
+
libboost_$2 /lib(|32|64)/libboost_([a-z_]+)(-mt)?.so
|
35
|
+
|
36
|
+
# KDE's libgpgme++
|
37
|
+
libgpgme++ /lib(|32|64)/libgpgme\+\+(-pth(read)?)?\.so
|
38
|
+
|
39
|
+
# libevent, _core and _extra replace the original, for now consider them a single
|
40
|
+
# implementation, until libevent itself is deprecated.
|
41
|
+
libevent-$4 /lib(|32|64)/libevent(_(extra|core))?-([0-9\.]+)\.so
|
42
|
+
|
43
|
+
# GNU libs
|
44
|
+
gnu-libmudflap libmudflap(th)?\.so
|
45
|
+
libbfd libbfd-[0-9\.]+\.so
|
46
|
+
libgcj libgcj(-[0-9\.]+|_bc)\.so
|
47
|
+
libgnat libgnat-[0-9\.]+\.so
|
48
|
+
libffi libffi-[0-9\.]+(-beta)?\.so
|
49
|
+
|
50
|
+
libgvc libgvc(_builtins)?\.so
|
51
|
+
|
52
|
+
mercury-$4 /mercury-.*/lib/(asm_fast|hlc|none).gc(.(tr|memprof|prof))?/(.*)\.so
|
53
|
+
|
54
|
+
glide3 /lib(32|64)?/libglide3-v[1235]\.so
|
55
|
+
|
56
|
+
cblas /lib(32|64)?/blas/((threaded-)?atlas|reference)/libcblas\.so
|
57
|
+
cblas /lib(32|64)?/gclcblas\.so
|
58
|
+
|
59
|
+
libcorex /lib(32|64)?/libcorex\+\+_level[123]\.so
|
60
|
+
|
61
|
+
lib$5 /lib(32|64)?/(nvu|mozilla-(sunbird|thunderbird)|xulrunner(-[0-9\.]+)?|seamonkey)/lib([a-zA-Z_]+)(_core)?\.so$
|
62
|
+
|
63
|
+
libstlport /lib(32|64)?/libstlport((stl)?g?)\.so
|
64
|
+
|
65
|
+
libfann /lib(32|64)?/lib(double|float|fixed)?fann.so
|
66
|
+
|
67
|
+
libcilk /lib(32|64)?/libcilk(\.g)?(\.p)?\.so
|
68
|
+
|
69
|
+
libcanna /lib(32|64)?/libcanna(16)?\.so
|
70
|
+
libRKC /lib(32|64)?/libRKC(16)?\.so
|
71
|
+
|
72
|
+
odbc /lib(32|64)?/lib(i|my)?odbc(5|inst|txt|psql)?(-[0-9\.]+)?\.so
|
73
|
+
odbc /lib(32|64)?/wine/odbc32\.dll\.so
|
74
|
+
odbc /lib(32|64)?/libtemplate\.so
|
75
|
+
|
76
|
+
libspread /lib(32|64)?/libt?spread(-core)?\.so
|
77
|
+
|
78
|
+
libgraph /lib(32|64)?/lib[ac]?graph\.so
|
79
|
+
|
80
|
+
libPoco$2 /lib(32|64)?/libPoco([A-Za-z]+[a-ce-zA-Z])d?\.so
|
81
|
+
|
82
|
+
xvmc /lib(32|64)?/lib(chrome|I(810|ntel))?XvMC(Pro|NVIDIA|W)?\.so
|
83
|
+
|
84
|
+
libqwt$2 /lib(32|64)?/libqwt(plot3d)?(-qt3)?\.so
|
85
|
+
|
86
|
+
efte /bin/[cnv]efte$
|
87
|
+
|
88
|
+
libodbc++ /lib(32|64)?/libodbc\+\+(-mt)?\.so
|
89
|
+
|
90
|
+
libctemplate /lib(32|64)?/libctemplate(_nothreads)?\.so
|
91
|
+
|
92
|
+
lib$1 /lib([a-zA-Z]+)([23]D|2D3)(-[0-9\.]+)?\.so
|
93
|
+
|
94
|
+
opal/openh323 /lib(32|64)?/lib(opal|h323)_.*_n\.so
|
95
|
+
|
96
|
+
libfmodex /lib(32|64)?/libfmodex[Lp]?-[0-9\.]+\.so
|
97
|
+
|
98
|
+
libossp-uuid /libossp-uuid(_dce)?\.so
|
99
|
+
|
100
|
+
libunwind /libunwind(-x86)?\.so
|
101
|
+
|
102
|
+
libdmalloc /libdmalloc(cxx)?\.so
|
103
|
+
libmpatrol /libmpa(lloc|trol(mt)?)\.so
|
104
|
+
|
105
|
+
libk3d /libk3d(ngui|python|sdk)\.so
|
106
|
+
|
107
|
+
fftw /lib(32|64)?/lib[ds]?fftw(3[lf]?(_threads)?)?\.so
|
108
|
+
|
109
|
+
CLHEP /lib(32|64)?/libCLHEP(-(Vector|GenericFunctions|Matrix|Random|Geometry))?-[0-9\.]+\.so
|
110
|
+
|
111
|
+
mozilla-libs /lib(xpcom(_core|glue)?|xul)(-[0-9\.]+)?\.so
|
112
|
+
|
113
|
+
libstdc++ /lib/libstdc\+\+-libc[0-9\.\-]+\.so
|
114
|
+
|
115
|
+
# Library consolidation, keep at the end!
|
116
|
+
#
|
117
|
+
# This following line is used to consolidate all libraries that have
|
118
|
+
# the same base name, ignoring versioning of either API or ABI. This
|
119
|
+
# allows to ignore multiple slots for the same library which would
|
120
|
+
# almost certainly result in false positives.
|
121
|
+
#
|
122
|
+
# Note that the presence of _at least_ one object after the soname is
|
123
|
+
# needed to ensure this does not hit most of the plugins that use the
|
124
|
+
# format libfoo.so for the names.
|
125
|
+
lib$1 /lib([a-zA-Z0-9\-_\+]+)(-[0-9\.]+)*\.so(\.[0-9\.]+)+$
|
@@ -0,0 +1,84 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# Copyright © 2007-2010 Diego E. "Flameeyes" Pettenò <flameeyes@gmail.com>
|
4
|
+
#
|
5
|
+
# This program is free software; you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
7
|
+
# the Free Software Foundation; either version 2 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with this generator; if not, write to the Free Software
|
17
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
18
|
+
|
19
|
+
# This script is used to harvest the symbols defined in the shared
|
20
|
+
# objects of the whole system.
|
21
|
+
|
22
|
+
require 'getoptlong'
|
23
|
+
require 'postgres'
|
24
|
+
|
25
|
+
opts = GetoptLong.new(
|
26
|
+
["--suppressions", "-s", GetoptLong::REQUIRED_ARGUMENT ],
|
27
|
+
["--postgres-username", "-U", GetoptLong::REQUIRED_ARGUMENT ],
|
28
|
+
["--postgres-password", "-P", GetoptLong::REQUIRED_ARGUMENT ],
|
29
|
+
["--postgres-hostname", "-H", GetoptLong::REQUIRED_ARGUMENT ],
|
30
|
+
["--postgres-port", "-T", GetoptLong::REQUIRED_ARGUMENT ],
|
31
|
+
["--postgres-database", "-D", GetoptLong::REQUIRED_ARGUMENT ]
|
32
|
+
)
|
33
|
+
|
34
|
+
suppression_files = File.exist?('suppressions') ? [ 'suppressions' ] : []
|
35
|
+
|
36
|
+
pg_params = {}
|
37
|
+
|
38
|
+
opts.each do |opt, arg|
|
39
|
+
case opt
|
40
|
+
when '--suppressions'
|
41
|
+
unless File.exist? arg
|
42
|
+
$stderr.puts "harvest.rb: no such file or directory - #{arg}"
|
43
|
+
exit -1
|
44
|
+
end
|
45
|
+
suppression_files << arg
|
46
|
+
when '--postgres-username' then pg_params['user'] = arg
|
47
|
+
when '--postgres-password' then pg_params['password'] = arg
|
48
|
+
when '--postgres-hostname' then pg_params['host'] = arg
|
49
|
+
when '--postgres-port' then pg_params['port'] = arg
|
50
|
+
when '--postgres-database' then pg_params['dbname'] = arg
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
db = PGconn.open(pg_params)
|
55
|
+
|
56
|
+
db.exec("BEGIN TRANSACTION")
|
57
|
+
|
58
|
+
# Total suppressions are for directories to skip entirely
|
59
|
+
# Partial suppressions are the ones that apply only to a subset
|
60
|
+
# of symbols.
|
61
|
+
suppression_files.each do |suppression|
|
62
|
+
File.open(suppression) do |file|
|
63
|
+
file.each_line do |line|
|
64
|
+
path, symbols = line.
|
65
|
+
gsub(/#\s.*/, '').
|
66
|
+
strip.
|
67
|
+
split(/\s+/, 2)
|
68
|
+
|
69
|
+
next unless path
|
70
|
+
|
71
|
+
if not symbols or symbols == ""
|
72
|
+
# the POSIX regular expressions and the Ruby ones differ from
|
73
|
+
# how + and \+ are used. PgSQL uses POSIX.
|
74
|
+
path = path.gsub('+', '\+').gsub('\\+', '+')
|
75
|
+
db.exec("DELETE FROM objects WHERE name ~ '#{path}'")
|
76
|
+
else
|
77
|
+
symbols.sub!(/(\$)?$/, '@\1')
|
78
|
+
db.exec("DELETE FROM symbols WHERE symbol ~ '#{symbols}' AND object IN (SELECT id FROM objects WHERE name ~ '#{path}')")
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
db.exec("COMMIT")
|
@@ -0,0 +1,279 @@
|
|
1
|
+
# Ignore the modules directory.
|
2
|
+
^/lib(|32|64)/modules/.*
|
3
|
+
|
4
|
+
# Ignore the debug directory
|
5
|
+
^/usr/lib(|32|64)/debug/.*
|
6
|
+
|
7
|
+
# Common symbols, usually present in every shared object
|
8
|
+
# main is instead present in every executable.
|
9
|
+
.* ^((__libc_csu)?_(init|fini|start)|main|__data_start|_IO_stdin_used|_fp_hw)$
|
10
|
+
|
11
|
+
# C++ symbols
|
12
|
+
.* ^_Z(d[al]Pv|[nd][aw]j)$
|
13
|
+
|
14
|
+
# ARM EABI symbols
|
15
|
+
.* ^__aeabi_
|
16
|
+
|
17
|
+
# Scratchbox is totally messed up
|
18
|
+
/opt/scratchbox/
|
19
|
+
|
20
|
+
# xine plugins use xine_plugin_info structure as entrypoint
|
21
|
+
.*/xine/plugins/.*/xineplug_.*\.so ^xine_plugin_info$
|
22
|
+
|
23
|
+
# gconv plugins
|
24
|
+
.*/gconv/.*\.so ^gconv(_(init|end))?$
|
25
|
+
|
26
|
+
# libpthread has duplicate symbols as they are also defined
|
27
|
+
# in libc.so
|
28
|
+
.*/libpthread(-[\.0-9]+)?\.so ^(pthread_.*|_IO_f(|un|try)lockfile)$
|
29
|
+
|
30
|
+
# KDE-related suppressions
|
31
|
+
/libkdeinit4?_.*\.so ^kdemain$
|
32
|
+
/kde[34]/.*\.so ^kde(init)?main$
|
33
|
+
/kde3/.*thumbnail\.so ^new_creator$
|
34
|
+
/kde3/.*panel(applet|extension)\.so ^init$
|
35
|
+
/kde3/libaudiocd_encoder_.*\.so ^create_audiocd_encoders$
|
36
|
+
/kde3/plugins/.*\.so ^(qt_ucm_query_verification_data|ucm_instantiate)$
|
37
|
+
/kde3/kwin3?_.*\.so ^(create_factory|allocate_config)$
|
38
|
+
/kde3/(libamarok|noatun)_.*\.so ^create_plugin$
|
39
|
+
/kde[34]/kstyle_.*\.so ^allocate_kstyle_config$
|
40
|
+
/kde3/ksim_.*\.so ^init_plugin$
|
41
|
+
# KApplication::KApp
|
42
|
+
.* ^_ZN12KApplication4KAppE$
|
43
|
+
# KDE 4
|
44
|
+
.*/kde4/.*\.so$ ^kde_plugin_(verification_data|version)$
|
45
|
+
.*/kde4/.*thumbnail\.so$ ^new_creator$
|
46
|
+
|
47
|
+
# Amarok
|
48
|
+
.*/kde3/libamarok_.*\.so$ ^_ZN6Amarok(6|12)Plugin(Config)?.*
|
49
|
+
|
50
|
+
# PAM modules
|
51
|
+
.*/lib(|32|64)/security/pam_.*\.so ^pam_sm_(authenticate|acct_mgmt|close_session|setcred|chauthtok|open_session)$
|
52
|
+
|
53
|
+
# Valgrind
|
54
|
+
.*/valgrind/(amd64|x86|ppc|ppc64)-linux/vgpreload_.*\.so ^_vgrZU_.*$
|
55
|
+
|
56
|
+
# Qt4 plugins
|
57
|
+
.*/.*\.so ^qt_plugin_(instance|query_verification_data)$
|
58
|
+
|
59
|
+
# Wine stuff
|
60
|
+
.*\.exe\.so ^WinMain$
|
61
|
+
|
62
|
+
# GTK and GNOME plugins
|
63
|
+
.* ^g_module_check_init$
|
64
|
+
/gtk-2\.0/.*/modules/.*\.so ^gtk_module_init$
|
65
|
+
/gtk-2\.0/.*/immodules/im-.*\.so ^im_module_(create|init|exit|list)$
|
66
|
+
/gtk-2\.0/.*/engines/.*\.so ^(theme_(create_rc_style|init|exit))$
|
67
|
+
/gtk-2\.0/.*/loaders/libpixbuf.*\.so ^(load|fill_(info|vtable)|get_info)$
|
68
|
+
/gtk-2\.0/.*/printbackends/.*\.so ^pb_module_(init|create|exit)$
|
69
|
+
/pango/.*/modules/pango-.*\.so ^script_engine_(list|create|init|exit)$
|
70
|
+
/gnome-vfs-2\.0/modules/lib.*\.so ^vfs_module_(init|shutdown)$
|
71
|
+
/libglade/.*/lib.*\.so ^glade_module_register_widgets$
|
72
|
+
/(goffice|gnumeric)/[0-9\.]+/plugins/.*\.so ^go_plugin_(depends|header|init|shutdown)$
|
73
|
+
/evolution/[0-9\.]+/plugins/.*\.so ^e_plugin_lib_enable$
|
74
|
+
/abiword-[0-9\.]+/plugins/lib.*\.so ^abi_plugin_((un)?register|supports_version)$
|
75
|
+
/libgda(-[0-9\.]+)?/providers/lib.*\.so ^plugin_(init|get_(name|description)|create_provider)$
|
76
|
+
/gedit-[0-9]+/plugins/lib.*\.so ^register_gedit_plugin$
|
77
|
+
/brasero/plugins/lib.*\.so ^brasero_plugin_register$
|
78
|
+
/gnome-settings-daemon-[0-9\.]+/lib.*\.so ^register_gnome_settings_plugin$
|
79
|
+
/gimp/[0-9\.]+/modules/.*\.so ^gimp_module_(query|register)$
|
80
|
+
/epiphany/[0-9\.]+/extensions/.*\.so ^register_module$
|
81
|
+
/libgnomedb/plugins/.*\.so ^plugin_init$
|
82
|
+
/totem/plugins/.*\.so ^register_totem_plugin$
|
83
|
+
/rhythmbox/plugins/.*\.so ^register_rb_plugin$
|
84
|
+
/nautilus/extensions-[0-9\.]+/.*\.so ^nautilus_module_(initialize|list_types|shutdown)$
|
85
|
+
|
86
|
+
# XFCE
|
87
|
+
/lib(32|64)?/thunarx-[0-9\.]+/.*\.so ^thunar_extension_(initialize|list_types|shutdown)$
|
88
|
+
/lib(32|64)?/xfce4/panel-plugins/.*\.so ^xfce_panel_plugin_get_construct$
|
89
|
+
/lib(32|64)?/xfce4/mcs-plugins/.*\.so ^mcs_plugin_init$
|
90
|
+
|
91
|
+
# ALSA plugins
|
92
|
+
.*/alsa-lib/smixer/smixer-.*\.so ^(alsa_mixer_simple_(init|event)|selectors)$
|
93
|
+
|
94
|
+
# gphoto plugins
|
95
|
+
.*/libgphoto2/.*/.*\.so ^camera_(abilities|id|init)$
|
96
|
+
|
97
|
+
# Java JNI extensions
|
98
|
+
.* ^JNI_OnLoad$
|
99
|
+
# Sun Java implementation
|
100
|
+
^/opt/sun-jdk-.*/.* ^JavaMain$
|
101
|
+
|
102
|
+
# ZSH modules
|
103
|
+
.*/zsh/.*/zsh/.*\.so ^(boot|setup|cleanup|finish)_$
|
104
|
+
|
105
|
+
# Wireshark plugins
|
106
|
+
.*/wireshark/plugins/.*/.*\.so ^(version|plugin_(reg_handoff|register))$
|
107
|
+
|
108
|
+
# Samba plugins
|
109
|
+
.*/samba/(vfs|auth|charset)/.*\.so ^init_module$
|
110
|
+
|
111
|
+
# XawTV plugins
|
112
|
+
.*/xawtv/.*\.so ^ng_plugin_init$
|
113
|
+
|
114
|
+
# Imlib
|
115
|
+
.*/imlib2/loaders/.*\.so ^(init|formats|save|load)$
|
116
|
+
|
117
|
+
# Claws Mail
|
118
|
+
.*/claws-mail/plugins/.*\.so ^plugin_(desc|done|init|licence|name|provides|type|version)$
|
119
|
+
|
120
|
+
# cyrus-sasl
|
121
|
+
.*/sasl2/lib.*\.so ^sasl_(client|server)_plug_init$
|
122
|
+
|
123
|
+
# Cherokee
|
124
|
+
.*/cherokee/libplugin_.*cgi\.so ^cherokee_handler_cgi_base_(add_headers|add_parameter|build_basic_env|build_envp|extract_path|free|init|split_pathinfo|step)
|
125
|
+
|
126
|
+
# OpenOffice.org
|
127
|
+
.*/openoffice/.*\.so$ ^(component_(getFactory|getImplementationEnvironment|writeInfo|canUnload)|GetVersionInfo)
|
128
|
+
|
129
|
+
# FFmpeg's vhook
|
130
|
+
.*/vhook/.*\.so$ ^(Configure|Process|Release)$
|
131
|
+
|
132
|
+
# JACK Audio Connection Kit
|
133
|
+
.*/jack/jack_.*\.so$ ^driver_(client_name|initialize|finish|get_descriptor)$
|
134
|
+
.*/jack/.*\.so$ ^jack_(initialize|finish)$
|
135
|
+
|
136
|
+
# DSSI
|
137
|
+
.*/dssi/.*\.so$ ^dssi_(descriptor|configure_message)$
|
138
|
+
|
139
|
+
# LADSPA
|
140
|
+
.*/(ladspa|dssi)/.*\.so$ ^(ladspa|delete)_descriptor$
|
141
|
+
|
142
|
+
# OpenSync
|
143
|
+
.*/opensync(-1.0)?/(formats|plugins)/.*\.so$ ^(get_(((format|conversion)_)?info|version)|vformat_.*|(quoted|base64)_(encode|decode)_simple)$
|
144
|
+
|
145
|
+
# libao
|
146
|
+
.*/ao/plugins-2/lib.*\.so$ ^ao_plugin_(test|set_option|open|play|driver_info|device_(init|clear)|close)$
|
147
|
+
|
148
|
+
# OpenSSL
|
149
|
+
.*/lib(|32|64)/engines/.*\.so$ ^(bind_engine|v_check)$
|
150
|
+
|
151
|
+
# Wine
|
152
|
+
.*/lib(|32)/wine/.*\.exe\.so$ ^wmain$
|
153
|
+
.*/lib(|32)/wine/.*\.ds\.so$ ^DS_Entry$
|
154
|
+
|
155
|
+
# ZSH
|
156
|
+
.*/lib(|32|64)/zsh/.*/zsh/.*\.so$ ^(enables|features)_$
|
157
|
+
|
158
|
+
# OSS wrappers and other LD_PRELOAD libraries
|
159
|
+
lib((pa|esd|arts)dsp|aoss|jackasyn|(soap|sand)box|fake(ch)?root|zzuf|v4l(1compat|2convert)|trash|syncdir|honeyd) ^((__)?(m(un)?map(64)?|f?(open(at)?(64)?(_2)?|close))|ioctl|poll|connect|glob|bind|execvp?)$
|
160
|
+
|
161
|
+
lib(fake(ch)?root|(soap|sand)box|trash)(-[0-9\.]+)?\.so ^f?(l?ch(own|mod)|(un)?link|rename|(mk|rm)dir|remove|creat|mkfifo|l?utimen?s?|(__x)?mknode|symlink|access|truncate)(64)?(at)?$
|
162
|
+
|
163
|
+
# Memory debug libraries
|
164
|
+
lib(mudflap(th)?|dmalloc(cxx)?|duma|efence|jemalloc|mem(usage|intercept)|zzuf)\.so ^(([mcv]|re)alloc|c?free|m(un)?map(64)?|(posix_)?memalign|mem(cpy)|strn?(dup|cat|cpy)|__invoke_dynamic_linker__|_Z(n[aw]j|d[al]Pv)|RKSt9nothrow_t|Page_AllowAccess)$
|
165
|
+
|
166
|
+
# Strigi
|
167
|
+
strigi/strigi[lt]a_.*\.so ^(deleteS|s)trigiAnalyzerFactory$
|
168
|
+
|
169
|
+
# Netscape-related symbols
|
170
|
+
.*/components/.*\.so ^NSGetModule$
|
171
|
+
|
172
|
+
# GCompris
|
173
|
+
.*/gcompris/.*\.so ^get_bplugin_info$
|
174
|
+
|
175
|
+
# psemu/ps2emu
|
176
|
+
.*/ps2?emu/(plugins|cfg)/.* ^(build|version|revision)
|
177
|
+
|
178
|
+
# IRC servers
|
179
|
+
.*/(ircd-hybrid-[0-9]|atheme)/(protocol|modules)/.*\.so ^_mod(de)?init$
|
180
|
+
.*/ircd-hybrid-[0-9]/modules(/autoload)?/.*\.so ^_version$
|
181
|
+
.*/atheme/(protocol|modules)/.*\.so ^_header$
|
182
|
+
.*/unrealircd/modules/m_.*\.so ^(Mod_(Init|Load|Version|Unload|Header)|compiler_version)$
|
183
|
+
|
184
|
+
# VLC
|
185
|
+
.*/vlc/.*/lib.*_plugin\.so ^vlc_entry(_(license|copyright))?__[0-9_]+[me]$
|
186
|
+
|
187
|
+
# GStreamer
|
188
|
+
.*/gstreamer-.*/lib.*\.so ^gst_plugin_desc$
|
189
|
+
|
190
|
+
# gwyddion
|
191
|
+
.*/gwyddion/modules/.*/.*\.so ^_gwy_module_query$
|
192
|
+
|
193
|
+
# VDR
|
194
|
+
.*/vdr/plugins/libvdr-.*\.so ^(VDRPluginCreator|Phrases)$
|
195
|
+
|
196
|
+
# Pidgin
|
197
|
+
.*/(pidgin|purple-2)/.*\.so ^purple_init_plugin$
|
198
|
+
|
199
|
+
.*/lpe/.*mode\.so ^mode_(enter|accept|highlight|init)$
|
200
|
+
|
201
|
+
# GEGL
|
202
|
+
.*/gegl-.*/.*\.so ^gegl_(module_(register|query)|chant_get_type)$
|
203
|
+
|
204
|
+
# SANE backends
|
205
|
+
.*/sane/libsane-.*\.so ^sane_(cancel|close|control_option|exit|get_(devices|option_descriptor|parameters|select_fd)|init|open|read|set_io_mode|start|strstatus)
|
206
|
+
|
207
|
+
# EVMS
|
208
|
+
/lib(|32|64)/evms/.*/.*\.so ^evms_plugin_records$
|
209
|
+
|
210
|
+
# updatedd
|
211
|
+
/lib(32|64)?/lib.*\.so.* ^(log_(err|warn|notice)|dyndns|get_retmsg)$
|
212
|
+
|
213
|
+
# HUGS
|
214
|
+
/lib(32|64)?/hugs/packages/.*/.*\.so ^(HugsAPIVersion|initModule)$
|
215
|
+
|
216
|
+
/lib(32|64)?/dia/lib.*\.so ^dia_plugin_init$
|
217
|
+
|
218
|
+
/lib(32|64)?/anjuta/.*\.so ^anjuta_glue_register_components$
|
219
|
+
|
220
|
+
/lib(32|64)?/postgresql(-[0-9\.]+)?/.*\.so ^Pg_magic_func$
|
221
|
+
|
222
|
+
/lib(32|64)?/stardict/plugins/.*\.so ^stardict_(parsedata_)?plugin_(exit|init)$
|
223
|
+
|
224
|
+
/lib(32|64)?/lv2/.*\.lv2/.*\.so ^lv2_descriptor$
|
225
|
+
|
226
|
+
/lib(32|64)?/emelfm2/plugins/.*\.so ^(init|clean)_plugin$
|
227
|
+
|
228
|
+
/lib(32|64)?/mozart/cache/x-oz/ ^oz_module_name$
|
229
|
+
|
230
|
+
# Netscape/Mozilla plugins
|
231
|
+
.* ^NP[NP]?_(Get(MIMEDescription|Value|Java(Class|Env|Peer)|URL|Property|StringIdentifier)|Set(Window|Value)|Initialize|Shutdown|(Destroy|New)(Stream)?|Mem(Alloc|Flush|Free)|PostURL|ReloadPlugins|RequestRead|Status|UserAgent|Version|Write|Print|StreamAsFile|Write(Ready)?|URLNotify|ForceRedraw|Invalidate(Rect|Region)|HandleEvent|(Push|Pop)PopupEnabledState|ReleaseObject)
|
232
|
+
|
233
|
+
/lib(32|64)?/rep/.*\.so$ ^rep_dl_init$
|
234
|
+
|
235
|
+
/lib(32|64)?/oops/.*\.so ^mod(ule_(name|info|type)|_(run|(un)?load|config(_(beg|end))?))$
|
236
|
+
|
237
|
+
/lib(32|64)?/blib-[0-9\.]+/modules/.*\.so ^b_module_register$
|
238
|
+
|
239
|
+
/lib(32|64)?/lineakd/plugins/.*\.so ^(cleanup|initialize|exec)$
|
240
|
+
/lib(32|64)?/audacious/.*/.*\.so ^get_plugin_info$
|
241
|
+
/lib(32|64)?/libvisual-[0-9\.]+/.*\.so ^get_plugin_info$
|
242
|
+
/lib(32|64)?/pike/modules/.*\.so ^pike_module_(init|exit)$
|
243
|
+
/lib(32|64)?/ettercap/ec_.*\.so ^plugin_load$
|
244
|
+
/lib(32|64)?/transcode/filter.*\.so ^tc_filter$
|
245
|
+
/lib(32|64)?/gkrellm2/plugins/.*\.so ^gkrellm_init_plugin$
|
246
|
+
/lib(32|64)?/cinelerra/.*\.so ^new_plugin$
|
247
|
+
/lib(32|64)?/jabberd/mod_.*\.so ^module_init$
|
248
|
+
/lib(32|64)?/lftp/[0-9\.]+/.*\.so ^module_init$
|
249
|
+
/lib(32|64)?/(svxlink|tablix2|nepenthes)/.*\.so ^module_init$
|
250
|
+
/lib(32|64)?/(pptp|pppd/[0-9\.]+)/.*\.so ^plugin_init$
|
251
|
+
/lib(32|64)?/(planner|openvas|sensors-applet|streamtuner)/plugins/.*\.so ^plugin_init$
|
252
|
+
/lib(32|64)?/(geany|blender|multisync)/.*\.so ^plugin_init$
|
253
|
+
/lib(32|64)?/mythtv/plugins/.*\.so ^mythplugin_(init|config|run)$
|
254
|
+
/lib(32|64)?/kradio/plugins/.*\.so ^KRadioPlugin_(LoadLibrary|GetAvailablePlugins|CreatePlugin|UnloadLibrary)$
|
255
|
+
/lib(32|64)?/libmirage/.*\.so ^mirage_plugin_(un)?load_plugin$
|
256
|
+
/lib(32|64)?/awn/applets/.*/.*\.so ^awl_applet_factory_initp$
|
257
|
+
/lib(32|64)?/rxtx-2/.*\.so ^translate_((data|stop)_bits|parity|speed)$
|
258
|
+
/php5/lib/php/extensions/.*/.*\.so ^get_module$
|
259
|
+
/lib(32|64)?/licq/licq_.*\.so ^LP_(Build(Date|Time)|ConfigFile|Description|Exit|Init|Main(_tep)?|Name|Status|Usage|Version)$
|
260
|
+
/lib(32|64)?/gambas2?/gb\..*\.so ^GB_(INIT|EXIT|CLASSES)$
|
261
|
+
/lib(32|64)?/SpiralPlugins/.*\.so ^SpiralPlugin_(CreateInstance|Get(GroupName|Icon|ID))$
|
262
|
+
/lib(32|64)?/initng/.*\.so ^(module_(init|unload|needs)|plugin_api_version)$
|
263
|
+
/lib(32|64)?/ser/modules/.*\.so ^(exports|module_(version|flags))$
|
264
|
+
/lib(32|64)?/gimageview/.*/.*\.so ^gimv_plugin_info$
|
265
|
+
/lib(32|64)?/asterisk/modules/.*\.so ^(description|key|(un)?load_module|usecount|reload)$
|
266
|
+
/lib(32|64)?/emerald/engines/.*\.so ^(init_engine|layout_engine_(settings|colors))$
|
267
|
+
/lib(32|64)?/compiz/.*\.so ^getCompPluginInfo(20070830)?$
|
268
|
+
/lib(32|64)?/gmpc/plugins/.*\.so ^plugin(|_api_version)$
|
269
|
+
/lib(32|64)?/znc/.*\.so ^((Unl|L)oad|Get(Version|Description)|IsGlobal)$
|
270
|
+
/lib(32|64)?/sweep/.*\.so ^plugin$
|
271
|
+
/lib(32|64)?/gpac/gm_.*\.so ^(Query|Shutdown)Interface$
|
272
|
+
/lib(32|64)?/k3d/plugins/k3d-.*\.module ^register_k3d_plugins$
|
273
|
+
/lib(32|64)?/frei0r-1/.*\.so ^f0r_((con|de)struct|(de)?init||get_(param_(info|value)|plugin_info)|set_param_value|update2?)$
|
274
|
+
/lib(32|64)?/kvirc/[0-9\.]+/modules/.*\.so ^KVIrc_module_info$
|
275
|
+
/lib(32|64)?/ModemManager/libmm.*\.so ^mm_plugin_(create|major_version)$
|
276
|
+
/lib(32|64)?/rsyslog/.*\.so ^modInit$
|
277
|
+
/lib(32|64)?/(connman|flimflam)/plugins/.*\.so ^connman_plugin_desc$
|
278
|
+
/lib(32|64)?/pppd/[0-9.]\+/.*\.so ^pppd_version$
|
279
|
+
/lib(32|64)?/device-mapper/.*\.so ^(process_event|(un)?register_device)$
|