diff options
author | Jakub Jelinek <jakub@redhat.com> | 2009-03-09 14:35:26 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2009-03-09 14:35:26 +0000 |
commit | 5c1d419918b3637170da9a5592049048aaf0ee49 (patch) | |
tree | 8ad672f8707275fdbeaf5b8a45eeb2bc8144623a /posix | |
parent | 48da74123eca38beeaec03d3d46ba09f069ef7dc (diff) | |
download | glibc-5c1d419918b3637170da9a5592049048aaf0ee49.tar glibc-5c1d419918b3637170da9a5592049048aaf0ee49.tar.gz glibc-5c1d419918b3637170da9a5592049048aaf0ee49.tar.bz2 glibc-5c1d419918b3637170da9a5592049048aaf0ee49.zip |
Updated to fedora-glibc-20090309T1421cvs/fedora-glibc-2_9_90-9
Diffstat (limited to 'posix')
-rw-r--r-- | posix/Versions | 3 | ||||
-rw-r--r-- | posix/getconf.c | 8 | ||||
-rw-r--r-- | posix/getopt.c | 30 | ||||
-rw-r--r-- | posix/getopt.h | 18 | ||||
-rw-r--r-- | posix/getopt1.c | 11 | ||||
-rw-r--r-- | posix/getopt_int.h | 7 | ||||
-rw-r--r-- | posix/unistd.h | 4 |
7 files changed, 61 insertions, 20 deletions
diff --git a/posix/Versions b/posix/Versions index f73ff4a85a..10625f19e1 100644 --- a/posix/Versions +++ b/posix/Versions @@ -128,6 +128,9 @@ libc { GLIBC_2.7 { __sched_cpualloc; __sched_cpufree; } + GLIBC_2.10 { + __posix_getopt; + } GLIBC_PRIVATE { __libc_fork; __libc_pwrite; } diff --git a/posix/getconf.c b/posix/getconf.c index 2b1f6c9871..59ccab606c 100644 --- a/posix/getconf.c +++ b/posix/getconf.c @@ -355,6 +355,14 @@ static const struct conf vars[] = #ifdef _SC_THREAD_PRIO_PROTECT { "_POSIX_THREAD_PRIO_PROTECT", _SC_THREAD_PRIO_PROTECT, SYSCONF }, #endif +#ifdef _SC_THREAD_ROBUST_PRIO_INHERIT + { "_POSIX_THREAD_ROBUST_PRIO_INHERIT", _SC_THREAD_ROBUST_PRIO_INHERIT, + SYSCONF }, +#endif +#ifdef _SC_THREAD_ROBUST_PRIO_PROTECT + { "_POSIX_THREAD_ROBUST_PRIO_PROTECT", _SC_THREAD_ROBUST_PRIO_PROTECT, + SYSCONF }, +#endif #ifdef _SC_THREAD_PROCESS_SHARED { "_POSIX_THREAD_PROCESS_SHARED", _SC_THREAD_PROCESS_SHARED, SYSCONF }, #endif diff --git a/posix/getopt.c b/posix/getopt.c index 965bfdd3ac..a7f0b54857 100644 --- a/posix/getopt.c +++ b/posix/getopt.c @@ -2,7 +2,7 @@ NOTE: getopt is part of the C library, so if you don't know what "Keep this file name-space clean" means, talk to drepper@gnu.org before changing it! - Copyright (C) 1987-1996,1998-2004,2008 Free Software Foundation, Inc. + Copyright (C) 1987-1996,1998-2004,2008,2009 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 @@ -270,7 +270,7 @@ exchange (char **argv, struct _getopt_data *d) static const char * _getopt_initialize (int argc, char *const *argv, const char *optstring, - struct _getopt_data *d) + struct _getopt_data *d, int posixly_correct) { /* Start processing options with ARGV-element 1 (since ARGV-element 0 is the program name); the sequence of previously skipped @@ -280,7 +280,7 @@ _getopt_initialize (int argc, char *const *argv, const char *optstring, d->__nextchar = NULL; - d->__posixly_correct = !!getenv ("POSIXLY_CORRECT"); + d->__posixly_correct = posixly_correct | !!getenv ("POSIXLY_CORRECT"); /* Determine how to handle the ordering of options and nonoptions. */ @@ -391,7 +391,7 @@ _getopt_initialize (int argc, char *const *argv, const char *optstring, int _getopt_internal_r (int argc, char *const *argv, const char *optstring, const struct option *longopts, int *longind, - int long_only, struct _getopt_data *d) + int long_only, struct _getopt_data *d, int posixly_correct) { int print_errors = d->opterr; if (optstring[0] == ':') @@ -406,7 +406,8 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring, { if (d->optind == 0) d->optind = 1; /* Don't scan ARGV[0], the program name. */ - optstring = _getopt_initialize (argc, argv, optstring, d); + optstring = _getopt_initialize (argc, argv, optstring, d, + posixly_correct); d->__initialized = 1; } @@ -1111,7 +1112,8 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring, int _getopt_internal (int argc, char *const *argv, const char *optstring, - const struct option *longopts, int *longind, int long_only) + const struct option *longopts, int *longind, int long_only, + int posixly_correct) { int result; @@ -1119,7 +1121,8 @@ _getopt_internal (int argc, char *const *argv, const char *optstring, getopt_data.opterr = opterr; result = _getopt_internal_r (argc, argv, optstring, longopts, - longind, long_only, &getopt_data); + longind, long_only, &getopt_data, + posixly_correct); optind = getopt_data.optind; optarg = getopt_data.optarg; @@ -1134,9 +1137,20 @@ getopt (int argc, char *const *argv, const char *optstring) return _getopt_internal (argc, argv, optstring, (const struct option *) 0, (int *) 0, - 0); + 0, 0); } +#ifdef _LIBC +int +__posix_getopt (int argc, char *const *argv, const char *optstring) +{ + return _getopt_internal (argc, argv, optstring, + (const struct option *) 0, + (int *) 0, + 0, 1); +} +#endif + #endif /* Not ELIDE_CODE. */ #ifdef TEST diff --git a/posix/getopt.h b/posix/getopt.h index b7a026c535..ff0251dec0 100644 --- a/posix/getopt.h +++ b/posix/getopt.h @@ -1,5 +1,5 @@ /* Declarations for getopt. - Copyright (C) 1989-1994,1996-1999,2001,2003,2004 + Copyright (C) 1989-1994,1996-1999,2001,2003,2004,2009 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -151,6 +151,22 @@ struct option errors, only prototype getopt for the GNU C library. */ extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) __THROW; + +# if defined __need_getopt && defined __USE_POSIX2 \ + && !defined __USE_POSIX_IMPLICITLY && !defined __USE_GNU +/* The GNU getopt has more functionality than the standard version. The + additional functionality can be disable at runtime. This redirection + helps to also do this at runtime. */ +# ifdef __REDIRECT + extern int __REDIRECT (getopt, (int ___argc, char *const *___argv, + const char *__shortopts), + __posix_getopt) __THROW; +# else +extern int __posix_getopt (int ___argc, char *const *___argv, + const char *__shortopts) __THROW; +# define getopt __posix_getopt +# endif +# endif #else /* not __GNU_LIBRARY__ */ extern int getopt (); #endif /* __GNU_LIBRARY__ */ diff --git a/posix/getopt1.c b/posix/getopt1.c index 2f75d4c2ee..4818ea122a 100644 --- a/posix/getopt1.c +++ b/posix/getopt1.c @@ -1,6 +1,5 @@ /* getopt_long and getopt_long_only entry points for GNU getopt. - Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98,2004 - Free Software Foundation, Inc. + Copyright (C) 1987-1994,1996-1998,2004,2009 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 @@ -64,7 +63,7 @@ int getopt_long (int argc, char *const *argv, const char *options, const struct option *long_options, int *opt_index) { - return _getopt_internal (argc, argv, options, long_options, opt_index, 0); + return _getopt_internal (argc, argv, options, long_options, opt_index, 0, 0); } int @@ -73,7 +72,7 @@ _getopt_long_r (int argc, char *const *argv, const char *options, struct _getopt_data *d) { return _getopt_internal_r (argc, argv, options, long_options, opt_index, - 0, d); + 0, d, 0); } /* Like getopt_long, but '-' as well as '--' can indicate a long option. @@ -85,7 +84,7 @@ int getopt_long_only (int argc, char *const *argv, const char *options, const struct option *long_options, int *opt_index) { - return _getopt_internal (argc, argv, options, long_options, opt_index, 1); + return _getopt_internal (argc, argv, options, long_options, opt_index, 1, 0); } int @@ -94,7 +93,7 @@ _getopt_long_only_r (int argc, char *const *argv, const char *options, struct _getopt_data *d) { return _getopt_internal_r (argc, argv, options, long_options, opt_index, - 1, d); + 1, d, 0); } #endif /* Not ELIDE_CODE. */ diff --git a/posix/getopt_int.h b/posix/getopt_int.h index d982c72d9e..d44ee064a8 100644 --- a/posix/getopt_int.h +++ b/posix/getopt_int.h @@ -1,5 +1,5 @@ /* Internal declarations for getopt. - Copyright (C) 1989-1994,1996-1999,2001,2003,2004 + Copyright (C) 1989-1994,1996-1999,2001,2003,2004,2009 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -24,7 +24,7 @@ extern int _getopt_internal (int ___argc, char *const *___argv, const char *__shortopts, const struct option *__longopts, int *__longind, - int __long_only); + int __long_only, int posixly_correct); /* Reentrant versions which can handle parsing multiple argument @@ -114,7 +114,8 @@ struct _getopt_data extern int _getopt_internal_r (int ___argc, char *const *___argv, const char *__shortopts, const struct option *__longopts, int *__longind, - int __long_only, struct _getopt_data *__data); + int __long_only, struct _getopt_data *__data, + int posixly_correct); extern int _getopt_long_r (int ___argc, char *const *___argv, const char *__shortopts, diff --git a/posix/unistd.h b/posix/unistd.h index 96bb02dff4..6876e3af31 100644 --- a/posix/unistd.h +++ b/posix/unistd.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2006, 2007, 2008 Free Software Foundation, Inc. +/* Copyright (C) 1991-2006, 2007, 2008, 2009 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 @@ -516,7 +516,7 @@ extern char **environ; extern int execve (__const char *__path, char *__const __argv[], char *__const __envp[]) __THROW __nonnull ((1)); -#ifdef __USE_GNU +#ifdef __USE_XOPEN2K8 /* Execute the file FD refers to, overlaying the running program image. ARGV and ENVP are passed to the new program, as for `execve'. */ extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[]) |