ruby-elf 1.0.6.1 → 1.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/DONATING +1 -1
- data/bin/cowstats +1 -1
- data/bin/elfgrep +55 -16
- data/bin/missingstatic +1 -1
- data/bin/rbelf-nm +46 -11
- data/bin/rbelf-read +4 -6
- data/bin/rbelf-size +4 -2
- data/bin/verify-lfs +1 -1
- data/extras/bindings-parsers.rb +1 -1
- data/lib/bytestream-reader.rb +1 -1
- data/lib/elf.rb +2 -2
- data/lib/elf/dynamic.rb +2 -2
- data/lib/elf/file.rb +10 -1
- data/lib/elf/gnu.rb +1 -1
- data/lib/elf/section.rb +1 -1
- data/lib/elf/stringtable.rb +4 -14
- data/lib/elf/sunw.rb +1 -1
- data/lib/elf/symbol.rb +43 -37
- data/lib/elf/symboltable.rb +1 -1
- data/lib/elf/tools.rb +3 -2
- data/lib/elf/utils/loader.rb +1 -1
- data/lib/elf/utils/offsettable.rb +49 -0
- data/lib/elf/utils/pool.rb +1 -1
- data/lib/elf/value.rb +1 -1
- data/manpages/cowstats.1 +2 -2
- data/manpages/cowstats.1.xml +1 -1
- data/manpages/elfgrep.1 +39 -5
- data/manpages/elfgrep.1.xml +53 -2
- data/manpages/missingstatic.1 +2 -2
- data/manpages/missingstatic.1.xml +1 -1
- data/manpages/rbelf-nm.1 +18 -3
- data/manpages/rbelf-nm.1.xml +41 -1
- data/manpages/rbelf-size.1 +2 -2
- data/manpages/rbelf-size.1.xml +1 -1
- data/manpages/verify-lfs.1 +2 -2
- data/manpages/verify-lfs.1.xml +1 -1
- data/tools/assess_duplicate_save.rb +1 -1
- data/tools/link-collisions/harvest.rb +19 -9
- data/tools/link-collisions/known-broken +7 -18
- data/tools/link-collisions/multimplementations +35 -4
- data/tools/link-collisions/suppress.rb +1 -1
- data/tools/link-collisions/suppressions +22 -18
- data/tools/rbelf-lddtree.rb +1 -1
- metadata +13 -16
- data/lib/elf/symbol/demangler_gcc3.rb +0 -1952
data/manpages/missingstatic.1
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
'\" t
|
2
2
|
.\" Title: missingstatic
|
3
3
|
.\" Author:
|
4
|
-
.\" Generator: DocBook XSL
|
4
|
+
.\" Generator: DocBook XSL Stylesheets v1.77.1 <http://docbook.sf.net/>
|
5
5
|
.\" Date: October 2008
|
6
6
|
.\" Manual: Reference
|
7
7
|
.\" Source: ruby-elf
|
@@ -167,7 +167,7 @@ Related tools:
|
|
167
167
|
\fBexuberant-ctags\fR(1)\&.
|
168
168
|
.SH "AUTHOR"
|
169
169
|
.PP
|
170
|
-
\fBDiego E. Pettenò\fR <\&flameeyes@
|
170
|
+
\fBDiego E. Pettenò\fR <\&flameeyes@flameeyes.eu\&>
|
171
171
|
.RS 4
|
172
172
|
Author and main contributor.
|
173
173
|
.RE
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<?xml version='1.0'?>
|
2
2
|
<!--
|
3
|
-
Copyright © 2008-2011, Diego
|
3
|
+
Copyright © 2008-2011, Diego Elio Pettenò <flameeyes@flameeyes.eu>
|
4
4
|
|
5
5
|
This program is free software; you can redistribute it and/or modify
|
6
6
|
it under the terms of the GNU General Public License as published by
|
data/manpages/rbelf-nm.1
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
'\" t
|
2
2
|
.\" Title: rbelf-size
|
3
3
|
.\" Author:
|
4
|
-
.\" Generator: DocBook XSL
|
4
|
+
.\" Generator: DocBook XSL Stylesheets v1.77.1 <http://docbook.sf.net/>
|
5
5
|
.\" Date: August 2011
|
6
6
|
.\" Manual: Reference
|
7
7
|
.\" Source: ruby-elf
|
@@ -31,7 +31,7 @@
|
|
31
31
|
rbelf-nm \- List symbols from ELF files
|
32
32
|
.SH "SYNOPSIS"
|
33
33
|
.HP \w'\fBrbelf\-nm\fR\ 'u
|
34
|
-
\fBrbelf\-nm\fR [\fB\-\-dynamic\fR] [\fB\-\-demangle\fR] [\fB\-\-quiet\fR] [\fB\-\-recursive\fR] [\fB@\fR\fIfile\fR | \fIfile\fR...]
|
34
|
+
\fBrbelf\-nm\fR [\fB\-\-dynamic\fR] [\fB\-\-demangle\fR] [\fB\-\-sort\-by\fR\ {name\ |\ option\ |\ none}] [\fB\-\-quiet\fR] [\fB\-\-recursive\fR] [\fB@\fR\fIfile\fR | \fIfile\fR...]
|
35
35
|
.SH "DESCRIPTION"
|
36
36
|
.PP
|
37
37
|
|
@@ -51,6 +51,21 @@ Display symbols in the dynamic symbol table, not the normal symbol table\&. This
|
|
51
51
|
Demangle encoded symbol names\&. Certain languages (C++) and interfaces (Java\*(Aqs JNI) transform their native symbol names into Unix\-compatible names to store in the symbol tables, this option applies the opposite transformation to identify the original symbols\&.
|
52
52
|
.RE
|
53
53
|
.PP
|
54
|
+
\fB\-S\fR { \fBname\fR | \fBaddress\fR | \fBnone\fR }, \fB\-\-sort\-by\fR { \fBname\fR | \fBaddress\fR | \fBnone\fR }
|
55
|
+
.RS 4
|
56
|
+
Choose how to sort the output: by symbol name (the default), by symbol address, or in the order of appearance in the symbol tables (which involves no sorting, and is faster)\&.
|
57
|
+
.RE
|
58
|
+
.PP
|
59
|
+
\fB\-V\fR, \fB\-\-show\-version\fR
|
60
|
+
.RS 4
|
61
|
+
Show the symbol version information in output\&. Version information for symbols is an extension, and is implemented with different interfaces by Sun and GNU (for Linux)\&.
|
62
|
+
.sp
|
63
|
+
Symbols exported with default version (the one selected for linking) are marked with a
|
64
|
+
@@
|
65
|
+
separator, the rest are marked with a simple
|
66
|
+
@, while symbols without version information have no mark at all\&.
|
67
|
+
.RE
|
68
|
+
.PP
|
54
69
|
\fB\-q\fR, \fB\-\-quiet\fR
|
55
70
|
.RS 4
|
56
71
|
Do not output warnings and errors to the standard error\&. Designed to increase the signal\-to\-noise ratio when analysing eterogeneous trees recursively, or when producing output to redirect to automated systems\&.
|
@@ -183,7 +198,7 @@ Related tools:
|
|
183
198
|
\fBnm\fR(1)
|
184
199
|
.SH "AUTHOR"
|
185
200
|
.PP
|
186
|
-
\fBDiego E. Pettenò\fR <\&flameeyes@
|
201
|
+
\fBDiego E. Pettenò\fR <\&flameeyes@flameeyes.eu\&>
|
187
202
|
.RS 4
|
188
203
|
Author and main contributor.
|
189
204
|
.RE
|
data/manpages/rbelf-nm.1.xml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
<?xml version='1.0'?>
|
2
2
|
<!--
|
3
|
-
Copyright © 2011, Diego
|
3
|
+
Copyright © 2011, Diego Elio Pettenò <flameeyes@flameeyes.eu>
|
4
4
|
|
5
5
|
This program is free software; you can redistribute it and/or modify
|
6
6
|
it under the terms of the GNU General Public License as published by
|
@@ -54,6 +54,15 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
54
54
|
<option>--demangle</option>
|
55
55
|
</arg>
|
56
56
|
|
57
|
+
<arg choice="opt">
|
58
|
+
<option>--sort-by</option>
|
59
|
+
<group rep="norepeat" choice="req">
|
60
|
+
<arg choice="plain">name</arg>
|
61
|
+
<arg choice="plain">option</arg>
|
62
|
+
<arg choice="plain">none</arg>
|
63
|
+
</group>
|
64
|
+
</arg>
|
65
|
+
|
57
66
|
<xi:include href="common.xmli" xpointer="xpointer(id('filelist.synopsis')/*)" />
|
58
67
|
</cmdsynopsis>
|
59
68
|
</refsynopsisdiv>
|
@@ -95,6 +104,37 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
95
104
|
</listitem>
|
96
105
|
</varlistentry>
|
97
106
|
|
107
|
+
<varlistentry>
|
108
|
+
<term><option>-S</option> { <option>name</option> | <option>address</option> |
|
109
|
+
<option>none</option> }</term>
|
110
|
+
<term><option>--sort-by</option> { <option>name</option> | <option>address</option> |
|
111
|
+
<option>none</option> }</term>
|
112
|
+
<listitem>
|
113
|
+
<para>
|
114
|
+
Choose how to sort the output: by symbol name (the default), by symbol address, or
|
115
|
+
in the order of appearance in the symbol tables (which involves no sorting, and is
|
116
|
+
faster).
|
117
|
+
</para>
|
118
|
+
</listitem>
|
119
|
+
</varlistentry>
|
120
|
+
|
121
|
+
<varlistentry>
|
122
|
+
<term><option>-V</option></term>
|
123
|
+
<term><option>--show-version</option></term>
|
124
|
+
<listitem>
|
125
|
+
<para>
|
126
|
+
Show the symbol version information in output. Version information for symbols is an
|
127
|
+
extension, and is implemented with different interfaces by Sun and GNU (for Linux).
|
128
|
+
</para>
|
129
|
+
|
130
|
+
<para>
|
131
|
+
Symbols exported with default version (the one selected for linking) are marked with
|
132
|
+
a <literal>@@</literal> separator, the rest are marked with a simple
|
133
|
+
<literal>@</literal>, while symbols without version information have no mark at all.
|
134
|
+
</para>
|
135
|
+
</listitem>
|
136
|
+
</varlistentry>
|
137
|
+
|
98
138
|
<xi:include href="common.xmli" xpointer="xpointer(id('filelist.option')/*)" />
|
99
139
|
</variablelist>
|
100
140
|
</refsect1>
|
data/manpages/rbelf-size.1
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
'\" t
|
2
2
|
.\" Title: rbelf-size
|
3
3
|
.\" Author:
|
4
|
-
.\" Generator: DocBook XSL
|
4
|
+
.\" Generator: DocBook XSL Stylesheets v1.77.1 <http://docbook.sf.net/>
|
5
5
|
.\" Date: October 2008
|
6
6
|
.\" Manual: Reference
|
7
7
|
.\" Source: ruby-elf
|
@@ -183,7 +183,7 @@ Related tools:
|
|
183
183
|
\fBprelink\fR(8)\&.
|
184
184
|
.SH "AUTHOR"
|
185
185
|
.PP
|
186
|
-
\fBDiego E. Pettenò\fR <\&flameeyes@
|
186
|
+
\fBDiego E. Pettenò\fR <\&flameeyes@flameeyes.eu\&>
|
187
187
|
.RS 4
|
188
188
|
Author and main contributor.
|
189
189
|
.RE
|
data/manpages/rbelf-size.1.xml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
<?xml version='1.0'?>
|
2
2
|
<!--
|
3
|
-
Copyright © 2008-2011, Diego
|
3
|
+
Copyright © 2008-2011, Diego Elio Pettenò <flameeyes@flameeyes.eu>
|
4
4
|
|
5
5
|
This program is free software; you can redistribute it and/or modify
|
6
6
|
it under the terms of the GNU General Public License as published by
|
data/manpages/verify-lfs.1
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
'\" t
|
2
2
|
.\" Title: verify-lfs
|
3
3
|
.\" Author:
|
4
|
-
.\" Generator: DocBook XSL
|
4
|
+
.\" Generator: DocBook XSL Stylesheets v1.77.1 <http://docbook.sf.net/>
|
5
5
|
.\" Date: December 2010
|
6
6
|
.\" Manual: Reference
|
7
7
|
.\" Source: ruby-elf
|
@@ -86,7 +86,7 @@ Related tools:
|
|
86
86
|
\fBnm\fR(1)\&.
|
87
87
|
.SH "AUTHOR"
|
88
88
|
.PP
|
89
|
-
\fBDiego E. Pettenò\fR <\&flameeyes@
|
89
|
+
\fBDiego E. Pettenò\fR <\&flameeyes@flameeyes.eu\&>
|
90
90
|
.RS 4
|
91
91
|
Author and main contributor.
|
92
92
|
.RE
|
data/manpages/verify-lfs.1.xml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
<?xml version='1.0'?>
|
2
2
|
<!--
|
3
|
-
Copyright © 2010-2011, Diego
|
3
|
+
Copyright © 2010-2011, Diego Elio Pettenò <flameeyes@flameeyes.eu>
|
4
4
|
|
5
5
|
This program is free software; you can redistribute it and/or modify
|
6
6
|
it under the terms of the GNU General Public License as published by
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# -*- coding: utf-8 -*-
|
3
|
-
# Copyright © 2008-2010 Diego
|
3
|
+
# Copyright © 2008-2010 Diego Elio Pettenò <flameeyes@flameeyes.eu>
|
4
4
|
#
|
5
5
|
# This program is free software; you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU General Public License as published by
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# -*- coding: utf-8 -*-
|
3
|
-
# Copyright © 2007-2010 Diego
|
3
|
+
# Copyright © 2007-2010 Diego Elio Pettenò <flameeyes@flameeyes.eu>
|
4
4
|
#
|
5
5
|
# This program is free software; you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU General Public License as published by
|
@@ -49,11 +49,13 @@ module Elf::Tools
|
|
49
49
|
["--postgres-port", "-T", GetoptLong::REQUIRED_ARGUMENT ],
|
50
50
|
["--postgres-database", "-D", GetoptLong::REQUIRED_ARGUMENT ],
|
51
51
|
["--output", "-o", GetoptLong::REQUIRED_ARGUMENT ],
|
52
|
+
["--analyze-only", "-A", GetoptLong::NO_ARGUMENT ],
|
52
53
|
]
|
53
54
|
|
54
55
|
# we remove the -R option since we always want to be recursive in our search
|
55
56
|
@options.delete_if { |opt| opt[1] == "-R" }
|
56
57
|
@recursive = true
|
58
|
+
@analyze_only = false
|
57
59
|
|
58
60
|
@suppression_files = File.exist?('suppressions') ? [ 'suppressions' ] : []
|
59
61
|
@multimplementation_files = File.exist?('multimplementations') ? [ 'multimplementations' ] : []
|
@@ -129,7 +131,7 @@ module Elf::Tools
|
|
129
131
|
|
130
132
|
@multimplementation_files.each do |multimplementation|
|
131
133
|
@multimplementations |= \
|
132
|
-
File.
|
134
|
+
File.read(multimplementation).split(/\r?\n/).collect do |line|
|
133
135
|
implementation, paths = line.
|
134
136
|
gsub(/#\s.*/, '').
|
135
137
|
strip.
|
@@ -146,15 +148,17 @@ module Elf::Tools
|
|
146
148
|
( !@no_scan_ldpath ? Elf::Utilities.system_library_path : [] ) |
|
147
149
|
( (@scan_path and ENV['PATH']) ? ENV['PATH'].split(":") : [] )
|
148
150
|
|
151
|
+
return if @analyse_only
|
152
|
+
|
149
153
|
@db = PGconn.open(pg_params)
|
150
154
|
|
151
155
|
@db.exec(<<EOF)
|
152
156
|
BEGIN TRANSACTION;
|
153
157
|
|
154
158
|
DROP TABLE IF EXISTS symbols, multimplementations, objects CASCADE;
|
155
|
-
DROP
|
159
|
+
DROP EXTENSION IF EXISTS plpgsql CASCADE;
|
156
160
|
|
157
|
-
CREATE
|
161
|
+
CREATE EXTENSION plpgsql;
|
158
162
|
CREATE TABLE objects (
|
159
163
|
id SERIAL PRIMARY KEY,
|
160
164
|
name VARCHAR(4096),
|
@@ -245,10 +249,16 @@ EOF
|
|
245
249
|
return if filename =~ @total_suppressions
|
246
250
|
|
247
251
|
Elf::File.open(filename) do |elf|
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
+
begin
|
253
|
+
unless ($machines.nil? or $machines.include?(elf.machine)) and
|
254
|
+
(elf.has_section?('.dynsym') and elf.has_section?('.dynstr') and
|
255
|
+
elf.has_section?('.dynamic')) and
|
256
|
+
(elf[".dynsym"].class == Elf::SymbolTable)
|
257
|
+
return
|
258
|
+
end
|
259
|
+
rescue Elf::File::MissingStringTable
|
260
|
+
# the ELF file is (usually) a static ELF without a
|
261
|
+
# configured string table.
|
252
262
|
return
|
253
263
|
end
|
254
264
|
|
@@ -323,7 +333,7 @@ EOF
|
|
323
333
|
|
324
334
|
db_exec("SELECT * FROM duplicate_symbols").each do |row|
|
325
335
|
outfile.puts "Symbol #{row['symbol']} (#{row['abi']}) present #{row['occurrences']} times"
|
326
|
-
db_exec( "EXECUTE getinstances ('#{row['symbol']}', '#{row['abi']}')" ).each do |path|
|
336
|
+
db_exec( "EXECUTE getinstances ('#{row['symbol']}', '#{row['abi'].gsub("'", "''")}')" ).each do |path|
|
327
337
|
outfile.puts " #{path['name']}"
|
328
338
|
end
|
329
339
|
end
|
@@ -16,17 +16,6 @@ libkpdfpart.so
|
|
16
16
|
# until it's sorted out upstream.
|
17
17
|
libsnmp\.so
|
18
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
19
|
# Quake-engine based games duplicate numbers of symbols, bad.
|
31
20
|
.*/gamei386\.so
|
32
21
|
|
@@ -91,11 +80,8 @@ intel/idb/.*/bin/iidb
|
|
91
80
|
/bin/mydns(-conf|export|ptrconvert|check|import)
|
92
81
|
/sbin/mydns
|
93
82
|
|
94
|
-
# bash links to libreadline statically in Gentoo as it's mission-critical
|
95
|
-
^/bin/bash$ ^_?rl_
|
96
|
-
|
97
83
|
# byld stuff is always duplicated
|
98
|
-
|
84
|
+
/usr/lib/byld/
|
99
85
|
|
100
86
|
# Some packages like to bundle sqlite3
|
101
87
|
/lib(32|64)?/libgda-([0-9\.]+)/providers/libgda-sqlite\.so ^sqlite3
|
@@ -122,6 +108,7 @@ lib(gcj|gauche|Synopsis)\.so ^GC_
|
|
122
108
|
|
123
109
|
# Broken proprietaryware
|
124
110
|
/lib/fmodex
|
111
|
+
/fmodex/api
|
125
112
|
|
126
113
|
# Link statically to libpcap, may bundle libopts
|
127
114
|
/bin/tcp(rewrite|bridge|prep|replay) ^(options[A-Z]|pcap_)
|
@@ -149,7 +136,6 @@ lib(gcj|gauche|Synopsis)\.so ^GC_
|
|
149
136
|
/lib(tlen|wxsvg|Tclexpat[0-9\.]+|txml|MiKTeX[0-9]+-expat)\.so ^XML_
|
150
137
|
/bin/(yasim|fg[fj]s) ^XML_
|
151
138
|
/bin/scorched3d ^XML_
|
152
|
-
/opt/ICAClient/wfcmgr\.bin ^XML_
|
153
139
|
|
154
140
|
# paraview bundles vtk
|
155
141
|
/lib/paraview-[0-9\.]+/libvtk.*\.so
|
@@ -161,5 +147,8 @@ lib(gcj|gauche|Synopsis)\.so ^GC_
|
|
161
147
|
/bin/alsaplayer
|
162
148
|
/bin/aften
|
163
149
|
|
164
|
-
#
|
165
|
-
/
|
150
|
+
# ignore prebuilt packages/files as they add way too much noise
|
151
|
+
/opt/
|
152
|
+
|
153
|
+
# mesa's build system tends to be TFU and copies llvm code around
|
154
|
+
/(mesa|egl)/.*\.so ^_ZN4llvm
|
@@ -16,8 +16,8 @@ java-libmawt jre/lib/(amd64|i386)/(xawt|motif21|headless)/libmawt.so
|
|
16
16
|
|
17
17
|
ncurses-lib$2 /lib(|32|64)/lib(n?curses|form|menu|panel)w?\.so
|
18
18
|
|
19
|
-
|
20
|
-
|
19
|
+
php /bin/php(-cgi)?$
|
20
|
+
php /libphp5\.so
|
21
21
|
|
22
22
|
mysqlclient /lib(|32|64)/mysql/libmysqlclient(_r)?\.so
|
23
23
|
libldap$3 /lib(|32|64)/libldap(_r)?((-[0-9\.]+)?)\.so
|
@@ -91,7 +91,7 @@ lib$1 /lib([a-zA-Z]+)([23]D|2D3)(-[0-9\.]+)?\.so
|
|
91
91
|
|
92
92
|
opal/openh323 /lib(32|64)?/lib(opal|h323)_.*_n\.so
|
93
93
|
|
94
|
-
libfmodex /
|
94
|
+
libfmodex /libfmodex[Lp]?-[0-9\.]+\.so
|
95
95
|
|
96
96
|
libossp-uuid /libossp-uuid(_dce)?\.so
|
97
97
|
|
@@ -104,7 +104,7 @@ libk3d /libk3d(ngui|python|sdk)\.so
|
|
104
104
|
|
105
105
|
fftw /lib(32|64)?/lib[ds]?fftw(3[lf]?(_threads)?)?\.so
|
106
106
|
|
107
|
-
CLHEP /lib(32|64)?/libCLHEP(-(Vector|GenericFunctions|Matrix|Random|Geometry))?-[0-9\.]+\.so
|
107
|
+
CLHEP /lib(32|64)?/libCLHEP(-(Vector|GenericFunctions|Matrix|Random|Geometry|Evaluator|Exceptions))?-[0-9\.]+\.so
|
108
108
|
|
109
109
|
mozilla-libs /lib(xpcom(_core|glue)?|xul)(-[0-9\.]+)?\.so
|
110
110
|
lib$7 /lib(32|64)?/(nvu|mozilla-(sunbird|thunderbird)|xulrunner(-devel)?(-[0-9\.]+)?|seamonkey)(/sdk/lib)?/lib([0-9a-zA-Z_]+)(_core)?\.so$
|
@@ -119,13 +119,44 @@ lib$1 /lib(g[dt]k)(-x11)?\.so
|
|
119
119
|
|
120
120
|
libidnkit /libidnkit(lite)?\.so
|
121
121
|
|
122
|
+
libprotobuf /libprotobuf(-lite)?\.so
|
123
|
+
|
124
|
+
libtcmalloc /libtcmalloc(_minimal)?(_(debug|and_profiler))?
|
125
|
+
|
126
|
+
libscintilla /lib(wb|fx|q)?scintilla(2|nolexer)?
|
127
|
+
|
122
128
|
libGL /libGL(ESv2)?\.so
|
123
129
|
|
124
130
|
libzzip /libzzip(mmapped|fseeko)?-0\.so
|
125
131
|
|
132
|
+
lib4ti2 /lib4ti2(gmp|int(32|64))\.so
|
133
|
+
|
134
|
+
libexpat /libexpat[uw]?\.so
|
135
|
+
|
136
|
+
libIce /libIceEC?\.so
|
137
|
+
|
138
|
+
libicu /libicu(uc|cnv)\.so
|
139
|
+
|
140
|
+
libibdm /libibdbm(com)?\.so
|
141
|
+
|
142
|
+
libraw /libraw(_r)?\.so
|
143
|
+
|
144
|
+
libgflash /libgflags(_nothreads)?\.so
|
145
|
+
|
146
|
+
libaal /libaal(-minimal)?\.so
|
147
|
+
|
148
|
+
libsqlite3 /lib(moz)?sqlite3\.so
|
149
|
+
|
150
|
+
LAPACK /libc?lapack\.so
|
151
|
+
|
126
152
|
PKCS#11 /(openpin-)?opensc-pkcs11\.so
|
127
153
|
PKCS#11 /pkcs11-spy\.so
|
128
154
|
|
155
|
+
X11 /bin/X(vfb|fbdev|ephyr|org)
|
156
|
+
|
157
|
+
# Consolidating multiple python site packages
|
158
|
+
python/$1 python[0-9]+\.[0-9]+/(site-packages/.*\.so)$
|
159
|
+
|
129
160
|
# Library consolidation, keep at the end!
|
130
161
|
#
|
131
162
|
# This following line is used to consolidate all libraries that have
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# -*- coding: utf-8 -*-
|
3
|
-
# Copyright © 2007-2010 Diego
|
3
|
+
# Copyright © 2007-2010 Diego Elio Pettenò <flameeyes@flameeyes.eu>
|
4
4
|
#
|
5
5
|
# This program is free software; you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU General Public License as published by
|
@@ -1,22 +1,19 @@
|
|
1
1
|
# Ignore the modules directory.
|
2
|
-
|
2
|
+
/lib(|32|64)/modules/.*
|
3
3
|
|
4
4
|
# Ignore the debug directory
|
5
|
-
|
5
|
+
/usr/lib(|32|64)/debug/.*
|
6
6
|
|
7
7
|
# Common symbols, usually present in every shared object
|
8
8
|
# main is instead present in every executable.
|
9
|
-
.* ^((__libc_csu)?_(init|fini|start)|main|__data_start|_IO_stdin_used|_fp_hw)$
|
9
|
+
.* ^((__libc_csu)?_(init|fini|start)|main|__data_start|_IO_stdin_used|_fp_hw|_edata)$
|
10
10
|
|
11
11
|
# C++ symbols
|
12
|
-
.* ^_Z(d[al]Pv|[nd][aw]
|
12
|
+
.* ^_Z(d[al]Pv|[nd][aw][jm])$
|
13
13
|
|
14
14
|
# ARM EABI symbols
|
15
15
|
.* ^__aeabi_
|
16
16
|
|
17
|
-
# Scratchbox is totally messed up
|
18
|
-
/opt/scratchbox/
|
19
|
-
|
20
17
|
# xine plugins use xine_plugin_info structure as entrypoint
|
21
18
|
.*/xine/plugins/.*/xineplug_.*\.so ^xine_plugin_info$
|
22
19
|
|
@@ -61,17 +58,17 @@
|
|
61
58
|
|
62
59
|
# GTK and GNOME plugins
|
63
60
|
.* ^g_module_check_init$
|
64
|
-
/gtk-
|
65
|
-
/gtk-
|
66
|
-
/gtk-
|
67
|
-
/(gtk
|
68
|
-
/gtk-
|
61
|
+
/gtk-[23]\.0/.*/modules/.*\.so ^gtk_module_init$
|
62
|
+
/gtk-[23]\.0/.*/immodules/im-.*\.so ^im_module_(create|init|exit|list)$
|
63
|
+
/gtk-[23]\.0/.*/engines/.*\.so ^(theme_(create_rc_style|init|exit))$
|
64
|
+
/(gtk|gdk-pixbuf)-[23]\.0/.*/loaders/libpixbuf.*\.so ^(load|fill_(info|vtable)|get_info)$
|
65
|
+
/gtk-[23]\.0/.*/printbackends/.*\.so ^pb_module_(init|create|exit)$
|
69
66
|
/pango/.*/modules/pango-.*\.so ^script_engine_(list|create|init|exit)$
|
70
67
|
/gnome-vfs-2\.0/modules/lib.*\.so ^vfs_module_(init|shutdown)$
|
71
68
|
/libglade/.*/lib.*\.so ^glade_module_register_widgets$
|
72
69
|
/(goffice|gnumeric)/[0-9\.]+/plugins/.*\.so ^go_plugin_(depends|header|init|shutdown)$
|
73
70
|
/evolution/[0-9\.]+/plugins/.*\.so ^e_plugin_lib_enable$
|
74
|
-
/abiword-[0-9\.]+/plugins
|
71
|
+
/abiword-[0-9\.]+/plugins/.*\.so ^abi_plugin_((un)?register|supports_version)$
|
75
72
|
/libgda(-[0-9\.]+)?/providers/lib.*\.so ^plugin_(init|get_(name|description)|create_provider)$
|
76
73
|
/gedit-[0-9]+/plugins/lib.*\.so ^register_gedit_plugin$
|
77
74
|
/brasero/plugins/lib.*\.so ^brasero_plugin_register$
|
@@ -100,8 +97,8 @@
|
|
100
97
|
# Java JNI extensions
|
101
98
|
.* ^JNI_OnLoad$
|
102
99
|
# Sun Java implementation
|
103
|
-
|
104
|
-
/icedtea6
|
100
|
+
/sun-jdk-.*/.* ^JavaMain$
|
101
|
+
/icedtea6?(-bin)?(-[0-9\.]+)?/.* ^JavaMain$
|
105
102
|
|
106
103
|
# ZSH modules
|
107
104
|
.*/zsh/.*/zsh/.*\.so ^(boot|setup|cleanup|finish)_$
|
@@ -160,7 +157,7 @@
|
|
160
157
|
.*/lib(|32|64)/zsh/.*/zsh/.*\.so$ ^(enables|features)_$
|
161
158
|
|
162
159
|
# OSS wrappers and other LD_PRELOAD libraries
|
163
|
-
lib((pulse|esd|arts)dsp|aoss|jackasyn|(soap|sand)box|fake(ch)?root|zzuf|v4l(1compat|2convert)|trash|syncdir|honeyd|tsocks) ^((__)?(m(un)?map(64)?|f?(open(at)?(64)?(_2)?|close))|ioctl|poll|connect|glob|bind|execvp
|
160
|
+
lib((pulse|esd|arts)dsp|aoss|jackasyn|(soap|sand)box|fake(ch)?root|zzuf|v4l(1compat|2convert)|trash|syncdir|honeyd|tsocks) ^((__)?(m(un)?map(64)?|f?(open(at)?(64)?(_2)?|close))|ioctl|poll|connect|glob|bind|execvp?|select)$
|
164
161
|
|
165
162
|
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)?mknod(e|at)|symlink|access|truncate)(64)?(at)?$
|
166
163
|
|
@@ -232,7 +229,7 @@ strigi/strigi[lt]a_.*\.so ^(deleteS|s)trigiAnalyzerFactory$
|
|
232
229
|
/lib(32|64)?/mozart/cache/x-oz/ ^oz_module_name$
|
233
230
|
|
234
231
|
# Netscape/Mozilla plugins
|
235
|
-
.* ^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
|
+
.* ^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|SetException|HasMethod|IdentifierIsString|(Int|UTF8)FromIdentifier|(Remove|Has|Set)Property|Invoke(Default)?|(Create|Retain)Object|ReleaseVariantValue)
|
236
233
|
|
237
234
|
/lib(32|64)?/rep/.*\.so$ ^rep_dl_init$
|
238
235
|
|
@@ -259,7 +256,7 @@ strigi/strigi[lt]a_.*\.so ^(deleteS|s)trigiAnalyzerFactory$
|
|
259
256
|
/lib(32|64)?/libmirage/.*\.so ^mirage_plugin_(un)?load_plugin$
|
260
257
|
/lib(32|64)?/awn/applets/.*/.*\.so ^awl_applet_factory_initp$
|
261
258
|
/lib(32|64)?/rxtx-2/.*\.so ^translate_((data|stop)_bits|parity|speed)$
|
262
|
-
/
|
259
|
+
/php/extensions/.*/.*\.so ^get_module$
|
263
260
|
/lib(32|64)?/licq/licq_.*\.so ^LP_(Build(Date|Time)|ConfigFile|Description|Exit|Init|Main(_tep)?|Name|Status|Usage|Version)$
|
264
261
|
/lib(32|64)?/gambas2?/gb\..*\.so ^GB_(INIT|EXIT|CLASSES)$
|
265
262
|
/lib(32|64)?/SpiralPlugins/.*\.so ^SpiralPlugin_(CreateInstance|Get(GroupName|Icon|ID))$
|
@@ -281,3 +278,10 @@ strigi/strigi[lt]a_.*\.so ^(deleteS|s)trigiAnalyzerFactory$
|
|
281
278
|
/lib(32|64)?/(connman|flimflam)/plugins/.*\.so ^connman_plugin_desc$
|
282
279
|
/lib(32|64)?/pppd/[0-9.]\+/.*\.so ^pppd_version$
|
283
280
|
/lib(32|64)?/device-mapper/.*\.so ^(process_event|(un)?register_device)$
|
281
|
+
/lib(32|64)?/weechat/plugins/.*\.so ^weechat_plugin_((api_)?version|author|description|end|init|license|name)$
|
282
|
+
/lib(32|64)?/leechcraft/plugins/.*\.so ^GetAPILevels$
|
283
|
+
/lib(32|64)?/ADM_plugins/videoFilter/.*\.so ^ADM_VF_getDescriptor$
|
284
|
+
/lib(32|64)?/.*/.*\.so ^peas_register_types$
|
285
|
+
/lib(32|64)?/plugins/.*\.so ^GemRBPlugin_
|
286
|
+
/lib(32|64)?/geany/.*\.so ^plugin_
|
287
|
+
/lib(32|64)?/yafaray/.*\.so ^registerPlugin$
|