mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 22:51:42 +00:00
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_begin' => 1,
|
||||||
'__nosave_end' => 1,
|
'__nosave_end' => 1,
|
||||||
'pg0' => 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$/ &&
|
if (/.*\.o$/ &&
|
||||||
! (
|
! (
|
||||||
m:/built-in.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/ia32/ia32.o$:
|
||||||
|| m:arch/ia64/kernel/gate-syms.o$:
|
|| m:arch/ia64/kernel/gate-syms.o$:
|
||||||
|| m:arch/ia64/lib/__divdi3.o$:
|
|| m:arch/ia64/lib/__divdi3.o$:
|
||||||
@ -200,6 +207,7 @@ sub linux_objects
|
|||||||
|| m:^.*/\.tmp_:
|
|| m:^.*/\.tmp_:
|
||||||
|| m:^\.tmp_:
|
|| m:^\.tmp_:
|
||||||
|| m:/vmlinux-obj.o$:
|
|| m:/vmlinux-obj.o$:
|
||||||
|
|| m:^tools/:
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
do_nm($basename, $_);
|
do_nm($basename, $_);
|
||||||
@ -355,20 +363,15 @@ sub list_multiply_defined
|
|||||||
foreach my $name (keys(%def)) {
|
foreach my $name (keys(%def)) {
|
||||||
if ($#{$def{$name}} > 0) {
|
if ($#{$def{$name}} > 0) {
|
||||||
# Special case for cond_syscall
|
# 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" ||
|
if($def{$name}[0] eq "kernel/sys_ni.o" ||
|
||||||
$def{$name}[1] eq "kernel/sys_ni.o") {
|
$def{$name}[1] eq "kernel/sys_ni.o") {
|
||||||
&drop_def("kernel/sys_ni.o", $name);
|
&drop_def("kernel/sys_ni.o", $name);
|
||||||
next;
|
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";
|
printf "$name is multiply defined in :-\n";
|
||||||
foreach my $module (@{$def{$name}}) {
|
foreach my $module (@{$def{$name}}) {
|
||||||
|
Loading…
Reference in New Issue
Block a user