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.
Files changed (45) hide show
  1. data/DONATING +1 -1
  2. data/bin/cowstats +1 -1
  3. data/bin/elfgrep +55 -16
  4. data/bin/missingstatic +1 -1
  5. data/bin/rbelf-nm +46 -11
  6. data/bin/rbelf-read +4 -6
  7. data/bin/rbelf-size +4 -2
  8. data/bin/verify-lfs +1 -1
  9. data/extras/bindings-parsers.rb +1 -1
  10. data/lib/bytestream-reader.rb +1 -1
  11. data/lib/elf.rb +2 -2
  12. data/lib/elf/dynamic.rb +2 -2
  13. data/lib/elf/file.rb +10 -1
  14. data/lib/elf/gnu.rb +1 -1
  15. data/lib/elf/section.rb +1 -1
  16. data/lib/elf/stringtable.rb +4 -14
  17. data/lib/elf/sunw.rb +1 -1
  18. data/lib/elf/symbol.rb +43 -37
  19. data/lib/elf/symboltable.rb +1 -1
  20. data/lib/elf/tools.rb +3 -2
  21. data/lib/elf/utils/loader.rb +1 -1
  22. data/lib/elf/utils/offsettable.rb +49 -0
  23. data/lib/elf/utils/pool.rb +1 -1
  24. data/lib/elf/value.rb +1 -1
  25. data/manpages/cowstats.1 +2 -2
  26. data/manpages/cowstats.1.xml +1 -1
  27. data/manpages/elfgrep.1 +39 -5
  28. data/manpages/elfgrep.1.xml +53 -2
  29. data/manpages/missingstatic.1 +2 -2
  30. data/manpages/missingstatic.1.xml +1 -1
  31. data/manpages/rbelf-nm.1 +18 -3
  32. data/manpages/rbelf-nm.1.xml +41 -1
  33. data/manpages/rbelf-size.1 +2 -2
  34. data/manpages/rbelf-size.1.xml +1 -1
  35. data/manpages/verify-lfs.1 +2 -2
  36. data/manpages/verify-lfs.1.xml +1 -1
  37. data/tools/assess_duplicate_save.rb +1 -1
  38. data/tools/link-collisions/harvest.rb +19 -9
  39. data/tools/link-collisions/known-broken +7 -18
  40. data/tools/link-collisions/multimplementations +35 -4
  41. data/tools/link-collisions/suppress.rb +1 -1
  42. data/tools/link-collisions/suppressions +22 -18
  43. data/tools/rbelf-lddtree.rb +1 -1
  44. metadata +13 -16
  45. data/lib/elf/symbol/demangler_gcc3.rb +0 -1952
@@ -1,7 +1,7 @@
1
1
  '\" t
2
2
  .\" Title: missingstatic
3
3
  .\" Author:
4
- .\" Generator: DocBook XSL-NS Stylesheets v1.76.0 <http://docbook.sf.net/>
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@gmail.com\&>
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 "Flameeyes" Pettenò <flameeyes@gmail.com>
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
@@ -1,7 +1,7 @@
1
1
  '\" t
2
2
  .\" Title: rbelf-size
3
3
  .\" Author:
4
- .\" Generator: DocBook XSL-NS Stylesheets v1.76.1 <http://docbook.sf.net/>
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@gmail.com\&>
201
+ \fBDiego E. Pettenò\fR <\&flameeyes@flameeyes.eu\&>
187
202
  .RS 4
188
203
  Author and main contributor.
189
204
  .RE
@@ -1,6 +1,6 @@
1
1
  <?xml version='1.0'?>
2
2
  <!--
3
- Copyright © 2011, Diego "Flameeyes" Pettenò <flameeyes@gmail.com>
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>
@@ -1,7 +1,7 @@
1
1
  '\" t
2
2
  .\" Title: rbelf-size
3
3
  .\" Author:
4
- .\" Generator: DocBook XSL-NS Stylesheets v1.76.1 <http://docbook.sf.net/>
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@gmail.com\&>
186
+ \fBDiego E. Pettenò\fR <\&flameeyes@flameeyes.eu\&>
187
187
  .RS 4
188
188
  Author and main contributor.
189
189
  .RE
@@ -1,6 +1,6 @@
1
1
  <?xml version='1.0'?>
2
2
  <!--
3
- Copyright © 2008-2011, Diego "Flameeyes" Pettenò <flameeyes@gmail.com>
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
@@ -1,7 +1,7 @@
1
1
  '\" t
2
2
  .\" Title: verify-lfs
3
3
  .\" Author:
4
- .\" Generator: DocBook XSL-NS Stylesheets v1.76.0 <http://docbook.sf.net/>
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@gmail.com\&>
89
+ \fBDiego E. Pettenò\fR <\&flameeyes@flameeyes.eu\&>
90
90
  .RS 4
91
91
  Author and main contributor.
92
92
  .RE
@@ -1,6 +1,6 @@
1
1
  <?xml version='1.0'?>
2
2
  <!--
3
- Copyright © 2010-2011, Diego "Flameeyes" Pettenò <flameeyes@gmail.com>
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 E. "Flameeyes" Pettenò <flameeyes@gmail.com>
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 E. "Flameeyes" Pettenò <flameeyes@gmail.com>
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.new(multimplementation).read.split(/\r?\n/).collect do |line|
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 LANGUAGE IF EXISTS plpgsql CASCADE;
159
+ DROP EXTENSION IF EXISTS plpgsql CASCADE;
156
160
 
157
- CREATE LANGUAGE plpgsql;
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
- unless ($machines.nil? or $machines.include?(elf.machine)) and
249
- (elf.has_section?('.dynsym') and elf.has_section?('.dynstr') and
250
- elf.has_section?('.dynamic')) and
251
- (elf[".dynsym"].class == Elf::SymbolTable)
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
- ^/usr/lib/byld/
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
- # bash and gdb are known for linking readline statically
165
- /bin/(bash|gdb) ^(_?rl_|readline).*
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
- php5 php5/bin/php(-cgi)?$
20
- php5 apache2/modules/libphp5\.so
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 /lib(32|64)?/libfmodex[Lp]?-[0-9\.]+\.so
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 E. "Flameeyes" Pettenò <flameeyes@gmail.com>
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
- ^/lib(|32|64)/modules/.*
2
+ /lib(|32|64)/modules/.*
3
3
 
4
4
  # Ignore the debug directory
5
- ^/usr/lib(|32|64)/debug/.*
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]j)$
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-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|gdk-pixbuf-2\.0)/.*/loaders/libpixbuf.*\.so ^(load|fill_(info|vtable)|get_info)$
68
- /gtk-2\.0/.*/printbackends/.*\.so ^pb_module_(init|create|exit)$
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/lib.*\.so ^abi_plugin_((un)?register|supports_version)$
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
- ^/opt/sun-jdk-.*/.* ^JavaMain$
104
- /icedtea6/.* ^JavaMain$
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
- /php5/lib/php/extensions/.*/.*\.so ^get_module$
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$