mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-27 04:53:28 +00:00
MFC: r179358,179434 - make libc's fcntl symbol weak and extend the limited
forward ABI compatibility for fcntl to the thread libraries.
This commit is contained in:
parent
867c58a57c
commit
e1153c3e07
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/stable/7/; revision=179608
@ -494,6 +494,7 @@ FBSDprivate_1.0 {
|
||||
__sys_fchown;
|
||||
_fcntl;
|
||||
__sys_fcntl;
|
||||
__fcntl_compat;
|
||||
_fhopen;
|
||||
__sys_fhopen;
|
||||
_fhstat;
|
||||
|
@ -34,8 +34,10 @@ __FBSDID("$FreeBSD$");
|
||||
#include <sys/syscall.h>
|
||||
#include "libc_private.h"
|
||||
|
||||
__weak_reference(__fcntl_compat, fcntl);
|
||||
|
||||
int
|
||||
fcntl(int fd, int cmd, ...)
|
||||
__fcntl_compat(int fd, int cmd, ...)
|
||||
{
|
||||
va_list args;
|
||||
long arg;
|
||||
|
@ -36,6 +36,8 @@
|
||||
|
||||
__weak_reference(__fcntl, fcntl);
|
||||
|
||||
extern int __fcntl_compat(int fd, int cmd, ...);
|
||||
|
||||
int
|
||||
_fcntl(int fd, int cmd,...)
|
||||
{
|
||||
@ -124,7 +126,7 @@ _fcntl(int fd, int cmd,...)
|
||||
break;
|
||||
default:
|
||||
/* Might want to make va_arg use a union */
|
||||
ret = __sys_fcntl(fd, cmd, va_arg(ap, void *));
|
||||
ret = __fcntl_compat(fd, cmd, va_arg(ap, void *));
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -37,6 +37,7 @@
|
||||
|
||||
LT10_COMPAT_PRIVATE(__fcntl);
|
||||
LT10_COMPAT_DEFAULT(fcntl);
|
||||
extern int __fcntl_compat(int fd, int cmd,...);
|
||||
|
||||
__weak_reference(__fcntl, fcntl);
|
||||
|
||||
@ -68,7 +69,7 @@ __fcntl(int fd, int cmd,...)
|
||||
ret = __sys_fcntl(fd, cmd);
|
||||
break;
|
||||
default:
|
||||
ret = __sys_fcntl(fd, cmd, va_arg(ap, void *));
|
||||
ret = __fcntl_compat(fd, cmd, va_arg(ap, void *));
|
||||
}
|
||||
va_end(ap);
|
||||
|
||||
|
@ -132,6 +132,7 @@ int __aio_suspend(const struct aiocb * const iocbs[], int,
|
||||
int __close(int);
|
||||
int __connect(int, const struct sockaddr *, socklen_t);
|
||||
int __fcntl(int, int,...);
|
||||
extern int __fcntl_compat(int, int,...);
|
||||
int __fsync(int);
|
||||
int __msync(void *, size_t, int);
|
||||
int __nanosleep(const struct timespec *, struct timespec *);
|
||||
@ -253,7 +254,7 @@ __fcntl(int fd, int cmd,...)
|
||||
ret = __sys_fcntl(fd, cmd);
|
||||
break;
|
||||
default:
|
||||
ret = __sys_fcntl(fd, cmd, va_arg(ap, void *));
|
||||
ret = __fcntl_compat(fd, cmd, va_arg(ap, void *));
|
||||
}
|
||||
va_end(ap);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user