diff options
author | jilles <jilles@FreeBSD.org> | 2013-08-17 19:24:58 +0000 |
---|---|---|
committer | jilles <jilles@FreeBSD.org> | 2013-08-17 19:24:58 +0000 |
commit | fd29e78a6864b1354fa628a2e1c86403f42edb1c (patch) | |
tree | e6e7bc14dde6fbd106d542a3999fdc26cb10ceea /sys/i386 | |
parent | a8298dcc377707c8e7f1295e9e503cad9057196e (diff) | |
download | FreeBSD-src-fd29e78a6864b1354fa628a2e1c86403f42edb1c.zip FreeBSD-src-fd29e78a6864b1354fa628a2e1c86403f42edb1c.tar.gz |
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.
Diffstat (limited to 'sys/i386')
-rw-r--r-- | sys/i386/include/asm.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/i386/include/asm.h b/sys/i386/include/asm.h index 7ce3d57..cc8bfe0 100644 --- a/sys/i386/include/asm.h +++ b/sys/i386/include/asm.h @@ -49,11 +49,12 @@ popl %ebx #define PIC_PLT(x) x@PLT #define PIC_GOT(x) x@GOT(%ebx) +#define PIC_GOTOFF(x) x@GOTOFF(%ebx) #else #define PIC_PROLOGUE #define PIC_EPILOGUE #define PIC_PLT(x) x -#define PIC_GOT(x) x +#define PIC_GOTOFF(x) x #endif /* |