ruby-elf 1.0.6.1 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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$
|