forked from Minki/linux
scripts/namespace.pl: improve to get more correct results
Exclude more symbols from arch/x86/vdso/ and arch/x86/boot/; add some more linker-defined symbols into exception list; add other cond_syscalls besides "sys_*". Signed-off-by: Amerigo Wang <amwang@redhat.com> Cc: Stephen Hemminger <shemminger@vyatta.com> Cc: Michal Marek <mmarek@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Michal Marek <mmarek@suse.cz>
This commit is contained in:
parent
e8cf981346
commit
abb4385262
@ -133,6 +133,12 @@ my %nameexception = (
|
||||
'__nosave_begin' => 1,
|
||||
'__nosave_end' => 1,
|
||||
'pg0' => 1,
|
||||
'vdso_enabled' => 1,
|
||||
'__stack_chk_fail' => 1,
|
||||
'VDSO32_PRELINK' => 1,
|
||||
'VDSO32_vsyscall' => 1,
|
||||
'VDSO32_rt_sigreturn'=>1,
|
||||
'VDSO32_sigreturn' => 1,
|
||||
);
|
||||
|
||||
|
||||
@ -157,7 +163,8 @@ sub linux_objects
|
||||
if (/.*\.o$/ &&
|
||||
! (
|
||||
m:/built-in.o$:
|
||||
|| m:arch/x86/kernel/vsyscall-syms.o$:
|
||||
|| m:arch/x86/vdso/:
|
||||
|| m:arch/x86/boot/:
|
||||
|| m:arch/ia64/ia32/ia32.o$:
|
||||
|| m:arch/ia64/kernel/gate-syms.o$:
|
||||
|| m:arch/ia64/lib/__divdi3.o$:
|
||||
@ -200,6 +207,7 @@ sub linux_objects
|
||||
|| m:^.*/\.tmp_:
|
||||
|| m:^\.tmp_:
|
||||
|| m:/vmlinux-obj.o$:
|
||||
|| m:^tools/:
|
||||
)
|
||||
) {
|
||||
do_nm($basename, $_);
|
||||
@ -355,20 +363,15 @@ sub list_multiply_defined
|
||||
foreach my $name (keys(%def)) {
|
||||
if ($#{$def{$name}} > 0) {
|
||||
# Special case for cond_syscall
|
||||
if ($#{$def{$name}} == 1 && $name =~ /^sys_/) {
|
||||
if ($#{$def{$name}} == 1 &&
|
||||
($name =~ /^sys_/ || $name =~ /^compat_sys_/ ||
|
||||
$name =~ /^sys32_/)) {
|
||||
if($def{$name}[0] eq "kernel/sys_ni.o" ||
|
||||
$def{$name}[1] eq "kernel/sys_ni.o") {
|
||||
&drop_def("kernel/sys_ni.o", $name);
|
||||
next;
|
||||
}
|
||||
}
|
||||
# Special case for i386 entry code
|
||||
if ($#{$def{$name}} == 1 && $name =~ /^__kernel_/ &&
|
||||
$def{$name}[0] eq "arch/x86/kernel/vsyscall-int80_32.o" &&
|
||||
$def{$name}[1] eq "arch/x86/kernel/vsyscall-sysenter_32.o") {
|
||||
&drop_def("arch/x86/kernel/vsyscall-sysenter_32.o", $name);
|
||||
next;
|
||||
}
|
||||
|
||||
printf "$name is multiply defined in :-\n";
|
||||
foreach my $module (@{$def{$name}}) {
|
||||
|
Loading…
Reference in New Issue
Block a user