Skip to content

Commit

Permalink
namespace: add source file location exceptions
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Stephen Hemminger authored and Michal Marek committed Oct 27, 2010
1 parent 532cf29 commit 24a54f7
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions scripts/namespace.pl
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,26 @@
'VDSO32_sigreturn' => 1,
);

# Files with exceptions to source file location
my %sourceloc = (
'net/dccp/dccp_probe.o' => 'probe',
'net/dccp/dccp_ipv4.o' => 'ipv4',
'net/dccp/dccp_ipv6.o' => 'ipv6',
'net/dccp/dccp_diag.o' => 'diag',
'drivers/char/hw_random/rng-core.o' => 'core',
'fs/fat/msdos.o' => 'namei_msdos',
'fs/fat/vfat.o' => 'namei_vfat',
'fs/nfs_common/nfs_acl.o' => 'nfsacl',
'sound/soundcore.o' => 'sound_core',
'drivers/md/dm-mirror.o' => 'dm-raid1',
'drivers/message/i2o/i2o_bus.o' => 'bus-osm',
'arch/x86/kvm/kvm-amd.o' => 'svm',
'arch/x86/kvm/kvm-intel.o' => 'vmx',
'arch/x86/crypto/twofish-x86_64.o' => 'twofish-x86_64-asm_64',
'arch/x86/crypto/aes-x86_64.o' => 'aes-x86_64-asm_64',
'arch/x86/crypto/aesni-intel.o' => 'aesni-intel_asm',
'arch/x86/crypto/salsa20-x86_64.o' => 'salsa20-x86_64-asm_64',
);

&find(\&linux_objects, '.'); # find the objects and do_nm on them
&list_multiply_defined();
Expand Down Expand Up @@ -228,11 +248,15 @@ sub do_nm
return;
}
($source = $basename) =~ s/\.o$//;

$source = $sourceloc{$fullname} if ($sourceloc{$fullname});

if (-e "$source.c" || -e "$source.S") {
$source = "$objtree$File::Find::dir/$source";
} else {
$source = "$srctree$File::Find::dir/$source";
}

if (! -e "$source.c" && ! -e "$source.S") {
# No obvious source, exclude the object if it is conglomerate
open(my $objdumpdata, "$objdump $basename|")
Expand Down

0 comments on commit 24a54f7

Please sign in to comment.