summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/poll.h6
-rw-r--r--include/stdio.h21
-rw-r--r--include/stdlib.h3
-rw-r--r--include/string.h36
-rw-r--r--include/strings.h6
-rw-r--r--include/sys/socket.h12
-rw-r--r--include/unistd.h36
-rw-r--r--include/wchar.h48
8 files changed, 56 insertions, 112 deletions
diff --git a/include/poll.h b/include/poll.h
index 05228b8..d00d7c1 100644
--- a/include/poll.h
+++ b/include/poll.h
@@ -11,8 +11,7 @@ extern "C" {
11 11
12#undef poll 12#undef poll
13 13
14extern int __poll_orig(struct pollfd *, nfds_t, int) 14__typeof__(poll) __poll_orig __asm__(__USER_LABEL_PREFIX__ "poll");
15 __asm__(__USER_LABEL_PREFIX__ "poll");
16extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 15extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
17int poll(struct pollfd *fds, nfds_t nfds, int timeout) 16int poll(struct pollfd *fds, nfds_t nfds, int timeout)
18{ 17{
@@ -25,8 +24,7 @@ int poll(struct pollfd *fds, nfds_t nfds, int timeout)
25 24
26#ifdef _GNU_SOURCE 25#ifdef _GNU_SOURCE
27#undef ppoll 26#undef ppoll
28extern int __ppoll_orig(struct pollfd *, nfds_t, const struct timespec *, const sigset_t *) 27__typeof__(ppoll) __ppoll_orig __asm__(__USER_LABEL_PREFIX__ "ppoll");
29 __asm__(__USER_LABEL_PREFIX__ "ppoll");
30extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 28extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
31int ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *timeout, const sigset_t *mask) 29int ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *timeout, const sigset_t *mask)
32{ 30{
diff --git a/include/stdio.h b/include/stdio.h
index 3721c4b..ad80488 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -17,8 +17,7 @@ extern "C" {
17#undef snprintf 17#undef snprintf
18#undef sprintf 18#undef sprintf
19 19
20extern char *__fgets_orig(char *, int, FILE *) 20__typeof__(fgets) __fgets_orig __asm__(__USER_LABEL_PREFIX__ "fgets");
21 __asm__(__USER_LABEL_PREFIX__ "fgets");
22extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 21extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
23char *fgets(char *s, int n, FILE *fp) 22char *fgets(char *s, int n, FILE *fp)
24{ 23{
@@ -29,8 +28,7 @@ char *fgets(char *s, int n, FILE *fp)
29 return __fgets_orig(s, n, fp); 28 return __fgets_orig(s, n, fp);
30} 29}
31 30
32extern size_t __fread_orig(void *, size_t, size_t, FILE *) 31__typeof__(fread) __fread_orig __asm__(__USER_LABEL_PREFIX__ "fread");
33 __asm__(__USER_LABEL_PREFIX__ "fread");
34extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 32extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
35size_t fread(void *dst, size_t n, size_t nmemb, FILE *fp) 33size_t fread(void *dst, size_t n, size_t nmemb, FILE *fp)
36{ 34{
@@ -43,8 +41,7 @@ size_t fread(void *dst, size_t n, size_t nmemb, FILE *fp)
43 return __fread_orig(dst, n, nmemb, fp); 41 return __fread_orig(dst, n, nmemb, fp);
44} 42}
45 43
46extern size_t __fwrite_orig(const void *, size_t, size_t, FILE *) 44__typeof__(fwrite) __fwrite_orig __asm__(__USER_LABEL_PREFIX__ "fwrite");
47 __asm__(__USER_LABEL_PREFIX__ "fwrite");
48extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 45extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
49size_t fwrite(const void *dst, size_t n, size_t nmemb, FILE *fp) 46size_t fwrite(const void *dst, size_t n, size_t nmemb, FILE *fp)
50{ 47{
@@ -57,8 +54,7 @@ size_t fwrite(const void *dst, size_t n, size_t nmemb, FILE *fp)
57 return __fwrite_orig(dst, n, nmemb, fp); 54 return __fwrite_orig(dst, n, nmemb, fp);
58} 55}
59 56
60extern int __vsnprintf_orig(char *, size_t, const char *, __builtin_va_list) 57__typeof__(vsnprintf) __vsnprintf_orig __asm__(__USER_LABEL_PREFIX__ "vsnprintf");
61 __asm__(__USER_LABEL_PREFIX__ "vsnprintf");
62extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 58extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
63int vsnprintf(char *s, size_t n, const char *fmt, __builtin_va_list ap) 59int vsnprintf(char *s, size_t n, const char *fmt, __builtin_va_list ap)
64{ 60{
@@ -69,8 +65,7 @@ int vsnprintf(char *s, size_t n, const char *fmt, __builtin_va_list ap)
69 return __vsnprintf_orig(s, n, fmt, ap); 65 return __vsnprintf_orig(s, n, fmt, ap);
70} 66}
71 67
72extern int __vsprintf_orig(char *, const char *, __builtin_va_list) 68__typeof__(vsprintf) __vsprintf_orig __asm__(__USER_LABEL_PREFIX__ "vsprintf");
73 __asm__(__USER_LABEL_PREFIX__ "vsprintf");
74extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 69extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
75int vsprintf(char *s, const char *fmt, __builtin_va_list ap) 70int vsprintf(char *s, const char *fmt, __builtin_va_list ap)
76{ 71{
@@ -87,8 +82,7 @@ int vsprintf(char *s, const char *fmt, __builtin_va_list ap)
87 return r; 82 return r;
88} 83}
89 84
90extern int __snprintf_orig(char *, size_t, const char *, ...) 85__typeof__(snprintf) __snprintf_orig __asm__(__USER_LABEL_PREFIX__ "snprintf");
91 __asm__(__USER_LABEL_PREFIX__ "snprintf");
92extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 86extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
93int snprintf(char *s, size_t n, const char *fmt, ...) 87int snprintf(char *s, size_t n, const char *fmt, ...)
94{ 88{
@@ -99,8 +93,7 @@ int snprintf(char *s, size_t n, const char *fmt, ...)
99 return __snprintf_orig(s, n, fmt, __builtin_va_arg_pack()); 93 return __snprintf_orig(s, n, fmt, __builtin_va_arg_pack());
100} 94}
101 95
102extern int __sprintf_orig(char *, const char *, ...) 96__typeof__(sprintf) __sprintf_orig __asm__(__USER_LABEL_PREFIX__ "sprintf");
103 __asm__(__USER_LABEL_PREFIX__ "sprintf");
104extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 97extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
105int sprintf(char *s, const char *fmt, ...) 98int sprintf(char *s, const char *fmt, ...)
106{ 99{
diff --git a/include/stdlib.h b/include/stdlib.h
index e2e4380..22f1f2b 100644
--- a/include/stdlib.h
+++ b/include/stdlib.h
@@ -15,8 +15,7 @@ extern "C" {
15 15
16#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 16#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
17#undef realpath 17#undef realpath
18extern char *__realpath_orig(const char *, char *) 18__typeof__(realpath) __realpath_orig __asm__(__USER_LABEL_PREFIX__ "realpath");
19 __asm__(__USER_LABEL_PREFIX__ "realpath");
20extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 19extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
21char *realpath(const char *path, char *resolved) 20char *realpath(const char *path, char *resolved)
22{ 21{
diff --git a/include/string.h b/include/string.h
index e678863..5309cbc 100644
--- a/include/string.h
+++ b/include/string.h
@@ -19,8 +19,7 @@ extern "C" {
19#undef strncat 19#undef strncat
20#undef strncpy 20#undef strncpy
21 21
22extern void *__memcpy_orig(void *, const void *, size_t) 22__typeof__(memcpy) __memcpy_orig __asm__(__USER_LABEL_PREFIX__ "memcpy");
23 __asm__(__USER_LABEL_PREFIX__ "memcpy");
24extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 23extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
25void *memcpy(void *dest, const void *src, size_t n) 24void *memcpy(void *dest, const void *src, size_t n)
26{ 25{
@@ -38,8 +37,7 @@ void *memcpy(void *dest, const void *src, size_t n)
38 return __memcpy_orig(dest, src, n); 37 return __memcpy_orig(dest, src, n);
39} 38}
40 39
41extern void *__memmove_orig(void *, const void *, size_t) 40__typeof__(memmove) __memmove_orig __asm__(__USER_LABEL_PREFIX__ "memmove");
42 __asm__(__USER_LABEL_PREFIX__ "memmove");
43extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 41extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
44void *memmove(void *dest, const void *src, size_t n) 42void *memmove(void *dest, const void *src, size_t n)
45{ 43{
@@ -50,8 +48,7 @@ void *memmove(void *dest, const void *src, size_t n)
50 return __memmove_orig(dest, src, n); 48 return __memmove_orig(dest, src, n);
51} 49}
52 50
53extern void *__memset_orig(void *, int, size_t) 51__typeof__(memset) __memset_orig __asm__(__USER_LABEL_PREFIX__ "memset");
54 __asm__(__USER_LABEL_PREFIX__ "memset");
55extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 52extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
56void *memset(void *dest, int c, size_t n) 53void *memset(void *dest, int c, size_t n)
57{ 54{
@@ -62,8 +59,7 @@ void *memset(void *dest, int c, size_t n)
62 return __memset_orig(dest, c, n); 59 return __memset_orig(dest, c, n);
63} 60}
64 61
65extern char *__stpcpy_orig(char *, const char *) 62__typeof__(stpcpy) __stpcpy_orig __asm__(__USER_LABEL_PREFIX__ "stpcpy");
66 __asm__(__USER_LABEL_PREFIX__ "stpcpy");
67extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 63extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
68char *stpcpy(char *dest, const char *src) 64char *stpcpy(char *dest, const char *src)
69{ 65{
@@ -74,8 +70,7 @@ char *stpcpy(char *dest, const char *src)
74 return __stpcpy_orig(dest, src); 70 return __stpcpy_orig(dest, src);
75} 71}
76 72
77extern char *__stpncpy_orig(char *, const char *, size_t) 73__typeof__(stpncpy) __stpncpy_orig __asm__(__USER_LABEL_PREFIX__ "stpncpy");
78 __asm__(__USER_LABEL_PREFIX__ "stpncpy");
79extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 74extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
80char *stpncpy(char *dest, const char *src, size_t n) 75char *stpncpy(char *dest, const char *src, size_t n)
81{ 76{
@@ -86,8 +81,7 @@ char *stpncpy(char *dest, const char *src, size_t n)
86 return __stpncpy_orig(dest, src, n); 81 return __stpncpy_orig(dest, src, n);
87} 82}
88 83
89extern char *__strcat_orig(char *, const char *) 84__typeof__(strcat) __strcat_orig __asm__(__USER_LABEL_PREFIX__ "strcat");
90 __asm__(__USER_LABEL_PREFIX__ "strcat");
91extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 85extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
92char *strcat(char *dest, const char *src) 86char *strcat(char *dest, const char *src)
93{ 87{
@@ -98,8 +92,7 @@ char *strcat(char *dest, const char *src)
98 return __strcat_orig(dest, src); 92 return __strcat_orig(dest, src);
99} 93}
100 94
101extern char *__strcpy_orig(char *, const char *) 95__typeof__(strcpy) __strcpy_orig __asm__(__USER_LABEL_PREFIX__ "strcpy");
102 __asm__(__USER_LABEL_PREFIX__ "strcpy");
103extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 96extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
104char *strcpy(char *dest, const char *src) 97char *strcpy(char *dest, const char *src)
105{ 98{
@@ -110,8 +103,7 @@ char *strcpy(char *dest, const char *src)
110 return __strcpy_orig(dest, src); 103 return __strcpy_orig(dest, src);
111} 104}
112 105
113extern char *__strncat_orig(char *, const char *, size_t) 106__typeof__(strncat) __strncat_orig __asm__(__USER_LABEL_PREFIX__ "strncat");
114 __asm__(__USER_LABEL_PREFIX__ "strncat");
115extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 107extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
116char *strncat(char *dest, const char *src, size_t n) 108char *strncat(char *dest, const char *src, size_t n)
117{ 109{
@@ -129,8 +121,7 @@ char *strncat(char *dest, const char *src, size_t n)
129 return __strncat_orig(dest, src, n); 121 return __strncat_orig(dest, src, n);
130} 122}
131 123
132extern char *__strncpy_orig(char *, const char *, size_t) 124__typeof__(strncpy) __strncpy_orig __asm__(__USER_LABEL_PREFIX__ "strncpy");
133 __asm__(__USER_LABEL_PREFIX__ "strncpy");
134extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 125extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
135char *strncpy(char *dest, const char *src, size_t n) 126char *strncpy(char *dest, const char *src, size_t n)
136{ 127{
@@ -143,8 +134,7 @@ char *strncpy(char *dest, const char *src, size_t n)
143 134
144#ifdef _GNU_SOURCE 135#ifdef _GNU_SOURCE
145#undef mempcpy 136#undef mempcpy
146extern void *__mempcpy_orig(void *, const void *, size_t n) 137__typeof__(mempcpy) __mempcpy_orig __asm__(__USER_LABEL_PREFIX__ "mempcpy");
147 __asm__(__USER_LABEL_PREFIX__ "mempcpy");
148extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 138extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
149void *mempcpy(void *dest, const void *src, size_t n) 139void *mempcpy(void *dest, const void *src, size_t n)
150{ 140{
@@ -159,8 +149,7 @@ void *mempcpy(void *dest, const void *src, size_t n)
159#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 149#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
160#undef strlcat 150#undef strlcat
161#undef strlcpy 151#undef strlcpy
162extern size_t __strlcat_orig(char *, const char *, size_t) 152__typeof__(strlcat) __strlcat_orig __asm__(__USER_LABEL_PREFIX__ "strlcat");
163 __asm__(__USER_LABEL_PREFIX__ "strlcat");
164extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 153extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
165size_t strlcat(char *dest, const char *src, size_t n) 154size_t strlcat(char *dest, const char *src, size_t n)
166{ 155{
@@ -171,8 +160,7 @@ size_t strlcat(char *dest, const char *src, size_t n)
171 return __strlcat_orig(dest, src, n); 160 return __strlcat_orig(dest, src, n);
172} 161}
173 162
174extern size_t __strlcpy_orig(char *, const char *, size_t) 163__typeof__(strlcpy) __strlcpy_orig __asm__(__USER_LABEL_PREFIX__ "strlcpy");
175 __asm__(__USER_LABEL_PREFIX__ "strlcpy");
176extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 164extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
177size_t strlcpy(char *dest, const char *src, size_t n) 165size_t strlcpy(char *dest, const char *src, size_t n)
178{ 166{
diff --git a/include/strings.h b/include/strings.h
index 02811a3..2a16c60 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -14,8 +14,7 @@ extern "C" {
14 || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700) 14 || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700)
15#undef bcopy 15#undef bcopy
16#undef bzero 16#undef bzero
17extern void __bcopy_orig(const void *, void *, size_t) 17__typeof__(bcopy) __bcopy_orig __asm__(__USER_LABEL_PREFIX__ "bcopy");
18 __asm__(__USER_LABEL_PREFIX__ "bcopy");
19extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 18extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
20void bcopy(const void *src, void *dest, size_t n) 19void bcopy(const void *src, void *dest, size_t n)
21{ 20{
@@ -26,8 +25,7 @@ void bcopy(const void *src, void *dest, size_t n)
26 return __bcopy_orig(src, dest, n); 25 return __bcopy_orig(src, dest, n);
27} 26}
28 27
29extern void __bzero_orig(void *, size_t) 28__typeof__(bzero) __bzero_orig __asm__(__USER_LABEL_PREFIX__ "bzero");
30 __asm__(__USER_LABEL_PREFIX__ "bzero");
31extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 29extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
32void bzero(void *src, size_t n) 30void bzero(void *src, size_t n)
33{ 31{
diff --git a/include/sys/socket.h b/include/sys/socket.h
index 6cd4e81..d7871ae 100644
--- a/include/sys/socket.h
+++ b/include/sys/socket.h
@@ -14,8 +14,7 @@ extern "C" {
14#undef send 14#undef send
15#undef sendto 15#undef sendto
16 16
17extern ssize_t __recv_orig(int, void *, size_t, int) 17__typeof__(recv) __recv_orig __asm__(__USER_LABEL_PREFIX__ "recv");
18 __asm__(__USER_LABEL_PREFIX__ "recv");
19extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 18extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
20ssize_t recv(int sockfd, void *buf, size_t n, int flags) 19ssize_t recv(int sockfd, void *buf, size_t n, int flags)
21{ 20{
@@ -26,8 +25,7 @@ ssize_t recv(int sockfd, void *buf, size_t n, int flags)
26 return __recv_orig(sockfd, buf, n, flags); 25 return __recv_orig(sockfd, buf, n, flags);
27} 26}
28 27
29extern ssize_t __recvfrom_orig(int, void *, size_t, int, struct sockaddr *, socklen_t *) 28__typeof__(recvfrom) __recvfrom_orig __asm__(__USER_LABEL_PREFIX__ "recvfrom");
30 __asm__(__USER_LABEL_PREFIX__ "recvfrom");
31extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 29extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
32ssize_t recvfrom(int sockfd, void *buf, size_t n, int flags, 30ssize_t recvfrom(int sockfd, void *buf, size_t n, int flags,
33 struct sockaddr *sa, socklen_t *salen) 31 struct sockaddr *sa, socklen_t *salen)
@@ -39,8 +37,7 @@ ssize_t recvfrom(int sockfd, void *buf, size_t n, int flags,
39 return __recvfrom_orig(sockfd, buf, n, flags, sa, salen); 37 return __recvfrom_orig(sockfd, buf, n, flags, sa, salen);
40} 38}
41 39
42extern ssize_t __send_orig(int, const void *, size_t, int) 40__typeof__(send) __send_orig __asm__(__USER_LABEL_PREFIX__ "send");
43 __asm__(__USER_LABEL_PREFIX__ "send");
44extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 41extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
45ssize_t send(int sockfd, const void *buf, size_t n, int flags) 42ssize_t send(int sockfd, const void *buf, size_t n, int flags)
46{ 43{
@@ -51,8 +48,7 @@ ssize_t send(int sockfd, const void *buf, size_t n, int flags)
51 return __send_orig(sockfd, buf, n, flags); 48 return __send_orig(sockfd, buf, n, flags);
52} 49}
53 50
54extern ssize_t __sendto_orig(int, const void *, size_t, int, const struct sockaddr *, socklen_t) 51__typeof__(sendto) __sendto_orig __asm__(__USER_LABEL_PREFIX__ "sendto");
55 __asm__(__USER_LABEL_PREFIX__ "sendto");
56extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 52extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
57ssize_t sendto(int sockfd, const void *buf, size_t n, int flags, 53ssize_t sendto(int sockfd, const void *buf, size_t n, int flags,
58 const struct sockaddr *sa, socklen_t salen) 54 const struct sockaddr *sa, socklen_t salen)
diff --git a/include/unistd.h b/include/unistd.h
index df6c676..318fcc5 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -21,8 +21,7 @@ extern "C" {
21#undef ttyname_r 21#undef ttyname_r
22#undef write 22#undef write
23 23
24extern size_t __confstr_orig(int, char *, size_t) 24__typeof__(confstr) __confstr_orig __asm__(__USER_LABEL_PREFIX__ "confstr");
25 __asm__(__USER_LABEL_PREFIX__ "confstr");
26extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 25extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
27size_t confstr(int name, char *buf, size_t len) 26size_t confstr(int name, char *buf, size_t len)
28{ 27{
@@ -33,8 +32,7 @@ size_t confstr(int name, char *buf, size_t len)
33 return __confstr_orig(name, buf, len); 32 return __confstr_orig(name, buf, len);
34} 33}
35 34
36extern char *__getcwd_orig(char *, size_t) 35__typeof__(getcwd) __getcwd_orig __asm__(__USER_LABEL_PREFIX__ "getcwd");
37 __asm__(__USER_LABEL_PREFIX__ "getcwd");
38extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 36extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
39char *getcwd(char *buf, size_t len) 37char *getcwd(char *buf, size_t len)
40{ 38{
@@ -47,8 +45,7 @@ char *getcwd(char *buf, size_t len)
47 45
48#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 46#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
49#undef getdomainname 47#undef getdomainname
50extern int __getdomainname_orig(char *, size_t) 48__typeof__(getdomainname) __getdomainname_orig __asm__(__USER_LABEL_PREFIX__ "getdomainname");
51 __asm__(__USER_LABEL_PREFIX__ "getdomainname");
52extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 49extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
53int getdomainname(char *name, size_t len) 50int getdomainname(char *name, size_t len)
54{ 51{
@@ -60,8 +57,7 @@ int getdomainname(char *name, size_t len)
60} 57}
61#endif 58#endif
62 59
63extern int __getgroups_orig(int, gid_t *) 60__typeof__(getgroups) __getgroups_orig __asm__(__USER_LABEL_PREFIX__ "getgroups");
64 __asm__(__USER_LABEL_PREFIX__ "getgroups");
65extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 61extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
66int getgroups(int len, gid_t *set) 62int getgroups(int len, gid_t *set)
67{ 63{
@@ -72,8 +68,7 @@ int getgroups(int len, gid_t *set)
72 return __getgroups_orig(len, set); 68 return __getgroups_orig(len, set);
73} 69}
74 70
75extern int __gethostname_orig(char *, size_t) 71__typeof__(gethostname) __gethostname_orig __asm__(__USER_LABEL_PREFIX__ "gethostname");
76 __asm__(__USER_LABEL_PREFIX__ "gethostname");
77extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 72extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
78int gethostname(char *name, size_t len) 73int gethostname(char *name, size_t len)
79{ 74{
@@ -84,8 +79,7 @@ int gethostname(char *name, size_t len)
84 return __gethostname_orig(name, len); 79 return __gethostname_orig(name, len);
85} 80}
86 81
87extern int __getlogin_r_orig(char *, size_t) 82__typeof__(getlogin_r) __getlogin_r_orig __asm__(__USER_LABEL_PREFIX__ "getlogin_r");
88 __asm__(__USER_LABEL_PREFIX__ "getlogin_r");
89extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 83extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
90int getlogin_r(char *name, size_t len) 84int getlogin_r(char *name, size_t len)
91{ 85{
@@ -96,8 +90,7 @@ int getlogin_r(char *name, size_t len)
96 return __getlogin_r_orig(name, len); 90 return __getlogin_r_orig(name, len);
97} 91}
98 92
99extern ssize_t __pread_orig(int, void *, size_t, off_t) 93__typeof__(pread) __pread_orig __asm__(__USER_LABEL_PREFIX__ "pread");
100 __asm__(__USER_LABEL_PREFIX__ "pread");
101extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 94extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
102ssize_t pread(int fd, void *buf, size_t n, off_t offset) 95ssize_t pread(int fd, void *buf, size_t n, off_t offset)
103{ 96{
@@ -108,8 +101,7 @@ ssize_t pread(int fd, void *buf, size_t n, off_t offset)
108 return __pread_orig(fd, buf, n, offset); 101 return __pread_orig(fd, buf, n, offset);
109} 102}
110 103
111extern ssize_t __read_orig(int, void *, size_t) 104__typeof__(read) __read_orig __asm__(__USER_LABEL_PREFIX__ "read");
112 __asm__(__USER_LABEL_PREFIX__ "read");
113extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 105extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
114ssize_t read(int fd, void *buf, size_t n) 106ssize_t read(int fd, void *buf, size_t n)
115{ 107{
@@ -120,8 +112,7 @@ ssize_t read(int fd, void *buf, size_t n)
120 return __read_orig(fd, buf, n); 112 return __read_orig(fd, buf, n);
121} 113}
122 114
123extern ssize_t __readlink_orig(const char *, char *, size_t) 115__typeof__(readlink) __readlink_orig __asm__(__USER_LABEL_PREFIX__ "readlink");
124 __asm__(__USER_LABEL_PREFIX__ "readlink");
125extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 116extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
126ssize_t readlink(const char *path, char *buf, size_t n) 117ssize_t readlink(const char *path, char *buf, size_t n)
127{ 118{
@@ -132,8 +123,7 @@ ssize_t readlink(const char *path, char *buf, size_t n)
132 return __readlink_orig(path, buf, n); 123 return __readlink_orig(path, buf, n);
133} 124}
134 125
135extern ssize_t __readlinkat_orig(int, const char *, char *, size_t) 126__typeof__(readlinkat) __readlinkat_orig __asm__(__USER_LABEL_PREFIX__ "readlinkat");
136 __asm__(__USER_LABEL_PREFIX__ "readlinkat");
137extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 127extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
138ssize_t readlinkat(int fd, const char *path, char *buf, size_t n) 128ssize_t readlinkat(int fd, const char *path, char *buf, size_t n)
139{ 129{
@@ -144,8 +134,7 @@ ssize_t readlinkat(int fd, const char *path, char *buf, size_t n)
144 return __readlinkat_orig(fd, path, buf, n); 134 return __readlinkat_orig(fd, path, buf, n);
145} 135}
146 136
147extern int __ttyname_r_orig(int, char *, size_t) 137__typeof__(ttyname_r) __ttyname_r_orig __asm__(__USER_LABEL_PREFIX__ "ttyname_r");
148 __asm__(__USER_LABEL_PREFIX__ "ttyname_r");
149extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 138extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
150int ttyname_r(int fd, char *name, size_t n) 139int ttyname_r(int fd, char *name, size_t n)
151{ 140{
@@ -156,8 +145,7 @@ int ttyname_r(int fd, char *name, size_t n)
156 return __ttyname_r_orig(fd, name, n); 145 return __ttyname_r_orig(fd, name, n);
157} 146}
158 147
159extern ssize_t __write_orig(int, const void *, size_t) 148__typeof__(write) __write_orig __asm__(__USER_LABEL_PREFIX__ "write");
160 __asm__(__USER_LABEL_PREFIX__ "write");
161extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 149extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
162ssize_t write(int fd, const void *buf, size_t n) 150ssize_t write(int fd, const void *buf, size_t n)
163{ 151{
diff --git a/include/wchar.h b/include/wchar.h
index 6742dca..aba1bd8 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -27,8 +27,7 @@ extern "C" {
27#undef wmemmove 27#undef wmemmove
28#undef wmemset 28#undef wmemset
29 29
30extern wchar_t *__fgetws_orig(wchar_t *, int, FILE *) 30__typeof__(fgetws) __fgetws_orig __asm__(__USER_LABEL_PREFIX__ "fgetws");
31 __asm__(__USER_LABEL_PREFIX__ "fgetws");
32extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 31extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
33wchar_t *fgetws(wchar_t *s, int n, FILE *fp) 32wchar_t *fgetws(wchar_t *s, int n, FILE *fp)
34{ 33{
@@ -39,8 +38,7 @@ wchar_t *fgetws(wchar_t *s, int n, FILE *fp)
39 return __fgetws_orig(s, n, fp); 38 return __fgetws_orig(s, n, fp);
40} 39}
41 40
42extern size_t __mbsnrtowcs_orig(wchar_t *, const char **, size_t, size_t, mbstate_t *) 41__typeof__(mbsnrtowcs) __mbsnrtowcs_orig __asm__(__USER_LABEL_PREFIX__ "mbsnrtowcs");
43 __asm__(__USER_LABEL_PREFIX__ "mbsnrtowcs");
44extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 42extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
45size_t mbsnrtowcs(wchar_t *d, const char **s, size_t n, size_t wn, mbstate_t *st) 43size_t mbsnrtowcs(wchar_t *d, const char **s, size_t n, size_t wn, mbstate_t *st)
46{ 44{
@@ -60,8 +58,7 @@ size_t mbsnrtowcs(wchar_t *d, const char **s, size_t n, size_t wn, mbstate_t *st
60 return r; 58 return r;
61} 59}
62 60
63extern size_t __mbsrtowcs_orig(wchar_t *, const char **, size_t, mbstate_t *) 61__typeof__(mbsrtowcs) __mbsrtowcs_orig __asm__(__USER_LABEL_PREFIX__ "mbsrtowcs");
64 __asm__(__USER_LABEL_PREFIX__ "mbsrtowcs");
65extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 62extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
66size_t mbsrtowcs(wchar_t *d, const char **s, size_t wn, mbstate_t *st) 63size_t mbsrtowcs(wchar_t *d, const char **s, size_t wn, mbstate_t *st)
67{ 64{
@@ -75,8 +72,7 @@ size_t mbsrtowcs(wchar_t *d, const char **s, size_t wn, mbstate_t *st)
75 return r; 72 return r;
76} 73}
77 74
78extern size_t __mbstowcs_orig(wchar_t *, const char *, size_t) 75__typeof__(mbstowcs) __mbstowcs_orig __asm__(__USER_LABEL_PREFIX__ "mbstowcs");
79 __asm__(__USER_LABEL_PREFIX__ "mbstowcs");
80extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 76extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
81size_t mbstowcs(wchar_t *ws, const char *s, size_t wn) 77size_t mbstowcs(wchar_t *ws, const char *s, size_t wn)
82{ 78{
@@ -87,8 +83,7 @@ size_t mbstowcs(wchar_t *ws, const char *s, size_t wn)
87 return __mbstowcs_orig(ws, s, wn); 83 return __mbstowcs_orig(ws, s, wn);
88} 84}
89 85
90extern size_t __wcrtomb_orig(char *, wchar_t, mbstate_t *) 86__typeof__(wcrtomb) __wcrtomb_orig __asm__(__USER_LABEL_PREFIX__ "wcrtomb");
91 __asm__(__USER_LABEL_PREFIX__ "wcrtomb");
92extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 87extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
93size_t wcrtomb(char *s, wchar_t wc, mbstate_t *st) 88size_t wcrtomb(char *s, wchar_t wc, mbstate_t *st)
94{ 89{
@@ -99,8 +94,7 @@ size_t wcrtomb(char *s, wchar_t wc, mbstate_t *st)
99 return __wcrtomb_orig(s, wc, st); 94 return __wcrtomb_orig(s, wc, st);
100} 95}
101 96
102extern wchar_t *__wcscat_orig(wchar_t *, const wchar_t *) 97__typeof__(wcscat) __wcscat_orig __asm__(__USER_LABEL_PREFIX__ "wcscat");
103 __asm__(__USER_LABEL_PREFIX__ "wcscat");
104extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 98extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
105wchar_t *wcscat(wchar_t *d, const wchar_t *s) 99wchar_t *wcscat(wchar_t *d, const wchar_t *s)
106{ 100{
@@ -111,8 +105,7 @@ wchar_t *wcscat(wchar_t *d, const wchar_t *s)
111 return __wcscat_orig(d, s); 105 return __wcscat_orig(d, s);
112} 106}
113 107
114extern wchar_t *__wcscpy_orig(wchar_t *, const wchar_t *) 108__typeof__(wcscpy) __wcscpy_orig __asm__(__USER_LABEL_PREFIX__ "wcscpy");
115 __asm__(__USER_LABEL_PREFIX__ "wcscpy");
116extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 109extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
117wchar_t *wcscpy(wchar_t *d, const wchar_t *s) 110wchar_t *wcscpy(wchar_t *d, const wchar_t *s)
118{ 111{
@@ -123,8 +116,7 @@ wchar_t *wcscpy(wchar_t *d, const wchar_t *s)
123 return __wcscpy_orig(d, s); 116 return __wcscpy_orig(d, s);
124} 117}
125 118
126extern wchar_t *__wcsncat_orig(wchar_t *, const wchar_t *, size_t) 119__typeof__(wcsncat) __wcsncat_orig __asm__(__USER_LABEL_PREFIX__ "wcsncat");
127 __asm__(__USER_LABEL_PREFIX__ "wcsncat");
128extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 120extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
129wchar_t *wcsncat(wchar_t *d, const wchar_t *s, size_t n) 121wchar_t *wcsncat(wchar_t *d, const wchar_t *s, size_t n)
130{ 122{
@@ -142,8 +134,7 @@ wchar_t *wcsncat(wchar_t *d, const wchar_t *s, size_t n)
142 return __wcsncat_orig(d, s, n); 134 return __wcsncat_orig(d, s, n);
143} 135}
144 136
145extern wchar_t *__wcsncpy_orig(wchar_t *, const wchar_t *, size_t) 137__typeof__(wcsncpy) __wcsncpy_orig __asm__(__USER_LABEL_PREFIX__ "wcsncpy");
146 __asm__(__USER_LABEL_PREFIX__ "wcsncpy");
147extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 138extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
148wchar_t *wcsncpy(wchar_t *d, const wchar_t *s, size_t n) 139wchar_t *wcsncpy(wchar_t *d, const wchar_t *s, size_t n)
149{ 140{
@@ -154,8 +145,7 @@ wchar_t *wcsncpy(wchar_t *d, const wchar_t *s, size_t n)
154 return __wcsncpy_orig(d, s, n); 145 return __wcsncpy_orig(d, s, n);
155} 146}
156 147
157extern size_t __wcsnrtombs_orig(char *, const wchar_t **, size_t, size_t, mbstate_t *) 148__typeof__(wcsnrtombs) __wcsnrtombs_orig __asm__(__USER_LABEL_PREFIX__ "wcsnrtombs");
158 __asm__(__USER_LABEL_PREFIX__ "wcsnrtombs");
159extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 149extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
160size_t wcsnrtombs(char *d, const wchar_t **s, size_t wn, size_t n, mbstate_t *st) 150size_t wcsnrtombs(char *d, const wchar_t **s, size_t wn, size_t n, mbstate_t *st)
161{ 151{
@@ -175,8 +165,7 @@ size_t wcsnrtombs(char *d, const wchar_t **s, size_t wn, size_t n, mbstate_t *st
175 return r; 165 return r;
176} 166}
177 167
178extern size_t __wcsrtombs_orig(char *, const wchar_t **, size_t, mbstate_t *) 168__typeof__(wcsrtombs) __wcsrtombs_orig __asm__(__USER_LABEL_PREFIX__ "wcsrtombs");
179 __asm__(__USER_LABEL_PREFIX__ "wcsrtombs");
180extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 169extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
181size_t wcsrtombs(char *d, const wchar_t **s, size_t n, mbstate_t *st) 170size_t wcsrtombs(char *d, const wchar_t **s, size_t n, mbstate_t *st)
182{ 171{
@@ -189,8 +178,7 @@ size_t wcsrtombs(char *d, const wchar_t **s, size_t n, mbstate_t *st)
189 return r; 178 return r;
190} 179}
191 180
192extern size_t __wcstombs_orig(char *, const wchar_t *, size_t) 181__typeof__(wcstombs) __wcstombs_orig __asm__(__USER_LABEL_PREFIX__ "wcstombs");
193 __asm__(__USER_LABEL_PREFIX__ "wcstombs");
194extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 182extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
195size_t wcstombs(char *s, const wchar_t *ws, size_t n) 183size_t wcstombs(char *s, const wchar_t *ws, size_t n)
196{ 184{
@@ -201,8 +189,7 @@ size_t wcstombs(char *s, const wchar_t *ws, size_t n)
201 return __wcstombs_orig(s, ws, n); 189 return __wcstombs_orig(s, ws, n);
202} 190}
203 191
204extern int __wctomb_orig(char *, wchar_t) 192__typeof__(wctomb) __wctomb_orig __asm__(__USER_LABEL_PREFIX__ "wctomb");
205 __asm__(__USER_LABEL_PREFIX__ "wctomb");
206extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 193extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
207int wctomb(char *s, wchar_t wc) 194int wctomb(char *s, wchar_t wc)
208{ 195{
@@ -213,8 +200,7 @@ int wctomb(char *s, wchar_t wc)
213 return __wctomb_orig(s, wc); 200 return __wctomb_orig(s, wc);
214} 201}
215 202
216extern wchar_t *__wmemcpy_orig(wchar_t *, const wchar_t *, size_t) 203__typeof__(wmemcpy) __wmemcpy_orig __asm__(__USER_LABEL_PREFIX__ "wmemcpy");
217 __asm__(__USER_LABEL_PREFIX__ "wmemcpy");
218extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 204extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
219wchar_t *wmemcpy(wchar_t *d, const wchar_t *s, size_t n) 205wchar_t *wmemcpy(wchar_t *d, const wchar_t *s, size_t n)
220{ 206{
@@ -225,8 +211,7 @@ wchar_t *wmemcpy(wchar_t *d, const wchar_t *s, size_t n)
225 return __wmemcpy_orig(d, s, n); 211 return __wmemcpy_orig(d, s, n);
226} 212}
227 213
228extern wchar_t *__wmemmove_orig(wchar_t *, const wchar_t *, size_t) 214__typeof__(wmemmove) __wmemmove_orig __asm__(__USER_LABEL_PREFIX__ "wmemmove");
229 __asm__(__USER_LABEL_PREFIX__ "wmemmove");
230extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 215extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
231wchar_t *wmemmove(wchar_t *d, const wchar_t *s, size_t n) 216wchar_t *wmemmove(wchar_t *d, const wchar_t *s, size_t n)
232{ 217{
@@ -237,8 +222,7 @@ wchar_t *wmemmove(wchar_t *d, const wchar_t *s, size_t n)
237 return __wmemmove_orig(d, s, n); 222 return __wmemmove_orig(d, s, n);
238} 223}
239 224
240extern wchar_t *__wmemset_orig(wchar_t *, wchar_t, size_t) 225__typeof__(wmemset) __wmemset_orig __asm__(__USER_LABEL_PREFIX__ "wmemset");
241 __asm__(__USER_LABEL_PREFIX__ "wmemset");
242extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) 226extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
243wchar_t *wmemset(wchar_t *s, wchar_t c, size_t n) 227wchar_t *wmemset(wchar_t *s, wchar_t c, size_t n)
244{ 228{