mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-14 15:20:04 +00:00
c362135134
nice (XPG3) calls getpriority and setpriority (in XPG4 but not XPG3, i.e. UX-shaded in XPG4). This patch fixes this by making those functions into weak aliases of __* functions and calling the __* versions as needed. Tested for x86_64 and x86 (testsuite, and that disassembly of installed shared libraries is unchanged by this patch). This completes cleaning up the unsorted linknamespace test XFAILs. [BZ #18553] * resource/getpriority.c (getpriority): Rename to __getpriority and define as weak alias of __getpriority. * resource/setpriority.c (setpriority): Rename to __setpriority and define as weak alias of __setpriority. * sysdeps/mach/hurd/getpriority.c (getpriority): Rename to __getpriority and define as weak alias of __getpriority. * sysdeps/mach/hurd/setpriority.c (setpriority): Rename to __setpriority and define as weak alias of __setpriority. * sysdeps/unix/syscalls.list (getpriority): Use __getpriority as strong name. (setpriority): Use __setpriority as strong name. * sysdeps/unix/sysv/linux/getpriority.c (getpriority): Rename to __getpriority and define as weak alias of __getpriority. * include/sys/resource.h (__getpriority): Declare. Use libc_hidden_proto. (__setpriority): Likewise. (getpriority): Don't use libc_hidden_proto. (setpriority): Likewise. * sysdeps/posix/nice.c (nice): Call __getpriority instead of getpriority. Call __setpriority instead of setpriority. * conform/Makefile (test-xfail-XPG3/unistd.h/linknamespace): Remove variable.
28 lines
970 B
C
28 lines
970 B
C
#ifndef _SYS_RESOURCE_H
|
|
#include <resource/sys/resource.h>
|
|
|
|
#ifndef _ISOMAC
|
|
/* Prototypes repeated instead of using __typeof because
|
|
sys/resource.h is included in C++ tests, and declaring functions
|
|
with __typeof and __THROW doesn't work for C++. */
|
|
extern int __getpriority (__priority_which_t __which, id_t __who) __THROW;
|
|
libc_hidden_proto (__getpriority)
|
|
extern int __setpriority (__priority_which_t __which, id_t __who, int __prio)
|
|
__THROW;
|
|
libc_hidden_proto (__setpriority)
|
|
libc_hidden_proto (getrlimit64)
|
|
extern __typeof (getrlimit64) __getrlimit64;
|
|
libc_hidden_proto (__getrlimit64);
|
|
|
|
/* Now define the internal interfaces. */
|
|
extern int __getrlimit (enum __rlimit_resource __resource,
|
|
struct rlimit *__rlimits);
|
|
libc_hidden_proto (__getrlimit)
|
|
extern int __getrusage (enum __rusage_who __who, struct rusage *__usage)
|
|
attribute_hidden;
|
|
|
|
extern int __setrlimit (enum __rlimit_resource __resource,
|
|
const struct rlimit *__rlimits);
|
|
#endif
|
|
#endif
|