diff options
Diffstat (limited to 'sysdeps/unix')
-rw-r--r-- | sysdeps/unix/i386/sysdep.h | 68 | ||||
-rw-r--r-- | sysdeps/unix/mk-local_lim.c | 9 | ||||
-rw-r--r-- | sysdeps/unix/sysdep.h | 19 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/Makefile | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sys/sysmacros.h | 31 |
5 files changed, 44 insertions, 85 deletions
diff --git a/sysdeps/unix/i386/sysdep.h b/sysdeps/unix/i386/sysdep.h index 16a76b1d5f..3cb130749a 100644 --- a/sysdeps/unix/i386/sysdep.h +++ b/sysdeps/unix/i386/sysdep.h @@ -17,76 +17,10 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <sysdeps/unix/sysdep.h> +#include <sysdeps/i386/sysdep.h> #ifdef ASSEMBLER -/* Syntactic details of assembler. */ - -#ifdef HAVE_ELF - -/* ELF uses byte-counts for .align, most others use log2 of count of bytes. */ -#define ALIGNARG(log2) 1<<log2 -/* For ELF we need the `.type' directive to make shared libs work right. */ -#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,typearg; - -/* In ELF C symbols are asm symbols. */ -#undef NO_UNDERSCORES -#define NO_UNDERSCORES - -#else - -#define ALIGNARG(log2) log2 -#define ASM_TYPE_DIRECTIVE(name,type) /* Nothing is specified. */ - -#endif - - -/* Define an entry point visible from C. */ -#define ENTRY(name) \ - ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(name); \ - ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \ - .align ALIGNARG(4); \ - C_LABEL(name) \ - CALL_MCOUNT - -/* If compiled for profiling, call `mcount' at the start of each function. */ -#ifdef PROF -/* The mcount code relies on a normal frame pointer being on the stack - to locate our caller, so push one just for its benefit. */ -#define CALL_MCOUNT \ - pushl %ebp; movl %esp, %ebp; call JUMPTARGET(mcount); popl %ebp; -#else -#define CALL_MCOUNT /* Do nothing. */ -#endif - -#ifdef NO_UNDERSCORES -/* Since C identifiers are not normally prefixed with an underscore - on this system, the asm identifier `syscall_error' intrudes on the - C name space. Make sure we use an innocuous name. */ -#define syscall_error __syscall_error -#define mcount _mcount -#endif - -#define PSEUDO(name, syscall_name, args) \ -lose: SYSCALL_PIC_SETUP \ - jmp JUMPTARGET(syscall_error) \ - .globl syscall_error; \ - ENTRY (name) \ - DO_CALL (syscall_name, args); \ - jb lose - -#ifdef PIC -#define JUMPTARGET(name) name##@PLT -#define SYSCALL_PIC_SETUP \ - pushl %ebx; \ - call 0f; \ -0: popl %ebx; \ - addl $_GLOBAL_OFFSET_TABLE+[.-0b], %ebx; -#else -#define JUMPTARGET(name) name -#define SYSCALL_PIC_SETUP /* Nothing. */ -#endif - /* This is defined as a separate macro so that other sysdep.h files can include this one and then redefine DO_CALL. */ diff --git a/sysdeps/unix/mk-local_lim.c b/sysdeps/unix/mk-local_lim.c index c9a1d3dfb8..b2212ee46d 100644 --- a/sysdeps/unix/mk-local_lim.c +++ b/sysdeps/unix/mk-local_lim.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1996 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 @@ -92,6 +92,13 @@ static struct param params[] = { "PATH_MAX", PATH_MAX }, #endif +#if !defined (SYMLOOP_MAX) && defined (MAXSYMLINKS) +#define SYMLOOP_MAX MAXSYMLINKS +#endif +#ifdef SYMLOOP_MAX + { "SYMLOOP_MAX", SYMLOOP_MAX }, +#endif + { NULL, 0 } }; diff --git a/sysdeps/unix/sysdep.h b/sysdeps/unix/sysdep.h index 24be0063e0..f5845dc7db 100644 --- a/sysdeps/unix/sysdep.h +++ b/sysdeps/unix/sysdep.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc. +/* Copyright (C) 1991, 92, 93, 96 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 @@ -16,6 +16,8 @@ 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 <sysdeps/generic/sysdep.h> + #include <syscall.h> #define HAVE_SYSCALLS @@ -34,21 +36,6 @@ Cambridge, MA 02139, USA. */ an instruction such that "MOVE(r1, r0)" works. ret should be defined as the return instruction. */ -/* Define a macro we can use to construct the asm name for a C symbol. */ -#ifdef NO_UNDERSCORES -#ifdef __STDC__ -#define C_LABEL(name) name##: -#else -#define C_LABEL(name) name/**/: -#endif -#else -#ifdef __STDC__ -#define C_LABEL(name) _##name##: -#else -#define C_LABEL(name) _/**/name/**/: -#endif -#endif - #ifdef __STDC__ #define SYS_ify(syscall_name) SYS_##syscall_name #else diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index 8c7f26dc81..85bab92635 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -3,7 +3,7 @@ sysdep_routines += sysctl sysdep_headers += sys/mount.h sys/sysinfo.h sys/acct.h sys/sysctl.h \ sys/module.h sys/io.h sys/klog.h sys/kdaemon.h \ - sys/user.h syscall-list.h + sys/user.h syscall-list.h sys/sysmacros.h # Generate the list of SYS_* macros for the system calls (__NR_* macros). $(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/syscall.h diff --git a/sysdeps/unix/sysv/linux/sys/sysmacros.h b/sysdeps/unix/sysv/linux/sys/sysmacros.h new file mode 100644 index 0000000000..61e55e3a8c --- /dev/null +++ b/sysdeps/unix/sysv/linux/sys/sysmacros.h @@ -0,0 +1,31 @@ +/* Definitions of macros to access `dev_t' values. +Copyright (C) 1996 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., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#ifndef _SYS_SYSMACROS_H +#define _SYS_SYSMACROS_H 1 + +/* Get definition from kernel header. */ +#include <linux/kdev_t.h> + +/* For compatibility we provide alternative names. */ +#define major(dev) MAJOR ((unsigned int) (dev)) +#define minor(dev) MINOR ((unsigned int) (dev)) +#define makedev(major, minor) MKDEV (major, minor) + +#endif /* sys/sysmacros.h */ |