Fix setfsgid()/setfsuid() for LP32.
These are system calls where the "good" names are camped by
implementations that only work for 16-bit ids, and you need to say "32"
on LP32 to get sensible behavior.
Noticed when disabling CONFIG_UID16 in the kernel.
Bug: http://b/266732373
Test: llvm-objdump -d
Change-Id: Ib1b5822b030c4f86df755b129ec7b435a7f77cd3
diff --git a/libc/SYSCALLS.TXT b/libc/SYSCALLS.TXT
index 1b9054b..08017f1 100644
--- a/libc/SYSCALLS.TXT
+++ b/libc/SYSCALLS.TXT
@@ -26,41 +26,47 @@
# This file is processed by a python script named gensyscalls.py, run via
# genrules in Android.bp.
-int __execve:execve(const char*, char* const*, char* const*) all
+# Calls that have historical 16-bit variants camping on the best names (CONFIG_UID16).
+uid_t getuid:getuid32() lp32
+uid_t getuid:getuid() lp64
+gid_t getgid:getgid32() lp32
+gid_t getgid:getgid() lp64
+uid_t geteuid:geteuid32() lp32
+uid_t geteuid:geteuid() lp64
+gid_t getegid:getegid32() lp32
+gid_t getegid:getegid() lp64
+uid_t getresuid:getresuid32(uid_t* ruid, uid_t* euid, uid_t* suid) lp32
+uid_t getresuid:getresuid(uid_t* ruid, uid_t* euid, uid_t* suid) lp64
+gid_t getresgid:getresgid32(gid_t* rgid, gid_t* egid, gid_t* sgid) lp32
+gid_t getresgid:getresgid(gid_t* rgid, gid_t* egid, gid_t* sgid) lp64
+int getgroups:getgroups32(int, gid_t*) lp32
+int getgroups:getgroups(int, gid_t*) lp64
+int setgid:setgid32(gid_t) lp32
+int setgid:setgid(gid_t) lp64
+int setuid:setuid32(uid_t) lp32
+int setuid:setuid(uid_t) lp64
+int setreuid:setreuid32(uid_t, uid_t) lp32
+int setreuid:setreuid(uid_t, uid_t) lp64
+int setresuid:setresuid32(uid_t, uid_t, uid_t) lp32
+int setresuid:setresuid(uid_t, uid_t, uid_t) lp64
+int setresgid:setresgid32(gid_t, gid_t, gid_t) lp32
+int setresgid:setresgid(gid_t, gid_t, gid_t) lp64
+int setfsgid:setfsgid32(gid_t) lp32
+int setfsgid:setfsgid(gid_t) lp64
+int setfsuid:setfsuid32(uid_t) lp32
+int setfsuid:setfsuid(uid_t) lp64
-uid_t getuid:getuid32() lp32
-uid_t getuid:getuid() lp64
-gid_t getgid:getgid32() lp32
-gid_t getgid:getgid() lp64
-uid_t geteuid:geteuid32() lp32
-uid_t geteuid:geteuid() lp64
-gid_t getegid:getegid32() lp32
-gid_t getegid:getegid() lp64
-uid_t getresuid:getresuid32(uid_t* ruid, uid_t* euid, uid_t* suid) lp32
-uid_t getresuid:getresuid(uid_t* ruid, uid_t* euid, uid_t* suid) lp64
-gid_t getresgid:getresgid32(gid_t* rgid, gid_t* egid, gid_t* sgid) lp32
-gid_t getresgid:getresgid(gid_t* rgid, gid_t* egid, gid_t* sgid) lp64
-ssize_t readahead(int, off64_t, size_t) all
-int getgroups:getgroups32(int, gid_t*) lp32
-int getgroups:getgroups(int, gid_t*) lp64
-pid_t getpgid(pid_t) all
-pid_t getppid() all
-pid_t getsid(pid_t) all
-pid_t setsid() all
-int setgid:setgid32(gid_t) lp32
-int setgid:setgid(gid_t) lp64
-int setuid:setuid32(uid_t) lp32
-int setuid:setuid(uid_t) lp64
-int setreuid:setreuid32(uid_t, uid_t) lp32
-int setreuid:setreuid(uid_t, uid_t) lp64
-int setresuid:setresuid32(uid_t, uid_t, uid_t) lp32
-int setresuid:setresuid(uid_t, uid_t, uid_t) lp64
-int setresgid:setresgid32(gid_t, gid_t, gid_t) lp32
-int setresgid:setresgid(gid_t, gid_t, gid_t) lp64
-void* __brk:brk(void*) all
-int kill(pid_t, int) all
-int tgkill(pid_t tgid, pid_t tid, int sig) all
-int __ptrace:ptrace(int request, int pid, void* addr, void* data) all
+ssize_t readahead(int, off64_t, size_t) all
+pid_t getpgid(pid_t) all
+pid_t getppid() all
+pid_t getsid(pid_t) all
+pid_t setsid() all
+int kill(pid_t, int) all
+int tgkill(pid_t tgid, pid_t tid, int sig) all
+
+void* __brk:brk(void*) all
+int __execve:execve(const char*, char* const*, char* const*) all
+int __ptrace:ptrace(int request, int pid, void* addr, void* data) all
# <sys/resource.h>
int getrusage(int, struct rusage*) all
@@ -336,9 +342,6 @@
int __set_tid_address:set_tid_address(int*) all
-int setfsgid(gid_t) all
-int setfsuid(uid_t) all
-
int setdomainname(const char*, size_t) all
int sethostname(const char*, size_t) all