diff options
author | Roland McGrath <roland@gnu.org> | 1996-08-02 05:27:50 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1996-08-02 05:27:50 +0000 |
commit | e75154a665018d5756196275634704c95476ea6b (patch) | |
tree | 0c8f889a29304e0cc86611c629f1b620d16cf8a7 | |
parent | 9ebb936d991a6e08da05e5a942465d64cac39f86 (diff) | |
download | glibc-e75154a665018d5756196275634704c95476ea6b.tar glibc-e75154a665018d5756196275634704c95476ea6b.tar.gz glibc-e75154a665018d5756196275634704c95476ea6b.tar.bz2 glibc-e75154a665018d5756196275634704c95476ea6b.zip |
Remade for alpha-1.93cvs/libc-960802
-rw-r--r-- | Makeconfig | 16 | ||||
-rw-r--r-- | Makerules | 1 | ||||
-rw-r--r-- | README | 4 | ||||
-rw-r--r-- | catgets/gencat.c | 1 | ||||
-rw-r--r-- | configure.in | 4 | ||||
-rw-r--r-- | elf/dl-cache.c | 1 | ||||
-rw-r--r-- | elf/dl-runtime.c | 1 | ||||
-rw-r--r-- | elf/dynamic-link.h | 2 | ||||
-rw-r--r-- | elf/rtld.c | 3 | ||||
-rw-r--r-- | login/login.c | 2 | ||||
-rw-r--r-- | login/logwtmp.c | 4 | ||||
-rw-r--r-- | manual/Makefile | 2 | ||||
-rw-r--r-- | stdio-common/_itoa.h | 5 | ||||
-rw-r--r-- | sunrpc/Makefile | 7 | ||||
-rw-r--r-- | sysdeps/generic/ioctl-types.h | 6 | ||||
-rw-r--r-- | sysdeps/generic/sysdep.h | 37 | ||||
-rw-r--r-- | sysdeps/gnu/utmpbits.h | 5 | ||||
-rw-r--r-- | sysdeps/i386/dl-machine.h | 8 | ||||
-rw-r--r-- | sysdeps/i386/sysdep.h | 91 | ||||
-rw-r--r-- | sysdeps/stub/_exit.c | 8 | ||||
-rw-r--r-- | sysdeps/stub/socket.c | 4 | ||||
-rw-r--r-- | sysdeps/stub/socketpair.c | 4 | ||||
-rw-r--r-- | sysdeps/stub/stdio_lim.h | 2 | ||||
-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 |
28 files changed, 229 insertions, 118 deletions
diff --git a/Makeconfig b/Makeconfig index 23dca2cc4c..de883ccea5 100644 --- a/Makeconfig +++ b/Makeconfig @@ -298,9 +298,9 @@ endif ifndef +link +link = $(CC) -nostdlib -nostartfiles -o $@ \ $(sysdep-LDFLAGS) $(config-LDFLAGS) $(LDFLAGS) \ - $(addprefix $(csu-objpfx),start.o $(+preinit)) \ + $(+preinit) \ $(filter-out $(common-objpfx)libc%,$^) $(link-libc) \ - $(addprefix $(csu-objpfx),$(+postinit)) + $(+postinit) endif ifndef config-LDFLAGS ifeq (yes,$(build-shared)) @@ -334,8 +334,8 @@ ifndef gnulib gnulib := -lgcc endif ifeq ($(elf),yes) -+preinit = crti.o -+postinit = crtn.o ++preinit = $(addprefix $(csu-objpfx),crti.o) ++postinit = $(addprefix $(csu-objpfx),crtn.o) endif ifdef objpfx csu-objpfx = $(objpfx) @@ -521,10 +521,12 @@ $(common-objpfx)soversions.mk: $(..)shlib-versions $(..)Makeconfig \ test -n "$$versions" || continue; \ case '$(config-machine)-$(config-vendor)-$(config-os)' in $$conf)\ for v in $$versions; do \ - lib="$${v%%=*}"; if eval "test -z \"\$$vers_lib$$lib\""; then \ + lib=`echo $$v | sed 's/=.*$$//'`; \ + if eval "test -z \"\$$vers_lib$$lib\""; then \ eval vers_lib$${lib}=yes; \ - echo $$lib.so-version=.$${v##$$lib=}; fi; \ - done ;; esac; done > $@T + echo $$v | sed "s/^.*=/$$lib.so-version=./"; \ + fi; \ + done ;; esac; done > $@T; exit 0 mv -f $@T $@ # Get $(version) defined with the release version number. @@ -305,6 +305,7 @@ endif define build-shlib $(LINK.o) -shared -o $@ $(sysdep-LDFLAGS) $(config-LDFLAGS) \ + -B$(csu-objpfx) \ -Wl,-soname=lib$(libprefix)$(@F:lib%.so=%).so$($(@F)-version) \ $(LDFLAGS.so) $(LDFLAGS-$(@F:lib%.so=%).so) \ -L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link) \ @@ -1,4 +1,4 @@ -This directory contains the version 1.92 test release of the GNU C Library. +This directory contains the version 1.93 test release of the GNU C Library. Many bugs have been fixed since the last release. Some bugs surely remain. @@ -38,7 +38,7 @@ provides the Unix `crypt' function, plus some other entry points. Because of the United States export restriction on DES implementations, we are distributing this code separately from the rest of the C library. There is an extra distribution tar file just for crypt; it is -called `glibc-1.92-crypt.tar.gz'. You can just unpack the crypt +called `glibc-1.93-crypt.tar.gz'. You can just unpack the crypt distribution along with the rest of the C library and build; you can also build the library without getting crypt. Users outside the USA can get the crypt distribution via anonymous FTP from ftp.uni-c.dk diff --git a/catgets/gencat.c b/catgets/gencat.c index a193606027..e78fb0ace0 100644 --- a/catgets/gencat.c +++ b/catgets/gencat.c @@ -27,6 +27,7 @@ Boston, MA 02111-1307, USA. */ #include <error.h> #include <fcntl.h> #include <getopt.h> +#include <locale.h> #include <libintl.h> #include <limits.h> #include <nl_types.h> diff --git a/configure.in b/configure.in index f1d3d9b0ca..93c2c0926a 100644 --- a/configure.in +++ b/configure.in @@ -74,8 +74,8 @@ AC_ARG_ENABLE(omitfp, dnl dnl Generic infrastructure for drop-in additions to libc. AC_ARG_ENABLE(add-ons, dnl [ --enable-add-ons=DIR... configure and build named extra directories], - add_ons=`echo "$enableval" | sed 's/,/ /g'`, - add_ons=) + [add_ons=`echo "$enableval" | sed 's/,/ /g'`], + [add_ons=]) AC_CONFIG_SUBDIRS($add_ons) AC_CANONICAL_HOST diff --git a/elf/dl-cache.c b/elf/dl-cache.c index a282d313cf..6cd454c7ac 100644 --- a/elf/dl-cache.c +++ b/elf/dl-cache.c @@ -18,6 +18,7 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <link.h> +#include <stddef.h> #include <sys/mman.h> /* System-dependent function to read a file's whole contents diff --git a/elf/dl-runtime.c b/elf/dl-runtime.c index 2785592c44..16e037914b 100644 --- a/elf/dl-runtime.c +++ b/elf/dl-runtime.c @@ -18,6 +18,7 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <link.h> +#include <stddef.h> /* The global scope we will use for symbol lookups. diff --git a/elf/dynamic-link.h b/elf/dynamic-link.h index 45b6b2dcde..e4bb022dcf 100644 --- a/elf/dynamic-link.h +++ b/elf/dynamic-link.h @@ -24,7 +24,7 @@ Cambridge, MA 02139, USA. */ /* Read the dynamic section at DYN and fill in INFO with indices DT_*. */ -static inline void +static inline void __attribute__ ((unused)) elf_get_dynamic_info (ElfW(Dyn) *dyn, ElfW(Dyn) *info[DT_NUM + DT_PROCNUM]) { unsigned int i; diff --git a/elf/rtld.c b/elf/rtld.c index 3657efdc61..fe5d269de2 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -245,7 +245,8 @@ of this helper program; chances are you did not intend to run this program.\n", if (mode == verify) /* We were called just to verify that this is a dynamic executable using us as the program interpreter. */ - _exit (strcmp (_dl_rtld_map.l_libname, _dl_rtld_map.l_name) + _exit ((strcmp (_dl_rtld_map.l_libname, _dl_rtld_map.l_name) || + l->l_ld == NULL) ? EXIT_FAILURE : EXIT_SUCCESS); /* Extract the contents of the dynamic section for easy access. */ diff --git a/login/login.c b/login/login.c index 76f27a0875..a53613f238 100644 --- a/login/login.c +++ b/login/login.c @@ -93,7 +93,9 @@ login (const struct utmp *ut) #if _HAVE_UT_TYPE - 0 copy.ut_type = USER_PROCESS; #endif +#if _HAVE_UT_PID - 0 copy.ut_pid = getpid (); +#endif /* Seek tty. */ found_tty = tty_name (STDIN_FILENO, &tty, sizeof (_tty)); diff --git a/login/logwtmp.c b/login/logwtmp.c index 2ae6a68dca..17c900181f 100644 --- a/login/logwtmp.c +++ b/login/logwtmp.c @@ -39,7 +39,9 @@ logwtmp (const char *line, const char *name, const char *host) /* Set information in new entry. */ memset (&ut, 0, sizeof (ut)); +#if _HAVE_UT_PID - 0 ut.ut_pid = getpid (); +#endif #if _HAVE_UT_TYPE - 0 ut.ut_type = name[0] ? USER_PROCESS : DEAD_PROCESS; #endif @@ -52,7 +54,7 @@ logwtmp (const char *line, const char *name, const char *host) #if _HAVE_UT_TV - 0 __gettimeofday (&ut.ut_tv, NULL); #else - __time (&ut.ut_time); + time (&ut.ut_time); #endif /* Try to lock the file. */ diff --git a/manual/Makefile b/manual/Makefile index 54d0b06448..cc85d4c8bf 100644 --- a/manual/Makefile +++ b/manual/Makefile @@ -32,7 +32,7 @@ include ../Makeconfig endif # Set chapters and chapters-incl. -include chapters +-include chapters chapters: libc.texinfo $(find-includes) ifdef chapters diff --git a/stdio-common/_itoa.h b/stdio-common/_itoa.h index 75f5f85892..97457823f4 100644 --- a/stdio-common/_itoa.h +++ b/stdio-common/_itoa.h @@ -29,8 +29,9 @@ Cambridge, MA 02139, USA. */ extern char *_itoa __P ((unsigned long long int value, char *buflim, unsigned int base, int upper_case)); -static inline char *_itoa_word (unsigned long value, char *buflim, - unsigned int base, int upper_case) +static inline char * __attribute__ ((unused)) +_itoa_word (unsigned long value, char *buflim, + unsigned int base, int upper_case) { extern const char _itoa_upper_digits[], _itoa_lower_digits[]; const char *digits = upper_case ? _itoa_upper_digits : _itoa_lower_digits; diff --git a/sunrpc/Makefile b/sunrpc/Makefile index 428e6a1ad1..11f5541542 100644 --- a/sunrpc/Makefile +++ b/sunrpc/Makefile @@ -73,11 +73,18 @@ rpcgen-objs = rpc_main.o rpc_hout.o rpc_cout.o rpc_parse.o \ distribute := rpc_util.h rpc_parse.h rpc_scan.h $(rpcgen-objs:.o=.c) etc.rpc extra-objs = $(rpcgen-objs) +all: # Make this the default target; it will be defined in Rules. + +include ../Makeconfig + +ifeq (no,$(cross-compile)) +# We can only build this library if we can run the rpcgen we build. extra-libs := librpcsvc extra-libs-others := librpcsvc # Make it in `others' pass, not `lib' pass. librpcsvc-routines = $(rpcsvc:%.x=x%) librpcsvc-inhibit-o = .so # Build no shared rpcsvc library. omit-deps = $(librpcsvc-routines) +endif # Sun's code is not too clean. override +gccwarn := -w diff --git a/sysdeps/generic/ioctl-types.h b/sysdeps/generic/ioctl-types.h index 0fc0cd40e1..1116d52e33 100644 --- a/sysdeps/generic/ioctl-types.h +++ b/sysdeps/generic/ioctl-types.h @@ -83,6 +83,11 @@ struct winsize #endif #if defined (TIOCGSIZE) || defined (TIOCSSIZE) +/* The BSD-style ioctl constructor macros use `sizeof', which can't be used + in a preprocessor conditional. Since the commands are always unique + regardless of the size bits, we can safely define away `sizeof' for the + purpose of the conditional. */ +# define sizeof(type) 0 # if defined (TIOCGWINSZ) && TIOCGSIZE == TIOCGWINSZ /* Many systems that have TIOCGWINSZ define TIOCGSIZE for source compatibility with Sun; they define `struct ttysize' to have identical @@ -105,6 +110,7 @@ struct ttysize int ts_lines, ts_cols; /* Lines and columns, in characters. */ }; # endif +# undef sizeof /* See above. */ #endif diff --git a/sysdeps/generic/sysdep.h b/sysdeps/generic/sysdep.h new file mode 100644 index 0000000000..def2d18dc2 --- /dev/null +++ b/sysdeps/generic/sysdep.h @@ -0,0 +1,37 @@ +/* Generic asm macros used on many machines. +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 +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. */ + +#ifndef C_LABEL + +/* 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 + +#endif diff --git a/sysdeps/gnu/utmpbits.h b/sysdeps/gnu/utmpbits.h index 4749fdd3fe..0dd55b59fa 100644 --- a/sysdeps/gnu/utmpbits.h +++ b/sysdeps/gnu/utmpbits.h @@ -71,9 +71,10 @@ struct utmp #define ut_time ut_tv.tv_sec /* Backwards compatibility. */ -/* Tell the user that we have a modern system with UT_HOST, UT_TYPE, UT_ID - and UT_TV fields. */ +/* Tell the user that we have a modern system with UT_HOST, UT_PID, + UT_TYPE, UT_ID and UT_TV fields. */ #define _HAVE_UT_TYPE 1 +#define _HAVE_UT_PID 1 #define _HAVE_UT_ID 1 #define _HAVE_UT_TV 1 #define _HAVE_UT_HOST 1 diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h index dc88b043ea..111122e437 100644 --- a/sysdeps/i386/dl-machine.h +++ b/sysdeps/i386/dl-machine.h @@ -25,7 +25,7 @@ Cambridge, MA 02139, USA. */ #include <assert.h> /* Return nonzero iff E_MACHINE is compatible with the running host. */ -static inline int +static inline int __attribute__ ((unused)) elf_machine_matches_host (Elf32_Half e_machine) { switch (e_machine) @@ -41,7 +41,7 @@ elf_machine_matches_host (Elf32_Half e_machine) /* Return the run-time address of the _GLOBAL_OFFSET_TABLE_. Must be inlined in a function which uses global data. */ -static inline Elf32_Addr * +static inline Elf32_Addr * __attribute__ ((unused)) elf_machine_got (void) { register Elf32_Addr *got asm ("%ebx"); @@ -50,7 +50,7 @@ elf_machine_got (void) /* Return the run-time load address of the shared object. */ -static inline Elf32_Addr +static inline Elf32_Addr __attribute__ ((unused)) elf_machine_load_address (void) { Elf32_Addr addr; @@ -72,7 +72,7 @@ elf_machine_load_address (void) /* Set up the loaded object described by L so its unrelocated PLT entries will jump to the on-demand fixup code in dl-runtime.c. */ -static inline void +static inline void __attribute__ ((unused)) elf_machine_runtime_setup (struct link_map *l, int lazy) { Elf32_Addr *got; diff --git a/sysdeps/i386/sysdep.h b/sysdeps/i386/sysdep.h new file mode 100644 index 0000000000..9c312b0d0c --- /dev/null +++ b/sysdeps/i386/sysdep.h @@ -0,0 +1,91 @@ +/* Assembler macros for i386. +Copyright (C) 1991, 92, 93, 95, 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 +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 <sysdeps/generic/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 + +#endif /* ASSEMBLER */ diff --git a/sysdeps/stub/_exit.c b/sysdeps/stub/_exit.c index 4b2c59a48b..c8f242b71f 100644 --- a/sysdeps/stub/_exit.c +++ b/sysdeps/stub/_exit.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1994, 1995 Free Software Foundation, Inc. +/* Copyright (C) 1991, 94, 95, 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 @@ -23,12 +23,12 @@ Cambridge, MA 02139, USA. */ /* The function `_exit' should take a status argument and simply terminate program execution, using the low-order 8 bits of the given integer as status. */ -__NORETURN void -DEFUN(_exit, (status), int status) +void +_exit (status) + int status; { status &= 0xff; abort (); } - stub_warning (_exit) diff --git a/sysdeps/stub/socket.c b/sysdeps/stub/socket.c index 5012cf2cc9..26f550db87 100644 --- a/sysdeps/stub/socket.c +++ b/sysdeps/stub/socket.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1995 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1995, 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 @@ -25,7 +25,7 @@ Cambridge, MA 02139, USA. */ Returns a file descriptor for the new socket, or -1 for errors. */ int DEFUN(socket, (domain, type, protocol), - int domain AND enum __socket_type type AND int protocol) + int domain AND int type AND int protocol) { errno = ENOSYS; return -1; diff --git a/sysdeps/stub/socketpair.c b/sysdeps/stub/socketpair.c index 77889b486d..bc9b4b50f2 100644 --- a/sysdeps/stub/socketpair.c +++ b/sysdeps/stub/socketpair.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1995 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1995, 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 @@ -26,7 +26,7 @@ Cambridge, MA 02139, USA. */ one will be chosen automatically. Returns 0 on success, -1 for errors. */ int DEFUN(socketpair, (domain, type, protocol, fds), - int domain AND enum __socket_type type AND int protocol AND int fds[2]) + int domain AND int type AND int protocol AND int fds[2]) { errno = ENOSYS; return -1; diff --git a/sysdeps/stub/stdio_lim.h b/sysdeps/stub/stdio_lim.h index 1a9125b55a..59b6a40ebe 100644 --- a/sysdeps/stub/stdio_lim.h +++ b/sysdeps/stub/stdio_lim.h @@ -1,6 +1,4 @@ #define L_tmpnam 1 #define TMPMAX 0 -#define L_ctermid 1 -#define L_cuserid 1 #define FOPEN_MAX 16 #define FILENAME_MAX 14 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 */ |