diff options
Diffstat (limited to 'libc/sysdeps/linux/x86_64')
-rw-r--r-- | libc/sysdeps/linux/x86_64/bits/fcntl.h | 2 | ||||
-rw-r--r-- | libc/sysdeps/linux/x86_64/bits/stat.h | 4 | ||||
-rw-r--r-- | libc/sysdeps/linux/x86_64/crt1.S | 6 |
3 files changed, 5 insertions, 7 deletions
diff --git a/libc/sysdeps/linux/x86_64/bits/fcntl.h b/libc/sysdeps/linux/x86_64/bits/fcntl.h index 3547a2046..821b2e3cc 100644 --- a/libc/sysdeps/linux/x86_64/bits/fcntl.h +++ b/libc/sysdeps/linux/x86_64/bits/fcntl.h @@ -259,3 +259,5 @@ extern ssize_t tee (int __fdin, int __fdout, size_t __len, #endif __END_DECLS +/* Include generic Linux declarations. */ +#include <bits/fcntl-linux.h> diff --git a/libc/sysdeps/linux/x86_64/bits/stat.h b/libc/sysdeps/linux/x86_64/bits/stat.h index a7412c8f9..a8c75feaa 100644 --- a/libc/sysdeps/linux/x86_64/bits/stat.h +++ b/libc/sysdeps/linux/x86_64/bits/stat.h @@ -77,7 +77,7 @@ struct stat #else __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */ #endif -#ifdef __USE_MISC +#if defined(__USE_MISC) || defined(__USE_XOPEN2K8) /* Nanosecond resolution timestamps are stored in a format equivalent to 'struct timespec'. This is the type used whenever possible but the Unix namespace rules do not allow the @@ -138,7 +138,7 @@ struct stat64 #endif __blksize_t st_blksize; /* Optimal block size for I/O. */ __blkcnt64_t st_blocks; /* Nr. 512-byte blocks allocated. */ -#ifdef __USE_MISC +#if defined(__USE_MISC) || defined(__USE_XOPEN2K8) /* Nanosecond resolution timestamps are stored in a format equivalent to 'struct timespec'. This is the type used whenever possible but the Unix namespace rules do not allow the diff --git a/libc/sysdeps/linux/x86_64/crt1.S b/libc/sysdeps/linux/x86_64/crt1.S index 701cbf2f6..151aeffeb 100644 --- a/libc/sysdeps/linux/x86_64/crt1.S +++ b/libc/sysdeps/linux/x86_64/crt1.S @@ -83,11 +83,7 @@ _start: #ifdef L_rcrt1 pushq %rdi /* save rdi (but should be 0...) */ pushq %rdx /* store rdx (rtld_fini) */ - xorq %rcx, %rcx /* ensure rcx is 0 */ - addq _start@GOTPCREL(%rip), %rcx /* get offset of _start from beginning of file */ - movq _start@GOTPCREL(%rip), %rax /* get run time address of _start */ - subq %rcx, %rax /* calculate run time load offset */ - movq %rax, %rdi /* load offset -> param 1 */ + lea __ehdr_start(%rip), %rdi /* "Calculate" load address... */ call reloc_static_pie /* relocate dynamic addrs */ xorq %rax, %rax /* cleanup */ popq %rdx |