aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/amd64
diff options
context:
space:
mode:
authorJilles Tjoelker <jilles@FreeBSD.org>2013-08-17 19:24:58 +0000
committerJilles Tjoelker <jilles@FreeBSD.org>2013-08-17 19:24:58 +0000
commit0f3a4d8051afb7f84227842f6dde3bd1e3d20609 (patch)
treee6e7bc14dde6fbd106d542a3999fdc26cb10ceea /lib/libc/amd64
parenta678ca234fef36e4d77b58e073586b7f1c831361 (diff)
downloadsrc-0f3a4d8051afb7f84227842f6dde3bd1e3d20609.tar.gz
src-0f3a4d8051afb7f84227842f6dde3bd1e3d20609.zip
libc: Access _logname_valid more efficiently.
The variable _logname_valid is not exported via the version script; therefore, change C and i386/amd64 assembler code to remove indirection (which allowed interposition). This makes the code slightly smaller and faster. Also, remove #define PIC_GOT from i386/amd64 in !PIC mode. Without PIC, there is no place containing the address of each variable, so there is no possible definition for PIC_GOT.
Notes
Notes: svn path=/head/; revision=254463
Diffstat (limited to 'lib/libc/amd64')
-rw-r--r--lib/libc/amd64/sys/setlogin.S5
1 files changed, 0 insertions, 5 deletions
diff --git a/lib/libc/amd64/sys/setlogin.S b/lib/libc/amd64/sys/setlogin.S
index a451491658d7..73b53641ad73 100644
--- a/lib/libc/amd64/sys/setlogin.S
+++ b/lib/libc/amd64/sys/setlogin.S
@@ -48,12 +48,7 @@ ENTRY(__sys_setlogin)
mov $SYS_setlogin,%rax
KERNCALL
jb HIDENAME(cerror)
-#ifdef PIC
- movq PIC_GOT(CNAME(_logname_valid)),%rdx
- movl $0,(%rdx)
-#else
movl $0,CNAME(_logname_valid)(%rip)
-#endif
ret /* setlogin(name) */
END(__sys_setlogin)