about summary refs log tree commit diff
path: root/rt
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2015-08-21 14:46:05 -0700
committerH.J. Lu <hjl.tools@gmail.com>2015-10-19 10:45:25 -0700
commit6f6e3ee567cbff328df83dcf9ee0a5459746fce0 (patch)
treea61f9d12d5b24e37ac8d4e39c9585e37e0e4f900 /rt
parent2028f49dabb94bd56a85a7be16141bee4853aae6 (diff)
downloadglibc-hjl/i386/master.tar.gz
glibc-hjl/i386/master.tar.xz
glibc-hjl/i386/master.zip
Avoid reading errno in syscall implementations hjl/i386/master
Reading errno is expensive for x86 PIC.  With INTERNAL_SYSCALL,
INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERRNO and
INLINE_SYSCALL_ERROR_RETURN_VALUE, we can avoid reading errno.

There are no code changes on x86-64.  On i686, libc.so sizes in bytes
show:

        text	   data	    bss	    dec
after  1748495	  11380	  11132	  1771007
before 1748403	  11380	  11132	  1770915

	* sysdeps/unix/sysv/linux/eventfd.c (eventfd): Use
	INTERNAL_SYSCALL, INTERNAL_SYSCALL_ERROR_P and
	INTERNAL_SYSCALL_ERRNO to avoid reading errno.
	* sysdeps/unix/sysv/linux/fstatfs64.c (__fstatfs64): Likewise.
	* sysdeps/unix/sysv/linux/getrlimit64.c (__getrlimit64):
	Likewise.
	* sysdeps/unix/sysv/linux/setrlimit64.c (setrlimit64):
	Likewise.
	* sysdeps/unix/sysv/linux/signalfd.c (signalfd): Likewise.
	* sysdeps/unix/sysv/linux/statfs64.c (__statfs64): Likewise.
Diffstat (limited to 'rt')
0 files changed, 0 insertions, 0 deletions