[PATCH 4/4] Improve namespace.pl to get more correct result

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx>
---
 scripts/namespace.pl |   21 ++++++++++++---------
 1 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/scripts/namespace.pl b/scripts/namespace.pl
index bccf610..a71be6b 100755
--- a/scripts/namespace.pl
+++ b/scripts/namespace.pl
@@ -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}}) {
-- 
1.6.5.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux