@@ -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}}) {