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.
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$