diff options
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.c b/libio/genops.c index b7dd863626..c8297ff128 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 5890c054f0..ccaabdff95 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 16eb8e2d82..2e2e3f284b 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 37705b05a1..3c18ea8305 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 c8ce0656af..a5a2164eb3 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 464f478d2b..a2628c747c 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 d98c167a95..20f6d91a12 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 6d0a8976ac..3ab9a6adcb 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 5ace13720b..d5a282049b 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 7c7e2dd9a4..7ad1259680 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 f18b152852..17d99112fb 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 dcfd3a812a..697a408f83 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 c6da9acb0b..6a4d48e7be 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 ead3f50fba..e8ce8930c1 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 23a8ac7694..43f25caa6f 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 39c633904a..72048eab7f 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 0e10a0ea94..f6e9f431d5 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 4e65bb16ce..cd3123046b 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 1dc45e8ee2..911cbfab5d 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 d9ec10f38d..61c193bea3 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 abbf956226..2d3ae941dd 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 f24f361bb6..0000000000 --- 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 55feef2a64..0000000000 --- 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 449a222d98..0000000000 --- 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 5c124c249b..0000000000 --- a/sysdeps/wordsize-64/tmpfile64.c +++ /dev/null @@ -1 +0,0 @@ -/* Defined in tmpfile.c. */ |