From bfc04a9ff126ea5fdbe08e281bfc61b93f31429b Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Mon, 19 Feb 1996 23:14:44 +0000 Subject: Sun Feb 18 15:08:10 1996 Andreas Schwab * sysdeps/posix/utimes.c (__utimes): There are 1000000 usecs in a sec. Sun Feb 18 13:56:00 1996 Andreas Schwab * elf/Makefile, time/Makefile: Make `all' the default target. Mon Feb 19 18:09:04 1996 Roland McGrath * misc/sys/ptrace.h: Moved to ... * sysdeps/generic/sys/ptrace.h: ... here. * sys/ptrace.h: File removed. Sun Feb 18 12:13:07 1996 Andreas Schwab * sysdeps/unix/sysv/linux/Makefile (headers): Add fpu_control.h. * sysdeps/unix/sysv/linux/i386/sysdep.S (errno): Put it into .bss so that the symbol alias works. * sysdeps/unix/sysv/linux/m68k/fpu_control.h (_FPU_SETCW): Corrected. * sysdeps/unix/sysv/linux/resourcebits.h: New file. * sysdeps/unix/sysv/linux/sys/ptrace.h: New file. * sysdeps/unix/sysv/linux/syscalls.list: Add getegid, geteuid, getppid and reboot. * sysdeps/unix/sysv/linux/sysconf.c: Special version that does not use getdtablesize. Sat Feb 17 10:30:21 1996 David Mosberger-Tang * stdio-common/printf_fp.c, stdlib/strtod.c, sysdeps/ieee754/dbl2mpn.c, sysdeps/ieee754/ldbl2mpn.c, sysdeps/ieee754/mpn2dbl.c, sysdeps/ieee754/mpn2ldbl.c: Cast left operands of shift instructions to `long' where necessary. Thu Feb 15 20:04:50 1996 Ulrich Drepper * stdlib/fpioconst.h: Introduce new constant _FPIO_CONST_OFFSET. * stdio-common/printf_fp.c, stdlib/strtod.c: Use _FPIO_CONST_OFFSET to correctly access MPN array depending on architecture. --- sysdeps/unix/Makefile | 2 + sysdeps/unix/closedir.c | 6 +- sysdeps/unix/dirstream.h | 7 +- sysdeps/unix/opendir.c | 26 ++-- sysdeps/unix/readdir.c | 4 +- sysdeps/unix/seekdir.c | 6 +- sysdeps/unix/sysv/linux/Makefile | 6 +- sysdeps/unix/sysv/linux/direct.h | 43 ------- sysdeps/unix/sysv/linux/i386/sysdep.S | 9 +- sysdeps/unix/sysv/linux/m68k/fpu_control.h | 2 +- sysdeps/unix/sysv/linux/resourcebits.h | 50 ++++++++ sysdeps/unix/sysv/linux/sys/ptrace.h | 98 ++++++++++++++ sysdeps/unix/sysv/linux/syscalls.list | 4 + sysdeps/unix/sysv/linux/sysconf.c | 198 ++++++++++++++++++++++++++++- sysdeps/unix/telldir.c | 4 +- 15 files changed, 389 insertions(+), 76 deletions(-) delete mode 100644 sysdeps/unix/sysv/linux/direct.h create mode 100644 sysdeps/unix/sysv/linux/resourcebits.h create mode 100644 sysdeps/unix/sysv/linux/sys/ptrace.h (limited to 'sysdeps/unix') diff --git a/sysdeps/unix/Makefile b/sysdeps/unix/Makefile index fd4166615d..0496cf8272 100644 --- a/sysdeps/unix/Makefile +++ b/sysdeps/unix/Makefile @@ -295,9 +295,11 @@ $(objpfx)sysd-syscalls: $(..)sysdeps/unix/make-syscalls.sh \ # This syscall objects depend on s-proto.d, which is generated to # specify dependencies generated syscalls with have on headers. ifdef subdir +ifndef no_deps # These deps use file names relative to a subdir, so don't # include them in the parent directory. -include $(objpfx)s-proto.d endif +endif endif diff --git a/sysdeps/unix/closedir.c b/sysdeps/unix/closedir.c index 6acbb62e87..5f1ac7439a 100644 --- a/sysdeps/unix/closedir.c +++ b/sysdeps/unix/closedir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1993, 1995, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1993, 1995 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 @@ -37,9 +37,9 @@ DEFUN(closedir, (dirp), DIR *dirp) return -1; } - fd = dirp->fd; + fd = dirp->__fd; - free ((PTR) dirp->data); + free ((PTR) dirp->__data); free ((PTR) dirp); return __close (fd); diff --git a/sysdeps/unix/dirstream.h b/sysdeps/unix/dirstream.h index 52d2337125..72fd67c722 100644 --- a/sysdeps/unix/dirstream.h +++ b/sysdeps/unix/dirstream.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995 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,8 @@ Cambridge, MA 02139, USA. */ #define _DIRSTREAM_H 1 -#include +#define __need_size_t +#include /* Directory stream type. @@ -36,7 +37,7 @@ struct __dirstream size_t __offset; /* Current offset into the block. */ size_t __size; /* Total valid data in the block. */ - off_t pos; /* Position of next entry to read. */ + struct dirent __entry; /* Returned by `readdir'. */ }; #define _DIR_dirfd(dirp) ((dirp)->__fd) diff --git a/sysdeps/unix/opendir.c b/sysdeps/unix/opendir.c index 31111e8c50..5cd620676a 100644 --- a/sysdeps/unix/opendir.c +++ b/sysdeps/unix/opendir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1992, 1993, 1994, 1995 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,7 @@ 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 #include #include #include @@ -27,11 +28,12 @@ Cambridge, MA 02139, USA. */ #include #include +#include "direct.h" /* This file defines `struct direct'. */ #include "dirstream.h" /* Open a directory stream on NAME. */ DIR * -opendir (const char *name) +DEFUN(opendir, (name), CONST char *name) { DIR *dirp; struct stat statbuf; @@ -60,7 +62,7 @@ opendir (const char *name) goto lose; } - dirp = (DIR *) calloc (1, sizeof (DIR)); /* Zero-fill. */ + dirp = (DIR *) calloc (1, sizeof (DIR) + NAME_MAX); /* Zero-fill. */ if (dirp == NULL) lose: { @@ -71,24 +73,24 @@ opendir (const char *name) } #ifdef _STATBUF_ST_BLKSIZE - if (statbuf.st_blksize < sizeof (struct dirent)) - dirp->allocation = sizeof (struct dirent); + if (statbuf.st_blksize < sizeof (struct direct)) + dirp->__allocation = sizeof (struct direct); else - dirp->allocation = statbuf.st_blksize; + dirp->__allocation = statbuf.st_blksize; #else - dirp->allocation = (BUFSIZ < sizeof (struct dirent) ? - sizeof (struct dirent) : BUFSIZ); + dirp->__allocation = (BUFSIZ < sizeof (struct direct) ? + sizeof (struct direct) : BUFSIZ); #endif - dirp->data = (char *) malloc (dirp->allocation); - if (dirp->data == NULL) + dirp->__data = (char *) malloc (dirp->__allocation); + if (dirp->__data == NULL) { int save = errno; - free (dirp); + free ((PTR) dirp); (void) __close (fd); errno = save; return NULL; } - dirp->fd = fd; + dirp->__fd = fd; return dirp; } diff --git a/sysdeps/unix/readdir.c b/sysdeps/unix/readdir.c index b1d7e43231..1842948a35 100644 --- a/sysdeps/unix/readdir.c +++ b/sysdeps/unix/readdir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1992, 1993, 1994, 1995 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 @@ -77,8 +77,6 @@ DEFUN(readdir, (dirp), DIR *dirp) p = memchr ((PTR) dp->d_name, '\0', D_NAMLEN (dp) + 1); d->d_namlen = (p != NULL) ? p - dp->d_name : D_NAMLEN (dp); memcpy (d->d_name, dp->d_name, d->d_namlen + 1); - d->d_type = DT_UNKNOWN; - d->d_reclen = &d->d_name[d->d_namlen + 1] - (char *) d; return d; } } diff --git a/sysdeps/unix/seekdir.c b/sysdeps/unix/seekdir.c index 02390d7854..018f697c21 100644 --- a/sysdeps/unix/seekdir.c +++ b/sysdeps/unix/seekdir.c @@ -27,7 +27,7 @@ Cambridge, MA 02139, USA. */ void DEFUN(seekdir, (dirp, pos), DIR *dirp AND __off_t pos) { - (void) __lseek(dirp->fd, pos, SEEK_SET); - dirp->size = 0; - dirp->offset = 0; + (void) __lseek(dirp->__fd, pos, SEEK_SET); + dirp->__size = 0; + dirp->__offset = 0; } diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index c96d0827e3..79334e6425 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -1,7 +1,9 @@ ifeq ($(subdir), math) sysdep_routines += setfpucw extra-objs += ieee-fpucw.o +headers += fpu_control.h install-lib += libieee.a +non-lib.a += libieee.a $(objpfx)libieee.a: $(objpfx)ieee-fpucw.o rm -f $@ @@ -22,10 +24,6 @@ sysdep_routines += adjtimex headers += sys/timex.h endif -ifeq ($(subdir), sysvipc) -sysdep_routines += ipc -endif - ifeq ($(subdir), socket) headers += sys/socketcall.h endif diff --git a/sysdeps/unix/sysv/linux/direct.h b/sysdeps/unix/sysv/linux/direct.h deleted file mode 100644 index ef88147d81..0000000000 --- a/sysdeps/unix/sysv/linux/direct.h +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright (C) 1992, 1993 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 _BSDDIR_H -#define _BSDDIR_H 1 - -#include - -/* This is what system V calls a "struct dirent". */ - -struct direct - { - unsigned long int d_fileno; - long int d_off; - unsigned short int d_reclen; - char d_name[NAME_MAX + 1]; - }; - -#include - -/* We calculate the length of the name by taking the length of the whole - `struct direct' record, subtracting the size of everything before the - name, and subtracting one for the terminating null. */ - -#define D_NAMLEN(d) \ - ((d)->d_reclen - offsetof (struct direct, d_name) - 1) - -#endif diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.S b/sysdeps/unix/sysv/linux/i386/sysdep.S index 42f4854797..0130ad02a9 100644 --- a/sysdeps/unix/sysv/linux/i386/sysdep.S +++ b/sysdeps/unix/sysv/linux/i386/sysdep.S @@ -23,8 +23,15 @@ Cambridge, MA 02139, USA. */ it somewhere else. ...and this place is here. */ -.comm errno,4,4 + .bss + .globl errno + .type errno,@object + .size errno,4 +errno: .space 4 + .globl _errno + .type _errno,@object _errno = errno /* This name is expected by hj libc.so.5 startup code. */ + .text /* The following code is not used at all in the shared library. The PIC system call stubs set errno themselves. */ diff --git a/sysdeps/unix/sysv/linux/m68k/fpu_control.h b/sysdeps/unix/sysv/linux/m68k/fpu_control.h index 0bbbb08916..0b3623d9a3 100644 --- a/sysdeps/unix/sysv/linux/m68k/fpu_control.h +++ b/sysdeps/unix/sysv/linux/m68k/fpu_control.h @@ -95,7 +95,7 @@ typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__))); /* Macros for accessing the hardware control word. */ #define _FPU_GETCW(cw) __asm__ ("fmove%.l %!, %0" : "=dm" (cw)) -#define _FPU_SETCW(cw) __asm__ ("fmove%.l %0, %!" : "dm" (cw)) +#define _FPU_SETCW(cw) __asm__ volatile ("fmove%.l %0, %!" : : "dm" (cw)) /* Default control word set at startup. */ extern fpu_control_t __fpu_control; diff --git a/sysdeps/unix/sysv/linux/resourcebits.h b/sysdeps/unix/sysv/linux/resourcebits.h new file mode 100644 index 0000000000..9cd6ab46d8 --- /dev/null +++ b/sysdeps/unix/sysv/linux/resourcebits.h @@ -0,0 +1,50 @@ +/* Bit values for resource limits. Linux version. +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., 675 Mass Ave, +Cambridge, MA 02139, USA. */ + +/* These are the values for Linux. */ + +/* Kinds of resource limit. */ +enum __rlimit_resource + { + /* Per-process CPU limit, in seconds. */ + RLIMIT_CPU, + /* Largest file that can be created, in bytes. */ + RLIMIT_FSIZE, + /* Maximum size of data segment, in bytes. */ + RLIMIT_DATA, + /* Maximum size of stack segment, in bytes. */ + RLIMIT_STACK, + /* Largest core file that can be created, in bytes. */ + RLIMIT_CORE, + /* Largest resident set size, in bytes. + This affects swapping; processes that are exceeding their + resident set size will be more likely to have physical memory + taken from them. */ + RLIMIT_RSS, + /* Number of processes. */ + RLIMIT_NPROC, + /* Number of open files. */ + RLIMIT_OFILE, + RLIMIT_NOFILE = RLIMIT_OFILE, /* Another name for the same thing. */ + /* Locked-in-memory address space. */ + RLIMIT_MEMLOCK, + + RLIMIT_NLIMITS, /* Number of limit flavors. */ + RLIM_NLIMITS = RLIMIT_NLIMITS /* Traditional name for same. */ + }; diff --git a/sysdeps/unix/sysv/linux/sys/ptrace.h b/sysdeps/unix/sysv/linux/sys/ptrace.h new file mode 100644 index 0000000000..51d3317af2 --- /dev/null +++ b/sysdeps/unix/sysv/linux/sys/ptrace.h @@ -0,0 +1,98 @@ +/* `ptrace' debugger support interface. Linux version. +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, 1992 Free Software Foundation, Inc., 675 Mass Ave, +Cambridge, MA 02139, USA. */ + +#ifndef _SYS_PTRACE_H +#define _SYS_PTRACE_H + +#include + +__BEGIN_DECLS + +/* Type of the REQUEST argument to `ptrace.' */ +enum __ptrace_request +{ + /* Indicate that the process making this request should be traced. + All signals received by this process can be intercepted by its + parent, and its parent can use the other `ptrace' requests. */ + PTRACE_TRACEME = 0, +#define PT_TRACE_ME PTRACE_TRACEME + + /* Return the word in the process's text space at address ADDR. */ + PTRACE_PEEKTEXT, +#define PT_READ_I PTRACE_PEEKTEXT + + /* Return the word in the process's data space at address ADDR. */ + PTRACE_PEEKDATA, +#define PT_READ_D PTRACE_PEEKDATA + + /* Return the word in the process's user area at offset ADDR. */ + PTRACE_PEEKUSER, +#define PT_READ_U PTRACE_PEEKUSER + + /* Write the word DATA into the process's text space at address ADDR. */ + PTRACE_POKETEXT, +#define PT_WRITE_I PTRACE_POKETEXT + + /* Write the word DATA into the process's data space at address ADDR. */ + PTRACE_POKEDATA, +#define PT_WRITE_D PTRACE_POKEDATA + + /* Write the word DATA into the process's user area at offset ADDR. */ + PTRACE_POKEUSER, +#define PT_WRITE_U PTRACE_POKEUSER + + /* Continue the process. */ + PTRACE_CONT, +#define PT_CONTINUE PTRACE_CONT + + /* Kill the process. */ + PTRACE_KILL, +#define PT_KILL PTRACE_KILL + + /* Single step the process. + This is not supported on all machines. */ + PTRACE_SINGLESTEP, +#define PT_STEP PTRACE_SINGLESTEP + + /* Attach to a process that is already running. */ + PTRACE_ATTACH = 0x10, +#define PT_ATTACH PTRACE_ATTACH + + /* Detach from a process attached to with PTRACE_ATTACH. */ + PTRACE_DETACH, +#define PT_DETACH PTRACE_DETACH + + /* Continue and stop at the next (return from) syscall. */ + PTRACE_SYSCALL = 24, +}; + +/* Perform process tracing functions. REQUEST is one of the values + above, and determines the action to be taken. + For all requests except PTRACE_TRACEME, PID specifies the process to be + traced. + + PID and the other arguments described above for the various requests should + appear (those that are used for the particular request) as: + pid_t PID, void *ADDR, int DATA, void *ADDR2 + after REQUEST. */ +extern int ptrace __P ((enum __ptrace_request __request __DOTS)); + +__END_DECLS + +#endif /* sys/ptrace.h */ diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list index 7ed7282a70..9601f0651e 100644 --- a/sysdeps/unix/sysv/linux/syscalls.list +++ b/sysdeps/unix/sysv/linux/syscalls.list @@ -2,8 +2,11 @@ adjtimex adjtime adjtimex 1 __adjtimex fork - fork 0 __fork fork +getegid - getegid 0 __getegid getegid +geteuid - geteuid 0 __geteuid geteuid getpgid - getpgid 1 getpgid getpgrp - getpgrp 0 getpgrp +getppid - getppid 0 __getppid getppid getsid - getsid 1 getsid gtty - gtty 2 gtty ipc msgget ipc 5 __ipc @@ -13,6 +16,7 @@ mount - mount 5 __mount mount munlock - munlock 2 __munlock munlock munlockall - munlockall 0 __munlockall munlockall pipe - pipe 1 __pipe pipe +reboot - reboot 3 reboot s_ptrace ptrace ptrace 4 __syscall_ptrace setpgid - setpgid 2 setpgid sigpending - sigpending 1 sigpending diff --git a/sysdeps/unix/sysv/linux/sysconf.c b/sysdeps/unix/sysv/linux/sysconf.c index e366d04a8b..447cfd46ae 100644 --- a/sysdeps/unix/sysv/linux/sysconf.c +++ b/sysdeps/unix/sysv/linux/sysconf.c @@ -1 +1,197 @@ -#include +/* Copyright (C) 1991, 1993, 1995 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 +#include +#include +#include +#include +#include +#include + +extern size_t EXFUN(__getpagesize, (NOARGS)); + +/* Get the value of the system variable NAME. */ +long int +DEFUN(__sysconf, (name), int name) +{ + switch (name) + { + default: + errno = EINVAL; + return -1; + + case _SC_ARG_MAX: +#ifdef ARG_MAX + return ARG_MAX; +#else + return -1; +#endif + + case _SC_CHILD_MAX: +#ifdef CHILD_MAX + return CHILD_MAX; +#else + return -1; +#endif + + case _SC_CLK_TCK: +#ifdef CLK_TCK + return CLK_TCK; +#else + return 60; +#endif + + case _SC_NGROUPS_MAX: +#ifdef NGROUPS_MAX + return NGROUPS_MAX; +#else + return -1; +#endif + + case _SC_OPEN_MAX: + return OPEN_MAX; + + case _SC_STREAM_MAX: +#ifdef STREAM_MAX + return STREAM_MAX; +#else + return FOPEN_MAX; +#endif + + case _SC_TZNAME_MAX: + return __tzname_max (); + + case _SC_JOB_CONTROL: +#ifdef _POSIX_JOB_CONTROL + return 1; +#else + return -1; +#endif + case _SC_SAVED_IDS: +#ifdef _POSIX_SAVED_IDS + return 1; +#else + return -1; +#endif + case _SC_VERSION: + return _POSIX_VERSION; + + case _SC_PAGESIZE: + return __getpagesize (); + + case _SC_BC_BASE_MAX: +#ifdef BC_BASE_MAX + return BC_BASE_MAX; +#else + return -1; +#endif + + case _SC_BC_DIM_MAX: +#ifdef BC_DIM_MAX + return BC_DIM_MAX; +#else + return -1; +#endif + + case _SC_BC_SCALE_MAX: +#ifdef BC_SCALE_MAX + return BC_SCALE_MAX; +#else + return -1; +#endif + + case _SC_BC_STRING_MAX: +#ifdef BC_STRING_MAX + return BC_STRING_MAX; +#else + return -1; +#endif + + case _SC_EQUIV_CLASS_MAX: +#ifdef EQUIV_CLASS_MAX + return EQUIV_CLASS_MAX; +#else + return -1; +#endif + + case _SC_EXPR_NEST_MAX: +#ifdef EXPR_NEST_MAX + return EXPR_NEST_MAX; +#else + return -1; +#endif + + case _SC_LINE_MAX: +#ifdef LINE_MAX + return LINE_MAX; +#else + return -1; +#endif + + case _SC_RE_DUP_MAX: +#ifdef RE_DUP_MAX + return RE_DUP_MAX; +#else + return -1; +#endif + + + case _SC_2_VERSION: + /* This is actually supposed to return the version + of the 1003.2 utilities on the system {POSIX2_VERSION}. */ + return _POSIX2_C_VERSION; + + case _SC_2_C_BIND: +#ifdef _POSIX2_C_BIND + return _POSIX2_C_BIND; +#else + return -1; +#endif + + case _SC_2_C_DEV: +#ifdef _POSIX2_C_DEV + return _POSIX2_C_DEV; +#else + return -1; +#endif + + case _SC_2_FORT_DEV: +#ifdef _POSIX2_FORT_DEV + return _POSIX2_FORT_DEV; +#else + return -1; +#endif + + case _SC_2_LOCALEDEF: +#ifdef _POSIX2_LOCALEDEF + return _POSIX2_LOCALEDEF; +#else + return -1; +#endif + + case _SC_2_SW_DEV: +#ifdef _POSIX2_SW_DEV + return _POSIX2_SW_DEV; +#else + return -1; +#endif + } +} + +weak_alias (__sysconf, sysconf) diff --git a/sysdeps/unix/telldir.c b/sysdeps/unix/telldir.c index c319d71df7..2b611b0fca 100644 --- a/sysdeps/unix/telldir.c +++ b/sysdeps/unix/telldir.c @@ -36,8 +36,8 @@ DEFUN(telldir, (dirp), DIR *dirp) return (off_t) -1; } - pos = __lseek(dirp->fd, (off_t) 0, SEEK_CUR); + pos = __lseek(dirp->__fd, (off_t) 0, SEEK_CUR); if (pos == (off_t) -1) return (off_t) -1; - return pos + dirp->size - dirp->offset; + return pos + dirp->__size - dirp->__offset; } -- cgit v1.2.3