aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2012-07-30 16:09:11 -0700
committerRoland McGrath <roland@hack.frob.com>2012-07-30 16:34:33 -0700
commitbea9b19322c77265033a068ac60c95a37e798a80 (patch)
treed3fad60d4780a5d86fe5dbedd994c3cd7625890b
parentfc56c5bbc1a0d56b9b49171dd377c73c268ebcfd (diff)
downloadglibc-bea9b19322c77265033a068ac60c95a37e798a80.zip
glibc-bea9b19322c77265033a068ac60c95a37e798a80.tar.gz
glibc-bea9b19322c77265033a068ac60c95a37e798a80.tar.bz2
Fix lots of bitrot for stub configurations.
-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 ea45adc..e608ac4 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 0af6805..80c2b7d 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 d7c49e7..87948d5 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 48bb7b8..0a0acb2 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 06b4816..b9495c5 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 7fe4210..ce7084c 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 06c4220..fc221ac 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 df28e1c..1a0de35 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 7971a8a..e4bff80 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 3940dc3..c76ad16 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 4e34a36..a217fcc 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 41b44de..d171f36 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 ee3ba88..7aff7d0 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 44cd09a..78bbf5a 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.c b/libio/genops.c
index b7dd863..c8297ff 100644
--- a/libio/genops.c
+++ b/libio/genops.c
@@ -45,15 +45,15 @@ static int _IO_list_all_stamp;
static _IO_FILE *run_fp;
+#ifdef _IO_MTSAFE_IO
static void
flush_cleanup (void *not_used)
{
if (run_fp != NULL)
_IO_funlockfile (run_fp);
-#ifdef _IO_MTSAFE_IO
_IO_lock_unlock (list_all_lock);
-#endif
}
+#endif
void
_IO_un_link (fp)
diff --git a/nss/makedb.c b/nss/makedb.c
index 5890c05..ccaabdf 100644
--- a/nss/makedb.c
+++ b/nss/makedb.c
@@ -27,6 +27,7 @@
#include <libintl.h>
#include <locale.h>
#include <search.h>
+#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
diff --git a/nss/nss_db/db-initgroups.c b/nss/nss_db/db-initgroups.c
index 16eb8e2..2e2e3f2 100644
--- a/nss/nss_db/db-initgroups.c
+++ b/nss/nss_db/db-initgroups.c
@@ -22,6 +22,7 @@
#include <grp.h>
#include <limits.h>
#include <paths.h>
+#include <stdlib.h>
#include <string.h>
#include <sys/param.h>
diff --git a/nss/nss_db/db-netgrp.c b/nss/nss_db/db-netgrp.c
index 37705b0..3c18ea8 100644
--- a/nss/nss_db/db-netgrp.c
+++ b/nss/nss_db/db-netgrp.c
@@ -1,5 +1,5 @@
/* Netgroup file parser in nss_db modules.
- Copyright (C) 1996, 1997, 1999, 2000, 2011 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.
@@ -25,6 +25,7 @@
#include <string.h>
#include <bits/libc-lock.h>
#include <paths.h>
+#include <stdlib.h>
#include "nsswitch.h"
#include "nss_db.h"
diff --git a/nss/nss_files/files-initgroups.c b/nss/nss_files/files-initgroups.c
index c8ce065..a5a2164 100644
--- a/nss/nss_files/files-initgroups.c
+++ b/nss/nss_files/files-initgroups.c
@@ -1,5 +1,5 @@
/* Initgroups handling in nss_files module.
- Copyright (C) 2011 Free Software Foundation, Inc.
+ Copyright (C) 2011-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
@@ -23,6 +23,8 @@
#include <stdio_ext.h>
#include <string.h>
#include <sys/param.h>
+#include <stdbool.h>
+#include <stdlib.h>
enum nss_status
_nss_files_initgroups_dyn (const char *user, gid_t group, long int *start,
diff --git a/nss/nsswitch.c b/nss/nsswitch.c
index 464f478..a2628c7 100644
--- a/nss/nsswitch.c
+++ b/nss/nsswitch.c
@@ -415,7 +415,9 @@ __nss_lookup_function (service_user *ni, const char *fct_name)
{
/* The search found an existing structure in the tree. */
result = ((known_function *) *found)->fct_ptr;
+#ifdef PTR_DEMANGLE
PTR_DEMANGLE (result);
+#endif
}
else
{
@@ -503,7 +505,9 @@ __nss_lookup_function (service_user *ni, const char *fct_name)
/* Remember function pointer for later calls. Even if null, we
record it so a second try needn't search the library again. */
known->fct_ptr = result;
+#ifdef PTR_MANGLE
PTR_MANGLE (known->fct_ptr);
+#endif
}
}
diff --git a/ports/sysdeps/arm/preconfigure b/ports/sysdeps/arm/preconfigure
index d98c167..20f6d91 100644
--- a/ports/sysdeps/arm/preconfigure
+++ b/ports/sysdeps/arm/preconfigure
@@ -41,7 +41,7 @@ arm*)
fi
CFLAGS="$CFLAGS -fno-unwind-tables"
;;
- *)
+ linux*)
echo "Old ABI no longer supported" 2>&1
exit 1
;;
diff --git a/posix/regex.c b/posix/regex.c
index 6d0a897..3ab9a6a 100644
--- a/posix/regex.c
+++ b/posix/regex.c
@@ -1,5 +1,5 @@
/* Extended regular expression matching and search library.
- Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2002-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
@@ -56,6 +56,9 @@
#undefs RE_DUP_MAX and sets it to the right value. */
#include <limits.h>
+/* This header defines the MIN and MAX macros. */
+#include <sys/param.h>
+
#include <regex.h>
#include "regex_internal.h"
diff --git a/posix/wordexp.c b/posix/wordexp.c
index 5ace137..d5a2820 100644
--- a/posix/wordexp.c
+++ b/posix/wordexp.c
@@ -1,5 +1,5 @@
/* POSIX.2 wordexp implementation.
- Copyright (C) 1997-2003,2005,2006,2008,2011 Free Software Foundation, Inc.
+ Copyright (C) 1997-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Tim Waugh <tim@cyberelk.demon.co.uk>.
@@ -27,6 +27,7 @@
#include <paths.h>
#include <pwd.h>
#include <signal.h>
+#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
diff --git a/socket/accept4.c b/socket/accept4.c
index 7c7e2dd..7ad1259 100644
--- a/socket/accept4.c
+++ b/socket/accept4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008 Free Software Foundation, Inc.
+/* Copyright (C) 2008-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
@@ -25,7 +25,7 @@
new socket's descriptor, or -1 for errors. The operation can be influenced
by the FLAGS parameter. */
int
-accept4 (fd, addr, addr_len, flags)
+__libc_accept4 (fd, addr, addr_len, flags)
int fd;
__SOCKADDR_ARG addr;
socklen_t *addr_len;
@@ -34,7 +34,8 @@ accept4 (fd, addr, addr_len, flags)
__set_errno (ENOSYS);
return -1;
}
-libc_hidden_def (accept4)
+libc_hidden_def (__libc_accept4)
+weak_alias (__libc_accept4, accept4)
stub_warning (accept4)
diff --git a/stdio-common/_i18n_number.h b/stdio-common/_i18n_number.h
index f18b152..17d9911 100644
--- a/stdio-common/_i18n_number.h
+++ b/stdio-common/_i18n_number.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2004, 2008 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 2000.
@@ -16,6 +16,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <stdbool.h>
#include <wchar.h>
#include <wctype.h>
diff --git a/stdio-common/reg-modifier.c b/stdio-common/reg-modifier.c
index dcfd3a8..697a408 100644
--- a/stdio-common/reg-modifier.c
+++ b/stdio-common/reg-modifier.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2009-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 <limits.h>
#include <printf.h>
+#include <stdlib.h>
#include <wchar.h>
#include <bits/libc-lock.h>
diff --git a/stdio-common/tmpfile.c b/stdio-common/tmpfile.c
index c6da9ac..6a4d48e 100644
--- a/stdio-common/tmpfile.c
+++ b/stdio-common/tmpfile.c
@@ -58,6 +58,10 @@ tmpfile (void)
return f;
}
+#if !defined O_LARGEFILE || O_LARGEFILE == 0
+weak_alias (__new_tmpfile, tmpfile64)
+#endif
+
#ifndef FLAGS /* Not for tmpfile64. */
# undef tmpfile
# include <shlib-compat.h>
diff --git a/stdio-common/tmpfile64.c b/stdio-common/tmpfile64.c
index ead3f50..e8ce893 100644
--- a/stdio-common/tmpfile64.c
+++ b/stdio-common/tmpfile64.c
@@ -1,3 +1,28 @@
-#define FLAGS O_LARGEFILE
-#define tmpfile tmpfile64
-#include <tmpfile.c>
+/* Open a stdio stream on an anonymous, large temporary file. Generic version.
+ Copyright (C) 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
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <fcntl.h>
+
+/* If there is no O_LARGEFILE, then the plain tmpfile definition
+ does the job and it gets tmpfile64 as an alias. */
+
+#if defined O_LARGEFILE && O_LARGEFILE != 0
+# define FLAGS O_LARGEFILE
+# define tmpfile tmpfile64
+# include <tmpfile.c>
+#endif
diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c
index 23a8ac7..43f25ca 100644
--- a/stdio-common/vfscanf.c
+++ b/stdio-common/vfscanf.c
@@ -20,6 +20,7 @@
#include <limits.h>
#include <ctype.h>
#include <stdarg.h>
+#include <stdbool.h>
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index 39c6339..72048ea 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -272,7 +272,7 @@ struct rtld_global
/* Search table for unique objects. */
struct unique_sym_table
{
- __rtld_lock_recursive_t lock;
+ __rtld_lock_define_recursive (, lock)
struct unique_sym
{
uint32_t hashval;
diff --git a/sysdeps/generic/sys/param.h b/sysdeps/generic/sys/param.h
index 0e10a0e..f6e9f43 100644
--- a/sysdeps/generic/sys/param.h
+++ b/sysdeps/generic/sys/param.h
@@ -1,15 +1,74 @@
-/* This file should contain various parameter macros appropriate for the
- machine and operating system. There is no standard set of macros; this
- file is just for compatibility with programs written for Unix that
- expect it to define things. On Unix systems that do not have their own
- sysdep version of this file, it is generated at build time by examining
- the installed headers on the system. */
+/* Compatibility header for old-style Unix parameters and limits. Stub version.
+ Copyright (C) 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
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PARAM_H
+
+#define _SYS_PARAM_H 1
+#include <features.h>
+
+#define __need_NULL
+#include <stddef.h>
+
+#include <sys/types.h>
+#include <errno.h>
+#include <signal.h>
+#include <endian.h>
#include <limits.h>
-#define MAXSYMLINKS 1
-#define MAXPATHLEN 256
+
+/* BSD names for some <limits.h> values. We do not define the BSD names
+ for the values which are not statically limited, such as NOFILE. */
+
+#define NBBY CHAR_BIT
+#define NGROUPS NGROUPS_MAX
+#define MAXSYMLINKS SYMLOOP_MAX
+#define CANBSIZ MAX_CANON /* XXX ? */
+
+/* ARG_MAX is unlimited, but we define NCARGS for BSD programs that want to
+ compare against some fixed limit. */
+#define NCARGS INT_MAX
+
+
+/* Magical constants. */
+#define NOGROUP 65535 /* Marker for empty group set member. */
+#define NODEV ((dev_t) -1) /* Non-existent device. */
+
+
+/* Bit map related macros. */
+#define setbit(a,i) ((a)[(i)/NBBY] |= 1<<((i)%NBBY))
+#define clrbit(a,i) ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY)))
+#define isset(a,i) ((a)[(i)/NBBY] & (1<<((i)%NBBY)))
+#define isclr(a,i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0)
+
+/* Macros for counting and rounding. */
+#ifndef howmany
+# define howmany(x, y) (((x)+((y)-1))/(y))
+#endif
+#define roundup(x, y) ((((x)+((y)-1))/(y))*(y))
+#define powerof2(x) ((((x)-1)&(x))==0)
/* Macros for min/max. */
#define MIN(a,b) (((a)<(b))?(a):(b))
#define MAX(a,b) (((a)>(b))?(a):(b))
+
+
+/* Unit of `st_blocks'. */
+#define DEV_BSIZE 512
+
+
+#endif /* sys/param.h */
diff --git a/sysdeps/ieee754/k_standard.c b/sysdeps/ieee754/k_standard.c
index 4e65bb1..cd31230 100644
--- a/sysdeps/ieee754/k_standard.c
+++ b/sysdeps/ieee754/k_standard.c
@@ -1003,6 +1003,7 @@ __kernel_standard_f(float x, float y, int type)
return __kernel_standard(x, y, type);
}
+#ifndef __NO_LONG_DOUBLE_MATH
long double
__kernel_standard_l (long double x, long double y, int type)
{
@@ -1082,3 +1083,4 @@ __kernel_standard_l (long double x, long double y, int type)
return __kernel_standard (dx, dy, type);
}
}
+#endif
diff --git a/sysdeps/posix/getcwd.c b/sysdeps/posix/getcwd.c
index 1dc45e8..911cbfa 100644
--- a/sysdeps/posix/getcwd.c
+++ b/sysdeps/posix/getcwd.c
@@ -401,8 +401,10 @@ __getcwd (buf, size)
goto lose;
}
+#ifdef _DIRENT_HAVE_D_TYPE
if (d->d_type != DT_DIR && d->d_type != DT_UNKNOWN)
continue;
+#endif
if (d->d_name[0] == '.'
&& (d->d_name[1] == '\0'
|| (d->d_name[1] == '.' && d->d_name[2] == '\0')))
diff --git a/sysdeps/posix/pwrite64.c b/sysdeps/posix/pwrite64.c
index d9ec10f..61c193b 100644
--- a/sysdeps/posix/pwrite64.c
+++ b/sysdeps/posix/pwrite64.c
@@ -1,6 +1,6 @@
/* Write block to given position in file without changing file pointer.
POSIX version.
- Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1997-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -56,7 +56,6 @@ __libc_pwrite64 (int fd, const void *buf, size_t nbyte, off64_t offset)
return result;
}
#ifndef __libc_pwrite64
-libc_hidden_def (__libc_pwrite64)
weak_alias (__libc_pwrite64, __pwrite64)
libc_hidden_weak (__pwrite64)
weak_alias (__libc_pwrite64, pwrite64)
diff --git a/sysdeps/posix/spawni.c b/sysdeps/posix/spawni.c
index abbf956..2d3ae94 100644
--- a/sysdeps/posix/spawni.c
+++ b/sysdeps/posix/spawni.c
@@ -1,5 +1,5 @@
/* Guts of POSIX spawn interface. Generic POSIX.1 version.
- Copyright (C) 2000-2005, 2006, 2011, 2012 Free Software Foundation, Inc.
+ Copyright (C) 2000-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
@@ -20,6 +20,7 @@
#include <fcntl.h>
#include <paths.h>
#include <spawn.h>
+#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/tmpfile.c b/sysdeps/unix/sysv/linux/x86_64/x32/tmpfile.c
deleted file mode 100644
index f24f361..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/x32/tmpfile.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/wordsize-64/tmpfile.c>
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/tmpfile64.c b/sysdeps/unix/sysv/linux/x86_64/x32/tmpfile64.c
deleted file mode 100644
index 55feef2..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/x32/tmpfile64.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/wordsize-64/tmpfile64.c>
diff --git a/sysdeps/wordsize-64/tmpfile.c b/sysdeps/wordsize-64/tmpfile.c
deleted file mode 100644
index 449a222..0000000
--- a/sysdeps/wordsize-64/tmpfile.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "../../stdio-common/tmpfile.c"
-
-weak_alias (__new_tmpfile, tmpfile64)
diff --git a/sysdeps/wordsize-64/tmpfile64.c b/sysdeps/wordsize-64/tmpfile64.c
deleted file mode 100644
index 5c124c2..0000000
--- a/sysdeps/wordsize-64/tmpfile64.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Defined in tmpfile.c. */