aboutsummaryrefslogtreecommitdiff
path: root/posix
AgeCommit message (Collapse)AuthorFilesLines
2016-03-08posix: Fix tst-execvpe5 for --enable-hardcoded-path-in-testsAdhemerval Zanella1-2/+5
This patch fixes the posix/tst-execvpe5 invocation when GLIBC is configured with --enable-hardcoded-path-in-tests which fails with: $ cat posix/tst-execvpe5.out Wrong number of arguments (4) Checked on x86-64 and powerpc64le. * posix/tst-execvpe5.c (do_test): Fix fix test invocation when configured with --enable-hardcoded-path-in-tests.
2016-03-07posix: New Linux posix_spawn{p} implementationAdhemerval Zanella2-1/+73
This patch implements a new posix_spawn{p} implementation for Linux. The main difference is it uses the clone syscall directly with CLONE_VM and CLONE_VFORK flags and a direct allocated stack. The new stack and start function solves most the vfork limitation (possible parent clobber due stack spilling). The remaning issue are related to signal handling: 1. That no signal handlers must run in child context, to avoid corrupt parent's state. 2. Child must synchronize with parent to enforce stack deallocation and to possible return execv issues. The first one is solved by blocking all signals in child, even NPTL-internal ones (SIGCANCEL and SIGSETXID). The second issue is done by a stack allocation in parent and a synchronization with using a pipe or waitpid (in case or error). The pipe has the advantage of allowing the child signal an exec error (checked with new tst-spawn2 test). There is an inherent race condition in pipe2 usage for architectures that do not support the syscall directly. In such cases the a pipe plus fctnl is used instead and it may lead to file descriptor leak in parent (as decribed by fcntl documentation). The child process stack is allocate with a mmap with MAP_STACK flag using default architecture stack size. Although it is slower than use a stack buffer from parent, it allows some slack for the compatibility code to run scripts with no shebang (which may use a buffer with size depending of argument list count). Performance should be similar to the vfork default posix implementation and way faster than fork path (vfork on mostly linux ports are basically clone with CLONE_VM plus CLONE_VFORK). The only difference is the syscalls required for the stack allocation/deallocation. It fixes BZ#10354, BZ#14750, and BZ#18433. Tested on i386, x86_64, powerpc64le, and aarch64. [BZ #14750] [BZ #10354] [BZ #18433] * include/sched.h (__clone): Add hidden prototype. (__clone2): Likewise. * include/unistd.h (__dup): Likewise. * posix/Makefile (tests): Add tst-spawn2. * posix/tst-spawn2.c: New file. * sysdeps/posix/dup.c (__dup): Add hidden definition. * sysdeps/unix/sysv/linux/aarch64/clone.S (__clone): Likewise. * sysdeps/unix/sysv/linux/alpha/clone.S (__clone): Likewise. * sysdeps/unix/sysv/linux/arm/clone.S (__clone): Likewise. * sysdeps/unix/sysv/linux/hppa/clone.S (__clone): Likewise. * sysdeps/unix/sysv/linux/i386/clone.S (__clone): Likewise. * sysdeps/unix/sysv/linux/ia64/clone2.S (__clone): Likewise. * sysdeps/unix/sysv/linux/m68k/clone.S (__clone): Likewise. * sysdeps/unix/sysv/linux/microblaze/clone.S (__clone): Likewise. * sysdeps/unix/sysv/linux/mips/clone.S (__clone): Likewise. * sysdeps/unix/sysv/linux/nios2/clone.S (__clone): Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S (__clone): Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S (__clone): Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/clone.S (__clone): Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/clone.S (__clone): Likewise. * sysdeps/unix/sysv/linux/sh/clone.S (__clone): Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__clone): Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (__clone): Likewise. * sysdeps/unix/sysv/linux/tile/clone.S (__clone): Likewise. * sysdeps/unix/sysv/linux/x86_64/clone.S (__clone): Likewise. * sysdeps/unix/sysv/linux/nptl-signals.h (____nptl_is_internal_signal): New function. * sysdeps/unix/sysv/linux/spawni.c: New file.
2016-03-07posix: execvpe cleanupAdhemerval Zanella12-151/+516
This patch removes all the dynamic allocation on execvpe code and instead use direct stack allocation. This is QoI approach to make it possible use in scenarios where memory is shared with parent (vfork or clone with CLONE_VM). For default process spawn (script file without a shebang), stack allocation is bounded by NAME_MAX plus PATH_MAX plus 1. Large file arguments returns an error (ENAMETOOLONG). This differs than current GLIBC pratice in general, but it used to limit stack allocation for large inputs. Also, path in PATH environment variable larger than PATH_MAX are ignored. The shell direct execution exeception, where execve returns ENOEXEC, might requires a large stack allocation due large input argument list. Tested on i686, x86_64, powerpc64le, and aarch64. * posix/execvpe.c (__execvpe): Remove dynamic allocation. * posix/Makefile (tests): Add tst-execvpe{1,2,3,4,5,6}. * posix/tst-execvp1.c (do_test): Use a macro to call execvp. * posix/tst-execvp2.c (do_test): Likewise. * posix/tst-execvp3.c (do_test): Likewise. * posix/tst-execvp4.c (do_test): Likewise. * posix/tst-execvpe1.c: New file. * posix/tst-execvpe2.c: Likewise. * posix/tst-execvpe3.c: Likewise. * posix/tst-execvpe4.c: Likewise. * posix/tst-execvpe5.c: Likewise. * posix/tst-execvpe6.c: Likewise.
2016-03-07posix: Remove dynamic memory allocation from execl{e,p}Adhemerval Zanella3-125/+79
GLIBC execl{e,p} implementation might use malloc if the total number of arguments exceed initial assumption size (1024). This might lead to issues in two situations: 1. execl/execle is stated to be async-signal-safe by POSIX [1]. However if execl is used in a signal handler with a large argument set (that may call malloc internally) and if the resulting call fails it might lead malloc in the program in a bad state. 2. If the functions are used in a vfork/clone(VFORK) situation it also might issue malloc internal bad state. This patch fixes it by using stack allocation instead. It also fixes BZ#19534. Tested on x86_64. [1] http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html [BZ #19534] * posix/execl.c (execl): Remove dynamic memory allocation. * posix/execle.c (execle): Likewise. * posix/execlp.c (execlp): Likewise.
2016-02-22Add missing inclusion of libc-internal.h.Stefan Liebler1-1/+1
The build of posix/tst-dir.c fails due to undefined DIAG_* macros. The usage of the macros were introduced in recent commit 7584a3f96de88d5eefe5d6c634515278cbfbf052 "Deprecate readdir_r, readdir64_r [BZ #19056]". This patch adds the missing header libc-internal.h.
2016-02-20Deprecate readdir_r, readdir64_r [BZ #19056]Florian Weimer1-0/+12
2016-02-19Improve file descriptor checks for posix_spawn actions [BZ #19505]Florian Weimer7-12/+232
2016-01-07Make shebang interpreter directives consistentMarko Myllynen3-3/+3
2016-01-04Update copyright dates not handled by scripts/update-copyrights.Joseph Myers1-1/+1
I've updated copyright dates in glibc for 2016. This is the patch for the changes not generated by scripts/update-copyrights and subsequent build / regeneration of generated files. * NEWS: Update copyright dates. * catgets/gencat.c (print_version): Likewise. * csu/version.c (banner): Likewise. * debug/catchsegv.sh: Likewise. * debug/pcprofiledump.c (print_version): Likewise. * debug/xtrace.sh (do_version): Likewise. * elf/ldconfig.c (print_version): Likewise. * elf/ldd.bash.in: Likewise. * elf/pldd.c (print_version): Likewise. * elf/sotruss.sh: Likewise. * elf/sprof.c (print_version): Likewise. * iconv/iconv_prog.c (print_version): Likewise. * iconv/iconvconfig.c (print_version): Likewise. * locale/programs/locale.c (print_version): Likewise. * locale/programs/localedef.c (print_version): Likewise. * login/programs/pt_chown.c (print_version): Likewise. * malloc/memusage.sh (do_version): Likewise. * malloc/memusagestat.c (print_version): Likewise. * malloc/mtrace.pl: Likewise. * manual/libc.texinfo: Likewise. * nptl/version.c (banner): Likewise. * nscd/nscd.c (print_version): Likewise. * nss/getent.c (print_version): Likewise. * nss/makedb.c (print_version): Likewise. * posix/getconf.c (main): Likewise. * scripts/test-installation.pl: Likewise. * sysdeps/unix/sysv/linux/lddlibc4.c (main): Likewise.
2016-01-04Update copyright dates with scripts/update-copyrights.Joseph Myers193-193/+193
2015-10-21Convert a few more function definitions to prototype style.Joseph Myers1-14/+9
This patch converts a few more function definitions in glibc from old-style K&R to prototype style. This is sufficient to build and test on x86_64 and x86 with -Wold-style-definition (I'll test on some more architectures before proposing the actual addition of -Wold-style-definition). Tested for x86_64 and x86 with -Wold-style-definition in use (testsuite - this patch affects files containing assertions). * io/fts.c (fts_open): Convert to prototype-style function definition. * malloc/mcheck.c (mcheck): Likewise. (mcheck_pedantic): Likewise. * posix/regexec.c (re_search_2_stub): Likewise. Use internal_function. (re_search_internal): Likewise. * resolv/res_init.c [RESOLVSORT] (net_mask): Convert to prototype-style function definition. * sunrpc/clnt_udp.c (clntudp_call): Likewise. * sunrpc/pmap_rmt.c (clnt_broadcast): Likewise. * sunrpc/rpcsvc/rusers.x (xdr_utmp): Likewise. (xdr_utmpptr): Likewise. (xdr_utmparr): Likewise. (xdr_utmpidle): Likewise. (xdr_utmpidleptr): Likewise. (xdr_utmpidlearr): Likewise.
2015-10-20Convert miscellaneous function definitions to prototype style.Joseph Myers3-9/+4
This patch converts various miscellaneous functions definitions in glibc, found with grep and not covered by my previous scripted conversions, from old-style K&R to prototype-style. These changes were made manually. This is not necessarily exhaustive as formatting variants may have prevented my grep from finding some such definitions. Regarding the changes to files from GMP, they may originally have been omitted when removing __STDC__ conditionals because of the files coming from another package, but (a) GMP no longer has __STDC__ conditionals there anyway and (b) we don't try to keep these files verbatim in sync with GMP (and there are licensing differences), so making the change to them in glibc seems reasonable. Tested for x86_64 and x86 (testsuite - this patch affects files containing assertions). * debug/fortify_fail.c (__fortify_fail): Convert to prototype-style function definition. Use internal_function. * libio/genops.c (save_for_backup): Convert to prototype-style function definition. * libio/wgenops.c (save_for_wbackup): Likewise. * login/grantpt.c (grantpt): Likewise. * login/ptsname.c (ptsname): Likewise. (__ptsname_r): Likewise. * login/unlockpt.c (unlockpt): Likewise. * mach/msgserver.c (__mach_msg_server): Likewise. * misc/efgcvt.c (__APPEND (FUNC_PREFIX, fcvt)): Likewise. (__APPEND (FUNC_PREFIX, ecvt)): Likewise. (__APPEND (FUNC_PREFIX, gcvt)): Likewise. * misc/efgcvt_r.c (__APPEND (FUNC_PREFIX, fcvt_r)): Likewise. (__APPEND (FUNC_PREFIX, ecvt_r)): Likewise. * nptl/cleanup_compat.c (_pthread_cleanup_push): Likewise. * nptl/cleanup_defer_compat.c (_pthread_cleanup_push_defer): Likewise. * nptl/libc_pthread_init.c (__libc_pthread_init): Likewise. Use internal_function. * nptl/pthread_atfork.c (__pthread_atfork): Convert to prototype-style function definition. * nptl/pthread_create.c (__pthread_create_2_1): Likewise. [SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)] (__pthread_create_2_0): Likewise. * nptl/pthread_key_create.c (__pthread_key_create): Likewise. * nptl/register-atfork.c (__register_atfork): Likewise. * posix/glob.c (glob): Likewise. * posix/regcomp.c (re_comp): Likewise. * posix/regexec.c (re_exec): Likewise. * stdlib/add_n.c [__STDC__]: Make code unconditional. [!__STDC__]: Remove conditional code. * stdlib/cmp.c [__STDC__]: Make code unconditional. [!__STDC__]: Remove conditional code. * stdlib/divmod_1.c [__STDC__]: Make code unconditional. [!__STDC__]: Remove conditional code. * stdlib/divrem.c [__STDC__]: Make code unconditional. [!__STDC__]: Remove conditional code. * stdlib/lshift.c [__STDC__]: Make code unconditional. [!__STDC__]: Remove conditional code. * stdlib/mod_1.c [__STDC__]: Make code unconditional. [!__STDC__]: Remove conditional code. * stdlib/mul.c [__STDC__]: Make code unconditional. [!__STDC__]: Remove conditional code. * stdlib/mul_n.c [__STDC__]: Make code unconditional. [!__STDC__]: Remove conditional code. * stdlib/rshift.c [__STDC__]: Make code unconditional. [!__STDC__]: Remove conditional code. * stdlib/strtod.c (INTERNAL (STRTOF)): Convert to prototype-style function definition. (STRTOF): Likewise. * stdlib/strtod_l.c (__STRTOF): Likewise. * stdlib/strtol.c (INTERNAL (strtol)): Likewise. * stdlib/strtol_l.c (INTERNAL (__strtol_l)): Likewise. (__strtol_l): Likewise. * stdlib/sub_n.c [__STDC__]: Make code unconditional. [!__STDC__]: Remove conditional code. * string/memrchr.c (MEMRCHR): Convert to prototype-style function definition. * string/strcasecmp.c (LOCALE_PARAM_DECL): Remove macro. [USE_IN_EXTENDED_LOCALE_MODEL] (LOCALE_PARAM): Include argument type. (__strcasecmp): Convert to prototype-style function definition. * string/strncase.c (LOCALE_PARAM_DECL): Remove macro. [USE_IN_EXTENDED_LOCALE_MODEL] (LOCALE_PARAM): Include argument type. (__strncasecmp): Convert to prototype-style function definition. * sunrpc/pm_getport.c (__libc_rpc_getport): Likewise. * sunrpc/xdr.c (xdr_union): Likewise. * sunrpc/xdr_array.c (xdr_array): Likewise. * sunrpc/xdr_ref.c (xdr_reference): Likewise. * sysdeps/m68k/m680x0/fpu/s_atan.c (__CONCATX(__,FUNC)): Likewise. * sysdeps/m68k/m680x0/fpu/s_isinf.c (__CONCATX(__,FUNC)): Likewise. * sysdeps/m68k/m680x0/fpu/s_scalbn.c (__CONCATX(__scalbn,suffix): Likewise. * sysdeps/m68k/m680x0/fpu/s_sincos.c (CONCATX(__,FUNC)): Likewise. * sysdeps/unix/sysv/linux/i386/scandir64.c (__old_scandir64): Likewise. * time/strftime_l.c (LOCALE_PARAM_DECL): Remove macro. (LOCALE_PARAM_PROTO): Likewise. [_LIBC && USE_IN_EXTENDED_LOCALE_MODEL] (LOCALE_PARAM): Include argument type. (ut_argument_spec): Remove macro. (ut_argument_spec_iso): Rename to ut_argument_spec. (memcpy_lowcase): Use LOCALE_PARAM in declaration. Convert to prototype-style function definition. (memcpy_uppcase): Likewise. (__strftime_internal): Likewise. (my_strftime): Likewise. * time/strptime_l.c (LOCALE_PARAM_PROTO): Remove macro. (LOCALE_PARAM_DECL): Likewise. [_LIBC] (LOCALE_PARAM): Include argument type. (__strptime_internal): Convert to prototype-style function definition. (strptime): Likewise. * wcsmbs/wcscasecmp.c (LOCALE_PARAM_DECL): Remove macro. [USE_IN_EXTENDED_LOCALE_MODEL] (LOCALE_PARAM): Include argument type. (__wcscasecmp): Convert to prototype-style function definition. * wcsmbs/wcsncase.c (LOCALE_PARAM_DECL): Remove macro. [USE_IN_EXTENDED_LOCALE_MODEL] (LOCALE_PARAM): Include argument type. (__wcsncasecmp): Convert to prototype-style function definition.
2015-10-20Convert 113 more function definitions to prototype style (files with ↵Joseph Myers5-88/+39
assertions). This mostly automatically-generated patch converts 113 function definitions in glibc from old-style K&R to prototype-style. Following my other recent such patches, this one deals with the case of function definitions in files that either contain assertions or where grep suggested they might contain assertions - and thus where it isn't possible to use a simple object code comparison as a sanity check on the correctness of the patch, because line numbers are changed. A few such automatically-generated changes needed to be supplemented by manual changes for the result to compile. openat64 had a prototype declaration with "..." but an old-style definition in sysdeps/unix/sysv/linux/dl-openat64.c, and "..." needed adding to the generated prototype in the definition (I've filed <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68024> for diagnosing such cases in GCC; the old state was undefined behavior not requiring a diagnostic, but one seems a good idea). In addition, as Florian has noted regparm attribute mismatches between declaration and definition are only diagnosed for prototype definitions, and five functions needed internal_function added to their definitions (in the case of __pthread_mutex_cond_lock, via the macro definition of __pthread_mutex_lock) to compile on i386. After this patch is in, remaining old-style definitions are probably most readily fixed manually before we can turn on -Wold-style-definition for all builds. Tested for x86_64 and x86 (testsuite). * crypt/md5-crypt.c (__md5_crypt_r): Convert to prototype-style function definition. * crypt/sha256-crypt.c (__sha256_crypt_r): Likewise. * crypt/sha512-crypt.c (__sha512_crypt_r): Likewise. * debug/backtracesyms.c (__backtrace_symbols): Likewise. * elf/dl-minimal.c (_itoa): Likewise. * hurd/hurdmalloc.c (malloc): Likewise. (free): Likewise. (realloc): Likewise. * inet/inet6_option.c (inet6_option_space): Likewise. (inet6_option_init): Likewise. (inet6_option_append): Likewise. (inet6_option_alloc): Likewise. (inet6_option_next): Likewise. (inet6_option_find): Likewise. * io/ftw.c (FTW_NAME): Likewise. (NFTW_NAME): Likewise. (NFTW_NEW_NAME): Likewise. (NFTW_OLD_NAME): Likewise. * libio/iofwide.c (_IO_fwide): Likewise. * libio/strops.c (_IO_str_init_static_internal): Likewise. (_IO_str_init_static): Likewise. (_IO_str_init_readonly): Likewise. (_IO_str_overflow): Likewise. (_IO_str_underflow): Likewise. (_IO_str_count): Likewise. (_IO_str_seekoff): Likewise. (_IO_str_pbackfail): Likewise. (_IO_str_finish): Likewise. * libio/wstrops.c (_IO_wstr_init_static): Likewise. (_IO_wstr_overflow): Likewise. (_IO_wstr_underflow): Likewise. (_IO_wstr_count): Likewise. (_IO_wstr_seekoff): Likewise. (_IO_wstr_pbackfail): Likewise. (_IO_wstr_finish): Likewise. * locale/programs/localedef.c (normalize_codeset): Likewise. * locale/programs/locarchive.c (add_locale_to_archive): Likewise. (add_locales_to_archive): Likewise. (delete_locales_from_archive): Likewise. * malloc/malloc.c (__libc_mallinfo): Likewise. * math/gen-auto-libm-tests.c (init_fp_formats): Likewise. * misc/tsearch.c (__tfind): Likewise. * nptl/pthread_attr_destroy.c (__pthread_attr_destroy): Likewise. * nptl/pthread_attr_getdetachstate.c (__pthread_attr_getdetachstate): Likewise. * nptl/pthread_attr_getguardsize.c (pthread_attr_getguardsize): Likewise. * nptl/pthread_attr_getinheritsched.c (__pthread_attr_getinheritsched): Likewise. * nptl/pthread_attr_getschedparam.c (__pthread_attr_getschedparam): Likewise. * nptl/pthread_attr_getschedpolicy.c (__pthread_attr_getschedpolicy): Likewise. * nptl/pthread_attr_getscope.c (__pthread_attr_getscope): Likewise. * nptl/pthread_attr_getstack.c (__pthread_attr_getstack): Likewise. * nptl/pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr): Likewise. * nptl/pthread_attr_getstacksize.c (__pthread_attr_getstacksize): Likewise. * nptl/pthread_attr_init.c (__pthread_attr_init_2_1): Likewise. (__pthread_attr_init_2_0): Likewise. * nptl/pthread_attr_setdetachstate.c (__pthread_attr_setdetachstate): Likewise. * nptl/pthread_attr_setguardsize.c (pthread_attr_setguardsize): Likewise. * nptl/pthread_attr_setinheritsched.c (__pthread_attr_setinheritsched): Likewise. * nptl/pthread_attr_setschedparam.c (__pthread_attr_setschedparam): Likewise. * nptl/pthread_attr_setschedpolicy.c (__pthread_attr_setschedpolicy): Likewise. * nptl/pthread_attr_setscope.c (__pthread_attr_setscope): Likewise. * nptl/pthread_attr_setstack.c (__pthread_attr_setstack): Likewise. * nptl/pthread_attr_setstackaddr.c (__pthread_attr_setstackaddr): Likewise. * nptl/pthread_attr_setstacksize.c (__pthread_attr_setstacksize): Likewise. * nptl/pthread_condattr_setclock.c (pthread_condattr_setclock): Likewise. * nptl/pthread_create.c (__find_in_stack_list): Likewise. * nptl/pthread_getattr_np.c (pthread_getattr_np): Likewise. * nptl/pthread_mutex_cond_lock.c (__pthread_mutex_lock): Define to use internal_function. * nptl/pthread_mutex_init.c (__pthread_mutex_init): Convert to prototype-style function definition. * nptl/pthread_mutex_lock.c (__pthread_mutex_lock): Likewise. (__pthread_mutex_cond_lock_adjust): Likewise. Use internal_function. * nptl/pthread_mutex_timedlock.c (pthread_mutex_timedlock): Convert to prototype-style function definition. * nptl/pthread_mutex_trylock.c (__pthread_mutex_trylock): Likewise. * nptl/pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Likewise. (__pthread_mutex_unlock): Likewise. * nptl_db/td_ta_clear_event.c (td_ta_clear_event): Likewise. * nptl_db/td_ta_set_event.c (td_ta_set_event): Likewise. * nptl_db/td_thr_clear_event.c (td_thr_clear_event): Likewise. * nptl_db/td_thr_event_enable.c (td_thr_event_enable): Likewise. * nptl_db/td_thr_set_event.c (td_thr_set_event): Likewise. * nss/makedb.c (process_input): Likewise. * posix/fnmatch.c (__strchrnul): Likewise. (__wcschrnul): Likewise. (fnmatch): Likewise. * posix/fnmatch_loop.c (FCT): Likewise. * posix/glob.c (globfree): Likewise. (__glob_pattern_type): Likewise. (__glob_pattern_p): Likewise. * posix/regcomp.c (re_compile_pattern): Likewise. (re_set_syntax): Likewise. (re_compile_fastmap): Likewise. (regcomp): Likewise. (regerror): Likewise. (regfree): Likewise. * posix/regexec.c (regexec): Likewise. (re_match): Likewise. (re_search): Likewise. (re_match_2): Likewise. (re_search_2): Likewise. (re_search_stub): Likewise. Use internal_function (re_copy_regs): Likewise. (re_set_registers): Convert to prototype-style function definition. (prune_impossible_nodes): Likewise. Use internal_function. * resolv/inet_net_pton.c (inet_net_pton): Convert to prototype-style function definition. (inet_net_pton_ipv4): Likewise. * stdlib/strtod_l.c (____STRTOF_INTERNAL): Likewise. * sysdeps/pthread/aio_cancel.c (aio_cancel): Likewise. * sysdeps/pthread/aio_suspend.c (aio_suspend): Likewise. * sysdeps/pthread/timer_delete.c (timer_delete): Likewise. * sysdeps/unix/sysv/linux/dl-openat64.c (openat64): Likewise. Make variadic. * time/strptime_l.c (localtime_r): Convert to prototype-style function definition. * wcsmbs/mbsnrtowcs.c (__mbsnrtowcs): Likewise. * wcsmbs/mbsrtowcs_l.c (__mbsrtowcs_l): Likewise. * wcsmbs/wcsnrtombs.c (__wcsnrtombs): Likewise. * wcsmbs/wcsrtombs.c (__wcsrtombs): Likewise.
2015-10-20Convert 24 more function definitions to prototype style (array parameters).Joseph Myers4-15/+4
This automatically-generated patch converts 24 function definitions in glibc from old-style K&R to prototype-style. Following my other recent such patches, this one deals with the case of functions with array parameters. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). * crypt/cert.c (main): Convert to prototype-style function definition. * io/pipe.c (__pipe): Likewise. * io/pipe2.c (__pipe2): Likewise. * misc/futimesat.c (futimesat): Likewise. * misc/utimes.c (__utimes): Likewise. * posix/execve.c (__execve): Likewise. * posix/execvp.c (execvp): Likewise. * posix/execvpe.c (__execvpe): Likewise. * posix/fexecve.c (fexecve): Likewise. * socket/socketpair.c (socketpair): Likewise. * stdlib/drand48-iter.c (__drand48_iterate): Likewise. * stdlib/erand48.c (erand48): Likewise. * stdlib/erand48_r.c (__erand48_r): Likewise. * stdlib/jrand48.c (jrand48): Likewise. * stdlib/jrand48_r.c (__jrand48_r): Likewise. * stdlib/lcong48.c (lcong48): Likewise. * stdlib/lcong48_r.c (__lcong48_r): Likewise. * stdlib/nrand48.c (nrand48): Likewise. * stdlib/nrand48_r.c (__nrand48_r): Likewise. * stdlib/seed48.c (seed48): Likewise. * stdlib/seed48_r.c (__seed48_r): Likewise. * sysdeps/mach/hurd/execve.c (__execve): Likewise. * sysdeps/mach/hurd/utimes.c (__utimes): Likewise. * sysdeps/unix/sysv/linux/fexecve.c (fexecve): Likewise.
2015-10-19Do not use -Wno-strict-prototypes.Joseph Myers1-1/+0
Two glibc makefiles use -Wno-strict-prototypes. I don't know if this was needed before my recent conversion of many function definitions to prototype style, but it's not needed now; this patch removes it. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). * posix/Makefile (CFLAGS-regex.c): Remove variable. * resolv/Makefile (+cflags): Do not use -Wno-strict-prototypes.
2015-10-16Convert 703 function definitions to prototype style.Joseph Myers18-49/+18
This automatically-generated patch converts 703 function definitions in glibc from old-style K&R to prototype-style. This conversion is deliberately simplistic, excluding any tricky cases as even a patch covering only simple cases is still very large. Currently excluded are: sysdeps files (to improve test coverage for the initial patch); files containing assertions (to avoid line number changes so that generated libraries can be compared); any cases where the generated function declaration would involve lines over 79 characters and so need to be wrapped; any cases with array parameters or other cases where parameter declarators don't end with the parameter name; any other cases that my script didn't parse. I didn't try to make the ChangeLog generation indicate when function definitions are conditional; it just lists the functions changed without regard to that. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). * crypt/cert.c (good_bye): Convert to prototype-style function definition. (get8): Likewise. (put8): Likewise. * crypt/crypt-entry.c (crypt): Likewise. (__fcrypt): Likewise. * crypt/crypt_util.c (_ufc_prbits): Likewise. (_ufc_set_bits): Likewise. (_ufc_clearmem): Likewise. (__init_des_r): Likewise. (shuffle_sb): Likewise. (shuffle_sb): Likewise. (_ufc_setup_salt_r): Likewise. (_ufc_mk_keytab_r): Likewise. (_ufc_dofinalperm_r): Likewise. (encrypt): Likewise. (__setkey_r): Likewise. (setkey): Likewise. * crypt/md5.c (md5_init_ctx): Likewise. (md5_read_ctx): Likewise. (md5_finish_ctx): Likewise. (md5_stream): Likewise. (md5_buffer): Likewise. (md5_process_bytes): Likewise. * crypt/sha256.c (__sha256_init_ctx): Likewise. (__sha256_finish_ctx): Likewise. (__sha256_process_bytes): Likewise. * crypt/sha512.c (__sha512_init_ctx): Likewise. (__sha512_finish_ctx): Likewise. (__sha512_process_bytes): Likewise. * ctype/isctype.c (__isctype): Likewise. * debug/backtrace.c (__backtrace): Likewise. * debug/backtracesymsfd.c (__backtrace_symbols_fd): Likewise. * debug/fgets_chk.c (__fgets_chk): Likewise. * debug/fgets_u_chk.c (__fgets_unlocked_chk): Likewise. * debug/memcpy_chk.c (__memcpy_chk): Likewise. * debug/memmove_chk.c (MEMMOVE_CHK): Likewise. * debug/mempcpy_chk.c (__mempcpy_chk): Likewise. * debug/memset_chk.c (__memset_chk): Likewise. * debug/strcat_chk.c (__strcat_chk): Likewise. * debug/strncat_chk.c (__strncat_chk): Likewise. * debug/strncpy_chk.c (__strncpy_chk): Likewise. * debug/vsprintf_chk.c (_IO_str_chk_overflow): Likewise. * dirent/dirfd.c (dirfd): Likewise. * dirent/getdents.c (__getdirentries): Likewise. * dirent/getdents64.c (getdirentries64): Likewise. * dirent/rewinddir.c (__rewinddir): Likewise. * dirent/seekdir.c (seekdir): Likewise. * dirent/telldir.c (telldir): Likewise. * elf/sln.c (makesymlinks): Likewise. (makesymlink): Likewise. * gmon/gmon.c (__moncontrol): Likewise. (__monstartup): Likewise. (write_hist): Likewise. (write_call_graph): Likewise. (write_bb_counts): Likewise. * grp/setgroups.c (setgroups): Likewise. * inet/inet_lnaof.c (inet_lnaof): Likewise. * inet/inet_net.c (inet_network): Likewise. * inet/inet_netof.c (inet_netof): Likewise. * inet/rcmd.c (rresvport_af): Likewise. (rresvport): Likewise. * io/access.c (__access): Likewise. * io/chdir.c (__chdir): Likewise. * io/chmod.c (__chmod): Likewise. * io/chown.c (__chown): Likewise. * io/close.c (__close): Likewise. * io/creat.c (creat): Likewise. * io/creat64.c (creat64): Likewise. * io/dup.c (__dup): Likewise. * io/dup2.c (__dup2): Likewise. * io/dup3.c (__dup3): Likewise. * io/euidaccess.c (__euidaccess): Likewise. * io/faccessat.c (faccessat): Likewise. * io/fchmod.c (__fchmod): Likewise. * io/fchmodat.c (fchmodat): Likewise. * io/fchown.c (__fchown): Likewise. * io/fchownat.c (fchownat): Likewise. * io/fcntl.c (__fcntl): Likewise. * io/flock.c (__flock): Likewise. * io/fts.c (fts_load): Likewise. (fts_close): Likewise. (fts_read): Likewise. (fts_set): Likewise. (fts_children): Likewise. (fts_build): Likewise. (fts_stat): Likewise. (fts_sort): Likewise. (fts_alloc): Likewise. (fts_lfree): Likewise. (fts_palloc): Likewise. (fts_padjust): Likewise. (fts_maxarglen): Likewise. (fts_safe_changedir): Likewise. * io/getwd.c (getwd): Likewise. * io/isatty.c (__isatty): Likewise. * io/lchown.c (__lchown): Likewise. * io/link.c (__link): Likewise. * io/linkat.c (linkat): Likewise. * io/lseek.c (__libc_lseek): Likewise. * io/mkdir.c (__mkdir): Likewise. * io/mkdirat.c (mkdirat): Likewise. * io/mkfifo.c (mkfifo): Likewise. * io/mkfifoat.c (mkfifoat): Likewise. * io/open.c (__libc_open): Likewise. * io/open64.c (__libc_open64): Likewise. * io/readlink.c (__readlink): Likewise. * io/readlinkat.c (readlinkat): Likewise. * io/rmdir.c (__rmdir): Likewise. * io/symlink.c (__symlink): Likewise. * io/symlinkat.c (symlinkat): Likewise. * io/ttyname.c (ttyname): Likewise. * io/ttyname_r.c (__ttyname_r): Likewise. * io/umask.c (__umask): Likewise. * io/unlink.c (__unlink): Likewise. * io/unlinkat.c (unlinkat): Likewise. * io/utime.c (utime): Likewise. * libio/clearerr.c (clearerr): Likewise. * libio/clearerr_u.c (clearerr_unlocked): Likewise. * libio/feof.c (_IO_feof): Likewise. * libio/feof_u.c (feof_unlocked): Likewise. * libio/ferror.c (_IO_ferror): Likewise. * libio/ferror_u.c (ferror_unlocked): Likewise. * libio/filedoalloc.c (_IO_file_doallocate): Likewise. * libio/fileno.c (__fileno): Likewise. * libio/fputc.c (fputc): Likewise. * libio/fputc_u.c (fputc_unlocked): Likewise. * libio/fputwc.c (fputwc): Likewise. * libio/fputwc_u.c (fputwc_unlocked): Likewise. * libio/freopen.c (freopen): Likewise. * libio/freopen64.c (freopen64): Likewise. * libio/fseek.c (fseek): Likewise. * libio/fseeko.c (fseeko): Likewise. * libio/fseeko64.c (fseeko64): Likewise. * libio/ftello.c (__ftello): Likewise. * libio/ftello64.c (ftello64): Likewise. * libio/fwide.c (fwide): Likewise. * libio/genops.c (_IO_un_link): Likewise. (_IO_link_in): Likewise. (_IO_least_marker): Likewise. (_IO_switch_to_main_get_area): Likewise. (_IO_switch_to_backup_area): Likewise. (_IO_switch_to_get_mode): Likewise. (_IO_free_backup_area): Likewise. (_IO_switch_to_put_mode): Likewise. (__overflow): Likewise. (__underflow): Likewise. (__uflow): Likewise. (_IO_setb): Likewise. (_IO_doallocbuf): Likewise. (_IO_default_underflow): Likewise. (_IO_default_uflow): Likewise. (_IO_default_xsputn): Likewise. (_IO_sgetn): Likewise. (_IO_default_xsgetn): Likewise. (_IO_sync): Likewise. (_IO_default_setbuf): Likewise. (_IO_default_seekpos): Likewise. (_IO_default_doallocate): Likewise. (_IO_init): Likewise. (_IO_old_init): Likewise. (_IO_default_sync): Likewise. (_IO_default_finish): Likewise. (_IO_default_seekoff): Likewise. (_IO_sputbackc): Likewise. (_IO_sungetc): Likewise. (_IO_set_column): Likewise. (_IO_set_column): Likewise. (_IO_adjust_column): Likewise. (_IO_get_column): Likewise. (_IO_init_marker): Likewise. (_IO_remove_marker): Likewise. (_IO_marker_difference): Likewise. (_IO_marker_delta): Likewise. (_IO_seekmark): Likewise. (_IO_unsave_markers): Likewise. (_IO_nobackup_pbackfail): Likewise. (_IO_default_pbackfail): Likewise. (_IO_default_seek): Likewise. (_IO_default_stat): Likewise. (_IO_default_read): Likewise. (_IO_default_write): Likewise. (_IO_default_showmanyc): Likewise. (_IO_default_imbue): Likewise. (_IO_iter_next): Likewise. (_IO_iter_file): Likewise. * libio/getc.c (_IO_getc): Likewise. * libio/getwc.c (_IO_getwc): Likewise. * libio/iofclose.c (_IO_new_fclose): Likewise. * libio/iofdopen.c (_IO_new_fdopen): Likewise. * libio/iofflush.c (_IO_fflush): Likewise. * libio/iofflush_u.c (__fflush_unlocked): Likewise. * libio/iofgetpos.c (_IO_new_fgetpos): Likewise. * libio/iofgetpos64.c (_IO_new_fgetpos64): Likewise. * libio/iofgets.c (_IO_fgets): Likewise. * libio/iofgets_u.c (__fgets_unlocked): Likewise. * libio/iofgetws.c (fgetws): Likewise. * libio/iofgetws_u.c (fgetws_unlocked): Likewise. * libio/iofopen64.c (_IO_fopen64): Likewise. * libio/iofopncook.c (_IO_cookie_read): Likewise. (_IO_cookie_write): Likewise. (_IO_cookie_seek): Likewise. (_IO_cookie_close): Likewise. (_IO_cookie_seekoff): Likewise. (_IO_old_cookie_seek): Likewise. * libio/iofputs.c (_IO_fputs): Likewise. * libio/iofputs_u.c (__fputs_unlocked): Likewise. * libio/iofputws.c (fputws): Likewise. * libio/iofputws_u.c (fputws_unlocked): Likewise. * libio/iofread.c (_IO_fread): Likewise. * libio/iofread_u.c (__fread_unlocked): Likewise. * libio/iofsetpos.c (_IO_new_fsetpos): Likewise. * libio/iofsetpos64.c (_IO_new_fsetpos64): Likewise. * libio/ioftell.c (_IO_ftell): Likewise. * libio/iofwrite.c (_IO_fwrite): Likewise. * libio/iogetdelim.c (_IO_getdelim): Likewise. * libio/iogets.c (_IO_gets): Likewise. * libio/iopadn.c (_IO_padn): Likewise. * libio/iopopen.c (_IO_new_proc_open): Likewise. (_IO_new_popen): Likewise. (_IO_new_proc_close): Likewise. * libio/ioputs.c (_IO_puts): Likewise. * libio/ioseekoff.c (_IO_seekoff_unlocked): Likewise. (_IO_seekoff): Likewise. * libio/ioseekpos.c (_IO_seekpos_unlocked): Likewise. (_IO_seekpos): Likewise. * libio/iosetbuffer.c (_IO_setbuffer): Likewise. * libio/iosetvbuf.c (_IO_setvbuf): Likewise. * libio/ioungetc.c (_IO_ungetc): Likewise. * libio/ioungetwc.c (ungetwc): Likewise. * libio/iovdprintf.c (_IO_vdprintf): Likewise. * libio/iovsscanf.c (_IO_vsscanf): Likewise. * libio/iowpadn.c (_IO_wpadn): Likewise. * libio/libc_fatal.c (__libc_fatal): Likewise. * libio/memstream.c (__open_memstream): Likewise. (_IO_mem_sync): Likewise. (_IO_mem_finish): Likewise. * libio/oldfileops.c (_IO_old_file_init): Likewise. (_IO_old_file_close_it): Likewise. (_IO_old_file_finish): Likewise. (_IO_old_file_fopen): Likewise. (_IO_old_file_attach): Likewise. (_IO_old_file_setbuf): Likewise. (_IO_old_do_write): Likewise. (old_do_write): Likewise. (_IO_old_file_underflow): Likewise. (_IO_old_file_overflow): Likewise. (_IO_old_file_sync): Likewise. (_IO_old_file_seekoff): Likewise. (_IO_old_file_write): Likewise. (_IO_old_file_xsputn): Likewise. * libio/oldiofclose.c (_IO_old_fclose): Likewise. * libio/oldiofdopen.c (_IO_old_fdopen): Likewise. * libio/oldiofgetpos.c (_IO_old_fgetpos): Likewise. * libio/oldiofgetpos64.c (_IO_old_fgetpos64): Likewise. * libio/oldiofopen.c (_IO_old_fopen): Likewise. * libio/oldiofsetpos.c (_IO_old_fsetpos): Likewise. * libio/oldiofsetpos64.c (_IO_old_fsetpos64): Likewise. * libio/oldiopopen.c (_IO_old_proc_open): Likewise. (_IO_old_popen): Likewise. (_IO_old_proc_close): Likewise. * libio/oldpclose.c (__old_pclose): Likewise. * libio/pclose.c (__new_pclose): Likewise. * libio/peekc.c (_IO_peekc_locked): Likewise. * libio/putc.c (_IO_putc): Likewise. * libio/putc_u.c (putc_unlocked): Likewise. * libio/putchar.c (putchar): Likewise. * libio/putchar_u.c (putchar_unlocked): Likewise. * libio/putwc.c (putwc): Likewise. * libio/putwc_u.c (putwc_unlocked): Likewise. * libio/putwchar.c (putwchar): Likewise. * libio/putwchar_u.c (putwchar_unlocked): Likewise. * libio/rewind.c (rewind): Likewise. * libio/setbuf.c (setbuf): Likewise. * libio/setlinebuf.c (setlinebuf): Likewise. * libio/vasprintf.c (_IO_vasprintf): Likewise. * libio/vscanf.c (_IO_vscanf): Likewise. * libio/vsnprintf.c (_IO_strn_overflow): Likewise. * libio/vswprintf.c (_IO_wstrn_overflow): Likewise. * libio/wfiledoalloc.c (_IO_wfile_doallocate): Likewise. * libio/wgenops.c (_IO_least_wmarker): Likewise. (_IO_switch_to_main_wget_area): Likewise. (_IO_switch_to_wbackup_area): Likewise. (_IO_wsetb): Likewise. (_IO_wdefault_pbackfail): Likewise. (_IO_wdefault_finish): Likewise. (_IO_wdefault_uflow): Likewise. (__woverflow): Likewise. (__wuflow): Likewise. (__wunderflow): Likewise. (_IO_wdefault_xsputn): Likewise. (_IO_wdefault_xsgetn): Likewise. (_IO_wdoallocbuf): Likewise. (_IO_wdefault_doallocate): Likewise. (_IO_switch_to_wget_mode): Likewise. (_IO_free_wbackup_area): Likewise. (_IO_switch_to_wput_mode): Likewise. (_IO_sputbackwc): Likewise. (_IO_sungetwc): Likewise. (_IO_adjust_wcolumn): Likewise. (_IO_init_wmarker): Likewise. (_IO_wmarker_delta): Likewise. (_IO_seekwmark): Likewise. (_IO_unsave_wmarkers): Likewise. * libio/wmemstream.c (open_wmemstream): Likewise. (_IO_wmem_sync): Likewise. (_IO_wmem_finish): Likewise. * locale/nl_langinfo.c (nl_langinfo): Likewise. * locale/nl_langinfo_l.c (__nl_langinfo_l): Likewise. * locale/programs/simple-hash.c (init_hash): Likewise. (delete_hash): Likewise. (insert_entry): Likewise. (set_entry): Likewise. (next_prime): Likewise. (is_prime): Likewise. * locale/programs/xmalloc.c (fixup_null_alloc): Likewise. (xmalloc): Likewise. (xrealloc): Likewise. * locale/programs/xstrdup.c (xstrdup): Likewise. * localedata/collate-test.c (xstrcoll): Likewise. * localedata/xfrm-test.c (xstrcmp): Likewise. * login/getlogin_r.c (__getlogin_r): Likewise. * login/getpt.c (__posix_openpt): Likewise. * login/login_tty.c (login_tty): Likewise. * login/setlogin.c (setlogin): Likewise. * mach/msg-destroy.c (__mach_msg_destroy): Likewise. (mach_msg_destroy_port): Likewise. (mach_msg_destroy_memory): Likewise. * malloc/mcheck.c (flood): Likewise. * misc/acct.c (acct): Likewise. * misc/brk.c (__brk): Likewise. * misc/chflags.c (chflags): Likewise. * misc/chroot.c (chroot): Likewise. * misc/fchflags.c (fchflags): Likewise. * misc/fstab.c (getfsspec): Likewise. (getfsfile): Likewise. * misc/fsync.c (fsync): Likewise. * misc/ftruncate.c (__ftruncate): Likewise. * misc/ftruncate64.c (__ftruncate64): Likewise. * misc/getdomain.c (getdomainname): Likewise. (getdomainname): Likewise. * misc/gethostname.c (__gethostname): Likewise. * misc/getpass.c (getpass): Likewise. * misc/getttyent.c (skip): Likewise. (value): Likewise. * misc/gtty.c (gtty): Likewise. * misc/hsearch.c (hsearch): Likewise. (hcreate): Likewise. * misc/hsearch_r.c (__hcreate_r): Likewise. (__hdestroy_r): Likewise. * misc/ioctl.c (__ioctl): Likewise. * misc/mkdtemp.c (mkdtemp): Likewise. * misc/mkostemp.c (mkostemp): Likewise. * misc/mkostemp64.c (mkostemp64): Likewise. * misc/mkostemps.c (mkostemps): Likewise. * misc/mkostemps64.c (mkostemps64): Likewise. * misc/mkstemp.c (mkstemp): Likewise. * misc/mkstemp64.c (mkstemp64): Likewise. * misc/mkstemps.c (mkstemps): Likewise. * misc/mkstemps64.c (mkstemps64): Likewise. * misc/mktemp.c (__mktemp): Likewise. * misc/preadv.c (preadv): Likewise. * misc/preadv64.c (preadv64): Likewise. * misc/pwritev.c (pwritev): Likewise. * misc/pwritev64.c (pwritev64): Likewise. * misc/readv.c (__readv): Likewise. * misc/revoke.c (revoke): Likewise. * misc/setdomain.c (setdomainname): Likewise. * misc/setegid.c (setegid): Likewise. * misc/seteuid.c (seteuid): Likewise. * misc/sethostid.c (sethostid): Likewise. * misc/sethostname.c (sethostname): Likewise. * misc/setregid.c (__setregid): Likewise. * misc/setreuid.c (__setreuid): Likewise. * misc/sstk.c (sstk): Likewise. * misc/stty.c (stty): Likewise. * misc/syscall.c (syscall): Likewise. * misc/syslog.c (setlogmask): Likewise. * misc/truncate.c (__truncate): Likewise. * misc/truncate64.c (truncate64): Likewise. * misc/ualarm.c (ualarm): Likewise. * misc/usleep.c (usleep): Likewise. * misc/ustat.c (ustat): Likewise. * misc/writev.c (__writev): Likewise. * nptl/cleanup_compat.c (_pthread_cleanup_pop): Likewise. * nptl/old_pthread_cond_broadcast.c (__pthread_cond_broadcast_2_0): Likewise. * nptl/old_pthread_cond_destroy.c (__pthread_cond_destroy_2_0): Likewise. * nptl/old_pthread_cond_signal.c (__pthread_cond_signal_2_0): Likewise. * nptl/old_pthread_cond_wait.c (__pthread_cond_wait_2_0): Likewise. * nptl/pt-raise.c (raise): Likewise. * nptl/pthread_barrier_destroy.c (pthread_barrier_destroy): Likewise. * nptl/pthread_barrier_wait.c (__pthread_barrier_wait): Likewise. * nptl/pthread_barrierattr_destroy.c (pthread_barrierattr_destroy): Likewise. * nptl/pthread_barrierattr_init.c (pthread_barrierattr_init): Likewise. * nptl/pthread_barrierattr_setpshared.c (pthread_barrierattr_setpshared): Likewise. * nptl/pthread_cond_broadcast.c (__pthread_cond_broadcast): Likewise. * nptl/pthread_cond_destroy.c (__pthread_cond_destroy): Likewise. * nptl/pthread_cond_init.c (__pthread_cond_init): Likewise. * nptl/pthread_cond_signal.c (__pthread_cond_signal): Likewise. * nptl/pthread_condattr_destroy.c (__pthread_condattr_destroy): Likewise. * nptl/pthread_condattr_getclock.c (pthread_condattr_getclock): Likewise. * nptl/pthread_condattr_getpshared.c (pthread_condattr_getpshared): Likewise. * nptl/pthread_condattr_init.c (__pthread_condattr_init): Likewise. * nptl/pthread_condattr_setpshared.c (pthread_condattr_setpshared): Likewise. * nptl/pthread_detach.c (pthread_detach): Likewise. * nptl/pthread_equal.c (__pthread_equal): Likewise. * nptl/pthread_getcpuclockid.c (pthread_getcpuclockid): Likewise. * nptl/pthread_getspecific.c (__pthread_getspecific): Likewise. * nptl/pthread_key_delete.c (pthread_key_delete): Likewise. * nptl/pthread_mutex_consistent.c (pthread_mutex_consistent): Likewise. * nptl/pthread_mutex_destroy.c (__pthread_mutex_destroy): Likewise. * nptl/pthread_mutex_getprioceiling.c (pthread_mutex_getprioceiling): Likewise. * nptl/pthread_mutexattr_destroy.c (__pthread_mutexattr_destroy): Likewise. * nptl/pthread_mutexattr_getprotocol.c (pthread_mutexattr_getprotocol): Likewise. * nptl/pthread_mutexattr_getpshared.c (pthread_mutexattr_getpshared): Likewise. * nptl/pthread_mutexattr_getrobust.c (pthread_mutexattr_getrobust): Likewise. * nptl/pthread_mutexattr_gettype.c (pthread_mutexattr_gettype): Likewise. * nptl/pthread_mutexattr_init.c (__pthread_mutexattr_init): Likewise. * nptl/pthread_mutexattr_setprioceiling.c (pthread_mutexattr_setprioceiling): Likewise. * nptl/pthread_mutexattr_setprotocol.c (pthread_mutexattr_setprotocol): Likewise. * nptl/pthread_mutexattr_setpshared.c (pthread_mutexattr_setpshared): Likewise. * nptl/pthread_mutexattr_setrobust.c (pthread_mutexattr_setrobust): Likewise. * nptl/pthread_mutexattr_settype.c (__pthread_mutexattr_settype): Likewise. * nptl/pthread_rwlock_destroy.c (__pthread_rwlock_destroy): Likewise. * nptl/pthread_rwlockattr_destroy.c (pthread_rwlockattr_destroy): Likewise. * nptl/pthread_rwlockattr_getkind_np.c (pthread_rwlockattr_getkind_np): Likewise. * nptl/pthread_rwlockattr_getpshared.c (pthread_rwlockattr_getpshared): Likewise. * nptl/pthread_rwlockattr_init.c (pthread_rwlockattr_init): Likewise. * nptl/pthread_rwlockattr_setkind_np.c (pthread_rwlockattr_setkind_np): Likewise. * nptl/pthread_rwlockattr_setpshared.c (pthread_rwlockattr_setpshared): Likewise. * nptl/pthread_setcancelstate.c (__pthread_setcancelstate): Likewise. * nptl/pthread_setcanceltype.c (__pthread_setcanceltype): Likewise. * nptl/pthread_setconcurrency.c (pthread_setconcurrency): Likewise. * nptl/pthread_setschedprio.c (pthread_setschedprio): Likewise. * nptl/pthread_setspecific.c (__pthread_setspecific): Likewise. * nptl/pthread_spin_destroy.c (pthread_spin_destroy): Likewise. * nptl/pthread_tryjoin.c (pthread_tryjoin_np): Likewise. * nptl/sem_close.c (sem_close): Likewise. * nptl/sem_destroy.c (__new_sem_destroy): Likewise. * nptl/sem_init.c (__old_sem_init): Likewise. * nptl/sigaction.c (__sigaction): Likewise. * nptl/unregister-atfork.c (__unregister_atfork): Likewise. * posix/_exit.c (_exit): Likewise. * posix/alarm.c (alarm): Likewise. * posix/confstr.c (confstr): Likewise. * posix/fpathconf.c (__fpathconf): Likewise. * posix/getgroups.c (__getgroups): Likewise. * posix/getpgid.c (__getpgid): Likewise. * posix/group_member.c (__group_member): Likewise. * posix/pathconf.c (__pathconf): Likewise. * posix/sched_getaffinity.c (sched_getaffinity): Likewise. * posix/sched_setaffinity.c (sched_setaffinity): Likewise. * posix/setgid.c (__setgid): Likewise. * posix/setpgid.c (__setpgid): Likewise. * posix/setuid.c (__setuid): Likewise. * posix/sleep.c (__sleep): Likewise. * posix/sysconf.c (__sysconf): Likewise. * posix/times.c (__times): Likewise. * posix/uname.c (__uname): Likewise. * posix/waitid.c (__waitid): Likewise. * pwd/getpw.c (__getpw): Likewise. * resolv/base64.c (b64_pton): Likewise. * resolv/gai_sigqueue.c (__gai_sigqueue): Likewise. * resolv/gethnamaddr.c (Dprintf): Likewise. (gethostbyname): Likewise. (gethostbyname2): Likewise. (gethostbyaddr): Likewise. (_sethtent): Likewise. (_gethtbyname): Likewise. (_gethtbyname2): Likewise. (_gethtbyaddr): Likewise. (map_v4v6_address): Likewise. (map_v4v6_hostent): Likewise. (addrsort): Likewise. (ht_sethostent): Likewise. (ht_gethostbyname): Likewise. (ht_gethostbyaddr): Likewise. * resolv/inet_net_ntop.c (inet_net_ntop): Likewise. (inet_net_ntop_ipv4): Likewise. * resolv/inet_neta.c (inet_neta): Likewise. * resolv/inet_ntop.c (inet_ntop): Likewise. (inet_ntop4): Likewise. (inet_ntop6): Likewise. * resolv/inet_pton.c (__inet_pton): Likewise. (inet_pton4): Likewise. (inet_pton6): Likewise. * resolv/res_debug.c (loc_aton): Likewise. (loc_ntoa): Likewise. * resource/getpriority.c (__getpriority): Likewise. * resource/getrusage.c (__getrusage): Likewise. * resource/nice.c (nice): Likewise. * resource/setpriority.c (__setpriority): Likewise. * resource/setrlimit64.c (setrlimit64): Likewise. * resource/vlimit.c (vlimit): Likewise. * resource/vtimes.c (vtimes): Likewise. * rt/aio_error.c (aio_error): Likewise. * rt/aio_return.c (aio_return): Likewise. * rt/aio_sigqueue.c (__aio_sigqueue): Likewise. * signal/kill.c (__kill): Likewise. * signal/killpg.c (killpg): Likewise. * signal/raise.c (raise): Likewise. * signal/sigaction.c (__sigaction): Likewise. * signal/sigaddset.c (sigaddset): Likewise. * signal/sigaltstack.c (sigaltstack): Likewise. * signal/sigandset.c (sigandset): Likewise. * signal/sigblock.c (__sigblock): Likewise. * signal/sigdelset.c (sigdelset): Likewise. * signal/sigempty.c (sigemptyset): Likewise. * signal/sigfillset.c (sigfillset): Likewise. * signal/sighold.c (sighold): Likewise. * signal/sigignore.c (sigignore): Likewise. * signal/sigintr.c (siginterrupt): Likewise. * signal/sigisempty.c (sigisemptyset): Likewise. * signal/sigismem.c (sigismember): Likewise. * signal/signal.c (signal): Likewise. * signal/sigorset.c (sigorset): Likewise. * signal/sigpause.c (__sigpause): Likewise. * signal/sigpending.c (sigpending): Likewise. * signal/sigprocmask.c (__sigprocmask): Likewise. * signal/sigrelse.c (sigrelse): Likewise. * signal/sigreturn.c (__sigreturn): Likewise. * signal/sigset.c (sigset): Likewise. * signal/sigsetmask.c (__sigsetmask): Likewise. * signal/sigstack.c (sigstack): Likewise. * signal/sigsuspend.c (__sigsuspend): Likewise. * signal/sigvec.c (sigvec_wrapper_handler): Likewise. * signal/sysv_signal.c (__sysv_signal): Likewise. * socket/accept.c (accept): Likewise. * socket/accept4.c (__libc_accept4): Likewise. * socket/bind.c (__bind): Likewise. * socket/connect.c (__connect): Likewise. * socket/getpeername.c (getpeername): Likewise. * socket/getsockname.c (__getsockname): Likewise. * socket/getsockopt.c (getsockopt): Likewise. * socket/listen.c (__listen): Likewise. * socket/recv.c (__recv): Likewise. * socket/recvmsg.c (__recvmsg): Likewise. * socket/send.c (__send): Likewise. * socket/sendmsg.c (__sendmsg): Likewise. * socket/shutdown.c (shutdown): Likewise. * socket/sockatmark.c (sockatmark): Likewise. * socket/socket.c (__socket): Likewise. * stdio-common/ctermid.c (ctermid): Likewise. * stdio-common/cuserid.c (cuserid): Likewise. * stdio-common/printf-prs.c (parse_printf_format): Likewise. * stdio-common/remove.c (remove): Likewise. * stdio-common/rename.c (rename): Likewise. * stdio-common/renameat.c (renameat): Likewise. * stdio-common/tempname.c (__gen_tempname): Likewise. * stdio-common/xbug.c (InitBuffer): Likewise. (AppendToBuffer): Likewise. (ReadFile): Likewise. * stdlib/a64l.c (a64l): Likewise. * stdlib/drand48_r.c (drand48_r): Likewise. * stdlib/getcontext.c (getcontext): Likewise. * stdlib/getenv.c (getenv): Likewise. * stdlib/l64a.c (l64a): Likewise. * stdlib/llabs.c (llabs): Likewise. * stdlib/lldiv.c (lldiv): Likewise. * stdlib/lrand48_r.c (lrand48_r): Likewise. * stdlib/mrand48_r.c (mrand48_r): Likewise. * stdlib/putenv.c (putenv): Likewise. * stdlib/random.c (__srandom): Likewise. (__initstate): Likewise. (__setstate): Likewise. * stdlib/random_r.c (__srandom_r): Likewise. (__setstate_r): Likewise. (__random_r): Likewise. * stdlib/secure-getenv.c (__libc_secure_getenv): Likewise. * stdlib/setcontext.c (setcontext): Likewise. * stdlib/setenv.c (setenv): Likewise. (unsetenv): Likewise. * stdlib/srand48.c (srand48): Likewise. * stdlib/srand48_r.c (__srand48_r): Likewise. * stdlib/swapcontext.c (swapcontext): Likewise. * stdlib/system.c (__libc_system): Likewise. * stdlib/tst-strtod.c (expand): Likewise. * stdlib/tst-strtol.c (expand): Likewise. * stdlib/tst-strtoll.c (expand): Likewise. * streams/fattach.c (fattach): Likewise. * streams/fdetach.c (fdetach): Likewise. * streams/getmsg.c (getmsg): Likewise. * streams/isastream.c (isastream): Likewise. * string/ffs.c (__ffs): Likewise. * string/ffsll.c (ffsll): Likewise. * string/memcmp.c (memcmp_common_alignment): Likewise. (memcmp_not_common_alignment): Likewise. (MEMCMP): Likewise. * string/memcpy.c (memcpy): Likewise. * string/memmove.c (MEMMOVE): Likewise. * string/memset.c (memset): Likewise. * string/rawmemchr.c (RAWMEMCHR): Likewise. * string/strchrnul.c (STRCHRNUL): Likewise. * string/strerror.c (strerror): Likewise. * string/strndup.c (__strndup): Likewise. * string/strverscmp.c (__strverscmp): Likewise. * sunrpc/clnt_raw.c (clntraw_freeres): Likewise. * sunrpc/clnt_tcp.c (clnttcp_geterr): Likewise. (clnttcp_freeres): Likewise. * sunrpc/clnt_unix.c (clntunix_freeres): Likewise. * sunrpc/pmap_prot.c (xdr_pmap): Likewise. * sunrpc/pmap_prot2.c (xdr_pmaplist): Likewise. * sunrpc/pmap_rmt.c (xdr_rmtcallres): Likewise. * sunrpc/rpc_prot.c (xdr_replymsg): Likewise. (xdr_callhdr): Likewise. * sunrpc/rpcinfo.c (udpping): Likewise. (tcpping): Likewise. (pstatus): Likewise. (pmapdump): Likewise. (brdcst): Likewise. (deletereg): Likewise. (getprognum): Likewise. (getvers): Likewise. (get_inet_address): Likewise. * sunrpc/svc_raw.c (svcraw_recv): Likewise. * sunrpc/svc_udp.c (svcudp_create): Likewise. (svcudp_stat): Likewise. (svcudp_recv): Likewise. (svcudp_reply): Likewise. (svcudp_getargs): Likewise. (svcudp_freeargs): Likewise. (svcudp_destroy): Likewise. * sunrpc/xdr.c (xdr_bytes): Likewise. (xdr_netobj): Likewise. (xdr_string): Likewise. (xdr_wrapstring): Likewise. * sunrpc/xdr_float.c (xdr_float): Likewise. (xdr_double): Likewise. * sunrpc/xdr_mem.c (xdrmem_setpos): Likewise. * sunrpc/xdr_ref.c (xdr_pointer): Likewise. * sysvipc/ftok.c (ftok): Likewise. * sysvipc/msgctl.c (msgctl): Likewise. * sysvipc/msgget.c (msgget): Likewise. * sysvipc/msgrcv.c (msgrcv): Likewise. * sysvipc/msgsnd.c (msgsnd): Likewise. * sysvipc/semget.c (semget): Likewise. * sysvipc/semop.c (semop): Likewise. * sysvipc/shmat.c (shmat): Likewise. * sysvipc/shmctl.c (shmctl): Likewise. * sysvipc/shmdt.c (shmdt): Likewise. * sysvipc/shmget.c (shmget): Likewise. * termios/cfmakeraw.c (cfmakeraw): Likewise. * termios/speed.c (cfgetospeed): Likewise. (cfgetispeed): Likewise. (cfsetospeed): Likewise. (cfsetispeed): Likewise. * termios/tcflow.c (tcflow): Likewise. * termios/tcflush.c (tcflush): Likewise. * termios/tcgetattr.c (__tcgetattr): Likewise. * termios/tcgetpgrp.c (tcgetpgrp): Likewise. * termios/tcgetsid.c (tcgetsid): Likewise. * termios/tcsendbrk.c (tcsendbreak): Likewise. * termios/tcsetpgrp.c (tcsetpgrp): Likewise. * time/adjtime.c (__adjtime): Likewise. * time/dysize.c (dysize): Likewise. * time/ftime.c (ftime): Likewise. * time/getitimer.c (__getitimer): Likewise. * time/gettimeofday.c (__gettimeofday): Likewise. * time/gmtime.c (__gmtime_r): Likewise. (gmtime): Likewise. * time/localtime.c (__localtime_r): Likewise. (localtime): Likewise. * time/offtime.c (__offtime): Likewise. * time/settimeofday.c (__settimeofday): Likewise. * time/stime.c (stime): Likewise. * time/strftime_l.c (tm_diff): Likewise. (iso_week_days): Likewise. * time/strptime.c (strptime): Likewise. * time/time.c (time): Likewise. * time/timespec_get.c (timespec_get): Likewise. * time/tzset.c (tzset_internal): Likewise. (compute_change): Likewise. (__tz_compute): Likewise. * wcsmbs/btowc.c (__btowc): Likewise. * wcsmbs/mbrlen.c (__mbrlen): Likewise. * wcsmbs/mbsinit.c (__mbsinit): Likewise. * wcsmbs/mbsrtowcs.c (__mbsrtowcs): Likewise. * wcsmbs/wcpcpy.c (__wcpcpy): Likewise. * wcsmbs/wcpncpy.c (__wcpncpy): Likewise. * wcsmbs/wcscat.c (__wcscat): Likewise. * wcsmbs/wcschrnul.c (__wcschrnul): Likewise. * wcsmbs/wcscmp.c (WCSCMP): Likewise. * wcsmbs/wcscpy.c (WCSCPY): Likewise. * wcsmbs/wcscspn.c (wcscspn): Likewise. * wcsmbs/wcsdup.c (wcsdup): Likewise. * wcsmbs/wcslen.c (__wcslen): Likewise. * wcsmbs/wcsncat.c (WCSNCAT): Likewise. * wcsmbs/wcsncmp.c (WCSNCMP): Likewise. * wcsmbs/wcsncpy.c (__wcsncpy): Likewise. * wcsmbs/wcsnlen.c (__wcsnlen): Likewise. * wcsmbs/wcspbrk.c (wcspbrk): Likewise. * wcsmbs/wcsrchr.c (WCSRCHR): Likewise. * wcsmbs/wcsspn.c (wcsspn): Likewise. * wcsmbs/wcsstr.c (wcsstr): Likewise. * wcsmbs/wcstok.c (wcstok): Likewise. * wcsmbs/wctob.c (wctob): Likewise. * wcsmbs/wmemchr.c (__wmemchr): Likewise. * wcsmbs/wmemcmp.c (WMEMCMP): Likewise. * wcsmbs/wmemcpy.c (__wmemcpy): Likewise. * wcsmbs/wmemmove.c (__wmemmove): Likewise. * wcsmbs/wmempcpy.c (__wmempcpy): Likewise. * wcsmbs/wmemset.c (__wmemset): Likewise. * wctype/wcfuncs.c (__towlower): Likewise. (__towupper): Likewise.
2015-10-12Add dependencies on needed locales in each subdir tests (bug 18969)Andreas Schwab1-0/+30
2015-09-17Use __pthread_setcancelstate in libc.aH.J. Lu1-2/+3
This patch references __pthread_setcancelstate instead of pthread_setcancelstate in libc.a. [BZ #18970] * misc/error.c (error): Replace pthread_setcancelstate with __pthread_setcancelstate. (error_at_line): Likewise. * posix/wordexp.c (parse_comm): Likewise. * stdlib/fmtmsg.c (fmtmsg): Likewise. * nptl/forward.c (pthread_setcancelstate): Renamed to ... (__pthread_setcancelstate): This. (pthread_setcancelstate): Add an alias. * nptl/nptl-init.c (pthread_functions): Replace ptr_pthread_setcancelstate with ptr___pthread_setcancelstate. * sysdeps/nptl/pthread-functions.h (pthread_functions): Likewise. * nptl/pthreadP.h (__pthread_setcancelstate): Mark it with hidden_proto. * nptl/pthread_setcancelstate.c (__pthread_setcancelstate): Mark it with hidden_def. * sysdeps/nptl/libc-lockP.h (__pthread_setcancelstate): New. (pthread_setcancelstate): Renamed to ... (__pthread_setcancelstate): This. * sysdeps/unix/sysv/linux/fatal-prepare.h (FATAL_PREPARE): Use __libc_ptf_call with __pthread_setcancelstate.
2015-09-16Add missing va_end calls (bug 17243)Andreas Schwab3-0/+3
2015-09-08Move bits/libc-lock.h and bits/libc-lockP.h out of bits/ (bug 14912).Joseph Myers2-2/+2
It was noted in <https://sourceware.org/ml/libc-alpha/2012-09/msg00305.html> that the bits/*.h naming scheme should only be used for installed headers. This patch renames bits/libc-lock.h to plain libc-lock.h and bits/libc-lockP.h to plain libc-lockP.h to follow that convention. Note that I don't know where libc-lockP.h comes from for Hurd (the Hurd libc-lock.h includes libc-lockP.h, but the only libc-lockP.h in the glibc source tree is for NPTL) - some unmerged patch? - but I updated the #include in the Hurd libc-lock.h anyway. Tested for x86_64 (testsuite, and that installed stripped shared libraries are unchanged by the patch). [BZ #14912] * bits/libc-lock.h: Move to ... * sysdeps/generic/libc-lock.h: ...here. (_BITS_LIBC_LOCK_H): Rename macro to _LIBC_LOCK_H. * sysdeps/mach/hurd/bits/libc-lock.h: Move to ... * sysdeps/mach/hurd/libc-lock.h: ...here. (_BITS_LIBC_LOCK_H): Rename macro to _LIBC_LOCK_H. [_LIBC]: Include <libc-lockP.h> instead of <bits/libc-lockP.h>. * sysdeps/mach/bits/libc-lock.h: Move to ... * sysdeps/mach/libc-lock.h: ...here. (_BITS_LIBC_LOCK_H): Rename macro to _LIBC_LOCK_H. * sysdeps/nptl/bits/libc-lock.h: Move to ... * sysdeps/nptl/libc-lock.h: ...here. (_BITS_LIBC_LOCK_H): Rename macro to _LIBC_LOCK_H. * sysdeps/nptl/bits/libc-lockP.h: Move to ... * sysdeps/nptl/libc-lockP.h: ...here. (_BITS_LIBC_LOCKP_H): Rename macro to _LIBC_LOCKP_H. * crypt/crypt_util.c: Include <libc-lock.h> instead of <bits/libc-lock.h>. * dirent/scandir-tail.c: Likewise. * dlfcn/dlerror.c: Likewise. * elf/dl-close.c: Likewise. * elf/dl-iteratephdr.c: Likewise. * elf/dl-lookup.c: Likewise. * elf/dl-open.c: Likewise. * elf/dl-support.c: Likewise. * elf/dl-writev.h: Likewise. * elf/rtld.c: Likewise. * grp/fgetgrent.c: Likewise. * gshadow/fgetsgent.c: Likewise. * gshadow/sgetsgent.c: Likewise. * iconv/gconv_conf.c: Likewise. * iconv/gconv_db.c: Likewise. * iconv/gconv_dl.c: Likewise. * iconv/gconv_int.h: Likewise. * iconv/gconv_trans.c: Likewise. * include/link.h: Likewise. * inet/getnameinfo.c: Likewise. * inet/getnetgrent.c: Likewise. * inet/getnetgrent_r.c: Likewise. * intl/bindtextdom.c: Likewise. * intl/dcigettext.c: Likewise. * intl/finddomain.c: Likewise. * intl/gettextP.h: Likewise. * intl/loadmsgcat.c: Likewise. * intl/localealias.c: Likewise. * intl/textdomain.c: Likewise. * libidn/idn-stub.c: Likewise. * libio/libioP.h: Likewise. * locale/duplocale.c: Likewise. * locale/freelocale.c: Likewise. * locale/newlocale.c: Likewise. * locale/setlocale.c: Likewise. * login/getutent_r.c: Likewise. * login/getutid_r.c: Likewise. * login/getutline_r.c: Likewise. * login/utmp-private.h: Likewise. * login/utmpname.c: Likewise. * malloc/mtrace.c: Likewise. * misc/efgcvt.c: Likewise. * misc/error.c: Likewise. * misc/fstab.c: Likewise. * misc/getpass.c: Likewise. * misc/mntent.c: Likewise. * misc/syslog.c: Likewise. * nis/nis_call.c: Likewise. * nis/nis_callback.c: Likewise. * nis/nss-default.c: Likewise. * nis/nss_compat/compat-grp.c: Likewise. * nis/nss_compat/compat-initgroups.c: Likewise. * nis/nss_compat/compat-pwd.c: Likewise. * nis/nss_compat/compat-spwd.c: Likewise. * nis/nss_nis/nis-alias.c: Likewise. * nis/nss_nis/nis-ethers.c: Likewise. * nis/nss_nis/nis-grp.c: Likewise. * nis/nss_nis/nis-hosts.c: Likewise. * nis/nss_nis/nis-network.c: Likewise. * nis/nss_nis/nis-proto.c: Likewise. * nis/nss_nis/nis-pwd.c: Likewise. * nis/nss_nis/nis-rpc.c: Likewise. * nis/nss_nis/nis-service.c: Likewise. * nis/nss_nis/nis-spwd.c: Likewise. * nis/nss_nisplus/nisplus-alias.c: Likewise. * nis/nss_nisplus/nisplus-ethers.c: Likewise. * nis/nss_nisplus/nisplus-grp.c: Likewise. * nis/nss_nisplus/nisplus-hosts.c: Likewise. * nis/nss_nisplus/nisplus-initgroups.c: Likewise. * nis/nss_nisplus/nisplus-network.c: Likewise. * nis/nss_nisplus/nisplus-proto.c: Likewise. * nis/nss_nisplus/nisplus-pwd.c: Likewise. * nis/nss_nisplus/nisplus-rpc.c: Likewise. * nis/nss_nisplus/nisplus-service.c: Likewise. * nis/nss_nisplus/nisplus-spwd.c: Likewise. * nis/ypclnt.c: Likewise. * nptl/libc_pthread_init.c: Likewise. * nss/getXXbyYY.c: Likewise. * nss/getXXent.c: Likewise. * nss/getXXent_r.c: Likewise. * nss/nss_db/db-XXX.c: Likewise. * nss/nss_db/db-netgrp.c: Likewise. * nss/nss_db/nss_db.h: Likewise. * nss/nss_files/files-XXX.c: Likewise. * nss/nss_files/files-alias.c: Likewise. * nss/nsswitch.c: Likewise. * posix/regex_internal.h: Likewise. * posix/wordexp.c: Likewise. * pwd/fgetpwent.c: Likewise. * resolv/res_hconf.c: Likewise. * resolv/res_libc.c: Likewise. * shadow/fgetspent.c: Likewise. * shadow/lckpwdf.c: Likewise. * shadow/sgetspent.c: Likewise. * socket/opensock.c: Likewise. * stdio-common/reg-modifier.c: Likewise. * stdio-common/reg-printf.c: Likewise. * stdio-common/reg-type.c: Likewise. * stdio-common/vfprintf.c: Likewise. * stdio-common/vfscanf.c: Likewise. * stdlib/abort.c: Likewise. * stdlib/cxa_atexit.c: Likewise. * stdlib/fmtmsg.c: Likewise. * stdlib/random.c: Likewise. * stdlib/setenv.c: Likewise. * string/strsignal.c: Likewise. * sunrpc/auth_none.c: Likewise. * sunrpc/bindrsvprt.c: Likewise. * sunrpc/create_xid.c: Likewise. * sunrpc/key_call.c: Likewise. * sunrpc/rpc_thread.c: Likewise. * sysdeps/arm/backtrace.c: Likewise. * sysdeps/generic/ldsodefs.h: Likewise. * sysdeps/generic/stdio-lock.h: Likewise. * sysdeps/generic/unwind-dw2-fde.c: Likewise. * sysdeps/i386/backtrace.c: Likewise. * sysdeps/ieee754/ldbl-opt/nldbl-compat.c: Likewise. * sysdeps/m68k/backtrace.c: Likewise. * sysdeps/mach/hurd/cthreads.c: Likewise. * sysdeps/mach/hurd/dirstream.h: Likewise. * sysdeps/mach/hurd/malloc-machine.h: Likewise. * sysdeps/nptl/malloc-machine.h: Likewise. * sysdeps/nptl/stdio-lock.h: Likewise. * sysdeps/posix/dirstream.h: Likewise. * sysdeps/posix/getaddrinfo.c: Likewise. * sysdeps/posix/system.c: Likewise. * sysdeps/pthread/aio_suspend.c: Likewise. * sysdeps/s390/s390-32/backtrace.c: Likewise. * sysdeps/s390/s390-64/backtrace.c: Likewise. * sysdeps/unix/sysv/linux/check_pf.c: Likewise. * sysdeps/unix/sysv/linux/if_index.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c: Likewise. * sysdeps/unix/sysv/linux/shm-directory.c: Likewise. * sysdeps/unix/sysv/linux/system.c: Likewise. * sysdeps/x86_64/backtrace.c: Likewise. * time/alt_digit.c: Likewise. * time/era.c: Likewise. * time/tzset.c: Likewise. * wcsmbs/wcsmbsload.c: Likewise. * nptl/tst-initializers1.c (do_test): Refer to <libc-lock.h> instead of <bits/libc-lock.h> in comment.
2015-08-28Fix wordsize-32 mmap offset for negative value (BZ#18877)Adhemerval Zanella2-1/+68
This patch fixes the default wordsize-32 mmap implementation offset calculation for negative values. Current code uses signed shift operation to calculate the multiple size to use with syscall and it is implementation defined. Change it to use a division base on mmap page size (default being as before, 4096). Tested on armv7hf. [BZ #18877] * posix/Makefile (tests): Add tst-mmap-offset. * posix/tst-mmap.c: New file. * sysdeps/unix/sysv/linux/generic/wordsize-32/mmap.c (__mmap): Fix offset calculation for negative values.
2015-08-11Fix BZ #18086 -- nice resets errno to 0.Paul Pluzhnikov1-1/+10
2015-08-09fix non-portable `echo -n` usageMike Frysinger1-2/+2
These scripts use #!/bin/sh explicitly, so make sure they avoid echo -n as different shells treat it differently. Use the portable printf func instead.
2015-08-06Modify several tests to use test-skeleton.cArjun Shankar1-2/+5
These tests were skipped by the use-test-skeleton conversion done in commit 29955b5d because they did not have an `int main (void)' declaration. Instead their `main' functions were declared with arguments (i.e. argc, argv) even though they didn't use them. Remove these arguments and include the test skeleton in these tests.
2015-07-09PLT avoidance for _exit in rtld.Roland McGrath1-0/+1
2015-06-12Fix getlogin_r namespace (bug 18527).Joseph Myers1-1/+1
Various functions in XPG4 bring in references to getlogin_r, which is not in XPG4; this is also a bug for some older POSIX versions which aren't yet covered by the linknamespace tests. This patch fixes this by making getlogin_r into a weak alias for __getlogin_r and using __getlogin_r as needed. Tested for x86_64 and x86 (testsuite, and that disassembly of installed stripped shared libraries is unchanged by the patch). [BZ #18527] * login/getlogin_r.c (getlogin_r): Rename to __getlogin_r and define as weak alias of __getlogin_r. Use libc_hidden_weak. * sysdeps/mach/hurd/getlogin_r.c (getlogin_r): Likewise. * sysdeps/unix/getlogin_r.c (getlogin_r): Likewise. * sysdeps/unix/sysv/linux/getlogin_r.c (getlogin_r): Likewise. * include/unistd.h (__getlogin_r): Declare. Use libc_hidden_proto. * posix/glob.c (glob): Call __getlogin_r instead of getlogin_r. * conform/Makefile (test-xfail-XPG3/glob.h/linknamespace): Remove variable. (test-xfail-XPG3/wordexp.h/linknamespace): Likewise. (test-xfail-XPG4/glob.h/linknamespace): Likewise. (test-xfail-XPG4/wordexp.h/linknamespace): Likewise.
2015-06-12Fix aio_* pread namespace (bug 18519).Joseph Myers1-1/+1
aio_* bring in references to pread, which isn't in all the standards containing aio_* (as a reference from one library to another, this is a bug for dynamic as well as static linking). This patch fixes this by using __libc_pread instead, exporting that function from libc at symbol version GLIBC_PRIVATE; the code, with conditionals that may call either __pread64 or __libc_pread, becomes exactly analogous to that elsewhere in the same file that may call either __pwrite64 or __libc_pwrite. Tested for x86_64 and x86 (testsuite, and comparison of disassembly of installed shared libraries). libc changes because of the PLT entry for the newly exported __libc_pread; librt changes because of assertion line numbers and PLT rearrangement; other stripped installed shared libraries do not change. [BZ #18519] * posix/Versions (libc): Export __libc_pread at version GLIBC_PRIVATE. * sysdeps/pthread/aio_misc.c (handle_fildes_io): Call __libc_pread instead of pread. * conform/Makefile (test-xfail-POSIX/aio.h/linknamespace): Remove variable.
2015-06-09Fix regcomp wcscoll, wcscmp namespace (bug 18497).Joseph Myers2-5/+5
regcomp brings in references to wcscoll, which isn't in all the standards that contain regcomp. In turn, wcscoll brings in references to wcscmp, also not in all those standards. This patch fixes this by making those functions into weak aliases of __wcscoll and __wcscmp and calling those names instead as needed. Tested for x86_64 and x86 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). [BZ #18497] * wcsmbs/wcscmp.c [!WCSCMP] (WCSCMP): Define as __wcscmp instead of wcscmp. (wcscmp): Define as weak alias of WCSCMP. * wcsmbs/wcscoll.c (STRCOLL): Define as __wcscoll instead of wcscoll. (USE_HIDDEN_DEF): Define. [!USE_IN_EXTENDED_LOCALE_MODEL] (wcscoll): Define as weak alias of __wcscoll. Don't use libc_hidden_weak. * wcsmbs/wcscoll_l.c (STRCMP): Define as __wcscmp instead of wcscmp. * sysdeps/i386/i686/multiarch/wcscmp-c.c [SHARED] (libc_hidden_def): Define __GI___wcscmp instead of __GI_wcscmp. (weak_alias): Undefine and redefine. * sysdeps/i386/i686/multiarch/wcscmp.S (wcscmp): Rename to __wcscmp and define as weak alias of __wcscmp. * sysdeps/x86_64/wcscmp.S (wcscmp): Likewise. * include/wchar.h (__wcscmp): Declare. Use libc_hidden_proto. (__wcscoll): Likewise. (wcscmp): Don't use libc_hidden_proto. (wcscoll): Likewise. * posix/regcomp.c (build_range_exp): Call __wcscoll instead of wcscoll. * posix/regexec.c (check_node_accept_bytes): Likewise. * conform/Makefile (test-xfail-XPG3/regex.h/linknamespace): Remove variable. (test-xfail-XPG4/regex.h/linknamespace): Likewise. (test-xfail-POSIX/regex.h/linknamespace): Likewise.
2015-06-05Fix open_memstream namespace (bug 18498).Joseph Myers1-1/+1
open_memstream is new in the 2008 edition of POSIX. However, the older functions getopt, closelog and fmtmsg all bring in references to it. This patch fixes this in the usual way, making open_memstream into a weak alias of __open_memstream and calling __open_memstream from the relevant places. Tested for x86_64 and x86 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). 32-bit builds produce an XPASS for conform/POSIX/unistd.h/linknamespace after this patch (because the only cause of failure left there now is 64-bit specific); that will disappear once the 64-bit failure is resolved and the XFAIL removed at that time. [BZ #18498] * libio/memstream.c (open_memstream): Rename to __open_memstream and define as weak alias of __open_memstream. * include/stdio.h (__open_memstream): Declare. Use libc_hidden_proto. (open_memstream): Don't use libc_hidden_proto. * misc/syslog.c (__vsyslog_chk): Call __open_memstream instead of open_memstream. * posix/getopt.c (_getopt_internal_r): Likewise. * conform/Makefile (test-xfail-XPG3/stdio.h/linknamespace): Remove variable. (test-xfail-XPG4/stdio.h/linknamespace): Likewise. (test-xfail-UNIX98/stdio.h/linknamespace): Likewise. (test-xfail-XOPEN2K/unistd.h/linknamespace): Likewise.
2015-06-05Fix regex wcrtomb namespace (bug 18496).Joseph Myers1-2/+2
The regex code brings in references to wcrtomb, which isn't in all the standards that contain regex. This patch makes it call __wcrtomb instead (in fact some places already called __wcrtomb, so this patch makes it internally consistent about which name is used). Tested for x86_64 and x86 that installed stripped shared libraries are unchanged by the patch. [BZ #18496] * posix/regex_internal.c (build_wcs_upper_buffer): Call __wcrtomb instead of wcrtomb.
2015-06-05Fix regex wctype namespace (bug 18495).Joseph Myers3-7/+7
regcomp brings in references to various wctype functions that aren't in all the standards including regcomp. This patch fixes this in the usual way by using the __* versions of these functions (which already exist, but some didn't have libc_hidden_proto / libc_hidden_def before). Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). (Other wide character function references from the regex code mean that this patch by itself doesn't fix any XFAILed linknamespace test failures; further patches will be needed for that.) [BZ #18495] * wctype/wcfuncs.c (__iswalnum): Use libc_hidden_def. (__iswlower): Likewise. * include/wctype.h (__iswalnum): Declare. Use libc_hidden_proto. (__iswlower): Likewise. * posix/regcomp.c (re_compile_fastmap_iter): Call __towlower instead of towlower. * posix/regex_internal.c (build_wcs_upper_buffer): Call __iswlower instead of iswlower. Call __towupper instead of towupper. * posix/regex_internal.h (IS_WIDE_WORD_CHAR): Call __iswalnum instead of iswalnum.
2015-06-03Fix fnmatch strnlen namespace (bug 18470).Joseph Myers1-2/+2
fnmatch brings in references to strnlen, which isn't in all the standards that contain fnmatch (not added until the 2008 edition of POSIX), resulting in linknamespace test failures. (This is contrary to glibc conventions, rather than a standards conformance issue, because of the str* reservation.) This patch fixes this in the usual way, using __strnlen instead of strnlen. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). [BZ #18470] * posix/fnmatch.c (fnmatch) [_LIBC]: Call __strnlen instead of strnlen. * conform/Makefile (test-xfail-XPG3/fnmatch.h/linknamespace): Remove variable. (test-xfail-XPG4/fnmatch.h/linknamespace): Likewise. (test-xfail-POSIX/fnmatch.h/linknamespace): Likewise. (test-xfail-POSIX/glob.h/linknamespace): Likewise. (test-xfail-POSIX/wordexp.h/linknamespace): Likewise. (test-xfail-UNIX98/fnmatch.h/linknamespace): Likewise. (test-xfail-UNIX98/glob.h/linknamespace): Likewise. (test-xfail-UNIX98/wordexp.h/linknamespace): Likewise. (test-xfail-XOPEN2K/fnmatch.h/linknamespace): Likewise. (test-xfail-XOPEN2K/glob.h/linknamespace): Likewise. (test-xfail-XOPEN2K/wordexp.h/linknamespace): Likewise.
2015-06-03Fix fnmatch wmemchr namespace (bug 18468).Joseph Myers1-1/+1
fnmatch brings in references to wmemchr, which isn't in all the standards that contain fnmatch, resulting in linknamespace test failures. This patch fixes this in the usual way, making wmemchr into a weak alias for __wmemchr. Tested for x86_64 and x86 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). [BZ #18468] * wcsmbs/wmemchr.c (wmemchr): Rename to __wmemchr and define as weak alias of __wmemchr. Use libc_hidden_weak. * include/wchar.h (__wmemchr): Declare. Use libc_hidden_proto. * posix/fnmatch.c [HANDLE_MULTIBYTE] (MEMCHR): Use __wmemchr instead of wmemchr.
2015-06-02Fix fnmatch towlower namespace (bug 18469).Joseph Myers1-1/+1
fnmatch brings in references to towlower (and thereby towupper), which isn't in all the standards that contain fnmatch, resulting in linknamespace test failures. (This is contrary to glibc conventions, rather than a standards conformance issue, because of the to* reservation.) This patch fixes this in the usual way, making those functions into weak aliases. Tested for x86_64 and x86 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). This is on top of <https://sourceware.org/ml/libc-alpha/2015-06/msg00019.html>, but the two patches should be independent. (The __attribute_pure__ on the declarations in include/wctype.h comes from GCC's built-in attributes for towlower and towupper, and is needed to get the same code generation for fnmatch before and after the patch. It seems likely there are cases where the declaration of __foo in the internal headers is missing attributes from foo in the public headers, built-in to GCC or both, but I don't know a good way to detect such missing attributes.) [BZ #18469] * wctype/wcfuncs.c (towlower): Rename to __towlower and define as weak alias of __towlower. Use libc_hidden_weak. (towupper): Rename to __towupper and define as weak alias of __towupper. Use libc_hidden_weak. * include/wctype.h (__towlower): Declare. Use libc_hidden_proto. (__towupper): Likewise. * posix/fnmatch.c [HANDLE_MULTIBYTE && _LIBC] (FOLD): Use __towlower instead of towlower.
2015-05-22Restore _POSIX2_C_VERSION definition (bug 438).Joseph Myers1-0/+3
My review of conformtest expectations for POSIX showed up that the _POSIX2_C_VERSION macro, required by POSIX and XPG standards before 2001, was missing in unistd.h, having been removed on 2003-04-03 despite those standards still being supported. This patch adds it back. As it's in the implementation namespace, there's no need for it to be conditional, and other such macros aren't conditional in this header either. Tested for x86_64 and x86 (testsuite). Note that this *does* change the installed libraries, because it affects the sysconf support (present all along) for _SC_2_C_VERSION. [BZ #438] * posix/unistd.h (_POSIX2_C_VERSION): New macro. * conform/Makefile (test-xfail-POSIX/unistd.h/conform): Remove variable.
2015-05-12NaCl: Provide non-default values for uname.Roland McGrath2-3/+32
2015-03-23Avoid SIGFPE in wordexp [BZ #18100]Florian Weimer2-0/+44
Check for a zero divisor and integer overflow before performing division in arithmetic expansion.
2015-03-11Fix BZ #18043 comment # 19: don't call undefined setenv(..., NULL, 1).Paul Pluzhnikov1-1/+1
2015-03-10Harmonize posix/regcomp.c with gnulib: comment formattingRoland McGrath1-32/+32
2015-03-09Minor refactoring:Paul Pluzhnikov1-3/+7
* posix/wordexp.c (CHAR_IN_SET): New macro. (parse_param): Use it.
2015-03-09Fix BZ #18043 (c4): buffer-overflow (read past the end) in ↵Paul Pluzhnikov2-3/+5
wordexp/parse_dollars/parse_param
2015-03-08Fix off-by-one which caused BZ #18042 and add a test for it.Paul Pluzhnikov2-2/+2
2015-03-08Refactor wordexp-test.c such that words always ends at the edge ofPaul Pluzhnikov1-31/+36
unreadable page. This makes it easy to catch overflows, such as BZ #18043 (and BZ #18042).
2015-03-06Fix BZ #18043: buffer-overflow (read past the end) in ↵Paul Pluzhnikov2-1/+32
wordexp/parse_dollars/parse_param
2015-03-02Fix BZ 18036 buffer overflow (read past end of buffer) in internal_fnmatchPaul Pluzhnikov2-2/+27
2015-02-26Fix read past end of pattern in fnmatch (bug 18032)Andreas Schwab2-6/+7
2015-02-06Move tst-getlogin to login/ subdirectory.Roland McGrath2-61/+1
2015-01-07posix/regcomp: initialize union structure tag to avoid warningChris Metcalf1-0/+2
We see some surprising warnings on tilegx with gcc 4.8.2: In file included from regex.c:66:0: regcomp.c: In function ‘parse_expression’: regcomp.c:2849:15: error: ‘end_elem’ may be used uninitialized in this function [-Werror=maybe-uninitialized] else if (br_elem->type == COLL_SYM) ^ regcomp.c:3109:34: note: ‘end_elem’ was declared here bracket_elem_t start_elem, end_elem; ^ regcomp.c:3109:22: error: ‘start_elem’ may be used uninitialized in this function [-Werror=maybe-uninitialized] bracket_elem_t start_elem, end_elem; ^ These warnings are not seen on x86, and in fact if I compile the preprocessed tile sources with the x86 gcc 4.8.2, I don't see the warnings. I do see eqiuvalent warnings if I compile the x86-preprocessed source code with tilegx gcc 4.8.2. The fix here is to initialize the union type field appropriately in a couple of places where we pass a union pointer to a subroutine that "knows" what type the union is. Setting the type explicitly seems like a more robust way to manage such a data structure in any case.
2015-01-02Update copyright dates not handled by scripts/update-copyrights.Joseph Myers1-1/+1
I've updated copyright dates in glibc for 2015. This is the patch for the changes not generated by scripts/update-copyrights and subsequent build / regeneration of generated files. Apart from the files updated last time (of which sotruss.ksh had moved to sotruss.sh during the year) this also updates nptl/version.c (missed from 2006 until October) and sysdeps/unix/sysv/linux/lddlibc4.c (missed since 2009). * NEWS: Update copyright dates. * catgets/gencat.c (print_version): Likewise. * csu/version.c (banner): Likewise. * debug/catchsegv.sh: Likewise. * debug/pcprofiledump.c (print_version): Likewise. * debug/xtrace.sh (do_version): Likewise. * elf/ldconfig.c (print_version): Likewise. * elf/ldd.bash.in: Likewise. * elf/pldd.c (print_version): Likewise. * elf/sotruss.sh: Likewise. * elf/sprof.c (print_version): Likewise. * iconv/iconv_prog.c (print_version): Likewise. * iconv/iconvconfig.c (print_version): Likewise. * locale/programs/locale.c (print_version): Likewise. * locale/programs/localedef.c (print_version): Likewise. * login/programs/pt_chown.c (print_version): Likewise. * malloc/memusage.sh (do_version): Likewise. * malloc/memusagestat.c (print_version): Likewise. * malloc/mtrace.pl: Likewise. * manual/libc.texinfo: Likewise. * nptl/version.c (banner): Likewise. * nscd/nscd.c (print_version): Likewise. * nss/getent.c (print_version): Likewise. * nss/makedb.c (print_version): Likewise. * posix/getconf.c (main): Likewise. * scripts/test-installation.pl: Likewise. * sysdeps/unix/sysv/linux/lddlibc4.c (main): Likewise.
2015-01-02Update copyright dates with scripts/update-copyrights.Joseph Myers192-192/+192