diff options
| author | Paul Eggert | 2013-11-27 15:58:03 -0800 |
|---|---|---|
| committer | Paul Eggert | 2013-11-27 15:58:03 -0800 |
| commit | de27f8abfdf28005f578e316321e823337fecae3 (patch) | |
| tree | 9f44d4382072bbd3b5f617720ccf5a05fbd9b5c0 /lib | |
| parent | 336b7334b7730003c29fb51fcadabcf2442499ad (diff) | |
| download | emacs-de27f8abfdf28005f578e316321e823337fecae3.tar.gz emacs-de27f8abfdf28005f578e316321e823337fecae3.zip | |
Merge from gnulib, incorporating:
2013-11-13 getgroups: work around _DARWIN_C_SOURCE problem
* lib/getgroups.c: Update from gnulib.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/getgroups.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/getgroups.c b/lib/getgroups.c index e71b5439c7e..482b24a788e 100644 --- a/lib/getgroups.c +++ b/lib/getgroups.c | |||
| @@ -43,6 +43,21 @@ getgroups (int n _GL_UNUSED, GETGROUPS_T *groups _GL_UNUSED) | |||
| 43 | # define GETGROUPS_ZERO_BUG 0 | 43 | # define GETGROUPS_ZERO_BUG 0 |
| 44 | # endif | 44 | # endif |
| 45 | 45 | ||
| 46 | /* On OS X 10.6 and later, use the usual getgroups, not the one | ||
| 47 | supplied when _DARWIN_C_SOURCE is defined. _DARWIN_C_SOURCE is | ||
| 48 | normally defined, since it means "conform to POSIX, but add | ||
| 49 | non-POSIX extensions even if that violates the POSIX namespace | ||
| 50 | rules", which is what we normally want. But with getgroups there | ||
| 51 | is an inconsistency, and _DARWIN_C_SOURCE means "change getgroups() | ||
| 52 | so that it no longer works right". The BUGS section of compat(5) | ||
| 53 | says that the behavior is dubious if you compile different sections | ||
| 54 | of a program with different _DARWIN_C_SOURCE settings, so fix only | ||
| 55 | the offending symbol. */ | ||
| 56 | # ifdef __APPLE__ | ||
| 57 | int posix_getgroups (int, gid_t []) __asm ("_getgroups"); | ||
| 58 | # define getgroups posix_getgroups | ||
| 59 | # endif | ||
| 60 | |||
| 46 | /* On at least Ultrix 4.3 and NextStep 3.2, getgroups (0, NULL) always | 61 | /* On at least Ultrix 4.3 and NextStep 3.2, getgroups (0, NULL) always |
| 47 | fails. On other systems, it returns the number of supplemental | 62 | fails. On other systems, it returns the number of supplemental |
| 48 | groups for the process. This function handles that special case | 63 | groups for the process. This function handles that special case |