about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* Add more headers to include/ for conform tests.Joseph Myers2014-12-113-0/+5
| | | | | | | | | | | | | | | | | | | | | | | Carlos reported failures in conform/ tests in environments where the compiler used could only find headers in glibc's source and build trees, not any previously installed headers <https://sourceware.org/ml/libc-alpha/2014-09/msg00040.html>. This patch adds wrappers for two of the affected headers to include/, which is the normal way to make headers visible when building or testing in directories other than the one containing the header (I suppose these headers weren't needed in any such directories except conform/, or other build or test failures would have resulted). I believe the same issue applies at least to regexp.h and re_comp.h - we don't currently have conform/ expectations for those, but when such expectations are added we'll also need to add header wrappers. Tested for x86_64 (testsuite, and that installed stripped shared libraries are unchanged by the patch). I did *not* test a configuration such as that in which Carlos saw failure. * include/cpio.h: New file. * include/fmtmsg.h: Likewise.
* Clean up localedata tests printf formats, don't use -Wno-format.Joseph Myers2014-12-118-22/+35
|
* Fix -Wformat-security warnings in posix/regexbug1.cRoland McGrath2014-12-112-2/+7
|
* tile: add inhibit_loop_to_libcall to string functionsChris Metcalf2014-12-114-3/+10
| | | | | | Without this, on gcc 4.8.2 the built glibc crashes when memcpy or memset are invoked, since they call themselves recursively. See commit 85c2e6110c9a01ec for the generic inhibit_loop_to_libcall.
* Fix __sendmmsg prototype guardsAdhemerval Zanella2014-12-112-0/+7
| | | | Add __USE_GNU guards on 'socket/sys/socket.h' __sendmmsg prototype.
* * sysdeps/mips/dl-trampoline.c: Modify switch expression to haveSteve Ellcey2014-12-112-1/+6
| | | | integer value instead of boolean.
* 2014-12-11 Steve Ellcey <sellcey@imgtec.com>Steve Ellcey2014-12-112-1/+5
| | | | * malloc/malloc.c: Fix powerof2 check.
* Get rid of warning inlining failed in call to maybe_swap_uint32Stefan Liebler2014-12-112-1/+7
|
* S/390: Get rid of assembler warning value truncated.Stefan Liebler2014-12-112-1/+6
|
* Constify string parametersAndreas Schwab2014-12-112-2/+7
|
* powerpc: Fix lgammal_r overflow warningsAdhemerval Zanella2014-12-112-1/+14
| | | | | | | ldbl-128ibm uses ldbl-128 e_lgammal_r implementation as is, however some constants definitions overflows for IBM long double range. This patch suppress the compiler warnings until the ldbl-128ibm implementation is fixed.
* Remove obsolete commentAndreas Schwab2014-12-111-3/+0
|
* Properly handle forced elision in pthread_mutex_trylock (bug 16657)Andreas Schwab2014-12-115-20/+17
|
* Remove duplication from gconv-modulesAndreas Schwab2014-12-112-7/+4
|
* intl: Merge with gettext version 0.19.3Will Newton2014-12-1126-1129/+1442
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch merges the latest release of gettext into the intl subdirectory. The initial motivation was to include the plural.y changes which enable building with bison 3.0, but the majority of the other changes are merely cosmetic so it seemed like merging the whole directory was simpler than trying to take it piecemeal. The merge was done by copying across the latext gettext code and adding in a few small glibc changes that have been added over the years that seemed beneficial, as well as a couple of small build fixes that should be merged back to gettext. I also reverted the gettext commit: commit 279b57fc367251666f00e8e2b599b83703451afb Author: Bruno Haible <bruno@clisp.org> Date: Fri Jun 14 12:03:49 2002 +0000 Make absolute pathnames inside $LANGUAGE work. As it caused localedata/tst-setlocale3 to fail and it wasn't clear that glibc wanted that behaviour. The merge has dropped many uses of __glibc_likely/unlikely. This is intentional given that it eases merging. It seems to me that the cost of continually rewriting these lines when merging and the risk of adding bugs when doing so outweighs the benefits of using these macros when code is shared with another project. Tested with make check on x86_64. ChangeLog: 2014-12-11 Will Newton <will.newton@linaro.org> Merge gettext 0.19.3 into intl/. This involves a number of cosmetic changes to comments and ANSI function definitions and prototypes throughout all the files. The gettext copyright header is used but with the date ranges taken from the glibc copy. * NEWS: Add gettext merge to 2.21. * intl/bindtextdom.c: Switch to gettext copyright. Use ANSI definitions and prototypes. Use gl_* locking primitives rather than __libc_* ones. Use __builtin_expect rather than __glibc_likely/unlikely. * intl/dcgettext.c: Switch to gettext copyright. Use ANSI definitions and prototypes. * intl/dcigettext.c: Switch to gettext copyright. Use ANSI definitions and prototypes. (INTDIV0_RAISES_SIGFPE): New define. Use gl_* locking primitives rather than __libc_* ones. Include eval-plural.h instead of plural-eval.c. Use __builtin_expect rather than __glibc_likely/unlikely. * intl/dcngettext.c: Switch to gettext copyright. Use ANSI definitions and prototypes. * intl/dgettext.c: Likewise. * intl/dngettext.c: Likewise. * intl/plural-eval.c: Renamed to... * intl/eval-plural.h: ...this. * intl/explodename.c: Switch to gettext copyright. Use ANSI definitions and prototypes. (_nl_explode_name): Use strchr instead of __rawmemchr. * intl/finddomain.c: Switch to gettext copyright. Use ANSI definitions and prototypes. Use gl_* locking primitives rather than __libc_* ones. (_nl_find_domain): Use malloc rather than alloca for allocation of temporary locale name. * intl/gettext.c: Switch to gettext copyright. Use ANSI definitions and prototypes. * intl/gettextP.h: Switch to gettext copyright. Use ANSI definitions and prototypes. Use gl_* locking primitives rather than __libc_* ones. * intl/gmo.h: Switch to gettext copyright. (struct sysdep_string): Move struct segment_pair outside of struct definition. * intl/hash-string.c: Use ANSI definitions and prototypes. * intl/hash-string.h: Switch to gettext copyright. Use ANSI definitions and prototypes. * intl/l10nflist.c: Switch to gettext copyright. Use ANSI definitions and prototypes. (_nl_normalize_codeset): Avoid integer overflow. * intl/loadinfo.h: Switch to gettext copyright. Use ANSI definitions and prototypes. (LIBINTL_DLL_EXPORTED): New define. (PATH_SEPARATOR): New define. * intl/loadmsgcat.c: Switch to gettext copyright. * intl/localealias.c: Switch to gettext copyright. Use ANSI definitions and prototypes. (_nl_expand_alias): Use PATH_SEPARATOR. * intl/ngettext.c: Switch to gettext copyright. Use ANSI definitions and prototypes. * intl/plural-exp.c: Likewise. * intl/plural-exp.h: Switch to gettext copyright. Use ANSI definitions and prototypes. (struct expression): Move definition of enum operator outside of struct definition. * intl/plural.c: Regenerate. * intl/plural.y: Switch to gettext copyright. Use ANSI definitions and prototypes. Port to bison 3.0. * intl/textdomain.c: Switch to gettext copyright. Use ANSI definitions and prototypes. Use gl_* locking primitives rather than __libc_* ones.
* 2014-12-10 Steve Ellcey <sellcey@imgtec.com>Steve Ellcey2014-12-102-0/+5
| | | | * debug/warning-nop.c: Add used atrribute.
* Fix MIPS waitid build.Joseph Myers2014-12-102-0/+9
| | | | | | | | | | | | | | | As previously discussed in <https://sourceware.org/ml/libc-alpha/2012-11/msg00798.html>, MIPS (o32) waitid has build warnings (now errors) because a function is declared inline but functions with five-argument syscalls cannot be inlined for MIPS o32. This patch disables the -Winline warnings for waitid.c using a MIPS-specific wrapper file. As it's whole-file disabling, there's no point in using push and pop, so just DIAG_IGNORE_NEEDS_COMMENT is used. * sysdeps/unix/sysv/linux/mips/mips32/waitid.c: New file.
* Fix MIPS sigaction build.Joseph Myers2014-12-102-0/+18
| | | | | | | | | | | | Building MIPS sigaction (for ABIs other than o32) fails because of "'restore_rt' used but never defined", arising from static functions being defined in asms and referred to from C code. There is no corresponding -W option for that warning, so this patch uses -Wno-error for building sigaction.c. * sysdeps/unix/sysv/linux/mips/mips64/Makefile [$(subdir) == signal] (CFLAGS-sigaction.c): New variable. [$(subdir) == nptl] (CFLAGS-sigaction.c): Likewise.
* Fix typo in changelog.Ondřej Bílka2014-12-101-1/+1
|
* Fix strftime wcschr namespace (bug 17634).Joseph Myers2014-12-1014-23/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use of strftime, a C90 function, ends up bringing in wcschr, which is not a C90 function. Although not a conformance bug (C90 reserves wcs*), this is still contrary to glibc practice of avoiding relying on those reservations; this patch arranges for the internal uses to use __wcschr instead, with wcschr being a weak alias. This is more complicated than some such patches because of the various IFUNC definitions of wcschr (which include code redefining libc_hidden_def in a way that involves creating __GI_wcschr manually and so also needs to create __GI___wcschr after the change of internal uses to use __wcschr). Tested for x86_64 and 32-bit x86 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). 2014-12-10 Joseph Myers <joseph@codesourcery.com> Adhemerval Zanella <azanella@linux.vnet.ibm.com> [BZ #17634] * wcsmbs/wcschr.c [!WCSCHR] (wcschr): Define as __wcschr. Undefine after defining function. Define as weak alias of __wcschr. Use libc_hidden_weak. * include/wchar.h (__wcschr): Declare. Use libc_hidden_proto. * sysdeps/i386/i686/multiarch/wcschr-c.c [IS_IN (libc) && SHARED] (libc_hidden_def): Also define __GI___wcschr alias. * sysdeps/i386/i686/multiarch/wcschr.S (wcschr): Rename to __wcschr and define as weak alias of __wcschr. * sysdeps/powerpc/power6/wcschr.c [!WCSCHR] (WCSCHR): Define as __wcschr. [!WCSCHR] (DEFAULT_WCSCHR): Define. [DEFAULT_WCSCHR] (__wcschr): Use libc_hidden_def. [DEFAULT_WCSCHR] (wcschr): Define as weak alias of __wcschr. Use libc_hidden_weak. Do not use libc_hidden_def. * sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-ppc32.c [IS_IN (libc) && SHARED] (libc_hidden_def): Also define __GI___wcschr alias. * sysdeps/powerpc/powerpc32/power4/multiarch/wcschr.c [IS_IN (libc)] (wcschr): Define as macro expanding to __redirect_wcschr. [IS_IN (libc)] (__wcschr_ppc): Use __redirect_wcschr in typeof. [IS_IN (libc)] (__wcschr_power6): Likewise. [IS_IN (libc)] (__wcschr_power7): Likewise. [IS_IN (libc)] (__libc_wcschr): New. Define with libc_ifunc instead of wcschr. [IS_IN (libc)] (wcschr): Undefine and define as weak alias of __libc_wcschr. [!IS_IN (libc)] (libc_hidden_def): Do not undefine and redefine. * sysdeps/powerpc/powerpc64/multiarch/wcschr.c (wcschr): Rename to __wcschr and define as weak alias of __wcschr. Use libc_hidden_builtin_def. * sysdeps/x86_64/wcschr.S (wcschr): Rename to __wcschr and define as weak alias of __wcschr. Use libc_hidden_weak. * time/alt_digit.c (_nl_get_walt_digit): Use __wcschr instead of wcschr. * time/era.c (_nl_init_era_entries): Likewise. * conform/Makefile (test-xfail-ISO/time.h/linknamespace): Remove variable. (test-xfail-XPG3/time.h/linknamespace): Likewise. (test-xfail-XPG4/time.h/linknamespace): Likewise.
* Fix tst-ftell-active-handler.c warning.Joseph Myers2014-12-102-1/+6
| | | | | | | | | | | | A recent change to libio/tst-ftell-active-handler.c (postdating my last check for warnings on x86) introduced a format warning from a long int variable used with a %zu format. This patch fixes it by using %ld for the format to match the variable. Tested for x86. * libio/tst-ftell-active-handler.c (do_ftruncate_test): Use %ld format for long int variable.
* manual: Remove incorrect claim that qsort() can be stabilizedAnders Kaseorg2014-12-103-11/+16
| | | | | | | | | | | | Under certain conditions on the size of the array and its items, qsort() may fall back to an in-place quicksort if it cannot allocate memory for a temporary array with malloc(). This algorithm is not a stable sort even if the comparison function is written in the described manner. Fixes #10672. Signed-off-by: Anders Kaseorg <andersk@mit.edu>
* Update NEWSAndreas Schwab2014-12-101-6/+6
|
* Don't touch user-controlled stdio locks in forked child (bug 12847)Andreas Schwab2014-12-102-1/+8
| | | | | The stdio locks for streams with the _IO_USER_LOCK flag should not be touched by internal code.
* [AArch64] Fix strchrnul clobbering v15Richard Earnshaw2014-12-102-1/+6
|
* Use -Werror by default, add --disable-werror.Joseph Myers2014-12-109-14/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As discussed starting at <https://sourceware.org/ml/libc-alpha/2014-11/msg00323.html>, this patch makes the glibc build use -Werror by default to avoid accidentally adding new warnings to the build. The configure option --disable-werror can be used to disable this. -Wno-error=undef is temporarily used because the build isn't clean regarding -Wundef warnings. The idea is that once the remaining -Wundef warnings have been cleaned up (in at least one configuration), -Wno-error=undef will be removed. I get a clean build and test on x86_64 (GCC 4.9 branch) with this patch. The expectation is that this may well break the build for some other configurations, and people seeing such breakage should make appropriate fixes to fix or suppress the warnings for their configurations. In some cases that may involve using pragmas as the right fix (I think that will be right for the -Wno-inline issue for MIPS I referred to in <https://sourceware.org/ml/libc-alpha/2012-11/msg00798.html>, for example), in some cases -Wno-error in sysdeps makefiles (__restore_rt in MIPS sigaction, for example), in some cases substantive fixes for the warnings. Note that if, with a view to listing all the warnings then fixing them all, you just look for "warning:" in output from building and testing with --disable-werror, you'll see lots of warnings from the linker about functions such as tmpnam. Those warnings can be ignored - only compiler warnings are relevant to -Werror, not linker warnings. * configure.ac (--disable-werror): New configure option. (enable_werror): New AC_SUBST. * configure: Regenerated. * config.make.in (enable-werror): New variable. * Makeconfig [$(enable-werror) = yes] (+gccwarn): Add -Werror -Wno-error=undef. (+gccwarn-c): Do not use -Werror=implicit-function-declaration. * manual/install.texi (Configuring and compiling): Document --disable-werror. * INSTALL: Regenerated. * debug/Makefile (CFLAGS-tst-chk1.c): Add -Wno-error. (CFLAGS-tst-chk2.c): Likewise. (CFLAGS-tst-chk3.c): Likewise. (CFLAGS-tst-chk4.cc): Likewise. (CFLAGS-tst-chk5.cc): Likewise. (CFLAGS-tst-chk6.cc): Likewise. (CFLAGS-tst-lfschk1.c): Likewise. (CFLAGS-tst-lfschk2.c): Likewise. (CFLAGS-tst-lfschk3.c): Likewise. (CFLAGS-tst-lfschk4.cc): Likewise. (CFLAGS-tst-lfschk5.cc): Likewise. (CFLAGS-tst-lfschk6.cc): Likewise.
* Disable -Wdeprecated-declarations for register_printf_function calls in ↵Joseph Myers2014-12-102-0/+11
| | | | | | | | | | | | | | | | | | | | tst-printfsz.c. This patch uses diagnostic control pragmas to disable warnings in stdio-common/tst-printfsz.c for use of the deprecated register_printf_function. Because this test is testing printf_size and printf_size_info, and the latter has the interface expected for register_printf_function instead of the newer register_printf_specifier, it seems correct for this test to use the deprecated interface (wrapping printf_size_info in some way to use register_printf_specifier would seem an excessive change to what's tested). Tested for x86_64. * stdio-common/tst-printfsz.c: Include <libc-internal.h>. (main): Disable -Wdeprecated-declarations around calls to register_printf_function.
* Disable -Wdiv-by-zero for some tests in stdio-common/tst-unlockedio.c.Joseph Myers2014-12-102-0/+17
| | | | | | | | | | | | | | | | This patch uses diagnostic control pragmas to disable some division-by-zero warnings in stdio-common/tst-unlockedio.c. This is another test where disabling warnings using diagnostic pragmas seems appropriate (the warnings are not wildly inappropriate for what the test deliberately does; the deliberate use of unusual arguments to the macros being tested means that changing the arguments in a way that avoids the warning would also unduly perturb what is being tested). Tested for x86_64. * stdio-common/tst-unlockedio.c: Include <libc-internal.h>. (do_test): Disable -Wdiv-by-zero around some calls to fwrite_unlocked and fread_unlocked.
* Add macros for diagnostic control, use for scanf %a tests.Joseph Myers2014-12-104-0/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In <https://sourceware.org/ml/libc-alpha/2014-11/msg00326.html>, Roland requested internal macros for use of "#pragma GCC diagnostic". This patch adds such macros and uses them to disable -Wformat warnings for some code testing GNU scanf %as where GCC expects C99 scanf %a (several other stdio tests currently use -Wno-format to disable warnings). Limitations in GCC's diagnostic pragmas require separate macros before and after the code generating the warnings, rather than a single macro taking that code as an argument. The macros are named DIAG_*_NEEDS_COMMENT to emphasise to reviewers the need for a comment accompanying any use of them (such comments may however just appear once for several uses of the macros for the same issue in the same file). I put a GCC version in the arguments to DIAG_IGNORE_NEEDS_COMMENT, as that seems something useful to grep for when obsoleting support for an old GCC version and needing to decide if warning-disabling code is still relevant. These macros should be usable for replacing existing -Wno-* use in makefiles (as also suggested by Roland), though I have no plans to work on that (only on use of the macros in cases where warnings are currently present that need disabling to use -Werror). Tested for x86_64. * include/libc-internal.h (DIAG_PUSH_NEEDS_COMMENT): New macro. (DIAG_POP_NEEDS_COMMENT): Likewise. (_DIAG_STR1): Likewise. (_DIAG_STR): Likewise. (DIAG_IGNORE_NEEDS_COMMENT): Likewise. * stdio-common/bug21.c: Include <libc-internal.h>. (do_test): Disable -Wformat around call to sscanf. * stdio-common/scanf14.c: Include <libc-internal.h>. (main): Disable -Wformat around some calls to scanf functions.
* Remove custom pthread_once implementation on sh.Torvald Riegel2014-12-092-257/+4
|
* libio: Fix variable aligment in tst-ftell-active-handlerAdhemerval Zanella2014-12-082-4/+6
| | | | | This patch fixes a stack allocated variable to force it to have wchar_t alignment.
* Fix pthreads getrlimit, gettimeofday namespace (bug 17682).Joseph Myers2014-12-0612-9/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some pthreads functions use getrlimit and gettimeofday, but these functions are XSI, not base POSIX; this is a namespace issue for dynamic linking as well as static linking. This patch makes them use __getrlimit and __gettimeofday instead - the former needed to be newly exported from libc.so at GLIBC_PRIVATE (and so now needs libc_hidden_proto / libc_hidden_def), the latter was already exported. Tested for x86_64 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). [BZ #17682] * resource/Versions (libc): Add __getrlimit at GLIBC_PRIVATE. * resource/getrlimit.c (__getrlimit): Use libc_hidden_def. * sysdeps/mach/hurd/getrlimit.c (__getrlimit): Likewise. * include/sys/resource.h (__getrlimit): Use libc_hidden_proto. * nptl/nptl-init.c (__pthread_initialize_minimal_internal): Use __getrlimit instead of getrlimit. * nptl/pthread_cond_timedwait.c (__pthread_cond_timedwait): Use __gettimeofday instead of gettimeofday. * nptl/pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock): Likewise. * nptl/pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock): Likewise. * sysdeps/pthread/aio_misc.c (handle_fildes_io): Likewise. * conform/Makefile (test-xfail-POSIX2008/aio.h/linknamespace): Remove variable. (test-xfail-POSIX2008/pthread.h/linknamespace): Likewise. (test-xfail-POSIX2008/time.h/linknamespace): Likewise.
* libio: Fix buffer overrun in tst-ftell-active-handlerAdhemerval Zanella2014-12-052-2/+10
| | | | | | | | | | | | | | | | | On 'do_ftell_test' the code: 365 if (test_modes[i].fd_mode != O_WRONLY) 366 { 367 char tmpbuf[data_len]; 368 369 rewind (fp); 370 371 while (fgets_func (tmpbuf, sizeof (tmpbuf), fp) && !feof (fp)); The 'data_len' is calculated with wsclen and allocated as 'char'. The subsequent fgetws will then try to write at most 'data_len' wchar_t in a buffer with just data_len 'char'. This patch fixes it by allocating the tmpbuf using 'wchar_t' * data_len bytes.
* De-warning a few stubs.Roland McGrath2014-12-045-29/+48
|
* Fix linknamespace h_errno handling.Joseph Myers2014-12-043-5/+12
| | | | | | | | | | | | | | | | | | | | Some linknamespace tests were failing because of references to h_errno. References to this symbol should be allowed for XPG4, UNIX98 and XOPEN2K; this patch adds it to the list of allowed data symbols for those standards. (h_errno was removed in the 2008 edition of POSIX, so POSIX2008 and XOPEN2K8 references to it are genuine bugs; fortunately it's not a public data symbol - __h_errno_location is public, TLS h_errno is GLIBC_PRIVATE - so the symbol can simply be renamed to __h_errno to fix those bugs without the ABI complications normally associated with namespace issues for data symbols.) Tested for x86_64. * conform/list-header-symbols.pl (%extra_syms): Add h_errno for XPG4, UNIX98 and XOPEN2K. * conform/Makefile (test-xfail-XOPEN2K/grp.h/linknamespace): Remove variable. (test-xfail-XOPEN2K/pwd.h/linknamespace): Likewise.
* Fix another typo in the ChangeLogSiddhesh Poyarekar2014-12-041-1/+1
|
* Fix date in ChangeLogSiddhesh Poyarekar2014-12-041-1/+1
|
* Fix up function definition styleSiddhesh Poyarekar2014-12-044-121/+40
| | | | Don't use K&R style for function definitions.
* Reset cached offset when reading to end of stream (BZ #17653)Siddhesh Poyarekar2014-12-045-11/+68
| | | | | | POSIX allows applications to switch file handles when a read results in an end of file. Unset the cached offset at this point so that it is queried again.
* tst-ftell-active-handler: Open file with O_TRUNC for w modesSiddhesh Poyarekar2014-12-042-8/+14
| | | | | | The test case fails to truncate the file when a file is intended to be opened in w or w+ mode. Add O_TRUNC to fix this. The test still succeeds with this change.
* ftell: seek to end only when there are unflushed bytes (BZ #17647)Siddhesh Poyarekar2014-12-045-10/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | Currently we seek to end of file if there are unflushed writes or the stream is in write mode, to get the current offset for writing in append mode, which is the end of file. The latter case (i.e. stream is in write mode, but no unflushed writes) is unnecessary since it will only happen when the stream has just been flushed, in which case the recorded offset ought to be reliable. Removing that case lets ftell give the correct offset when it follows an ftruncate. The latter truncates the file, but does not change the file position, due to which it is permissible to call ftell without an intervening fseek call. Tested on x86_64 to verify that the added test case fails without the patch and succeeds with it, and that there are no additional regressions due to it. [BZ #17647] * libio/fileops.c (do_ftell): Seek only when there are unflushed writes. * libio/wfileops.c (do_ftell_wide): Likewise. * libio/tst-ftell-active-handler.c (do_ftruncate_test): New test case. (do_one_test): Call it.
* Fix linknamespace getdate_err handling.Joseph Myers2014-12-033-8/+14
| | | | | | | | | | | | | | | | | Some linknamespace tests were failing because of references to getdate_err. References to this symbol should be allowed for XPG4 and later XSI standards; it was missing from the whitelist of data symbols. This patch adds it to that list. Tested for x86_64. * conform/list-header-symbols.pl (%extra_syms): Add getdate_err for XPG4, UNIX98, XOPEN2K and XOPEN2K8. * conform/Makefile (test-xfail-XOPEN2K/pthread.h/linknamespace): Remove variable. (test-xfail-XOPEN2K/time.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/pthread.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/time.h/linknamespace): Likewise.
* Remove some linknamespace test XFAILs.Joseph Myers2014-12-022-2/+4
| | | | | | | | | | | | | | | It seems two of the XFAILed linknamespace tests were completely fixed by some of my recent namespace fixes in combination (although not by any individual one of those fixes relative to the sources used for testing each patch, or that individual fix would also have removed the XFAIL in question). This patch removes those XFAILs that are no longer needed. Tested for x86_64. * conform/Makefile (test-xfail-XOPEN2K/aio.h/linknamespace): Remove variable. (test-xfail-XOPEN2K8/aio.h/linknamespace): Likewise.
* Fix getifaddrs, freeifaddrs namespace (bug 17668).Joseph Myers2014-12-026-16/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Various objects in glibc bring in ifaddrs.o (via references to __netlink_*) and thereby getifaddrs and freeifaddrs, which are not part of any standard supported by glibc. These should be weak aliases of __getifaddrs and __freeifaddrs; this patch makes them so. (The path by which these functions are brought in is Linux-specific, but it seems less confusing to make all versions of these functions weak aliases rather than only the Linux-specific versions that definitely need it.) Tested for x86_64 (testsuite, and that disassembly of installed shared libraries is unchanged by this patch). [BZ #17668] * inet/ifaddrs.c (getifaddrs): Rename to __getifaddrs and define as weak alias of __getifaddrs. Use libc_hidden_weak. (freeifaddrs): Rename to __freeifaddrs and define as weak alias of __freeifaddrs. Use libc_hidden_weak. * sysdeps/gnu/ifaddrs.c (getifaddrs): Rename to __getifaddrs and define as weak alias of __getifaddrs. Use libc_hidden_weak. (freeifaddrs): Rename to __freeifaddrs and define as weak alias of __freeifaddrs. Use libc_hidden_weak. * sysdeps/unix/sysv/linux/ifaddrs.c (getifaddrs): Rename to __getifaddrs and define as weak alias of __getifaddrs. Use libc_hidden_weak. (freeifaddrs): Rename to __freeifaddrs and define as weak alias of __freeifaddrs. Use libc_hidden_weak. * conform/Makefile (test-xfail-XOPEN2K/net/if.h/linknamespace): Remove variable. (test-xfail-POSIX2008/net/if.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/net/if.h/linknamespace): Likewise.
* mips: Do not use jal to reach __libc_start_mainPetar Jovanovic2014-12-023-3/+13
| | | | | | | | | | | | Since __libc_start_main may not be in the same 256MB-aligned region as the function __start, replace use of jal instruction with la/jalr. This fixes linker issue reported in: https://sourceware.org/bugzilla/show_bug.cgi?id=17601 [BZ #17601] * sysdeps/mips/start.S (__start): Use indirect jump to call __libc_start_main.
* Fix warning in nptl/tst-stack4.c.Joseph Myers2014-12-022-1/+3
| | | | | | | | | | | | | | | | This patch fixes a warning in a test that was added since my recent warning cleanup: tst-stack4.c: In function 'dso_process': tst-stack4.c:64:7: warning: format '%i' expects argument of type 'int', but argument 3 has type 'uintptr_t' [-Wformat=] The original variable has type int then is cast to uintptr_t, and from there to void *, to pass it to a thread, so reversing the process by casting to uintptr_t and then to int is natural; this patch does so. Tested for x86_64. * nptl/tst-stack4.c (dso_process): Use int not uintptr_t for t.
* Fix -Waddress warnings in nptl/tst-mutex1.c.Joseph Myers2014-12-024-2/+12
| | | | | | | | | | | | | | | | This patch fixes -Waddress warnings in nptl/tst-mutex1.c from comparing the address of an object with NULL (ATTR may either be NULL, or the address of an object when included from other tests, and the warning arises in the latter case). A macro ATTR_NULL is defined alongside ATTR and used for the tests. Tested for x86_64. * nptl/tst-mutex1.c: Include <stdbool.h>. [!ATTR] (ATTR_NULL): New macro. (do_test): Test !ATTR_NULL instead of ATTR != NULL. * nptl/tst-mutexpi1.c (ATTR_NULL): New macro. * nptl/tst-mutexpp1.c (ATTR_NULL): New macro.
* Fix warning in posix/tst-getopt_long1.c.Joseph Myers2014-12-022-1/+4
| | | | | | | | | | | | This patch fixes a "discards qualifiers" warning in posix/tst-getopt_long1.c. glibc is built with -Wwrite-strings, meaning a char * cannot be initialized directly with a string constant; the patch casts the string constants to char *. Tested for x86_64. * posix/tst-getopt_long1.c (do_test): Cast elements of argv array to char *.
* Remove excess declarations from unistd.h for XPG3/XPG4 (bug 17665).Joseph Myers2014-12-023-3/+7
| | | | | | | | | | | | | | | | | | For XPG3/XPG4 (defined __USE_XOPEN && !defined __USE_UNIX98), unistd.h declares many functions that should only be declared for __USE_MISC (none of them are in XPG3/XPG4): sethostname sethostid getdomainname setdomainname vhangup revoke profil acct getusershell endusershell setusershell daemon. The whole block with the [__USE_MISC || (__USE_XOPEN && !__USE_UNIX98)] conditional contains only functions that are not in XPG3/XPG4, so this patch simply changes the conditional. Tested for x86_64 (testsuite, and that installed stripped shared libraries are unchanged by this patch). [BZ #17665] * posix/unistd.h [__USE_MISC || (__USE_XOPEN && !__USE_UNIX98)]: Change conditional to [__USE_MISC].
* Fix fgets_unlocked namespace issues (bug 17664).Joseph Myers2014-12-026-14/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Various POSIX functions bring in res_init.o, res_hconf.o or mntent_r.o, which use fgets_unlocked, which is not a POSIX function. This patch arranges for them to use __fgets_unlocked instead. (The IS_IN (libc) conditional in rec_hconf.c is needed because that file is also used in nscd.) Tested for x86_64 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch except for an assertion line number). Note that most of the linknamespace tests that failed because of fgets_unlocked from the resolver also fail because of other symbols brought in by the resolver, so the number of XFAILs this removes is limited. Also note that fgets_unlocked failures for unistd.h for XPG3/XPG4 showed up that actually unistd.h is declaring too much for XPG3/XPG4 (bug 17665) - there is no actual need to make getusershell.c use __fgets_unlocked (at least as regards formal standards are concerned; maybe it should still change for namespace-cleanness of _DEFAULT_SOURCE) because the functions there aren't actually in any of the supported standards; the correct fix for those failures will be to stop the *usershell* functions appearing in unistd.h for XPG3/XPG4. [BZ #17664] * misc/mntent_r.c (__getmntent_r): Use __fgets_unlocked instead of fgets_unlocked. * resolv/res_hconf.c [IS_IN (libc)] (fgets_unlocked): Define to __fgets_unlocked. * resolv/res_init.c (__res_vinit): Use __fgets_unlocked instead of fgets_unlocked. * conform/Makefile (test-xfail-XPG4/sys/statvfs.h/linknamespace): Remove variable. (test-xfail-POSIX/sys/mman.h/linknamespace): Likewise. (test-xfail-UNIX98/sys/mman.h/linknamespace): Likewise. (test-xfail-UNIX98/sys/statvfs.h/linknamespace): Likewise. (test-xfail-XOPEN2K/sys/mman.h/linknamespace): Likewise. (test-xfail-XOPEN2K/sys/statvfs.h/linknamespace): Likewise. (test-xfail-POSIX2008/sys/mman.h/linknamespace): Likewise. (test-xfail-POSIX2008/sys/statvfs.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/sys/mman.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/sys/statvfs.h/linknamespace): Likewise.