diff options
author | Roland McGrath <roland@gnu.org> | 1995-07-22 10:48:43 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1995-07-22 10:48:43 +0000 |
commit | 439d1d4560aa3e261c065c43e3995779809b4cb2 (patch) | |
tree | 82be4196b9f9a0567b4210d818cacc53780b3030 /sysdeps/unix/sysv/i386/linux/sysdep.S | |
parent | 0bf9d0eb2bc40ee304e8ff0315112cde711fa1b2 (diff) | |
download | glibc-439d1d4560aa3e261c065c43e3995779809b4cb2.tar glibc-439d1d4560aa3e261c065c43e3995779809b4cb2.tar.gz glibc-439d1d4560aa3e261c065c43e3995779809b4cb2.tar.bz2 glibc-439d1d4560aa3e261c065c43e3995779809b4cb2.zip |
Sat Jul 22 01:56:03 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/unix/i386/sysdep.h (JUMPTARGET): New macro; use name@PLT
#ifdef PIC.
(PSEUDO): Use JUMPTARGET(syscall_error) in jump insn.
* sysdeps/unix/i386/syscall.S: Use JUMPTARGET(syscall_error) in
jump insn.
* sysdeps/unix/sysv/sysv4/linux/i386/sysdep.h: Rewritten.
* sysdeps/unix/sysv/sysv4/linux/i386/syscall.S: New file.
* sysdeps/unix/sysv/sysv4/linux/i386/socket.S: Include
<sys/socketcall.h>. Save %ebx in call-clobbered %edx instead of
stack. Use JUMPTARGET(syscall_error) in jump insn.
* Makeconfig (+gccwarn): Add -Wbad-function-cast -Wconversion.
* sysdeps/unix/i386/sysdep.h (ENTRY): Use ASM_GLOBAL_DIRECTIVE and
ASM_TYPE_DIRECTIVE.
(ASM_TYPE_DIRECTIVE): New macro; defined using `.type' #ifdef ELF.
* sysdeps/unix/sysv/sysv4/linux/i386/sysdep.S (__syscall_error):
Rewritten, #include'ing unix/i386/sysdep.S for most of the code.
* sysdeps/unix/i386/sysdep.S [PIC]: Store into `errno' through the GOT.
Fixes to help Linux, inspired by drepper's work:
* configure.in (os=linux*): Use unix/sysv/sysv4 for $base_os,
instead of unix/sysv.
* sysdeps/posix/utimes.c: New file.
* sysdeps/generic/getdomain.c: New file.
* sysdeps/i386/init-first.c: Removed gratuitous #include <hurd.h>.
* sysdeps/generic/dl-sysdep.c: Include <unistd.h> and declare
externals _dl_argc, _dl_argc, and _environ.
* sysdeps/unix/sysv/linux/{accept,connect,getsockname,rename,
socketpair,waitpid,bind,getpeername,listen,setsid,wait4}.S: Moved
to new directory sysdeps/unix/sysv/sysv4/linux.
* sysdeps/unix/sysv/linux: Directory removed.
* sysdeps/unix/sysv/i386/linux/{socket.S,sysdep.h,sysdep.S}: Moved
to new directory sysdeps/unix/sysv/sysv4/linux/i386.
* sysdeps/unix/sysv/linux/i386: Directory removed.
Diffstat (limited to 'sysdeps/unix/sysv/i386/linux/sysdep.S')
-rw-r--r-- | sysdeps/unix/sysv/i386/linux/sysdep.S | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/sysdeps/unix/sysv/i386/linux/sysdep.S b/sysdeps/unix/sysv/i386/linux/sysdep.S deleted file mode 100644 index ed3a2782a9..0000000000 --- a/sysdeps/unix/sysv/i386/linux/sysdep.S +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright (C) 1992, 1993, 1994 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 Library General Public License as -published by the Free Software Foundation; either version 2 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 -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with the GNU C Library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., 675 Mass Ave, -Cambridge, MA 02139, USA. */ - -#include <sysdep.h> -#define _ERRNO_H -#include <errnos.h> - -/* We jump here when a system call gets an error. - The error number is negated in %eax. */ -.globl syscall_error -syscall_error: - negl %eax /* Make it positive. */ -#if defined (EWOULDBLOCK_sys) && EWOULDBLOCK_sys != EAGAIN - /* We translate the system's EWOULDBLOCK error into EAGAIN. - The GNU C library always defines EWOULDBLOCK==EAGAIN. - EWOULDBLOCK_sys is the original number. */ - cmpl %eax, $EWOULDBLOCK_sys /* Is it the old EWOULDBLOCK? */ - jne 0f /* Branch if not. */ - move $EAGAIN, %eax /* Yes; translate it to EAGAIN. */ -#endif -0: movl %eax, _errno /* Store it in `errno'. */ - move $-1, %eax /* Return -1. */ - ret |