aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog83
-rw-r--r--argp/argp-help.c1
-rw-r--r--bits/libc-lock.h6
-rw-r--r--bits/signum.h69
-rw-r--r--bits/stat.h9
-rw-r--r--dirent/opendir.c3
-rw-r--r--elf/rtld.c2
-rw-r--r--iconv/iconv_charmap.c4
-rw-r--r--include/unistd.h2
-rw-r--r--inet/netinet/in.h2
-rw-r--r--intl/loadmsgcat.c7
-rw-r--r--io/fchmodat.c3
-rw-r--r--io/ftw.c8
-rw-r--r--io/xmknod.c8
-rw-r--r--libio/genops.c4
-rw-r--r--nss/makedb.c1
-rw-r--r--nss/nss_db/db-initgroups.c1
-rw-r--r--nss/nss_db/db-netgrp.c3
-rw-r--r--nss/nss_files/files-initgroups.c4
-rw-r--r--nss/nsswitch.c4
-rw-r--r--ports/sysdeps/arm/preconfigure2
-rw-r--r--posix/regex.c5
-rw-r--r--posix/wordexp.c3
-rw-r--r--socket/accept4.c7
-rw-r--r--stdio-common/_i18n_number.h3
-rw-r--r--stdio-common/reg-modifier.c3
-rw-r--r--stdio-common/tmpfile.c4
-rw-r--r--stdio-common/tmpfile64.c31
-rw-r--r--stdio-common/vfscanf.c1
-rw-r--r--sysdeps/generic/ldsodefs.h2
-rw-r--r--sysdeps/generic/sys/param.h75
-rw-r--r--sysdeps/ieee754/k_standard.c2
-rw-r--r--sysdeps/posix/getcwd.c2
-rw-r--r--sysdeps/posix/pwrite64.c3
-rw-r--r--sysdeps/posix/spawni.c3
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/tmpfile.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/tmpfile64.c1
-rw-r--r--sysdeps/wordsize-64/tmpfile.c3
-rw-r--r--sysdeps/wordsize-64/tmpfile64.c1
39 files changed, 294 insertions, 82 deletions
diff --git a/ChangeLog b/ChangeLog
index ea45adce16..e608ac4c1b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,86 @@
+2012-07-30 Roland McGrath <roland@hack.frob.com>
+
+ * sysdeps/generic/sys/param.h (MAXSYMLINKS): Define to SYMLOOP_MAX
+ rather than to 1.
+ (NBBY, NGROUPS, CANBSIZ, NCARGS): New macros.
+ (MAXPATHLEN): Removed.
+ (NOGROUP, NODEV): New macros.
+ (setbit, clrbit, isset, isclr): New macros.
+ (howmany, roundup, powerof2): New macros.
+ (DEV_BSIZE): New macro.
+
+ * include/unistd.h: Add attribute_hidden on __libc_pwrite64.
+ * sysdeps/posix/pwrite64.c: Remove libc_hidden_def (__libc_pwrite64).
+
+ * sysdeps/ieee754/k_standard.c (__kernel_standard_l): Conditionalize
+ definition on [!__NO_LONG_DOUBLE_MATH].
+
+ * nss/nsswitch.c (__nss_lookup_function): Conditionalize use of
+ PTR_MANGLE and PTR_DEMANGLE.
+
+ * socket/accept4.c (accept4): Rename to __libc_accept4.
+ Define accept4 as a weak alias.
+
+ * sysdeps/posix/getcwd.c (__getcwd): Conditionalize d_type field use
+ on [_DIRENT_HAVE_D_TYPE].
+ * io/ftw.c (ftw_dir): Likewise.
+
+ * io/xmknod.c (__xmknod): Don't check PATH for being null.
+
+ * libio/genops.c (flush_cleanup): Move inside [_IO_MTSAFE_IO].
+
+ * bits/signum.h (SIGSTOP, SIGCONT, SIGTSTP, SIGTTIN, SIGTTOU, SIGCHLD):
+ Use the BSD numbers rather than the arbitrary ones we had.
+ (SIGBUS, SIGIO, SIGPOLL, SIGPROF, SIGSYS): New macros.
+ (SIGTRAP, SIGURG, SIGUSR1, SIGUSR2, SIGVTALRM): New macros.
+ (SIGXCPU, SIGXFSZ): New macros.
+ (_NSIG): Now 32.
+
+ * elf/rtld.c (_rtld_global): Conditionalize .dl_ns[LM_ID_BASE]
+ initializer on [_LIBC_REENTRANT].
+
+ * iconv/iconv_charmap.c (charmap_conversion): Move ST, ADDR
+ definitions inside [_POSIX_MAPPED_FILES].
+
+ * posix/regex.c: Include <sys/param.h> for MIN/MAX.
+
+ * dirent/opendir.c: Include <fcntl.h>.
+
+ * bits/libc-lock.h (__libc_setspecific): Evaluate arguments.
+ (__libc_getspecific): Likewise.
+ (__libc_key_create): Likewise.
+
+ * stdio-common/tmpfile64.c: Include <fcntl.h> first.
+ [defined O_LARGEFILE && O_LARGEFILE != 0]: Conditionalize on this.
+ * stdio-common/tmpfile.c [!defined O_LARGEFILE || O_LARGEFILE == 0]
+ (tmpfile64): Define as alias.
+ * sysdeps/wordsize-64/tmpfile.c: File removed.
+ * sysdeps/wordsize-64/tmpfile64.c: File removed.
+ * sysdeps/unix/sysv/linux/x86_64/x32/tmpfile64.c: File removed.
+ * sysdeps/unix/sysv/linux/x86_64/x32/tmpfile.c: File removed.
+
+ * stdio-common/vfscanf.c: Include <stdbool.h>.
+ * nss/makedb.c: Likewise.
+ * stdio-common/_i18n_number.h: Likewise.
+ * argp/argp-help.c: Likewise.
+ * posix/wordexp.c: Likewise.
+ * sysdeps/posix/spawni.c: Likewise.
+ * nss/nss_files/files-initgroups.c: Likewise.
+ * stdio-common/reg-modifier.c: Include <stdlib.h>.
+ * nss/nss_files/files-initgroups.c: Likewise.
+ * nss/nss_db/db-netgrp.c: Likewise.
+ * nss/nss_db/db-initgroups.c: Likewise.
+ * io/fchmodat.c: Include <sys/stat.h>.
+
+ * sysdeps/generic/ldsodefs.h (struct rtld_global): Use
+ __rtld_lock_define_recursive macro instead of __rtld_lock_recursive_t.
+
+ * intl/loadmsgcat.c (_nl_load_domain): Don't use MAP_FAILED outside of
+ [HAVE_MMAP].
+
+ * bits/stat.h: Fix inclusion guard to accept _FCNTL_H too.
+ Add multiple inclusion protection.
+
2012-07-27 David S. Miller <davem@davemloft.net>
* sysdeps/sparc/fpu/libm-test-ulps: Update.
diff --git a/argp/argp-help.c b/argp/argp-help.c
index 0af680530b..80c2b7d85c 100644
--- a/argp/argp-help.c
+++ b/argp/argp-help.c
@@ -40,6 +40,7 @@ char *alloca ();
# endif
#endif
+#include <stdbool.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
diff --git a/bits/libc-lock.h b/bits/libc-lock.h
index d7c49e7bb5..87948d5b50 100644
--- a/bits/libc-lock.h
+++ b/bits/libc-lock.h
@@ -129,12 +129,12 @@
typedef int __libc_key_t;
/* Create key for thread specific data. */
-#define __libc_key_create(KEY,DEST) -1
+#define __libc_key_create(KEY,DEST) ((void) (KEY), (void) (DEST), -1)
/* Set thread-specific data associated with KEY to VAL. */
-#define __libc_setspecific(KEY,VAL) ((void)0)
+#define __libc_setspecific(KEY,VAL) ((void) (KEY), (void) (VAL))
/* Get thread-specific data associated with KEY. */
-#define __libc_getspecific(KEY) 0
+#define __libc_getspecific(KEY) ((void) (KEY), (void *) 0)
#endif /* bits/libc-lock.h */
diff --git a/bits/signum.h b/bits/signum.h
index 48bb7b8050..0a0acb23af 100644
--- a/bits/signum.h
+++ b/bits/signum.h
@@ -1,4 +1,5 @@
-/* Copyright (C) 1991, 1993, 1996, 1998 Free Software Foundation, Inc.
+/* Signal number constants. Generic version.
+ Copyright (C) 1991-2012 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
@@ -27,37 +28,49 @@
# define SIG_HOLD ((__sighandler_t) 2) /* Add signal to hold mask. */
#endif
-/* Signals in the 1-15 range are defined with their historical numbers.
- Signals in the 20-25 range are relatively new and have no ingrained
- numbers. */
+/* We define here all the signal names listed in POSIX (1003.1-2008).
+ Signals in the 1-15 range are defined with their historical numbers.
+ For other signals specified by POSIX, we use the BSD numbers. */
-/* ANSI signals. */
-#define SIGINT 2 /* Interactive attention signal. */
-#define SIGILL 4 /* Illegal instruction. */
-#define SIGABRT 6 /* Abnormal termination. */
-#define SIGFPE 8 /* Erroneous arithmetic operation. */
-#define SIGSEGV 11 /* Invalid access to storage. */
-#define SIGTERM 15 /* Termination request. */
+/* ISO C99 signals. */
+#define SIGINT 2 /* Interactive attention signal. */
+#define SIGILL 4 /* Illegal instruction. */
+#define SIGABRT 6 /* Abnormal termination. */
+#define SIGFPE 8 /* Erroneous arithmetic operation. */
+#define SIGSEGV 11 /* Invalid access to storage. */
+#define SIGTERM 15 /* Termination request. */
/* Historical signals specified by POSIX. */
-#define SIGHUP 1 /* Hangup. */
-#define SIGQUIT 3 /* Quit. */
-#define SIGKILL 9 /* Kill (cannot be blocked, caught, or ignored). */
-#define SIGPIPE 13 /* Broken pipe. */
-#define SIGALRM 14 /* Alarm clock. */
-
-/* New(er) POSIX signals. */
-#define SIGSTOP 20 /* Stop (cannot be blocked, caught, or ignored). */
-#define SIGCONT 21 /* Continue. */
-#define SIGTSTP 22 /* Keyboard stop. */
-#define SIGTTIN 23 /* Background read from control terminal. */
-#define SIGTTOU 24 /* Background write to control terminal. */
-#define SIGCHLD 25 /* Child terminated or stopped. */
-
-#define _NSIG 26
+#define SIGHUP 1 /* Hangup. */
+#define SIGQUIT 3 /* Quit. */
+#define SIGTRAP 5 /* Trace/breakpoint trap. */
+#define SIGKILL 9 /* Killed. */
+#define SIGBUS 10 /* Bus error. */
+#define SIGSYS 12 /* Bad system call. */
+#define SIGPIPE 13 /* Broken pipe. */
+#define SIGALRM 14 /* Alarm clock. */
+
+/* New(er) POSIX signals (1003.1-2008). */
+#define SIGURG 16 /* High bandwidth data is available at a socket. */
+#define SIGSTOP 17 /* Stopped (signal). */
+#define SIGTSTP 18 /* Stopped. */
+#define SIGCONT 19 /* Continued. */
+#define SIGCHLD 20 /* Child terminated or stopped. */
+#define SIGTTIN 21 /* Background read from control terminal. */
+#define SIGTTOU 22 /* Background write to control terminal. */
+#define SIGPOLL 23 /* Pollable event occurred (System V). */
+#define SIGIO SIGPOLL /* I/O now possible (4.2 BSD). */
+#define SIGXCPU 24 /* CPU time limit exceeded. */
+#define SIGXFSZ 25 /* File size limit exceeded. */
+#define SIGVTALRM 26 /* Virtual timer expired. */
+#define SIGPROF 27 /* Profiling timer expired. */
+#define SIGUSR1 30 /* User-defined signal 1. */
+#define SIGUSR2 31 /* User-defined signal 2. */
+
+#define _NSIG 32
/* Archaic names for compatibility. */
-#define SIGIOT SIGABRT /* IOT instruction, abort() on a PDP11 */
-#define SIGCLD SIGCHLD /* Old System V name */
+#define SIGIOT SIGABRT /* IOT instruction, abort() on a PDP11 */
+#define SIGCLD SIGCHLD /* Old System V name */
#endif /* <signal.h> included. */
diff --git a/bits/stat.h b/bits/stat.h
index 06b4816c81..b9495c52e2 100644
--- a/bits/stat.h
+++ b/bits/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1996, 1997, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2012 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
@@ -15,10 +15,13 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
-#ifndef _SYS_STAT_H
+#if !defined _SYS_STAT_H && !defined _FCNTL_H
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
#endif
+#ifndef _BITS_STAT_H
+#define _BITS_STAT_H 1
+
/* This structure needs to be defined in accordance with the
implementation of __stat, __fstat, and __lstat. */
@@ -96,3 +99,5 @@ struct stat64
__time_t st_ctime; /* Time of last status change. */
};
#endif
+
+#endif /* bits/stat.h */
diff --git a/dirent/opendir.c b/dirent/opendir.c
index 7fe4210c8f..ce7084c9c1 100644
--- a/dirent/opendir.c
+++ b/dirent/opendir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2012 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
@@ -18,6 +18,7 @@
#include <errno.h>
#include <stddef.h>
#include <dirent.h>
+#include <fcntl.h>
DIR *
diff --git a/elf/rtld.c b/elf/rtld.c
index 06c4220c03..fc221ace25 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -133,8 +133,10 @@ struct rtld_global _rtld_global =
._dl_nns = 1,
._dl_ns =
{
+#ifdef _LIBC_REENTRANT
[LM_ID_BASE] = { ._ns_unique_sym_table
= { .lock = _RTLD_LOCK_RECURSIVE_INITIALIZER } }
+#endif
}
};
/* If we would use strong_alias here the compiler would see a
diff --git a/iconv/iconv_charmap.c b/iconv/iconv_charmap.c
index df28e1c3a1..1a0de35217 100644
--- a/iconv/iconv_charmap.c
+++ b/iconv/iconv_charmap.c
@@ -154,8 +154,6 @@ charmap_conversion (const char *from_code, struct charmap_t *from_charmap,
else
do
{
- struct stat st;
- char *addr;
int fd;
if (verbose)
@@ -176,6 +174,8 @@ charmap_conversion (const char *from_code, struct charmap_t *from_charmap,
}
#ifdef _POSIX_MAPPED_FILES
+ struct stat st;
+ char *addr;
/* We have possibilities for reading the input file. First try
to mmap() it since this will provide the fastest solution. */
if (fstat (fd, &st) == 0
diff --git a/include/unistd.h b/include/unistd.h
index 7971a8a71a..e4bff80fc7 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -44,7 +44,7 @@ extern ssize_t __pwrite64 (int __fd, const void *__buf, size_t __n,
__off64_t __offset);
libc_hidden_proto (__pwrite64)
extern ssize_t __libc_pwrite64 (int __fd, const void *__buf, size_t __n,
- __off64_t __offset);
+ __off64_t __offset) attribute_hidden;
extern ssize_t __libc_read (int __fd, void *__buf, size_t __n);
libc_hidden_proto (__libc_read)
extern ssize_t __libc_write (int __fd, const void *__buf, size_t __n);
diff --git a/inet/netinet/in.h b/inet/netinet/in.h
index 3940dc3101..c76ad16b99 100644
--- a/inet/netinet/in.h
+++ b/inet/netinet/in.h
@@ -518,6 +518,8 @@ extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in)
#ifdef __USE_GNU
+struct cmsghdr; /* Forward declaration. */
+
/* IPv6 packet information. */
struct in6_pktinfo
{
diff --git a/intl/loadmsgcat.c b/intl/loadmsgcat.c
index 4e34a368be..a217fcce41 100644
--- a/intl/loadmsgcat.c
+++ b/intl/loadmsgcat.c
@@ -1,5 +1,5 @@
/* Load needed message catalogs.
- Copyright (C) 1995-2005, 2007 Free Software Foundation, Inc.
+ Copyright (C) 1995-2012 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
@@ -27,6 +27,7 @@
# include <config.h>
#endif
+#include <assert.h>
#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
@@ -835,11 +836,13 @@ _nl_load_domain (domain_file, domainbinding)
fd = -1;
use_mmap = 1;
}
+
+ assert (MAP_FAILED == (void *) -1);
#endif
/* If the data is not yet available (i.e. mmap'ed) we try to load
it manually. */
- if (data == MAP_FAILED)
+ if (data == (struct mo_file_header *) -1)
{
size_t to_read;
char *read_ptr;
diff --git a/io/fchmodat.c b/io/fchmodat.c
index 41b44dece6..d171f363b0 100644
--- a/io/fchmodat.c
+++ b/io/fchmodat.c
@@ -1,5 +1,5 @@
/* Change the protections of file relative to open directory. Stub version.
- Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2006-2012 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
@@ -21,6 +21,7 @@
#include <stddef.h>
#include <unistd.h>
#include <sys/types.h>
+#include <sys/stat.h>
int
fchmodat (fd, file, mode, flag)
diff --git a/io/ftw.c b/io/ftw.c
index ee3ba88174..7aff7d04c9 100644
--- a/io/ftw.c
+++ b/io/ftw.c
@@ -1,5 +1,5 @@
/* File tree walker functions.
- Copyright (C) 1996-2004, 2006-2008, 2010 Free Software Foundation, Inc.
+ Copyright (C) 1996-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@@ -542,7 +542,11 @@ fail:
while (dir.stream != NULL && (d = __readdir64 (dir.stream)) != NULL)
{
- result = process_entry (data, &dir, d->d_name, NAMLEN (d), d->d_type);
+ int d_type = DT_UNKNOWN;
+#ifdef _DIRENT_HAVE_D_TYPE
+ d_type = d->d_type;
+#endif
+ result = process_entry (data, &dir, d->d_name, NAMLEN (d), d_type);
if (result != 0)
break;
}
diff --git a/io/xmknod.c b/io/xmknod.c
index 44cd09a438..78bbf5a1a8 100644
--- a/io/xmknod.c
+++ b/io/xmknod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,1993,1995-1997,2002,2005 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2012 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
@@ -31,12 +31,6 @@ __xmknod (int vers, const char *path, mode_t mode, dev_t *dev)
return -1;
}
- if (path == NULL)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
__set_errno (ENOSYS);
return -1;
}
diff --git a/libio/genops