aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@vyatta.com>2010-10-13 18:58:30 -0400
committerMichal Marek <mmarek@suse.cz>2010-10-27 18:29:48 -0400
commit24a54f7974a616385b96cd939e004592e2cea484 (patch)
treee5f1dc91f55ec6396eac077e9a8cf3577bc13af7
parent532cf2907ac3b9c2345d76251764f4f4e602c921 (diff)
namespace: add source file location exceptions
Teach namespace checker about some special case files where the source is in unusual location. This fixes many of the source file not found errors (more can be added), and also prevents false positives for functions not being used. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: Michal Marek <mmarek@suse.cz>
-rwxr-xr-xscripts/namespace.pl24
1 files changed, 24 insertions, 0 deletions
diff --git a/scripts/namespace.pl b/scripts/namespace.pl
index a71be6b7cdec..fd2d946fae23 100755
--- a/scripts/namespace.pl
+++ b/scripts/namespace.pl
@@ -141,6 +141,26 @@ my %nameexception = (
141 'VDSO32_sigreturn' => 1, 141 'VDSO32_sigreturn' => 1,
142); 142);
143 143
144# Files with exceptions to source file location
145my %sourceloc = (
146 'net/dccp/dccp_probe.o' => 'probe',
147 'net/dccp/dccp_ipv4.o' => 'ipv4',
148 'net/dccp/dccp_ipv6.o' => 'ipv6',
149 'net/dccp/dccp_diag.o' => 'diag',
150 'drivers/char/hw_random/rng-core.o' => 'core',
151 'fs/fat/msdos.o' => 'namei_msdos',
152 'fs/fat/vfat.o' => 'namei_vfat',
153 'fs/nfs_common/nfs_acl.o' => 'nfsacl',
154 'sound/soundcore.o' => 'sound_core',
155 'drivers/md/dm-mirror.o' => 'dm-raid1',
156 'drivers/message/i2o/i2o_bus.o' => 'bus-osm',
157 'arch/x86/kvm/kvm-amd.o' => 'svm',
158 'arch/x86/kvm/kvm-intel.o' => 'vmx',
159 'arch/x86/crypto/twofish-x86_64.o' => 'twofish-x86_64-asm_64',
160 'arch/x86/crypto/aes-x86_64.o' => 'aes-x86_64-asm_64',
161 'arch/x86/crypto/aesni-intel.o' => 'aesni-intel_asm',
162 'arch/x86/crypto/salsa20-x86_64.o' => 'salsa20-x86_64-asm_64',
163);
144 164
145&find(\&linux_objects, '.'); # find the objects and do_nm on them 165&find(\&linux_objects, '.'); # find the objects and do_nm on them
146&list_multiply_defined(); 166&list_multiply_defined();
@@ -228,11 +248,15 @@ sub do_nm
228 return; 248 return;
229 } 249 }
230 ($source = $basename) =~ s/\.o$//; 250 ($source = $basename) =~ s/\.o$//;
251
252 $source = $sourceloc{$fullname} if ($sourceloc{$fullname});
253
231 if (-e "$source.c" || -e "$source.S") { 254 if (-e "$source.c" || -e "$source.S") {
232 $source = "$objtree$File::Find::dir/$source"; 255 $source = "$objtree$File::Find::dir/$source";
233 } else { 256 } else {
234 $source = "$srctree$File::Find::dir/$source"; 257 $source = "$srctree$File::Find::dir/$source";
235 } 258 }
259
236 if (! -e "$source.c" && ! -e "$source.S") { 260 if (! -e "$source.c" && ! -e "$source.S") {
237 # No obvious source, exclude the object if it is conglomerate 261 # No obvious source, exclude the object if it is conglomerate
238 open(my $objdumpdata, "$objdump $basename|") 262 open(my $objdumpdata, "$objdump $basename|")