PERFORCE change 122691 for review

Peter Wemm peter at FreeBSD.org
Mon Jul 2 01:24:45 UTC 2007


http://perforce.freebsd.org/chv.cgi?CH=122691

Change 122691 by peter at peter_overcee on 2007/07/02 01:23:43

	Fix differentiation of RSYSCALL and PSEUDO on arm.  PSEUDO
	was implemented identically to RSYSCALL and caused symbol
	pollution/collisions.

Affected files ...

.. //depot/projects/hammer/lib/libc/arm/SYS.h#4 edit

Differences ...

==== //depot/projects/hammer/lib/libc/arm/SYS.h#4 (text+ko) ====

@@ -56,26 +56,19 @@
 	_SYSCALL_NOERROR(x);						\
 	bcs PIC_SYM(CERROR, PLT)
 
-#define SYSCALL_NOERROR(x)						\
-	_SYSCALL_NOERROR(x)
-
 #define SYSCALL(x)							\
 	_SYSCALL(x)
 
-
-#define PSEUDO_NOERROR(x)						\
-	_SYSCALL_NOERROR(x);						\
+#define PSEUDO(x)							\
+	ENTRY(__CONCAT(__sys_, x));					\
+	.weak _C_LABEL(__CONCAT(_,x));					\
+	.set _C_LABEL(__CONCAT(_,x)),_C_LABEL(__CONCAT(__sys_,x));	\
+	SYSTRAP(x)
+	bcs PIC_SYM(CERROR, PLT)
 	RET
 
-#define PSEUDO(x)							\
+#define RSYSCALL(x)							\
 	_SYSCALL(x);							\
 	RET
 
-
-#define RSYSCALL_NOERROR(x)						\
-	PSEUDO_NOERROR(x)
-
-#define RSYSCALL(x)							\
-	PSEUDO(x)
-
 	.globl  CERROR


More information about the p4-projects mailing list