diff options
Diffstat (limited to 'sysdeps/posix')
-rw-r--r-- | sysdeps/posix/mk-stdiolim.c | 57 | ||||
-rw-r--r-- | sysdeps/posix/sysconf.c | 47 |
2 files changed, 75 insertions, 29 deletions
diff --git a/sysdeps/posix/mk-stdiolim.c b/sysdeps/posix/mk-stdiolim.c index c268b64..8858ebe 100644 --- a/sysdeps/posix/mk-stdiolim.c +++ b/sysdeps/posix/mk-stdiolim.c @@ -42,27 +42,48 @@ main() write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n\ Boston, MA 02111-1307, USA. */\n\ \n\ -#ifndef _STDIO_H\n\ +#if !defined _STDIO_H && !defined __need_FOPEN_MAX\n\ # error \"Never include <bits/stdio_lim.h> directly; use <stdio.h> instead.\"\n\ #endif\n\ \n"); /* These values correspond to the code in sysdeps/posix/tempname.c. Change the values here if you change that code. */ - printf ("#define L_tmpnam %u\n", sizeof ("/usr/tmp/") + 9); - printf ("#define TMP_MAX %u\n", 62 * 62 * 62); + puts ("#ifndef __need_FOPEN_MAX"); + printf ("# define L_tmpnam %u\n", sizeof ("/usr/tmp/") + 9); + printf ("# define TMP_MAX %u\n", 62 * 62 * 62); - puts ("#ifdef __USE_POSIX"); - printf ("# define L_ctermid %u\n", sizeof ("/dev/tty")); - printf ("# define L_cuserid 9\n"); - puts ("#endif"); + puts ("# ifdef __USE_POSIX"); + printf ("# define L_ctermid %u\n", sizeof ("/dev/tty")); + printf ("# define L_cuserid 9\n"); + puts ("# endif"); + + printf (" #define FILENAME_MAX %u\n", +#ifdef PATH_MAX + PATH_MAX +#else + /* This is supposed to be the size needed to hold the longest file + name string the implementation guarantees can be opened. + PATH_MAX not being defined means the actual limit on the length + of a file name is runtime-variant (or it is unlimited). ISO + says in such a case FILENAME_MAX should be a good size to + allocate for a file name string. POSIX.1 guarantees that a + file name up to _POSIX_PATH_MAX chars long can be opened, so + this value must be at least that. */ + 1024 /* _POSIX_PATH_MAX is 255. */ +#endif + ); + + puts ("#endif\n"); /* POSIX does not require that OPEN_MAX and PATH_MAX be defined, so <bits/local_lim.h> will not define them if they are run-time variant (which is the case in the Hurd). ISO still requires that FOPEN_MAX and FILENAME_MAX be defined, however. */ - printf ("#define FOPEN_MAX %u\n", + puts ("#if defined __need_FOPEN_MAX && !defined __defined_FOPEN_MAX"); + puts ("# define __defined_FOPEN_MAX"); + printf ("# define FOPEN_MAX %u\n", #ifdef OPEN_MAX OPEN_MAX @@ -76,22 +97,8 @@ main() #endif ); + puts ("#endif"); + puts ("#undef __need_FOPEN_MAX"); - printf ("#define FILENAME_MAX %u\n", -#ifdef PATH_MAX - PATH_MAX -#else - /* This is supposed to be the size needed to hold the longest file - name string the implementation guarantees can be opened. - PATH_MAX not being defined means the actual limit on the length - of a file name is runtime-variant (or it is unlimited). ISO - says in such a case FILENAME_MAX should be a good size to - allocate for a file name string. POSIX.1 guarantees that a - file name up to _POSIX_PATH_MAX chars long can be opened, so - this value must be at least that. */ - 1024 /* _POSIX_PATH_MAX is 255. */ -#endif - ); - - exit(0); + exit (0); } diff --git a/sysdeps/posix/sysconf.c b/sysdeps/posix/sysconf.c index 8dde095..b0c559f 100644 --- a/sysdeps/posix/sysconf.c +++ b/sysdeps/posix/sysconf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1993, 1995, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1993, 1995, 1996, 1997 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 @@ -443,9 +443,7 @@ __sysconf (name) #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; + return _POSIX2_VERSION; case _SC_2_C_BIND: #ifdef _POSIX2_C_BIND @@ -783,6 +781,47 @@ __sysconf (name) #else return -1; #endif + + case _SC_XBS5_ILP32_OFF32: +#ifdef _XBS5_ILP32_OFF32 + return _XBS5_ILP32_OFF32; +#else + return -1; +#endif + case _SC_XBS5_ILP32_OFFBIG: +#ifdef _XBS5_ILP32_OFFBIG + return _XBS5_ILP32_OFFBIG; +#else + return -1; +#endif + case _SC_XBS5_LP64_OFF64: +#ifdef _XBS5_LP64_OFF64 + return _XBS5_LP64_OFF64; +#else + return -1; +#endif + case _SC_XBS5_LPBIG_OFFBIG: +#ifdef _XBS5_LPBIG_OFFBIG + return _XBS5_LPBIG_OFFBIG; +#else + return -1; +#endif + + case _SC_XOPEN_LEGACY: + return _XOPEN_LEGACY; + + case _SC_XOPEN_REALTIME: +#ifdef _XOPEN_REALTIME + return _XOPEN_REALTIME; +#else + return -1; +#endif + case _SC_XOPEN_REALTIME_THREADS: +#ifdef _XOPEN_REALTIME_THREADS + return _XOPEN_REALTIME_THREADS; +#else + return -1; +#endif } } |