Skip to content
Snippets Groups Projects
Commit 24a54f79 authored by Stephen Hemminger's avatar Stephen Hemminger Committed by Michal Marek
Browse files

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: default avatarStephen Hemminger <shemminger@vyatta.com>
Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
parent 532cf290
No related branches found
No related tags found
No related merge requests found
...@@ -141,6 +141,26 @@ my %nameexception = ( ...@@ -141,6 +141,26 @@ my %nameexception = (
'VDSO32_sigreturn' => 1, '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 &find(\&linux_objects, '.'); # find the objects and do_nm on them
&list_multiply_defined(); &list_multiply_defined();
...@@ -228,11 +248,15 @@ sub do_nm ...@@ -228,11 +248,15 @@ sub do_nm
return; return;
} }
($source = $basename) =~ s/\.o$//; ($source = $basename) =~ s/\.o$//;
$source = $sourceloc{$fullname} if ($sourceloc{$fullname});
if (-e "$source.c" || -e "$source.S") { if (-e "$source.c" || -e "$source.S") {
$source = "$objtree$File::Find::dir/$source"; $source = "$objtree$File::Find::dir/$source";
} else { } else {
$source = "$srctree$File::Find::dir/$source"; $source = "$srctree$File::Find::dir/$source";
} }
if (! -e "$source.c" && ! -e "$source.S") { if (! -e "$source.c" && ! -e "$source.S") {
# No obvious source, exclude the object if it is conglomerate # No obvious source, exclude the object if it is conglomerate
open(my $objdumpdata, "$objdump $basename|") open(my $objdumpdata, "$objdump $basename|")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment