]> git.karo-electronics.de Git - mv-sheeva.git/commitdiff
namespace: add source file location exceptions
authorStephen Hemminger <shemminger@vyatta.com>
Wed, 13 Oct 2010 22:58:30 +0000 (15:58 -0700)
committerMichal Marek <mmarek@suse.cz>
Wed, 27 Oct 2010 22:29:48 +0000 (00:29 +0200)
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>
scripts/namespace.pl

index a71be6b7cdec5b11a8644132f75819941dd2d3c7..fd2d946fae23f6b98c12002c40ea34bd9fc1ca8d 100755 (executable)
@@ -141,6 +141,26 @@ my %nameexception = (
     '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();
@@ -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|")