diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/i386')
62 files changed, 213 insertions, 955 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/Dist b/sysdeps/unix/sysv/linux/i386/Dist new file mode 100644 index 0000000000..70253ac9e8 --- /dev/null +++ b/sysdeps/unix/sysv/linux/i386/Dist @@ -0,0 +1,17 @@ +bp-thunks.h +clone.S +olddirent.h +oldgetrlimit64.c +setresuid.c +setresgid.c +setfsuid.c +setfsgid.c +sys/debugreg.h +sys/elf.h +sys/io.h +sys/perm.h +sys/procfs.h +sys/reg.h +sys/user.h +sys/vm86.h +ucontext_i.h diff --git a/sysdeps/unix/sysv/linux/i386/Makefile b/sysdeps/unix/sysv/linux/i386/Makefile index 9e84975635..1ae69407ff 100644 --- a/sysdeps/unix/sysv/linux/i386/Makefile +++ b/sysdeps/unix/sysv/linux/i386/Makefile @@ -1,5 +1,5 @@ ifeq ($(subdir),misc) -sysdep_routines += ioperm iopl vm86 call_pselect6 +sysdep_routines += ioperm iopl vm86 sysdep_headers += sys/elf.h sys/perm.h sys/reg.h sys/vm86.h sys/debugreg.h sys/io.h endif @@ -12,7 +12,3 @@ endif ifeq ($(subdir),resource) sysdep_routines += oldgetrlimit64 endif - -ifeq ($(subdir),stdlib) -gen-as-const-headers += ucontext_i.sym -endif diff --git a/sysdeps/unix/sysv/linux/i386/bits/fcntl.h b/sysdeps/unix/sysv/linux/i386/bits/fcntl.h index 6de33302ee..9065825b98 100644 --- a/sysdeps/unix/sysv/linux/i386/bits/fcntl.h +++ b/sysdeps/unix/sysv/linux/i386/bits/fcntl.h @@ -1,5 +1,5 @@ /* O_*, F_*, FD_* bit values for Linux. - Copyright (C) 1995, 1996, 1997, 1998, 2000, 2004, 2006 + Copyright (C) 1995, 1996, 1997, 1998, 2000, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -22,11 +22,8 @@ # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead." #endif -#include <sys/types.h> -#ifdef __USE_GNU -# include <bits/uio.h> -#endif +#include <sys/types.h> /* open/fcntl - O_SYNC is only implemented on blocks devices and on files located on an ext2 file system */ @@ -99,7 +96,7 @@ # define F_NOTIFY 1026 /* Request notfications on a directory. */ #endif -/* For F_[GET|SET]FD. */ +/* For F_[GET|SET]FL. */ #define FD_CLOEXEC 1 /* actually anything with low bit set goes */ /* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */ @@ -183,55 +180,10 @@ struct flock64 # define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */ #endif - -#ifdef __USE_GNU -/* Flags for SYNC_FILE_RANGE. */ -# define SYNC_FILE_RANGE_WAIT_BEFORE 1 /* Wait upon writeout of all pages - in the range before performing the - write. */ -# define SYNC_FILE_RANGE_WRITE 2 /* Initiate writeout of all those - dirty pages in the range which are - not presently under writeback. */ -# define SYNC_FILE_RANGE_WAIT_AFTER 4 /* Wait upon writeout of all pages in - the range after performing the - write. */ - -/* Flags for SPLICE and VMSPLICE. */ -# define SPLICE_F_MOVE 1 /* Move pages instead of copying. */ -# define SPLICE_F_NONBLOCK 2 /* Don't block on the pipe splicing - (but we may still block on the fd - we splice from/to). */ -# define SPLICE_F_MORE 4 /* Expect more data. */ -# define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */ -#endif - __BEGIN_DECLS -#ifdef __USE_GNU - /* Provide kernel hint to read ahead. */ extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count) __THROW; - -/* Selective file content synch'ing. */ -extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to, - unsigned int __flags); - - -/* Splice address range into a pipe. */ -extern int vmsplice (int __fdout, const struct iovec *__iov, size_t __count, - unsigned int __flags); - -/* Splice two files together. */ -extern int splice (int __fdin, __off64_t *__offin, int __fdout, - __off64_t *__offout, size_t __len, unsigned int __flags) - __THROW; - -/* In-kernel implementation of tee for pipe buffers. */ -extern int tee (int __fdin, int __fdout, size_t __len, unsigned int __flags) - __THROW; - -#endif - __END_DECLS diff --git a/sysdeps/unix/sysv/linux/i386/bits/mman.h b/sysdeps/unix/sysv/linux/i386/bits/mman.h index 00cb982395..1477aa54e2 100644 --- a/sysdeps/unix/sysv/linux/i386/bits/mman.h +++ b/sysdeps/unix/sysv/linux/i386/bits/mman.h @@ -1,5 +1,5 @@ /* Definitions for POSIX memory map interface. Linux/i386 version. - Copyright (C) 1997, 2000, 2003, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 1997, 2000, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -78,7 +78,6 @@ /* Flags for `mremap'. */ #ifdef __USE_GNU # define MREMAP_MAYMOVE 1 -# define MREMAP_FIXED 2 #endif /* Advice to `madvise'. */ @@ -88,9 +87,6 @@ # define MADV_SEQUENTIAL 2 /* Expect sequential page references. */ # define MADV_WILLNEED 3 /* Will need these pages. */ # define MADV_DONTNEED 4 /* Don't need these pages. */ -# define MADV_REMOVE 9 /* Remove these pages and resources. */ -# define MADV_DONTFORK 10 /* Do not inherit across fork. */ -# define MADV_DOFORK 11 /* Do inherit across fork. */ #endif /* The POSIX people had to invent similar names for the same things. */ diff --git a/sysdeps/unix/sysv/linux/i386/call_pselect6.S b/sysdeps/unix/sysv/linux/i386/call_pselect6.S deleted file mode 100644 index a356f1dfa9..0000000000 --- a/sysdeps/unix/sysv/linux/i386/call_pselect6.S +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright (C) 2006 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@redhat.com>, 2006. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <sysdep.h> - -#ifdef __NR_pselect6 - .text -ENTRY(__call_pselect6) - .hidden __call_pselect6 - pushl %ebx - cfi_adjust_cfa_offset (4) - pushl %esi - cfi_adjust_cfa_offset (4) - pushl %edi - cfi_adjust_cfa_offset (4) - pushl %ebp - cfi_adjust_cfa_offset (4) - cfi_rel_offset (ebp, 0) - cfi_rel_offset (edi, 4) - cfi_rel_offset (esi, 8) - cfi_rel_offset (ebx, 12) - - movl $__NR_pselect6, %eax - movl 20(%esp), %ebx - movl 24(%esp), %ecx - movl 28(%esp), %edx - movl 32(%esp), %esi - movl 36(%esp), %edi - movl 40(%esp), %ebp - - /* The syscall handling cannot handle 6 parameters. Yet. */ - int $0x80 - - popl %ebp - cfi_adjust_cfa_offset (-4) - cfi_restore (ebp) - popl %edi - cfi_adjust_cfa_offset (-4) - cfi_restore (edi) - popl %esi - cfi_adjust_cfa_offset (-4) - cfi_restore (esi) - popl %ebx - cfi_adjust_cfa_offset (-4) - cfi_restore (ebx) - - ret -END(__call_pselect6) -#endif diff --git a/sysdeps/unix/sysv/linux/i386/chown.c b/sysdeps/unix/sysv/linux/i386/chown.c index fc6a9c95a1..31a6e0f08a 100644 --- a/sysdeps/unix/sysv/linux/i386/chown.c +++ b/sysdeps/unix/sysv/linux/i386/chown.c @@ -1,5 +1,4 @@ -/* Copyright (C) 1998,1999,2000,2002,2003,2004,2006 - Free Software Foundation, Inc. +/* Copyright (C) 1998,1999,2000,2002,2003,2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -26,7 +25,7 @@ #include <bp-checks.h> #include <linux/posix_types.h> -#include <kernel-features.h> +#include "kernel-features.h" /* In Linux 2.1.x the chown functions have been changed. A new function lchown diff --git a/sysdeps/unix/sysv/linux/i386/clone.S b/sysdeps/unix/sysv/linux/i386/clone.S index 54524ec120..c7d31f7a32 100644 --- a/sysdeps/unix/sysv/linux/i386/clone.S +++ b/sysdeps/unix/sysv/linux/i386/clone.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2000,02,03,04,2005 Free Software Foundation, Inc. +/* Copyright (C) 1996,1997,98,99,2000,02,03,04 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson (rth@tamu.edu) @@ -83,19 +83,12 @@ ENTRY (BP_SYM (__clone)) /* Do the system call */ pushl %ebx - cfi_adjust_cfa_offset (4) pushl %esi - cfi_adjust_cfa_offset (4) pushl %edi - cfi_adjust_cfa_offset (4) - movl TLS+12(%esp),%esi - cfi_rel_offset (esi, 4) movl PTID+12(%esp),%edx movl FLAGS+12(%esp),%ebx - cfi_rel_offset (ebx, 8) movl CTID+12(%esp),%edi - cfi_rel_offset (edi, 0) movl $SYS_ify(clone),%eax #ifdef RESET_PID @@ -103,10 +96,6 @@ ENTRY (BP_SYM (__clone)) movl %ebx, (%ecx) #endif - /* End FDE now, because in the child the unwind info will be - wrong. */ - cfi_endproc - int $0x80 popl %edi popl %esi @@ -136,7 +125,7 @@ L(here): #endif movl %eax, %ebx movl $SYS_ify(exit), %eax - ENTER_KERNEL + int $0x80 #ifdef RESET_PID .subsection 2 @@ -153,7 +142,6 @@ L(nomoregetpid): .previous #endif - cfi_startproc PSEUDO_END (BP_SYM (__clone)) weak_alias (BP_SYM (__clone), BP_SYM (clone)) diff --git a/sysdeps/unix/sysv/linux/i386/dl-cache.h b/sysdeps/unix/sysv/linux/i386/dl-cache.h deleted file mode 100644 index 38a1c7dfb4..0000000000 --- a/sysdeps/unix/sysv/linux/i386/dl-cache.h +++ /dev/null @@ -1,59 +0,0 @@ -/* Support for reading /etc/ld.so.cache files written by Linux ldconfig. - Copyright (C) 2004 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -static inline int -is_ia64 (void) -{ - unsigned int fl1, fl2; - - /* See if we can use cpuid. */ - __asm__ ("pushfl; pushfl; popl %0; movl %0,%1; xorl %2,%0;" - "pushl %0; popfl; pushfl; popl %0; popfl" - : "=&r" (fl1), "=&r" (fl2) - : "i" (0x00200000)); - if (((fl1 ^ fl2) & 0x00200000) == 0) - return 0; - - /* Host supports cpuid. See if cpuid gives capabilities, try - CPUID(0). Preserve %ebx and %ecx; cpuid insn clobbers these, we - don't need their CPUID values here, and %ebx may be the PIC - register. */ - __asm__ ("pushl %%ecx; pushl %%ebx; cpuid; popl %%ebx; popl %%ecx" - : "=a" (fl1) : "0" (0) : "edx", "cc"); - if (fl1 == 0) - return 0; - - /* Invoke CPUID(1), return %edx; caller can examine bits to - determine what's supported. */ - __asm__ ("pushl %%ecx; pushl %%ebx; cpuid; popl %%ebx; popl %%ecx" - : "=d" (fl2), "=a" (fl1) : "1" (1) : "cc"); - return (fl2 & (1 << 30)) != 0; -} - -#define arch_startup(argc, argv) \ - do { \ - /* On IA-64, try to execute 64-bit ldconfig if possible. \ - This is because the badly designed /emul/ia32-linux hack \ - will cause 32-bit ldconfig to do all sorts of weird things. */ \ - if (is_ia64 ()) \ - execv ("/emul/ia32-linux/../../sbin/ldconfig", \ - (char *const *) argv); \ - } while (0) - -#include_next <dl-cache.h> diff --git a/sysdeps/unix/sysv/linux/i386/fchown.c b/sysdeps/unix/sysv/linux/i386/fchown.c index 30299c9609..1f2e389844 100644 --- a/sysdeps/unix/sysv/linux/i386/fchown.c +++ b/sysdeps/unix/sysv/linux/i386/fchown.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000, 2003, 2006 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -23,7 +23,7 @@ #include <sys/syscall.h> #include <linux/posix_types.h> -#include <kernel-features.h> +#include "kernel-features.h" #ifdef __NR_fchown32 # if __ASSUME_32BITUIDS == 0 diff --git a/sysdeps/unix/sysv/linux/i386/fchownat.c b/sysdeps/unix/sysv/linux/i386/fchownat.c deleted file mode 100644 index 34acf10c27..0000000000 --- a/sysdeps/unix/sysv/linux/i386/fchownat.c +++ /dev/null @@ -1,110 +0,0 @@ -/* Copyright (C) 2005, 2006 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <errno.h> -#include <fcntl.h> -#include <stdio.h> -#include <string.h> -#include <unistd.h> - -#include <sysdep.h> -#include <sys/syscall.h> -#include <shlib-compat.h> -#include <bp-checks.h> - -#include <linux/posix_types.h> -#include <kernel-features.h> - - -int -fchownat (int fd, const char *file, uid_t owner, gid_t group, int flag) -{ - int result; - -#ifdef __NR_fchownat -# ifndef __ASSUME_ATFCTS - if (__have_atfcts >= 0) -# endif - { - result = INLINE_SYSCALL (fchownat, 5, fd, file, owner, group, flag); -# ifndef __ASSUME_ATFCTS - if (result == -1 && errno == ENOSYS) - __have_atfcts = -1; - else -# endif - return result; - } -#endif - -#ifndef __ASSUME_ATFCTS - if (flag & ~AT_SYMLINK_NOFOLLOW) - { - __set_errno (EINVAL); - return -1; - } - - char *buf = NULL; - - if (fd != AT_FDCWD && file[0] != '/') - { - size_t filelen = strlen (file); - static const char procfd[] = "/proc/self/fd/%d/%s"; - /* Buffer for the path name we are going to use. It consists of - - the string /proc/self/fd/ - - the file descriptor number - - the file name provided. - The final NUL is included in the sizeof. A bit of overhead - due to the format elements compensates for possible negative - numbers. */ - size_t buflen = sizeof (procfd) + sizeof (int) * 3 + filelen; - buf = alloca (buflen); - - __snprintf (buf, buflen, procfd, fd, file); - file = buf; - } - -# if __ASSUME_32BITUIDS > 0 - /* This implies __ASSUME_LCHOWN_SYSCALL. */ - INTERNAL_SYSCALL_DECL (err); - - if (flag & AT_SYMLINK_NOFOLLOW) - result = INTERNAL_SYSCALL (lchown32, err, 3, CHECK_STRING (file), owner, - group); - else - result = INTERNAL_SYSCALL (chown32, err, 3, CHECK_STRING (file), owner, - group); - - if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 0)) - { - __atfct_seterrno (INTERNAL_SYSCALL_ERRNO (result, err), fd, buf); - return -1; - } -# else - /* Don't inline the rest to avoid unnecessary code duplication. */ - if (flag & AT_SYMLINK_NOFOLLOW) - result = __lchown (file, owner, group); - else - result = __chown (file, owner, group); - if (result < 0) - __atfct_seterrno (errno, fd, buf); -# endif - - return result; - -#endif -} diff --git a/sysdeps/unix/sysv/linux/i386/fcntl.c b/sysdeps/unix/sysv/linux/i386/fcntl.c index b27373d24b..210faba2a7 100644 --- a/sysdeps/unix/sysv/linux/i386/fcntl.c +++ b/sysdeps/unix/sysv/linux/i386/fcntl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000,2002,2003,2004,2006 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -23,7 +23,7 @@ #include <stdarg.h> #include <sys/syscall.h> -#include <kernel-features.h> +#include "../kernel-features.h" #if __ASSUME_FCNTL64 == 0 /* This variable is shared with all files that check for fcntl64. */ diff --git a/sysdeps/unix/sysv/linux/i386/fxstat.c b/sysdeps/unix/sysv/linux/i386/fxstat.c index 281839f964..40787b99e7 100644 --- a/sysdeps/unix/sysv/linux/i386/fxstat.c +++ b/sysdeps/unix/sysv/linux/i386/fxstat.c @@ -1,6 +1,5 @@ /* fxstat using old-style Unix fstat system call. - Copyright (C) 1991,1995-1998,2000,2002,2003,2006 - Free Software Foundation, Inc. + Copyright (C) 1991,1995-1998,2000,2002,2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -31,7 +30,7 @@ #include <sys/syscall.h> #include <bp-checks.h> -#include <kernel-features.h> +#include "kernel-features.h" #include <xstatconv.h> diff --git a/sysdeps/unix/sysv/linux/i386/fxstatat.c b/sysdeps/unix/sysv/linux/i386/fxstatat.c deleted file mode 100644 index 94f6e81186..0000000000 --- a/sysdeps/unix/sysv/linux/i386/fxstatat.c +++ /dev/null @@ -1,176 +0,0 @@ -/* Copyright (C) 2005, 2006 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -/* Ho hum, if fxstatat == fxstatat64 we must get rid of the prototype or gcc - will complain since they don't strictly match. */ -#define __fxstatat64 __fxstatat64_disable - -#include <errno.h> -#include <fcntl.h> -#include <stddef.h> -#include <stdio.h> -#include <string.h> -#include <sys/stat.h> -#include <kernel_stat.h> - -#include <sysdep.h> -#include <sys/syscall.h> -#include <bp-checks.h> - -#include <kernel-features.h> - -#include <xstatconv.h> - -#ifdef __NR_stat64 -# if __ASSUME_STAT64_SYSCALL == 0 -/* The variable is shared between all wrappers around *stat64 calls. */ -extern int __have_no_stat64; -# endif -#endif - - -/* Get information about the file NAME relative to FD in ST. */ -int -__fxstatat (int vers, int fd, const char *file, struct stat *st, int flag) -{ - int result; - INTERNAL_SYSCALL_DECL (err); - struct stat64 st64; - -#ifdef __NR_fstatat64 -# ifndef __ASSUME_ATFCTS - if (__have_atfcts >= 0) -# endif - { - result = INTERNAL_SYSCALL (fstatat64, err, 4, fd, file, &st64, flag); -# ifndef __ASSUME_ATFCTS - if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 1) - && INTERNAL_SYSCALL_ERRNO (result, err) == ENOSYS) - __have_atfcts = -1; - else -# endif - if (!__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 1)) - return __xstat32_conv (vers, &st64, st); - else - { - __set_errno (INTERNAL_SYSCALL_ERRNO (result, err)); - return -1; - } - } -#endif - -#ifndef __ASSUME_ATFCTS - if (__builtin_expect (flag & ~AT_SYMLINK_NOFOLLOW, 0)) - { - __set_errno (EINVAL); - return -1; - } - - char *buf = NULL; - - if (fd != AT_FDCWD && file[0] != '/') - { - size_t filelen = strlen (file); - static const char procfd[] = "/proc/self/fd/%d/%s"; - /* Buffer for the path name we are going to use. It consists of - - the string /proc/self/fd/ - - the file descriptor number - - the file name provided. - The final NUL is included in the sizeof. A bit of overhead - due to the format elements compensates for possible negative - numbers. */ - size_t buflen = sizeof (procfd) + sizeof (int) * 3 + filelen; - buf = alloca (buflen); - - __snprintf (buf, buflen, procfd, fd, file); - file = buf; - } - -# if __ASSUME_STAT64_SYSCALL == 0 - struct kernel_stat kst; -# endif - if (vers == _STAT_VER_KERNEL) - { - if (flag & AT_SYMLINK_NOFOLLOW) - result = INTERNAL_SYSCALL (lstat, err, 2, CHECK_STRING (file), - CHECK_1 ((struct kernel_stat *) st)); - else - result = INTERNAL_SYSCALL (stat, err, 2, CHECK_STRING (file), - CHECK_1 ((struct kernel_stat *) st)); - goto out; - } - -# if __ASSUME_STAT64_SYSCALL > 0 - - if (flag & AT_SYMLINK_NOFOLLOW) - result = INTERNAL_SYSCALL (lstat64, err, 2, CHECK_STRING (file), - __ptrvalue (&st64)); - else - result = INTERNAL_SYSCALL (stat64, err, 2, CHECK_STRING (file), - __ptrvalue (&st64)); - if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) - return __xstat32_conv (vers, &st64, st); -# else -# if defined __NR_stat64 - /* To support 32 bit UIDs, we have to use stat64. The normal stat - call only returns 16 bit UIDs. */ - if (! __have_no_stat64) - { - if (flag & AT_SYMLINK_NOFOLLOW) - result = INTERNAL_SYSCALL (lstat64, err, 2, CHECK_STRING (file), - __ptrvalue (&st64)); - else - result = INTERNAL_SYSCALL (stat64, err, 2, CHECK_STRING (file), - __ptrvalue (&st64)); - - if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) - result = __xstat32_conv (vers, &st64, st); - - if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1) - || INTERNAL_SYSCALL_ERRNO (result, err) != ENOSYS) - goto out; - - __have_no_stat64 = 1; - } -# endif - if (flag & AT_SYMLINK_NOFOLLOW) - result = INTERNAL_SYSCALL (lstat, err, 2, CHECK_STRING (file), - __ptrvalue (&kst)); - else - result = INTERNAL_SYSCALL (stat, err, 2, CHECK_STRING (file), - __ptrvalue (&kst)); - if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) - return __xstat_conv (vers, &kst, st); -# endif /* __ASSUME_STAT64_SYSCALL */ - - out: - if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 0)) - { - __atfct_seterrno (INTERNAL_SYSCALL_ERRNO (result, err), fd, buf); - result = -1; - } - - return result; -#endif -} -libc_hidden_def (__fxstatat) -#ifdef XSTAT_IS_XSTAT64 -# undef __fxstatat64 -strong_alias (__fxstatat, __fxstatat64); -libc_hidden_ver (__fxstatat, __fxstatat64) -#endif diff --git a/sysdeps/unix/sysv/linux/i386/getcontext.S b/sysdeps/unix/sysv/linux/i386/getcontext.S index fe28f1e0e1..68541d5d80 100644 --- a/sysdeps/unix/sysv/linux/i386/getcontext.S +++ b/sysdeps/unix/sysv/linux/i386/getcontext.S @@ -1,5 +1,5 @@ /* Save current context. - Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2001. @@ -63,16 +63,12 @@ ENTRY(__getcontext) /* Save the current signal mask. */ pushl %ebx - cfi_adjust_cfa_offset (4) - cfi_rel_offset (ebx, 0) leal oSIGMASK(%eax), %edx xorl %ecx, %ecx movl $SIG_BLOCK, %ebx movl $__NR_sigprocmask, %eax ENTER_KERNEL popl %ebx - cfi_adjust_cfa_offset (-4) - cfi_restore (ebx) cmpl $-4095, %eax /* Check %eax for error. */ jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */ @@ -82,4 +78,4 @@ L(pseudo_end): ret PSEUDO_END(__getcontext) -weak_alias (__getcontext, getcontext) +weak_alias(__getcontext, getcontext) diff --git a/sysdeps/unix/sysv/linux/i386/getegid.c b/sysdeps/unix/sysv/linux/i386/getegid.c index 31c10cc32f..c54133b359 100644 --- a/sysdeps/unix/sysv/linux/i386/getegid.c +++ b/sysdeps/unix/sysv/linux/i386/getegid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000, 2003, 2006 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -21,7 +21,7 @@ #include <sysdep.h> #include <sys/syscall.h> -#include <kernel-features.h> +#include "kernel-features.h" #ifdef __NR_getegid32 # if __ASSUME_32BITUIDS == 0 diff --git a/sysdeps/unix/sysv/linux/i386/geteuid.c b/sysdeps/unix/sysv/linux/i386/geteuid.c index 53f52687a4..8d56f6c7f8 100644 --- a/sysdeps/unix/sysv/linux/i386/geteuid.c +++ b/sysdeps/unix/sysv/linux/i386/geteuid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000, 2003, 2006 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -21,7 +21,7 @@ #include <sysdep.h> #include <sys/syscall.h> -#include <kernel-features.h> +#include "kernel-features.h" #ifdef __NR_geteuid32 # if __ASSUME_32BITUIDS == 0 diff --git a/sysdeps/unix/sysv/linux/i386/getgid.c b/sysdeps/unix/sysv/linux/i386/getgid.c index 7a7e38d9c0..0ff63580f6 100644 --- a/sysdeps/unix/sysv/linux/i386/getgid.c +++ b/sysdeps/unix/sysv/linux/i386/getgid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000, 2003, 2006 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -22,7 +22,7 @@ #include <sysdep.h> #include <sys/syscall.h> -#include <kernel-features.h> +#include "kernel-features.h" #ifdef __NR_getgid32 # if __ASSUME_32BITUIDS == 0 diff --git a/sysdeps/unix/sysv/linux/i386/getmsg.c b/sysdeps/unix/sysv/linux/i386/getmsg.c index c0efd56369..e6ca88d136 100644 --- a/sysdeps/unix/sysv/linux/i386/getmsg.c +++ b/sysdeps/unix/sysv/linux/i386/getmsg.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 1999, 2003, 2005 Free Software Foundation, Inc. +/* Copyright (C) 1998, 1999, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -34,5 +34,5 @@ getmsg (fildes, ctlptr, dataptr, flagsp) return INLINE_SYSCALL (getpmsg, 5, fildes, ctlptr, dataptr, NULL, flagsp); } #else -# include <streams/getmsg.c> +# include <sysdeps/generic/getmsg.c> #endif diff --git a/sysdeps/unix/sysv/linux/i386/getresgid.c b/sysdeps/unix/sysv/linux/i386/getresgid.c index 393195619f..8028dec3f9 100644 --- a/sysdeps/unix/sysv/linux/i386/getresgid.c +++ b/sysdeps/unix/sysv/linux/i386/getresgid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998,2000,2002,2003,2005,2006 Free Software Foundation, Inc. +/* Copyright (C) 1998, 2000, 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -26,7 +26,7 @@ #include <sys/syscall.h> #include <bp-checks.h> -#include <kernel-features.h> +#include "kernel-features.h" #ifdef __NR_getresgid @@ -81,5 +81,5 @@ libc_hidden_def (__getresgid) weak_alias (__getresgid, getresgid) #else -# include <posix/getresgid.c> +# include <sysdeps/generic/getresgid.c> #endif diff --git a/sysdeps/unix/sysv/linux/i386/getresuid.c b/sysdeps/unix/sysv/linux/i386/getresuid.c index ddd25341b2..6b94bbb66c 100644 --- a/sysdeps/unix/sysv/linux/i386/getresuid.c +++ b/sysdeps/unix/sysv/linux/i386/getresuid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998,2000,2002,2003,2005,2006 Free Software Foundation, Inc. +/* Copyright (C) 1998, 2000, 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -26,7 +26,7 @@ #include <sys/syscall.h> #include <bp-checks.h> -#include <kernel-features.h> +#include "kernel-features.h" #ifdef __NR_getresuid @@ -80,5 +80,5 @@ libc_hidden_def (__getresuid) weak_alias (__getresuid, getresuid) #else -# include <posix/getresuid.c> +# include <sysdeps/generic/getresuid.c> #endif diff --git a/sysdeps/unix/sysv/linux/i386/getrlimit.c b/sysdeps/unix/sysv/linux/i386/getrlimit.c index 59951ac100..38b369bc4f 100644 --- a/sysdeps/unix/sysv/linux/i386/getrlimit.c +++ b/sysdeps/unix/sysv/linux/i386/getrlimit.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2000, 2003, 2006 Free Software Foundation, Inc. +/* Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -24,7 +24,7 @@ #include <shlib-compat.h> #include <bp-checks.h> -#include <kernel-features.h> +#include "kernel-features.h" extern int __new_getrlimit (enum __rlimit_resource resource, struct rlimit *__unbounded rlimits); diff --git a/sysdeps/unix/sysv/linux/i386/getrlimit64.c b/sysdeps/unix/sysv/linux/i386/getrlimit64.c index 2ff175393c..d6ab86f3e4 100644 --- a/sysdeps/unix/sysv/linux/i386/getrlimit64.c +++ b/sysdeps/unix/sysv/linux/i386/getrlimit64.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2000, 2005 Free Software Foundation, Inc. +/* Copyright (C) 1999, 2000 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -18,7 +18,7 @@ #define getrlimit64 __new_getrlimit64 -#include <resource/getrlimit64.c> +#include <sysdeps/generic/getrlimit64.c> #undef getrlimit64 #include <shlib-compat.h> diff --git a/sysdeps/unix/sysv/linux/i386/getuid.c b/sysdeps/unix/sysv/linux/i386/getuid.c index d7be0c3cde..3e5c901ec5 100644 --- a/sysdeps/unix/sysv/linux/i386/getuid.c +++ b/sysdeps/unix/sysv/linux/i386/getuid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000, 2003, 2006 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -22,7 +22,7 @@ #include <sysdep.h> #include <sys/syscall.h> -#include <kernel-features.h> +#include "kernel-features.h" #ifdef __NR_getuid32 # if __ASSUME_32BITUIDS == 0 diff --git a/sysdeps/unix/sysv/linux/i386/glob64.c b/sysdeps/unix/sysv/linux/i386/glob64.c index 18b7f21ae8..d3d1212f05 100644 --- a/sysdeps/unix/sysv/linux/i386/glob64.c +++ b/sysdeps/unix/sysv/linux/i386/glob64.c @@ -19,7 +19,7 @@ #define COMPILE_GLOB64 1 -#include <posix/glob.c> +#include <sysdeps/generic/glob.c> #include "shlib-compat.h" @@ -48,7 +48,7 @@ int __old_glob64 (__const char *__pattern, int __flags, #define GLOB_ONLY_P 1 -#include <posix/glob.c> +#include <sysdeps/generic/glob.c> compat_symbol (libc, __old_glob64, glob64, GLIBC_2_1); #endif diff --git a/sysdeps/unix/sysv/linux/i386/lchown.c b/sysdeps/unix/sysv/linux/i386/lchown.c index fbba0bf1d1..1b217a9451 100644 --- a/sysdeps/unix/sysv/linux/i386/lchown.c +++ b/sysdeps/unix/sysv/linux/i386/lchown.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000,2003,2005,2006 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -24,7 +24,7 @@ #include <bp-checks.h> #include <linux/posix_types.h> -#include <kernel-features.h> +#include "kernel-features.h" #ifdef __NR_lchown # ifdef __NR_lchown32 @@ -70,5 +70,5 @@ __lchown (const char *file, uid_t owner, gid_t group) weak_alias (__lchown, lchown) #else -# include <io/lchown.c> +# include <sysdeps/generic/lchown.c> #endif diff --git a/sysdeps/unix/sysv/linux/i386/lockf64.c b/sysdeps/unix/sysv/linux/i386/lockf64.c index 8b568ff4a3..e066cb26e1 100644 --- a/sysdeps/unix/sysv/linux/i386/lockf64.c +++ b/sysdeps/unix/sysv/linux/i386/lockf64.c @@ -1,5 +1,5 @@ -/* Copyright (C) 1994,1996,1997,1998,1999,2000,2003,2006 - Free Software Foundation, Inc. +/* Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2003 + Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -24,7 +24,7 @@ #include <string.h> #include <sysdep.h> -#include <kernel-features.h> +#include "kernel-features.h" /* lockf is a simplified interface to fcntl's locking facilities. */ diff --git a/sysdeps/unix/sysv/linux/i386/lxstat.c b/sysdeps/unix/sysv/linux/i386/lxstat.c index 5cc96127b5..65ea0bbed0 100644 --- a/sysdeps/unix/sysv/linux/i386/lxstat.c +++ b/sysdeps/unix/sysv/linux/i386/lxstat.c @@ -1,6 +1,6 @@ /* lxstat using old-style Unix lstat system call. - Copyright (C) 1991,1995,1996,1997,1998,2000,2002,2003,2006 - Free Software Foundation, Inc. + Copyright (C) 1991, 1995, 1996, 1997, 1998, 2000, 2002, 2003 + Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -31,7 +31,7 @@ #include <sys/syscall.h> #include <bp-checks.h> -#include <kernel-features.h> +#include "kernel-features.h" #include <xstatconv.h> diff --git a/sysdeps/unix/sysv/linux/i386/makecontext.S b/sysdeps/unix/sysv/linux/i386/makecontext.S index 12ba4e2d67..ec49b74b9a 100644 --- a/sysdeps/unix/sysv/linux/i386/makecontext.S +++ b/sysdeps/unix/sysv/linux/i386/makecontext.S @@ -1,5 +1,5 @@ /* Create new context. - Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 2001,02 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2001. @@ -68,9 +68,7 @@ ENTRY(__makecontext) below). */ #ifdef PIC call 1f - cfi_adjust_cfa_offset (4) 1: popl %ecx - cfi_adjust_cfa_offset (-4) addl $L(exitcode)-1b, %ecx movl %ecx, (%edx) #else @@ -85,7 +83,6 @@ ENTRY(__makecontext) the context 'makecontext' manipulated at the time of the 'makecontext' call. If the pointer is NULL the process must terminate. */ - cfi_endproc L(exitcode): /* This removes the parameters passed to the function given to 'makecontext' from the stack. EBX contains the number of @@ -111,7 +108,6 @@ L(exitcode): /* The 'exit' call should never return. In case it does cause the process to terminate. */ hlt - cfi_startproc END(__makecontext) -weak_alias (__makecontext, makecontext) +weak_alias(__makecontext, makecontext) diff --git a/sysdeps/unix/sysv/linux/i386/mmap.S b/sysdeps/unix/sysv/linux/i386/mmap.S index a1481feeb5..ebb21f3d32 100644 --- a/sysdeps/unix/sysv/linux/i386/mmap.S +++ b/sysdeps/unix/sysv/linux/i386/mmap.S @@ -1,5 +1,4 @@ -/* Copyright (C) 1995,96,97,98,99,2000,2002,2005,2006 - Free Software Foundation, Inc. +/* Copyright (C) 1995,96,97,98,99,2000,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -19,7 +18,7 @@ #include <sysdep.h> -#include <kernel-features.h> +#include "kernel-features.h" #define EINVAL 22 @@ -27,30 +26,22 @@ ENTRY (__mmap) -/* I don't think it is worthwhile trying to use mmap2 whenever it +/* I don't think it is worthwhile trzing to use mmap2 whenever it is available. Only use it when we are sure the syscall exists. */ #ifdef __ASSUME_MMAP2_SYSCALL /* Save registers. */ pushl %ebp - cfi_adjust_cfa_offset (4) pushl %ebx - cfi_adjust_cfa_offset (4) pushl %esi - cfi_adjust_cfa_offset (4) pushl %edi - cfi_adjust_cfa_offset (4) movl 20(%esp), %ebx - cfi_rel_offset (ebx, 8) movl 24(%esp), %ecx movl 28(%esp), %edx movl 32(%esp), %esi - cfi_rel_offset (esi, 4) movl 36(%esp), %edi - cfi_rel_offset (edi, 0) movl 40(%esp), %ebp - cfi_rel_offset (ebp, 12) testl $0xfff, %ebp movl $-EINVAL, %eax jne L(skip) @@ -63,23 +54,14 @@ ENTRY (__mmap) L(skip): /* Restore registers. */ popl %edi - cfi_adjust_cfa_offset (-4) - cfi_restore (edi) popl %esi - cfi_adjust_cfa_offset (-4) - cfi_restore (esi) popl %ebx - cfi_adjust_cfa_offset (-4) - cfi_restore (ebx) popl %ebp - cfi_adjust_cfa_offset (-4) - cfi_restore (ebp) #else /* Save registers. */ movl %ebx, %edx - cfi_register (ebx, edx) movl $SYS_ify(mmap), %eax /* System call number in %eax. */ @@ -90,7 +72,6 @@ L(skip): /* Restore registers. */ movl %edx, %ebx - cfi_restore (ebx) #endif diff --git a/sysdeps/unix/sysv/linux/i386/mmap64.S b/sysdeps/unix/sysv/linux/i386/mmap64.S index f53e6e8c68..3a03335814 100644 --- a/sysdeps/unix/sysv/linux/i386/mmap64.S +++ b/sysdeps/unix/sysv/linux/i386/mmap64.S @@ -1,5 +1,4 @@ -/* Copyright (C) 1995,96,97,98,99,2000,2002,2005,2006 - Free Software Foundation, Inc. +/* Copyright (C) 1995,96,97,98,99,2000,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -21,7 +20,7 @@ #include <bp-sym.h> #include <bp-asm.h> -#include <kernel-features.h> +#include "kernel-features.h" #define EINVAL 22 #define ENOSYS 38 @@ -43,13 +42,9 @@ ENTRY (BP_SYM (__mmap64)) /* Save registers. */ pushl %ebp - cfi_adjust_cfa_offset (4) pushl %ebx - cfi_adjust_cfa_offset (4) pushl %esi - cfi_adjust_cfa_offset (4) pushl %edi - cfi_adjust_cfa_offset (4) movl OFFLO(%esp), %edx movl OFFHI(%esp), %ecx @@ -59,16 +54,12 @@ ENTRY (BP_SYM (__mmap64)) shrl $12, %ecx jne L(einval) movl %edx, %ebp - cfi_rel_offset (ebp, 12) movl ADDR(%esp), %ebx - cfi_rel_offset (ebx, 8) movl LEN(%esp), %ecx movl PROT(%esp), %edx movl FLAGS(%esp), %esi - cfi_rel_offset (esi, 4) movl FD(%esp), %edi - cfi_rel_offset (edi, 0) movl $SYS_ify(mmap2), %eax /* System call number in %eax. */ @@ -78,17 +69,9 @@ L(do_syscall): /* Restore registers. */ popl %edi - cfi_adjust_cfa_offset (-4) - cfi_restore (edi) popl %esi - cfi_adjust_cfa_offset (-4) - cfi_restore (esi) popl %ebx - cfi_adjust_cfa_offset (-4) - cfi_restore (ebx) popl %ebp - cfi_adjust_cfa_offset (-4) - cfi_restore (ebp) #ifndef __ASSUME_MMAP2_SYSCALL 2: @@ -104,25 +87,12 @@ L(do_syscall): L(pseudo_end): ret - cfi_adjust_cfa_offset (16) - cfi_rel_offset (ebp, 12) - cfi_rel_offset (ebx, 8) - cfi_rel_offset (esi, 4) - cfi_rel_offset (edi, 0) /* This means the offset value is too large. */ L(einval): popl %edi - cfi_adjust_cfa_offset (-4) - cfi_restore (edi) popl %esi - cfi_adjust_cfa_offset (-4) - cfi_restore (esi) popl %ebx - cfi_adjust_cfa_offset (-4) - cfi_restore (ebx) popl %ebp - cfi_adjust_cfa_offset (-4) - cfi_restore (ebp) movl $-EINVAL, %eax jmp SYSCALL_ERROR_LABEL #endif @@ -131,7 +101,6 @@ L(einval): 3: /* Save registers. */ movl %ebx, %edx - cfi_register (ebx, edx) cmpl $0, OFFHI-SVRSP(%esp) jne L(einval2) @@ -145,7 +114,6 @@ L(einval): /* Restore registers. */ movl %edx, %ebx - cfi_restore (ebx) /* If 0 > %eax > -4096 there was an error. */ cmpl $-4096, %eax @@ -157,10 +125,8 @@ L(pseudo_end): #endif ret - cfi_register (ebx, edx) L(einval2): movl %edx, %ebx - cfi_restore (ebx) movl $-EINVAL, %eax jmp SYSCALL_ERROR_LABEL #endif diff --git a/sysdeps/unix/sysv/linux/i386/msgctl.c b/sysdeps/unix/sysv/linux/i386/msgctl.c index afecc49dd7..108da8a987 100644 --- a/sysdeps/unix/sysv/linux/i386/msgctl.c +++ b/sysdeps/unix/sysv/linux/i386/msgctl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995,1997,1998,2000,2004,2006 Free Software Foundation, Inc. +/* Copyright (C) 1995, 1997, 1998, 2000, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995. @@ -26,7 +26,7 @@ #include <sys/syscall.h> #include <bp-checks.h> -#include <kernel-features.h> +#include "kernel-features.h" #include <shlib-compat.h> struct __old_msqid_ds diff --git a/sysdeps/unix/sysv/linux/i386/posix_fadvise64.S b/sysdeps/unix/sysv/linux/i386/posix_fadvise64.S index 092a3bfb97..99a3ea536d 100644 --- a/sysdeps/unix/sysv/linux/i386/posix_fadvise64.S +++ b/sysdeps/unix/sysv/linux/i386/posix_fadvise64.S @@ -1,5 +1,4 @@ -/* Copyright (C) 1995-2000,2002,2003,2004,2005,2006 - Free Software Foundation, Inc. +/* Copyright (C) 1995-2000,2002,2003,2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -21,7 +20,7 @@ #include <bp-sym.h> #include <bp-asm.h> -#include <kernel-features.h> +#include "kernel-features.h" #define EINVAL 22 #define ENOSYS 38 @@ -43,41 +42,25 @@ ENTRY (BP_SYM (__posix_fadvise64_l64)) /* Save registers. */ pushl %ebp - cfi_adjust_cfa_offset (4) pushl %ebx - cfi_adjust_cfa_offset (4) pushl %esi - cfi_adjust_cfa_offset (4) pushl %edi - cfi_adjust_cfa_offset (4) movl FD(%esp), %ebx - cfi_rel_offset (ebx, 8) movl OFFLO(%esp), %ecx movl OFFHI(%esp), %edx movl LENLO(%esp), %esi - cfi_rel_offset (esi, 4) movl LENHI(%esp), %edi - cfi_rel_offset (edi, 0) movl FLAGS(%esp), %ebp - cfi_rel_offset (ebp, 12) movl $SYS_ify(fadvise64_64), %eax ENTER_KERNEL /* Restore registers. */ popl %edi - cfi_adjust_cfa_offset (-4) - cfi_restore (edi) popl %esi - cfi_adjust_cfa_offset (-4) - cfi_restore (esi) popl %ebx - cfi_adjust_cfa_offset (-4) - cfi_restore (ebx) popl %ebp - cfi_adjust_cfa_offset (-4) - cfi_restore (ebp) #ifndef __ASSUME_FADVISE64_64_SYSCALL cmpl $-ENOSYS, %eax @@ -97,11 +80,8 @@ ENTRY (BP_SYM (__posix_fadvise64_l64)) && (!defined __ASSUME_FADVISE64_64_SYSCALL || !defined __NR_fadvise64_64) 1: /* Save registers. */ pushl %ebx - cfi_adjust_cfa_offset (4) pushl %esi - cfi_adjust_cfa_offset (4) pushl %edi - cfi_adjust_cfa_offset (4) /* Overflow check. */ cmpl $0, LENHI(%esp) @@ -109,13 +89,10 @@ ENTRY (BP_SYM (__posix_fadvise64_l64)) jne L(overflow) movl FD(%esp), %ebx - cfi_rel_offset (ebx, 8) movl OFFLO(%esp), %ecx movl OFFHI(%esp), %edx movl LENLO(%esp), %esi - cfi_rel_offset (esi, 4) movl FLAGS(%esp), %edi - cfi_rel_offset (edi, 0) movl $SYS_ify(fadvise64), %eax ENTER_KERNEL @@ -123,14 +100,8 @@ ENTRY (BP_SYM (__posix_fadvise64_l64)) /* Restore registers. */ L(overflow): popl %edi - cfi_adjust_cfa_offset (-4) - cfi_restore (edi) popl %esi - cfi_adjust_cfa_offset (-4) - cfi_restore (esi) popl %ebx - cfi_adjust_cfa_offset (-4) - cfi_restore (ebx) /* If 0 > %eax > -4096 there was an error. */ negl %eax diff --git a/sysdeps/unix/sysv/linux/i386/pselect.c b/sysdeps/unix/sysv/linux/i386/pselect.c deleted file mode 100644 index 2646608786..0000000000 --- a/sysdeps/unix/sysv/linux/i386/pselect.c +++ /dev/null @@ -1,18 +0,0 @@ -#include <sys/select.h> - -extern int __call_pselect6 (int nfds, fd_set *readfds, fd_set *writefds, - fd_set *exceptfds, const struct timespec *timeout, - void *data) attribute_hidden; - - -#define CALL_PSELECT6(nfds, readfds, writefds, exceptfds, timeout, data) \ - ({ int r = __call_pselect6 (nfds, readfds, writefds, exceptfds, timeout, \ - data); \ - if (r < 0 && r > -4096) \ - { \ - __set_errno (-r); \ - r = -1; \ - } \ - r; }) - -#include "../pselect.c" diff --git a/sysdeps/unix/sysv/linux/i386/putmsg.c b/sysdeps/unix/sysv/linux/i386/putmsg.c index 04fd159b7c..e7b7a08b55 100644 --- a/sysdeps/unix/sysv/linux/i386/putmsg.c +++ b/sysdeps/unix/sysv/linux/i386/putmsg.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 1999, 2003, 2005 Free Software Foundation, Inc. +/* Copyright (C) 1998, 1999, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -34,5 +34,5 @@ putmsg (fildes, ctlptr, dataptr, flags) return INLINE_SYSCALL (putpmsg, 5, fildes, ctlptr, dataptr, -1, flags); } #else -# include <streams/putmsg.c> +# include <sysdeps/generic/putmsg.c> #endif diff --git a/sysdeps/unix/sysv/linux/i386/readelflib.c b/sysdeps/unix/sysv/linux/i386/readelflib.c index a6374e61d2..6852f2a9a9 100644 --- a/sysdeps/unix/sysv/linux/i386/readelflib.c +++ b/sysdeps/unix/sysv/linux/i386/readelflib.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2000, 2001, 2005 Free Software Foundation, Inc. +/* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Andreas Jaeger <aj@suse.de>, 1999 and Jakub Jelinek <jakub@redhat.com>, 2000. @@ -73,10 +73,10 @@ process_elf_file (const char *file_name, const char *lib, int *flag, #undef process_elf_file #define process_elf_file process_elf32_file #define __ELF_NATIVE_CLASS 32 -#include "elf/readelflib.c" +#include "sysdeps/generic/readelflib.c" #undef __ELF_NATIVE_CLASS #undef process_elf_file #define process_elf_file process_elf64_file #define __ELF_NATIVE_CLASS 64 -#include "elf/readelflib.c" +#include "sysdeps/generic/readelflib.c" diff --git a/sysdeps/unix/sysv/linux/i386/semctl.c b/sysdeps/unix/sysv/linux/i386/semctl.c index 1693cd47c4..14bfac613c 100644 --- a/sysdeps/unix/sysv/linux/i386/semctl.c +++ b/sysdeps/unix/sysv/linux/i386/semctl.c @@ -1,5 +1,4 @@ -/* Copyright (C) 1995,1997,1998,2000,2003,2004,2006 - Free Software Foundation, Inc. +/* Copyright (C) 1995,1997,1998,2000,2003,2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995. @@ -27,7 +26,7 @@ #include <string.h> #include <sys/syscall.h> -#include <kernel-features.h> +#include "kernel-features.h" #include <shlib-compat.h> struct __old_semid_ds diff --git a/sysdeps/unix/sysv/linux/i386/semtimedop.S b/sysdeps/unix/sysv/linux/i386/semtimedop.S index 0893c6a654..572641675f 100644 --- a/sysdeps/unix/sysv/linux/i386/semtimedop.S +++ b/sysdeps/unix/sysv/linux/i386/semtimedop.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2003, 2005 Free Software Foundation, Inc. +/* Copyright (C) 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2003. @@ -32,34 +32,22 @@ ENTRY (BP_SYM (semtimedop)) pushl %ebp - cfi_adjust_cfa_offset (4) pushl %ebx - cfi_adjust_cfa_offset (4) pushl %edi - cfi_adjust_cfa_offset (4) movl $SYSOP_semtimedop, %ebx - cfi_rel_offset (ebx, 4) movl SEMID(%esp), %ecx movl NSOPS(%esp), %edx movl SOPS(%esp), %edi - cfi_rel_offset (edi, 0) movl TIMEOUT(%esp), %ebp - cfi_rel_offset (ebp, 8) movl $__NR_ipc, %eax ENTER_KERNEL /* Restore registers. */ popl %edi - cfi_adjust_cfa_offset (-4) - cfi_restore (edi) popl %ebx - cfi_adjust_cfa_offset (-4) - cfi_restore (ebx) popl %ebp - cfi_adjust_cfa_offset (-4) - cfi_restore (ebp) /* If 0 > %eax > -4096 there was an error. */ cmpl $-4096, %eax diff --git a/sysdeps/unix/sysv/linux/i386/setcontext.S b/sysdeps/unix/sysv/linux/i386/setcontext.S index bf2d7d2bad..ebed2ce572 100644 --- a/sysdeps/unix/sysv/linux/i386/setcontext.S +++ b/sysdeps/unix/sysv/linux/i386/setcontext.S @@ -1,5 +1,5 @@ /* Install given context. - Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2001. @@ -31,16 +31,12 @@ ENTRY(__setcontext) the system call fails and we return from the function with an error. */ pushl %ebx - cfi_adjust_cfa_offset (4) xorl %edx, %edx leal oSIGMASK(%eax), %ecx movl $SIG_SETMASK, %ebx - cfi_rel_offset (ebx, 0) movl $__NR_sigprocmask, %eax ENTER_KERNEL popl %ebx - cfi_adjust_cfa_offset (-4) - cfi_restore (ebx) cmpl $-4095, %eax /* Check %eax for error. */ jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */ @@ -61,13 +57,6 @@ ENTRY(__setcontext) movl oEIP(%eax), %ecx /* Load the new stack pointer. */ - cfi_def_cfa (eax, 0) - cfi_offset (edi, oEDI) - cfi_offset (esi, oESI) - cfi_offset (ebp, oEBP) - cfi_offset (ebx, oEBX) - cfi_offset (edx, oEDX) - cfi_offset (ecx, oECX) movl oESP(%eax), %esp /* Push the return address on the new stack so we can return there. */ @@ -83,10 +72,6 @@ ENTRY(__setcontext) movl oECX(%eax), %ecx movl oEAX(%eax), %eax - /* End FDE here, we fall into another context. */ - cfi_endproc - cfi_startproc - /* The following 'ret' will pop the address of the code and jump to it. */ @@ -94,4 +79,4 @@ L(pseudo_end): ret PSEUDO_END(__setcontext) -weak_alias (__setcontext, setcontext) +weak_alias(__setcontext, setcontext) diff --git a/sysdeps/unix/sysv/linux/i386/setegid.c b/sysdeps/unix/sysv/linux/i386/setegid.c index 755bc360ad..b4bf33f18f 100644 --- a/sysdeps/unix/sysv/linux/i386/setegid.c +++ b/sysdeps/unix/sysv/linux/i386/setegid.c @@ -1,5 +1,4 @@ -/* Copyright (C) 1995-1998,2000,2002,2003,2004,2006 - Free Software Foundation, Inc. +/* Copyright (C) 1995-1998,2000,2002,2003,2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -20,7 +19,7 @@ #include <errno.h> #include <unistd.h> #include <setxid.h> -#include <kernel-features.h> +#include "kernel-features.h" #ifdef __NR_setresgid diff --git a/sysdeps/unix/sysv/linux/i386/seteuid.c b/sysdeps/unix/sysv/linux/i386/seteuid.c index 6de173521c..c139684d04 100644 --- a/sysdeps/unix/sysv/linux/i386/seteuid.c +++ b/sysdeps/unix/sysv/linux/i386/seteuid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998,2000,2002,2003,2004,2006 Free Software Foundation, Inc. +/* Copyright (C) 1998, 2000, 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -19,7 +19,7 @@ #include <errno.h> #include <unistd.h> #include <setxid.h> -#include <kernel-features.h> +#include "kernel-features.h" #ifdef __NR_setresuid diff --git a/sysdeps/unix/sysv/linux/i386/setfsgid.c b/sysdeps/unix/sysv/linux/i386/setfsgid.c index 7296d433ca..b98514d5be 100644 --- a/sysdeps/unix/sysv/linux/i386/setfsgid.c +++ b/sysdeps/unix/sysv/linux/i386/setfsgid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 2000, 2003, 2006 Free Software Foundation, Inc. +/* Copyright (C) 1998, 2000, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -23,7 +23,7 @@ #include <sysdep.h> #include <sys/syscall.h> #include <linux/posix_types.h> -#include <kernel-features.h> +#include "kernel-features.h" #ifdef __NR_setfsgid diff --git a/sysdeps/unix/sysv/linux/i386/setfsuid.c b/sysdeps/unix/sysv/linux/i386/setfsuid.c index 65ed353480..f7cf89bf14 100644 --- a/sysdeps/unix/sysv/linux/i386/setfsuid.c +++ b/sysdeps/unix/sysv/linux/i386/setfsuid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 2000, 2003, 2006 Free Software Foundation, Inc. +/* Copyright (C) 1998, 2000, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -24,7 +24,7 @@ #include <sys/syscall.h> #include <linux/posix_types.h> -#include <kernel-features.h> +#include "kernel-features.h" #ifdef __NR_setfsuid diff --git a/sysdeps/unix/sysv/linux/i386/setgid.c b/sysdeps/unix/sysv/linux/i386/setgid.c index 208ef25d0e..a7cdba582d 100644 --- a/sysdeps/unix/sysv/linux/i386/setgid.c +++ b/sysdeps/unix/sysv/linux/i386/setgid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 2000, 2003, 2004, 2006 Free Software Foundation, Inc. +/* Copyright (C) 1998, 2000, 2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ #include <unistd.h> #include <setxid.h> #include <linux/posix_types.h> -#include <kernel-features.h> +#include "kernel-features.h" #ifdef __NR_setgid32 diff --git a/sysdeps/unix/sysv/linux/i386/setgroups.c b/sysdeps/unix/sysv/linux/i386/setgroups.c index 10f5b7c91b..a2c6fc8daa 100644 --- a/sysdeps/unix/sysv/linux/i386/setgroups.c +++ b/sysdeps/unix/sysv/linux/i386/setgroups.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1997,1998,2000,2002,2004,2006 Free Software Foundation, Inc. +/* Copyright (C) 1997, 1998, 2000, 2002, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -26,7 +26,7 @@ #include <bp-checks.h> #include <linux/posix_types.h> -#include <kernel-features.h> +#include "kernel-features.h" #ifdef __NR_setgroups32 diff --git a/sysdeps/unix/sysv/linux/i386/setregid.c b/sysdeps/unix/sysv/linux/i386/setregid.c index 05e448c6c9..f20a78175a 100644 --- a/sysdeps/unix/sysv/linux/i386/setregid.c +++ b/sysdeps/unix/sysv/linux/i386/setregid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998,2000,2003,2004,2006 Free Software Foundation, Inc. +/* Copyright (C) 1998, 2000, 2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ #include <unistd.h> #include <setxid.h> #include <linux/posix_types.h> -#include <kernel-features.h> +#include "kernel-features.h" #ifdef __NR_setregid32 diff --git a/sysdeps/unix/sysv/linux/i386/setresgid.c b/sysdeps/unix/sysv/linux/i386/setresgid.c index d0750bb203..d4093afb0f 100644 --- a/sysdeps/unix/sysv/linux/i386/setresgid.c +++ b/sysdeps/unix/sysv/linux/i386/setresgid.c @@ -1,5 +1,4 @@ -/* Copyright (C) 1998,2000,2002,2003,2004,2005,2006 - Free Software Foundation, Inc. +/* Copyright (C) 1998, 2000, 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -21,7 +20,7 @@ #include <unistd.h> #include <setxid.h> #include <linux/posix_types.h> -#include <kernel-features.h> +#include "kernel-features.h" #if defined __NR_setresgid || defined __NR_setresgid32 @@ -81,6 +80,6 @@ weak_alias (__setresgid, setresgid) #else -#include <posix/setresgid.c> +#include <sysdeps/generic/setresgid.c> #endif diff --git a/sysdeps/unix/sysv/linux/i386/setresuid.c b/sysdeps/unix/sysv/linux/i386/setresuid.c index 0a676e53a9..540b954e08 100644 --- a/sysdeps/unix/sysv/linux/i386/setresuid.c +++ b/sysdeps/unix/sysv/linux/i386/setresuid.c @@ -1,5 +1,4 @@ -/* Copyright (C) 1998,2000,2002,2003,2004,2005,2006 - Free Software Foundation, Inc. +/* Copyright (C) 1998, 2000, 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -21,7 +20,7 @@ #include <unistd.h> #include <setxid.h> #include <linux/posix_types.h> -#include <kernel-features.h> +#include "kernel-features.h" #if defined __NR_setresuid || defined __NR_setresuid32 @@ -81,6 +80,6 @@ weak_alias (__setresuid, setresuid) #else -#include <posix/setresuid.c> +#include <sysdeps/generic/setresuid.c> #endif diff --git a/sysdeps/unix/sysv/linux/i386/setreuid.c b/sysdeps/unix/sysv/linux/i386/setreuid.c index 1ea449616c..09717ec52a 100644 --- a/sysdeps/unix/sysv/linux/i386/setreuid.c +++ b/sysdeps/unix/sysv/linux/i386/setreuid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998,2000,2003,2004,2006 Free Software Foundation, Inc. +/* Copyright (C) 1998, 2000, 2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ #include <unistd.h> #include <setxid.h> #include <linux/posix_types.h> -#include <kernel-features.h> +#include "kernel-features.h" #ifdef __NR_setreuid32 diff --git a/sysdeps/unix/sysv/linux/i386/setrlimit.c b/sysdeps/unix/sysv/linux/i386/setrlimit.c index e7e517d914..4d23209f62 100644 --- a/sysdeps/unix/sysv/linux/i386/setrlimit.c +++ b/sysdeps/unix/sysv/linux/i386/setrlimit.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2000, 2003, 2006 Free Software Foundation, Inc. +/* Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -25,7 +25,7 @@ #include <shlib-compat.h> #include <bp-checks.h> -#include <kernel-features.h> +#include "kernel-features.h" extern int __new_setrlimit (enum __rlimit_resource resource, const struct rlimit *__unboundedrlimits); diff --git a/sysdeps/unix/sysv/linux/i386/setuid.c b/sysdeps/unix/sysv/linux/i386/setuid.c index 21c5bcd615..f809948f59 100644 --- a/sysdeps/unix/sysv/linux/i386/setuid.c +++ b/sysdeps/unix/sysv/linux/i386/setuid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998,2000,2003,2004,2006 Free Software Foundation, Inc. +/* Copyright (C) 1998, 2000, 2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ #include <unistd.h> #include <setxid.h> #include <linux/posix_types.h> -#include <kernel-features.h> +#include "kernel-features.h" #ifdef __NR_setuid32 diff --git a/sysdeps/unix/sysv/linux/i386/shmctl.c b/sysdeps/unix/sysv/linux/i386/shmctl.c index 2cc039996c..394d3c01cf 100644 --- a/sysdeps/unix/sysv/linux/i386/shmctl.c +++ b/sysdeps/unix/sysv/linux/i386/shmctl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995,1997,1998,2000,2004,2006 Free Software Foundation, Inc. +/* Copyright (C) 1995, 1997, 1998, 2000, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995. @@ -27,7 +27,7 @@ #include <bits/wordsize.h> #include <bp-checks.h> -#include <kernel-features.h> +#include "kernel-features.h" #include <shlib-compat.h> struct __old_shmid_ds diff --git a/sysdeps/unix/sysv/linux/i386/sigaction.c b/sysdeps/unix/sysv/linux/i386/sigaction.c index 299574dac4..9cb5b6e340 100644 --- a/sysdeps/unix/sysv/linux/i386/sigaction.c +++ b/sysdeps/unix/sysv/linux/i386/sigaction.c @@ -1,5 +1,5 @@ /* POSIX.1 `sigaction' call for Linux/i386. - Copyright (C) 1991,1995-2000,2002-2004,2005 Free Software Foundation, Inc. + Copyright (C) 1991,1995-2000,02,03, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -154,10 +154,6 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact) } libc_hidden_def (__libc_sigaction) -#ifdef WRAPPER_INCLUDE -# include WRAPPER_INCLUDE -#endif - #ifndef LIBC_SIGACTION weak_alias (__libc_sigaction, __sigaction) libc_hidden_weak (__sigaction) diff --git a/sysdeps/unix/sysv/linux/i386/socket.S b/sysdeps/unix/sysv/linux/i386/socket.S index 7c8ac29b86..e403899cc6 100644 --- a/sysdeps/unix/sysv/linux/i386/socket.S +++ b/sysdeps/unix/sysv/linux/i386/socket.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-1998,2002,2003,2005 Free Software Foundation, Inc. +/* Copyright (C) 1995,1996,1997,1998,2002,2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -41,6 +41,7 @@ #endif .globl __socket + cfi_startproc ENTRY (__socket) #if defined NEED_CANCELLATION && defined CENABLE SINGLE_THREAD_P @@ -117,6 +118,7 @@ L(pseudo_end): /* Successful; return the syscall's value. */ ret #endif + cfi_endproc PSEUDO_END (__socket) #ifndef NO_WEAK_ALIAS diff --git a/sysdeps/unix/sysv/linux/i386/swapcontext.S b/sysdeps/unix/sysv/linux/i386/swapcontext.S index 27c16200b2..d909e659e4 100644 --- a/sysdeps/unix/sysv/linux/i386/swapcontext.S +++ b/sysdeps/unix/sysv/linux/i386/swapcontext.S @@ -109,4 +109,4 @@ L(pseudo_end): ret PSEUDO_END(__swapcontext) -weak_alias (__swapcontext, swapcontext) +weak_alias(__swapcontext, swapcontext) diff --git a/sysdeps/unix/sysv/linux/i386/sync_file_range.S b/sysdeps/unix/sysv/linux/i386/sync_file_range.S deleted file mode 100644 index f39e8a00d7..0000000000 --- a/sysdeps/unix/sysv/linux/i386/sync_file_range.S +++ /dev/null @@ -1,72 +0,0 @@ -/* Selective file content synch'ing. - Copyright (C) 2006 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <sysdep.h> -#define _ERRNO_H 1 -#include <bits/errno.h> - - - .text -ENTRY (sync_file_range) -#ifdef __NR_sync_file_range - pushl %ebx - cfi_adjust_cfa_offset (4) - pushl %esi - cfi_adjust_cfa_offset (4) - pushl %edi - cfi_adjust_cfa_offset (4) - pushl %ebp - cfi_adjust_cfa_offset (4) - - movl 20(%esp), %ebx - cfi_rel_offset (ebx, 12) - movl 24(%esp), %ecx - movl 28(%esp), %edx - movl 32(%esp), %esi - cfi_rel_offset (esi, 8) - movl 36(%esp), %edi - cfi_rel_offset (edi, 4) - movl 40(%esp), %ebp - cfi_rel_offset (ebp, 0) - - movl $SYS_ify(sync_file_range), %eax - ENTER_KERNEL - - popl %ebp - cfi_adjust_cfa_offset (-4) - cfi_restore (ebp) - popl %edi - cfi_adjust_cfa_offset (-4) - cfi_restore (edi) - popl %esi - cfi_adjust_cfa_offset (-4) - cfi_restore (esi) - popl %ebx - cfi_adjust_cfa_offset (-4) - cfi_restore (ebx) - - cmpl $-4095, %eax - jae SYSCALL_ERROR_LABEL -L(pseudo_end): - ret -#else - movl $-ENOSYS, %eax - jmp SYSCALL_ERROR_LABEL -#endif -PSEUDO_END (sync_file_range) diff --git a/sysdeps/unix/sysv/linux/i386/syscalls.list b/sysdeps/unix/sysv/linux/i386/syscalls.list index 3ff3a73aab..214397446d 100644 --- a/sysdeps/unix/sysv/linux/i386/syscalls.list +++ b/sysdeps/unix/sysv/linux/i386/syscalls.list @@ -5,4 +5,5 @@ vm86old EXTRA vm86old i:p __vm86old vm86@GLIBC_2.0 vm86 - vm86 i:ip __vm86 vm86@@GLIBC_2.3.4 oldgetrlimit EXTRA getrlimit i:ip __old_getrlimit getrlimit@GLIBC_2.0 oldsetrlimit EXTRA setrlimit i:ip __old_setrlimit setrlimit@GLIBC_2.0 +time - time Ei:p time waitpid - waitpid Ci:ipi __waitpid waitpid __libc_waitpid diff --git a/sysdeps/unix/sysv/linux/i386/sysconf.c b/sysdeps/unix/sysv/linux/i386/sysconf.c index 2ffbd5227b..eae849b277 100644 --- a/sysdeps/unix/sysv/linux/i386/sysconf.c +++ b/sysdeps/unix/sysv/linux/i386/sysconf.c @@ -1,5 +1,5 @@ /* Get file-specific information about a file. Linux version. - Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc. + Copyright (C) 2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -26,7 +26,7 @@ static long int linux_sysconf (int name); -static long int __attribute__ ((noinline)) +static long int handle_i486 (int name) { /* The processor only has a unified level 1 cache of 8k. */ @@ -84,24 +84,11 @@ static const struct intel_02_cache_info { 0x29, _SC_LEVEL3_CACHE_SIZE, 4194304, 8, 64 }, { 0x2c, _SC_LEVEL1_DCACHE_SIZE, 32768, 8, 64 }, { 0x30, _SC_LEVEL1_ICACHE_SIZE, 32768, 8, 64 }, - { 0x39, _SC_LEVEL2_CACHE_SIZE, 131072, 4, 64 }, - { 0x3a, _SC_LEVEL2_CACHE_SIZE, 196608, 6, 64 }, - { 0x3b, _SC_LEVEL2_CACHE_SIZE, 131072, 2, 64 }, - { 0x3c, _SC_LEVEL2_CACHE_SIZE, 262144, 4, 64 }, - { 0x3d, _SC_LEVEL2_CACHE_SIZE, 393216, 6, 64 }, - { 0x3e, _SC_LEVEL2_CACHE_SIZE, 524288, 4, 64 }, { 0x41, _SC_LEVEL2_CACHE_SIZE, 131072, 4, 32 }, { 0x42, _SC_LEVEL2_CACHE_SIZE, 262144, 4, 32 }, { 0x43, _SC_LEVEL2_CACHE_SIZE, 524288, 4, 32 }, { 0x44, _SC_LEVEL2_CACHE_SIZE, 1048576, 4, 32 }, { 0x45, _SC_LEVEL2_CACHE_SIZE, 2097152, 4, 32 }, - { 0x46, _SC_LEVEL3_CACHE_SIZE, 4194304, 4, 64 }, - { 0x47, _SC_LEVEL3_CACHE_SIZE, 8388608, 8, 64 }, - { 0x49, _SC_LEVEL2_CACHE_SIZE, 4194304, 16, 64 }, - { 0x4a, _SC_LEVEL3_CACHE_SIZE, 6291456, 12, 64 }, - { 0x4b, _SC_LEVEL3_CACHE_SIZE, 8388608, 16, 64 }, - { 0x4c, _SC_LEVEL3_CACHE_SIZE, 12582912, 12, 64 }, - { 0x4d, _SC_LEVEL3_CACHE_SIZE, 16777216, 16, 64 }, { 0x60, _SC_LEVEL1_DCACHE_SIZE, 16384, 8, 64 }, { 0x66, _SC_LEVEL1_DCACHE_SIZE, 8192, 4, 64 }, { 0x67, _SC_LEVEL1_DCACHE_SIZE, 16384, 4, 64 }, @@ -112,7 +99,6 @@ static const struct intel_02_cache_info { 0x7b, _SC_LEVEL2_CACHE_SIZE, 524288, 8, 64 }, { 0x7c, _SC_LEVEL2_CACHE_SIZE, 1048576, 8, 64 }, { 0x7d, _SC_LEVEL2_CACHE_SIZE, 2097152, 8, 64 }, - { 0x7f, _SC_LEVEL2_CACHE_SIZE, 524288, 2, 64 }, { 0x82, _SC_LEVEL2_CACHE_SIZE, 262144, 8, 32 }, { 0x83, _SC_LEVEL2_CACHE_SIZE, 524288, 8, 32 }, { 0x84, _SC_LEVEL2_CACHE_SIZE, 1048576, 8, 32 }, @@ -140,7 +126,6 @@ intel_02_known_compare (const void *p1, const void *p2) static long int -__attribute__ ((noinline)) intel_check_word (int name, unsigned int value, bool *has_level_2, bool *no_level_2_or_3) { @@ -167,33 +152,6 @@ intel_check_word (int name, unsigned int value, bool *has_level_2, } else { - if (byte == 0x49 && folded_name == _SC_LEVEL3_CACHE_SIZE) - { - /* Intel reused this value. For family 15, model 6 it - specifies the 3rd level cache. Otherwise the 2nd - level cache. */ - unsigned int eax; - unsigned int ebx; - unsigned int ecx; - unsigned int edx; - asm volatile ("xchgl %%ebx, %1; cpuid; xchgl %%ebx, %1" - : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx) - : "0" (1)); - - unsigned int family = ((eax >> 20) & 0xff) + ((eax >> 8) & 0xf); - unsigned int model = ((((eax >>16) & 0xf) << 4) - + ((eax >> 4) & 0xf)); - if (family == 15 && model == 6) - { - /* The level 3 cache is encoded for this model like - the level 2 cache is for other models. Pretend - the caller asked for the level 2 cache. */ - name = (_SC_LEVEL2_CACHE_SIZE - + (name - _SC_LEVEL3_CACHE_SIZE)); - folded_name = _SC_LEVEL3_CACHE_SIZE; - } - } - struct intel_02_cache_info *found; struct intel_02_cache_info search; @@ -230,7 +188,7 @@ intel_check_word (int name, unsigned int value, bool *has_level_2, } -static long int __attribute__ ((noinline)) +static long int handle_intel (int name, unsigned int maxidx) { if (maxidx < 2) @@ -292,7 +250,7 @@ handle_intel (int name, unsigned int maxidx) } -static long int __attribute__ ((noinline)) +static long int handle_amd (int name) { unsigned int eax; @@ -387,6 +345,17 @@ i386_i486_test (void) long int __sysconf (int name) { + if (name == _SC_CPUTIME || name == _SC_THREAD_CPUTIME) + { +#if HP_TIMING_AVAIL + // XXX We can add here test for machines which cannot support a + // XXX usable TSC. + return 200112L; +#else + return -1; +#endif + } + /* All the remainder, except the cache information, is handled in the generic code. */ if (name < _SC_LEVEL1_ICACHE_SIZE || name > _SC_LEVEL4_CACHE_LINESIZE) diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h index 5286676fc1..af75d4c51a 100644 --- a/sysdeps/unix/sysv/linux/i386/sysdep.h +++ b/sysdeps/unix/sysv/linux/i386/sysdep.h @@ -1,5 +1,5 @@ -/* Copyright (C) 1992,1993,1995-2000,2002-2005,2006 - Free Software Foundation, Inc. +/* Copyright (C) 1992,1993,1995-2000,2002,2003,2004 + Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper, <drepper@gnu.org>, August 1995. @@ -109,6 +109,27 @@ # define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */ #else +# ifndef HAVE_HIDDEN +# define SETUP_PIC_REG(reg) \ + call 1f; \ + .subsection 1; \ +1:movl (%esp), %e##reg; \ + ret; \ + .previous +# else +# define SETUP_PIC_REG(reg) \ + .section .gnu.linkonce.t.__i686.get_pc_thunk.reg,"ax",@progbits; \ + .globl __i686.get_pc_thunk.reg; \ + .hidden __i686.get_pc_thunk.reg; \ + .type __i686.get_pc_thunk.reg,@function; \ +__i686.get_pc_thunk.reg: \ + movl (%esp), %e##reg; \ + ret; \ + .size __i686.get_pc_thunk.reg, . - __i686.get_pc_thunk.reg; \ + .previous; \ + call __i686.get_pc_thunk.reg +# endif + # if RTLD_PRIVATE_ERRNO # define SYSCALL_ERROR_HANDLER \ 0:SETUP_PIC_REG(cx); \ @@ -133,36 +154,22 @@ movl SYSCALL_ERROR_ERRNO@GOTNTPOFF(%ecx), %ecx; \ xorl %edx, %edx; \ subl %eax, %edx; \ - SYSCALL_ERROR_HANDLER_TLS_STORE (%edx, %ecx); \ + movl %edx, %gs:0(%ecx); \ orl $-1, %eax; \ jmp L(pseudo_end); -# ifndef NO_TLS_DIRECT_SEG_REFS -# define SYSCALL_ERROR_HANDLER_TLS_STORE(src, destoff) \ - movl src, %gs:(destoff) -# else -# define SYSCALL_ERROR_HANDLER_TLS_STORE(src, destoff) \ - addl %gs:0, destoff; \ - movl src, (destoff) -# endif # else # define SYSCALL_ERROR_HANDLER \ 0:pushl %ebx; \ - cfi_adjust_cfa_offset (4); \ - cfi_rel_offset (ebx, 0); \ SETUP_PIC_REG (bx); \ addl $_GLOBAL_OFFSET_TABLE_, %ebx; \ xorl %edx, %edx; \ subl %eax, %edx; \ pushl %edx; \ - cfi_adjust_cfa_offset (4); \ PUSH_ERRNO_LOCATION_RETURN; \ call BP_SYM (__errno_location)@PLT; \ POP_ERRNO_LOCATION_RETURN; \ popl %ecx; \ - cfi_adjust_cfa_offset (-4); \ popl %ebx; \ - cfi_adjust_cfa_offset (-4); \ - cfi_restore (ebx); \ movl %ecx, (%eax); \ orl $-1, %eax; \ jmp L(pseudo_end); @@ -258,11 +265,9 @@ #define PUSHARGS_1 movl %ebx, %edx; L(SAVEBX1): PUSHARGS_0 #define DOARGS_1 _DOARGS_1 (4) #define POPARGS_1 POPARGS_0; movl %edx, %ebx; L(RESTBX1): -#define _PUSHARGS_1 pushl %ebx; cfi_adjust_cfa_offset (4); \ - cfi_rel_offset (ebx, 0); L(PUSHBX1): _PUSHARGS_0 +#define _PUSHARGS_1 pushl %ebx; L(PUSHBX1): _PUSHARGS_0 #define _DOARGS_1(n) movl n(%esp), %ebx; _DOARGS_0(n-4) -#define _POPARGS_1 _POPARGS_0; popl %ebx; cfi_adjust_cfa_offset (-4); \ - cfi_restore (ebx); L(POPBX1): +#define _POPARGS_1 _POPARGS_0; popl %ebx; L(POPBX1): #define PUSHARGS_2 PUSHARGS_1 #define DOARGS_2 _DOARGS_2 (8) @@ -281,29 +286,23 @@ #define PUSHARGS_4 _PUSHARGS_4 #define DOARGS_4 _DOARGS_4 (24) #define POPARGS_4 _POPARGS_4 -#define _PUSHARGS_4 pushl %esi; cfi_adjust_cfa_offset (4); \ - cfi_rel_offset (esi, 0); L(PUSHSI1): _PUSHARGS_3 +#define _PUSHARGS_4 pushl %esi; L(PUSHSI1): _PUSHARGS_3 #define _DOARGS_4(n) movl n(%esp), %esi; _DOARGS_3 (n-4) -#define _POPARGS_4 _POPARGS_3; popl %esi; cfi_adjust_cfa_offset (-4); \ - cfi_restore (esi); L(POPSI1): +#define _POPARGS_4 _POPARGS_3; popl %esi; L(POPSI1): #define PUSHARGS_5 _PUSHARGS_5 #define DOARGS_5 _DOARGS_5 (32) #define POPARGS_5 _POPARGS_5 -#define _PUSHARGS_5 pushl %edi; cfi_adjust_cfa_offset (4); \ - cfi_rel_offset (edi, 0); L(PUSHDI1): _PUSHARGS_4 +#define _PUSHARGS_5 pushl %edi; L(PUSHDI1): _PUSHARGS_4 #define _DOARGS_5(n) movl n(%esp), %edi; _DOARGS_4 (n-4) -#define _POPARGS_5 _POPARGS_4; popl %edi; cfi_adjust_cfa_offset (-4); \ - cfi_restore (edi); L(POPDI1): +#define _POPARGS_5 _POPARGS_4; popl %edi; L(POPDI1): #define PUSHARGS_6 _PUSHARGS_6 -#define DOARGS_6 _DOARGS_6 (40) +#define DOARGS_6 _DOARGS_6 (36) #define POPARGS_6 _POPARGS_6 -#define _PUSHARGS_6 pushl %ebp; cfi_adjust_cfa_offset (4); \ - cfi_rel_offset (ebp, 0); L(PUSHBP1): _PUSHARGS_5 +#define _PUSHARGS_6 pushl %ebp; L(PUSHBP1): _PUSHARGS_5 #define _DOARGS_6(n) movl n(%esp), %ebp; _DOARGS_5 (n-4) -#define _POPARGS_6 _POPARGS_5; popl %ebp; cfi_adjust_cfa_offset (-4); \ - cfi_restore (ebp); L(POPBP1): +#define _POPARGS_6 _POPARGS_5; popl %ebp; L(POPBP1): #else /* !__ASSEMBLER__ */ @@ -447,7 +446,7 @@ asm (".L__X'%ebx = 1\n\t" #define LOADARGS_0 #ifdef __PIC__ -# if defined I386_USE_SYSENTER && defined SHARED +# if defined I386_USE_SYSENTER # define LOADARGS_1 \ "bpushl .L__X'%k3, %k3\n\t" # define LOADARGS_5 \ @@ -533,49 +532,6 @@ asm (".L__X'%ebx = 1\n\t" # define EXTRAVAR_5 #endif -/* Consistency check for position-independent code. */ -#ifdef __PIC__ -# define check_consistency() \ - ({ int __res; \ - __asm__ __volatile__ \ - ("call __i686.get_pc_thunk.cx;" \ - "addl $_GLOBAL_OFFSET_TABLE_, %%ecx;" \ - "subl %%ebx, %%ecx;" \ - "je 1f;" \ - "ud2;" \ - "1:\n" \ - ".section .gnu.linkonce.t.__i686.get_pc_thunk.cx,\"ax\",@progbits;" \ - ".globl __i686.get_pc_thunk.cx;" \ - ".hidden __i686.get_pc_thunk.cx;" \ - ".type __i686.get_pc_thunk.cx,@function;" \ - "__i686.get_pc_thunk.cx:" \ - "movl (%%esp), %%ecx;" \ - "ret;" \ - ".previous" \ - : "=c" (__res)); \ - __res; }) -#endif - #endif /* __ASSEMBLER__ */ - -/* Pointer mangling support. */ -#if defined NOT_IN_libc && defined IS_IN_rtld -/* We cannot use the thread descriptor because in ld.so we use setjmp - earlier than the descriptor is initialized. Using a global variable - is too complicated here since we have no PC-relative addressing mode. */ -#else -# ifdef __ASSEMBLER__ -# define PTR_MANGLE(reg) xorl %gs:POINTER_GUARD, reg -# define PTR_DEMANGLE(reg) PTR_MANGLE (reg) -# else -# define PTR_MANGLE(var) asm ("xorl %%gs:%c2, %0" \ - : "=r" (var) \ - : "0" (var), \ - "i" (offsetof (tcbhead_t, \ - pointer_guard))) -# define PTR_DEMANGLE(var) PTR_MANGLE (var) -# endif -#endif - #endif /* linux/i386/sysdep.h */ diff --git a/sysdeps/unix/sysv/linux/i386/ucontext_i.h b/sysdeps/unix/sysv/linux/i386/ucontext_i.h new file mode 100644 index 0000000000..d6efca41b1 --- /dev/null +++ b/sysdeps/unix/sysv/linux/i386/ucontext_i.h @@ -0,0 +1,41 @@ +/* Offsets and other constants needed in the *context() function + implementation. + Copyright (C) 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#define SIG_BLOCK 0 +#define SIG_SETMASK 2 + +/* Offsets of the fields in the ucontext_t structure. */ +#define oLINK 4 +#define oSS_SP 8 +#define oSS_SIZE 16 +#define oGS 20 +#define oFS 24 +#define oEDI 36 +#define oESI 40 +#define oEBP 44 +#define oESP 48 +#define oEBX 52 +#define oEDX 56 +#define oECX 60 +#define oEAX 64 +#define oEIP 76 +#define oFPREGS 96 +#define oSIGMASK 108 +#define oFPREGSMEM 236 diff --git a/sysdeps/unix/sysv/linux/i386/ucontext_i.sym b/sysdeps/unix/sysv/linux/i386/ucontext_i.sym deleted file mode 100644 index b11a5509cd..0000000000 --- a/sysdeps/unix/sysv/linux/i386/ucontext_i.sym +++ /dev/null @@ -1,30 +0,0 @@ -#include <stddef.h> -#include <signal.h> -#include <sys/ucontext.h> - --- - -SIG_BLOCK -SIG_SETMASK - -#define ucontext(member) offsetof (ucontext_t, member) -#define mcontext(member) ucontext (uc_mcontext.member) -#define mreg(reg) mcontext (gregs[REG_##reg]) - -oLINK ucontext (uc_link) -oSS_SP ucontext (uc_stack.ss_sp) -oSS_SIZE ucontext (uc_stack.ss_size) -oGS mreg (GS) -oFS mreg (FS) -oEDI mreg (EDI) -oESI mreg (ESI) -oEBP mreg (EBP) -oESP mreg (ESP) -oEBX mreg (EBX) -oEDX mreg (EDX) -oECX mreg (ECX) -oEAX mreg (EAX) -oEIP mreg (EIP) -oFPREGS mcontext (fpregs) -oSIGMASK ucontext (uc_sigmask) -oFPREGSMEM ucontext (__fpregs_mem) diff --git a/sysdeps/unix/sysv/linux/i386/vfork.S b/sysdeps/unix/sysv/linux/i386/vfork.S index eefd4b49cb..e660e6b70e 100644 --- a/sysdeps/unix/sysv/linux/i386/vfork.S +++ b/sysdeps/unix/sysv/linux/i386/vfork.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2002, 2004, 2005 Free Software Foundation, Inc. +/* Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Andreas Schwab <schwab@gnu.org>. @@ -33,7 +33,6 @@ ENTRY (__vfork) /* Pop the return PC value into ECX. */ popl %ecx - cfi_adjust_cfa_offset (-4) #ifdef SAVE_PID SAVE_PID @@ -47,7 +46,6 @@ ENTRY (__vfork) disturbs the branch target cache. Instead push the return address back on the stack. */ pushl %ecx - cfi_adjust_cfa_offset (4) #ifdef RESTORE_PID RESTORE_PID diff --git a/sysdeps/unix/sysv/linux/i386/xstat.c b/sysdeps/unix/sysv/linux/i386/xstat.c index d27ecd3126..7c41d8cefa 100644 --- a/sysdeps/unix/sysv/linux/i386/xstat.c +++ b/sysdeps/unix/sysv/linux/i386/xstat.c @@ -1,6 +1,5 @@ /* xstat using old-style Unix stat system call. - Copyright (C) 1991,95,96,97,98,2000,2002,2003,2006 - Free Software Foundation, Inc. + Copyright (C) 1991,95,96,97,98,2000,2002,2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -31,7 +30,7 @@ #include <sys/syscall.h> #include <bp-checks.h> -#include <kernel-features.h> +#include "kernel-features.h" #include <xstatconv.h> |