summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/i386
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-12-22 20:10:10 +0000
committerUlrich Drepper <drepper@redhat.com>2004-12-22 20:10:10 +0000
commita334319f6530564d22e775935d9c91663623a1b4 (patch)
treeb5877475619e4c938e98757d518bb1e9cbead751 /sysdeps/unix/sysv/linux/i386
parent0ecb606cb6cf65de1d9fc8a919bceb4be476c602 (diff)
downloadglibc-a334319f6530564d22e775935d9c91663623a1b4.tar.gz
(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
Diffstat (limited to 'sysdeps/unix/sysv/linux/i386')
-rw-r--r--sysdeps/unix/sysv/linux/i386/Dist17
-rw-r--r--sysdeps/unix/sysv/linux/i386/Makefile6
-rw-r--r--sysdeps/unix/sysv/linux/i386/bits/fcntl.h54
-rw-r--r--sysdeps/unix/sysv/linux/i386/bits/mman.h6
-rw-r--r--sysdeps/unix/sysv/linux/i386/call_pselect6.S65
-rw-r--r--sysdeps/unix/sysv/linux/i386/chown.c5
-rw-r--r--sysdeps/unix/sysv/linux/i386/clone.S16
-rw-r--r--sysdeps/unix/sysv/linux/i386/dl-cache.h59
-rw-r--r--sysdeps/unix/sysv/linux/i386/fchown.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/fchownat.c110
-rw-r--r--sysdeps/unix/sysv/linux/i386/fcntl.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/fxstat.c5
-rw-r--r--sysdeps/unix/sysv/linux/i386/fxstatat.c176
-rw-r--r--sysdeps/unix/sysv/linux/i386/getcontext.S8
-rw-r--r--sysdeps/unix/sysv/linux/i386/getegid.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/geteuid.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/getgid.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/getmsg.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/getresgid.c6
-rw-r--r--sysdeps/unix/sysv/linux/i386/getresuid.c6
-rw-r--r--sysdeps/unix/sysv/linux/i386/getrlimit.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/getrlimit64.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/getuid.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/glob64.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/lchown.c6
-rw-r--r--sysdeps/unix/sysv/linux/i386/lockf64.c6
-rw-r--r--sysdeps/unix/sysv/linux/i386/lxstat.c6
-rw-r--r--sysdeps/unix/sysv/linux/i386/makecontext.S8
-rw-r--r--sysdeps/unix/sysv/linux/i386/mmap.S25
-rw-r--r--sysdeps/unix/sysv/linux/i386/mmap64.S38
-rw-r--r--sysdeps/unix/sysv/linux/i386/msgctl.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/posix_fadvise64.S33
-rw-r--r--sysdeps/unix/sysv/linux/i386/pselect.c18
-rw-r--r--sysdeps/unix/sysv/linux/i386/putmsg.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/readelflib.c6
-rw-r--r--sysdeps/unix/sysv/linux/i386/semctl.c5
-rw-r--r--sysdeps/unix/sysv/linux/i386/semtimedop.S14
-rw-r--r--sysdeps/unix/sysv/linux/i386/setcontext.S19
-rw-r--r--sysdeps/unix/sysv/linux/i386/setegid.c5
-rw-r--r--sysdeps/unix/sysv/linux/i386/seteuid.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/setfsgid.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/setfsuid.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/setgid.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/setgroups.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/setregid.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/setresgid.c7
-rw-r--r--sysdeps/unix/sysv/linux/i386/setresuid.c7
-rw-r--r--sysdeps/unix/sysv/linux/i386/setreuid.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/setrlimit.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/setuid.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/shmctl.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/sigaction.c6
-rw-r--r--sysdeps/unix/sysv/linux/i386/socket.S4
-rw-r--r--sysdeps/unix/sysv/linux/i386/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/sync_file_range.S72
-rw-r--r--sysdeps/unix/sysv/linux/i386/syscalls.list1
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysconf.c61
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.h112
-rw-r--r--sysdeps/unix/sysv/linux/i386/ucontext_i.h41
-rw-r--r--sysdeps/unix/sysv/linux/i386/ucontext_i.sym30
-rw-r--r--sysdeps/unix/sysv/linux/i386/vfork.S4
-rw-r--r--sysdeps/unix/sysv/linux/i386/xstat.c5
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>