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