svn commit: r280959 - in head/lib/libc: include sys

Konstantin Belousov kib at FreeBSD.org
Wed Apr 1 16:55:32 UTC 2015


Author: kib
Date: Wed Apr  1 16:55:30 2015
New Revision: 280959
URL: https://svnweb.freebsd.org/changeset/base/280959

Log:
  Correctly handle __fcntl_compat symbol for the !SYSCALL_COMPAT case.
  Both .weak and .alias assembler directives only work when assembling
  the file which defines the symbol.
  
  Reported and tested by:	andrew
  Sponsored by:	The FreeBSD Foundation
  MFC after:	1 week

Modified:
  head/lib/libc/include/compat.h
  head/lib/libc/sys/fcntl.c

Modified: head/lib/libc/include/compat.h
==============================================================================
--- head/lib/libc/include/compat.h	Wed Apr  1 16:17:58 2015	(r280958)
+++ head/lib/libc/include/compat.h	Wed Apr  1 16:55:30 2015	(r280959)
@@ -44,5 +44,14 @@ __sym_compat(shmctl, freebsd7_shmctl, FB
 
 #undef __sym_compat
 
+#define	__weak_reference(sym,alias)	\
+	.weak	alias;.equ	alias,sym
+
+#ifndef SYSCALL_COMPAT
+__weak_reference(__sys_fcntl,__fcntl_compat)
+#endif
+
+#undef __weak_reference
+
 #endif	/* __LIBC_COMPAT_H__ */
 

Modified: head/lib/libc/sys/fcntl.c
==============================================================================
--- head/lib/libc/sys/fcntl.c	Wed Apr  1 16:17:58 2015	(r280958)
+++ head/lib/libc/sys/fcntl.c	Wed Apr  1 16:55:30 2015	(r280959)
@@ -103,7 +103,4 @@ __fcntl_compat(int fd, int cmd, ...)
 		return (__sys_fcntl(fd, cmd, arg));
 	}
 }
-#else
-__weak_reference(__sys_fcntl, __fcntl_compat);
-__weak_reference(__sys_fcntl, __fcntl);
 #endif


More information about the svn-src-all mailing list