From 63bda0c13abdc73893855c2b57e55eaea5835fc3 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 2 Apr 1998 17:42:53 +0000 Subject: Update. 1998-04-02 Ulrich Drepper * stdlib/isomac.c: Use -isystem instead of -I for system include dir. 1998-03-30 08:05 H.J. Lu * resolv/res_comp.c (underscorechar): New. (middlechar): Allow '_'. 1998-04-02 Ulrich Drepper * intl/explodename.c (stdlib.h): Include that file only if STDC_HEADERS or _LIBC. (string.h): Include that file only if HAVE_STRING_H or _LIBC. Patch by Philippe De Muyter . 1998-04-01 21:08 Zack Weinberg * aclocal.m4 (AC_PROG_CC_LOCAL): Remove superfluous tests. (AC_PROG_CHECK_VER): New macro. * configure.in: Use AC_PROG_CHECK_VER to check versions of gcc, gmake, msgfmt, makeinfo. Remove superfluous tests. 1998-04-02 15:13 Ulrich Drepper * sysdeps/unix/sysv/linux/i386/i686/sysdep.h: New file. * sysdeps/i386/i686/strtok.S: New file * sysdeps/i386/i686/strtok_r.S: New file 1998-04-02 Mark Kettenis * posix/unistd.h: [__USE_FILE_OFFSET64] (lseek): Change return type to __off64_t. * libio/stdio.h [__USE_FILE_OFFSET64] (fseeko): Declare offset parameter as __off64_t instead of __off_t. (ftello): Make alias for ftello64 instead of ftello. Change return type to __off64_t. 1998-04-02 Ulrich Drepper * sysdeps/i386/bits/string.h: Fix various typos. Patch by Horst von Brand . * sysdeps/unix/sysv/linux/getcwd.c: Use getcwd syscall in Linux 2.1.92. 1998-04-02 Ulrich Drepper * sysdeps/unix/sysv/linux/i386/chown.c: Handle old kernels without lchown syscall correctly. [PR libc/541]. --- sysdeps/unix/sysv/linux/i386/i686/sysdep.h | 71 ++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 sysdeps/unix/sysv/linux/i386/i686/sysdep.h (limited to 'sysdeps/unix/sysv/linux/i386/i686') diff --git a/sysdeps/unix/sysv/linux/i386/i686/sysdep.h b/sysdeps/unix/sysv/linux/i386/i686/sysdep.h new file mode 100644 index 0000000000..001f3fc4d7 --- /dev/null +++ b/sysdeps/unix/sysv/linux/i386/i686/sysdep.h @@ -0,0 +1,71 @@ +/* Copyright (C) 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper, , 1998. + + 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., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _LINUX_I386_I686_SYSDEP_H +#define _LINUX_I386_I686_SYSDEP_H 1 + +/* There is some commonality. */ +#include + +/* We define special versions of the error handler code to match the i686's + deep branch prediction mechanism. */ +#ifdef PIC +# undef SYSCALL_ERROR_HANDLER + +/* Store (- %eax) into errno through the GOT. */ +# ifdef _LIBC_REENTRANT +# define SYSCALL_ERROR_HANDLER \ + .type syscall_error,@function; \ +0:movl (%esp),%ebx; \ + ret; \ +syscall_error: \ + pushl %ebx; \ + call 0b; \ + addl $_GLOBAL_OFFSET_TABLE_, %ebx; \ + xorl %edx, %edx; \ + subl %eax, %edx; \ + pushl %edx; \ + call __errno_location@PLT; \ + popl %ecx; \ + popl %ebx; \ + movl %ecx, (%eax); \ + movl $-1, %eax; \ + jmp L(pseudo_end); \ + .size syscall_error,.-syscall_error; +/* A quick note: it is assumed that the call to `__errno_location' does + not modify the stack! */ +# else +# define SYSCALL_ERROR_HANDLER \ + .type syscall_error,@function; \ +0:movl (%esp),%ecx; \ + ret; \ +syscall_error: \ + call 0b; \ + addl $_GLOBAL_OFFSET_TABLE_, %ecx; \ + xorl %edx, %edx; \ + subl %eax, %edx; \ + movl errno@GOT(%ecx), %ecx; \ + movl %edx, (%ecx); \ + movl $-1, %eax; \ + jmp L(pseudo_end); \ + .size syscall_error,.-syscall_error; +# endif /* _LIBC_REENTRANT */ +#endif /* PIC */ + +#endif /* linux/i386/i686/sysdep.h */ -- cgit 1.4.1