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
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to