aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-08-04test-dlclose-exit-race: avoid hang on pthread_create errorDJ Delorie
This test depends on the "last" function being called in a different thread than the "first" function, as "last" posts a semaphore that "first" is waiting on. However, if pthread_create fails - for example, if running in an older container before the clone3()-in-container-EPERM fixes - exit() is called in the same thread as everything else, the semaphore never gets posted, and first hangs. The fix is to pre-post that semaphore before a single-threaded exit. Reviewed-by: Arjun Shankar <arjun@redhat.com>
2021-08-04gethosts: Remove unused argument _typeSiddhesh Poyarekar
The generated code is unchanged.
2021-08-03hurd: Avoid spurious warningSamuel Thibault
Compilers missing some flow analysis may think ss may be used uninitialized.
2021-08-03gaiconf_init: Avoid double-free in label and precedence listsSiddhesh Poyarekar
labellist and precedencelist could get freed a second time if there are allocation failures, so set them to NULL to avoid a double-free. Reviewed-by: Arjun Shankar <arjun@redhat.com>
2021-08-03copy_and_spawn_sgid: Avoid double calls to close()Siddhesh Poyarekar
If close() on infd and outfd succeeded, reset the fd numbers so that we don't attempt to close them again. Reviewed-by: Arjun Shankar <arjun@redhat.com>
2021-08-03iconv_charmap: Close output file when doneSiddhesh Poyarekar
Reviewed-by: Arjun Shankar <arjun@redhat.com>
2021-08-03gconv_parseconfdir: Fix memory leakSiddhesh Poyarekar
The allocated `conf` would leak if we have to skip over the file due to the underlying filesystem not supporting dt_type. Reviewed-by: Arjun Shankar <arjun@redhat.com>
2021-08-03ldconfig: avoid leak on empty paths in config fileSiddhesh Poyarekar
Reviewed-by: Arjun Shankar <arjun@redhat.com>
2021-08-02Fix build of nptl/tst-thread_local1.cc with GCC 12Joseph Myers
The test nptl/tst-thread_local1.cc fails to build with GCC mainline because of changes to what libstdc++ headers implicitly include what other headers: tst-thread_local1.cc: In function 'int do_test()': tst-thread_local1.cc:177:5: error: variable 'std::array<std::pair<const char*, std::function<void(void* (*)(void*))> >, 2> do_thread_X' has initializer but incomplete type 177 | do_thread_X | ^~~~~~~~~~~ Fix this by adding an explicit include of <array>. Tested with build-many-glibcs.py for aarch64-linux-gnu.
2021-08-02nis: Fix leak on realloc failure in nis_getnames [BZ #28150]Robbie Harwood
If pos >= count but realloc fails, tmp will not have been placed in getnames[pos] yet, and so will not be freed in free_null. Detected by Coverity. Also remove misleading comment from nis_getnames(), since it actually did properly release getnames when out of memory. Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-08-02Remove obsolete comments/name from several benchtest input files.Paul Zimmermann
These comments refer to slow paths that were removed in glibc 2.34 or earlier. The corresponding "names" that yield separate workload traces for "make bench" are thus obsolete. We are however keeping the corresponding inputs. Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
2021-08-02Remove obsolete comments/name from acos-inputs, since slow path was removed.Paul Zimmermann
2021-08-01Open master branch for glibc 2.35 developmentglibc-2.34.9000Carlos O'Donell
2021-08-01Update ChangeLog.old/ChangeLog.23.glibc-2.34Carlos O'Donell
2021-08-01Prepare for glibc 2.34 release.Carlos O'Donell
Update version.h, and include/features.h.
2021-08-01po/nl.po: Update Dutch translation.Carlos O'Donell
2021-08-01Update install.texi, and regenerate INSTALL.Carlos O'Donell
2021-08-01Update translations.Carlos O'Donell
2021-08-01Update NEWS.Carlos O'Donell
Suggestions by Florian Weimer, Andreas Schwab, and Alexander Monakov. See: https://sourceware.org/pipermail/libc-alpha/2021-July/129356.html https://sourceware.org/pipermail/libc-alpha/2021-July/129357.html https://sourceware.org/pipermail/libc-alpha/2021-July/129361.html
2021-08-01NEWS: Fix typos, grammar, and missing wordsMark Harris
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2021-07-30elf: Fix audit regressionAdhemerval Zanella
Commit 03e187a41d9 added a regression when an audit module does not have libc as DT_NEEDED (although unusual it is possible). Checked on x86_64-linux-gnu.
2021-07-28Update libc.pot for 2.34 release.Carlos O'Donell
2021-07-28x86-64: Add Avoid_Short_Distance_REP_MOVSBH.J. Lu
commit 3ec5d83d2a237d39e7fd6ef7a0bc8ac4c171a4a5 Author: H.J. Lu <hjl.tools@gmail.com> Date: Sat Jan 25 14:19:40 2020 -0800 x86-64: Avoid rep movsb with short distance [BZ #27130] introduced some regressions on Intel processors without Fast Short REP MOV (FSRM). Add Avoid_Short_Distance_REP_MOVSB to avoid rep movsb with short distance only on Intel processors with FSRM. bench-memmove-large on Skylake server shows that cycles of __memmove_evex_unaligned_erms improves for the following data size: before after Improvement length=4127, align1=3, align2=0: 479.38 349.25 27% length=4223, align1=9, align2=5: 405.62 333.25 18% length=8223, align1=3, align2=0: 786.12 496.38 37% length=8319, align1=9, align2=5: 727.50 501.38 31% length=16415, align1=3, align2=0: 1436.88 840.00 41% length=16511, align1=9, align2=5: 1375.50 836.38 39% length=32799, align1=3, align2=0: 2890.00 1860.12 36% length=32895, align1=9, align2=5: 2891.38 1931.88 33%
2021-07-28Typo: Rename HAVE_CLONE3_WAPPER to HAVE_CLONE3_WRAPPERH.J. Lu
2021-07-28build-many-glibcs.py: Add x86_64-linux-gnu-minimal configurationFlorian Weimer
This configuration exercises various --disable-* configure options. It is expected to catch -Werror failures that only affect these configurations.
2021-07-28tests: use xmalloc to allocate implementation arraySiddhesh Poyarekar
The benchmark and tests must fail in case of allocation failure in the implementation array. Also annotate the x* allocators in support.h so that the compiler has more information about them. Reviewed-by: Florian Weimer <fweimer@redhat.com>
2021-07-28xmalloc: Fix warnings with gcc analyzerSiddhesh Poyarekar
Tell the compiler that xmalloc family of allocators always return non-NULL. xrealloc in locale/programs also always returns non-NULL, but that conflicts with default realloc behaviour and that of xrealloc in libsupport, so keep it as is for now and resolve the differences later. Reviewed-by: Florian Weimer <fweimer@redhat.com>
2021-07-28__cxa_thread_atexit_impl: Abort on allocation failure [BZ #18524]Siddhesh Poyarekar
Abort in the unlikely event that allocation fails when trying to register a TLS destructor. Reviewed-by: Florian Weimer <fweimer@redhat.com>
2021-07-27manual: Drop the .so suffix in libc_malloc_debug descriptionSiddhesh Poyarekar
All references to libraries in the manual are without the .so prefix, so do the same for libc_malloc_debug. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2021-07-27hurd: _Fork: unlock malloc before calling fork child hooksSamuel Thibault
The setitimer fork hook, fork_itimer, needs to call malloc inside __mach_setup_tls, so we need to unlock malloc before calling it.
2021-07-26Exclude static tests for mcheck and malloc-checkSiddhesh Poyarekar
mcheck and malloc-check no longer work with static binaries, so drop those tests. Reported-by: Samuel Thibault <samuel.thibault@gnu.org> Tested-by: Samuel Thibault <samuel.thibault@gnu.org> Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
2021-07-25i386: Regenerate ulpsArjun Shankar
These failures were caught while building glibc master for Fedora Rawhide which is built with `-mtune=generic -msse2 -mfpmath=sse'.
2021-07-23manual: Document unsupported cases for interpositionSiddhesh Poyarekar
These functions call the core allocator functions (realloc and malloc respectively) and are hence guaranteed to allocate memory using the correct functions when multiple allocators are interposed. Having these functions interposed in one allocator and not another may result in confusion, hence discourage interposing them altogether. Reviewed-by: Florian Weimer <fweimer@redhat.com>
2021-07-23x86: Install <bits/platform/x86.h> [BZ #27958]H.J. Lu
1. Install <bits/platform/x86.h> for <sys/platform/x86.h> which includes <bits/platform/x86.h>. 2. Rename HAS_CPU_FEATURE to CPU_FEATURE_PRESENT which checks if the processor has the feature. 3. Rename CPU_FEATURE_USABLE to CPU_FEATURE_ACTIVE which checks if the feature is active. There may be other preconditions, like sufficient stack space or further setup for AMX, which must be satisfied before the feature can be used. This fixes BZ #27958. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2021-07-23Fix build and tests with --disable-tunablesSiddhesh Poyarekar
Remove unused code and declare __libc_mallopt when !IS_IN (libc) to allow the debug hook to build with --disable-tunables. Also, run tst-ifunc-isa-2* tests only when tunables are enabled since the result depends on it. Tested on x86_64. Reported-by: Matheus Castanho <msc@linux.ibm.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2021-07-22hurd: Fix glob lstat compatibilitySamuel Thibault
84f7ce84474c ("posix: Add glob64 with 64-bit time_t support") replaced GLOB_NO_LSTAT with defining GLOB_LSTAT and GLOB_LSTAT64, but the posix and gnu versions of the change were missing in the commit.
2021-07-22socket: Add time64 alias for setsockoptFlorian Weimer
Reviewed-by: Lukasz Majewski <lukma@denx.de> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-07-22socket: Add time64 alias for getsockoptFlorian Weimer
Reviewed-by: Lukasz Majewski <lukma@denx.de> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-07-22mcheck Fix malloc_usable_size [BZ #22057]Siddhesh Poyarekar
Interpose malloc_usable_size to return the correct mcheck value for malloc_usable_size. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-07-22Remove malloc hooks [BZ #23328]Siddhesh Poyarekar
Make malloc hooks symbols compat-only so that new applications cannot link against them and remove the declarations from the API. Also remove the unused malloc-hooks.h. Finally, mark all symbols in libc_malloc_debug.so as compat so that the library cannot be linked against. Add a note about the deprecation in NEWS. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-07-22Move malloc_{g,s}et_state to libc_malloc_debugSiddhesh Poyarekar
These deprecated functions are only safe to call from __malloc_initialize_hook and as a result, are not useful in the general case. Move the implementations to libc_malloc_debug so that existing binaries that need it will now have to preload the debug DSO to work correctly. This also allows simplification of the core malloc implementation by dropping all the undumping support code that was added to make malloc_set_state work. One known breakage is that of ancient emacs binaries that depend on this. They will now crash when running with this libc. With LD_BIND_NOW=1, it will terminate immediately because of not being able to find malloc_set_state but with lazy binding it will crash in unpredictable ways. It will need a preloaded libc_malloc_debug.so so that its initialization hook is executed to allow its malloc implementation to work properly. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-07-22glibc.malloc.check: Wean away from malloc hooksSiddhesh Poyarekar
The malloc-check debugging feature is tightly integrated into glibc malloc, so thanks to an idea from Florian Weimer, much of the malloc implementation has been moved into libc_malloc_debug.so to support malloc-check. Due to this, glibc malloc and malloc-check can no longer work together; they use altogether different (but identical) structures for heap management. This should not make a difference though since the malloc check hook is not disabled anywhere. malloc_set_state does, but it does so early enough that it shouldn't cause any problems. The malloc check tunable is now in the debug DSO and has no effect when the DSO is not preloaded. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-07-22mtrace: Wean away from malloc hooksSiddhesh Poyarekar
Wean mtrace away from the malloc hooks and move them into the debug DSO. Split the API away from the implementation so that we can add the API to libc.so as well as libc_malloc_debug.so, with the libc implementations being empty. Update localplt data since memalign no longer has any callers after this change. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-07-22Simplify __malloc_initializedSiddhesh Poyarekar
Now that mcheck no longer needs to check __malloc_initialized (and no other third party hook can since the symbol is not exported), make the variable boolean and static so that it is used strictly within malloc. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-07-22mcheck: Wean away from malloc hooks [BZ #23489]Siddhesh Poyarekar
Split the mcheck implementation into the debugging hooks and API so that the API can be replicated in libc and libc_malloc_debug.so. The libc APIs always result in failure. The mcheck implementation has also been moved entirely into libc_malloc_debug.so and with it, all of the hook initialization code can now be moved into the debug library. Now the initialization can be done independently of libc internals. With this patch, libc_malloc_debug.so can no longer be used with older libcs, which is not its goal anyway. tst-vfork3 breaks due to this since it spawns shell scripts, which in turn execute using the system glibc. Move the test to tests-container so that only the built glibc is used. This move also fixes bugs in the mcheck version of memalign and realloc, thus allowing removal of the tests from tests-mcheck exclusion list. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-07-22Move malloc hooks into a compat DSOSiddhesh Poyarekar
Remove all malloc hook uses from core malloc functions and move it into a new library libc_malloc_debug.so. With this, the hooks now no longer have any effect on the core library. libc_malloc_debug.so is a malloc interposer that needs to be preloaded to get hooks functionality back so that the debugging features that depend on the hooks, i.e. malloc-check, mcheck and mtrace work again. Without the preloaded DSO these debugging features will be nops. These features will be ported away from hooks in subsequent patches. Similarly, legacy applications that need hooks functionality need to preload libc_malloc_debug.so. The symbols exported by libc_malloc_debug.so are maintained at exactly the same version as libc.so. Finally, static binaries will no longer be able to use malloc debugging features since they cannot preload the debugging DSO. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-07-22Remove __morecore and __default_morecoreSiddhesh Poyarekar
Make the __morecore and __default_morecore symbols compat-only and remove their declarations from the API. Also, include morecore.c directly into malloc.c; this should ideally get merged into malloc in a future cleanup. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-07-22Remove __after_morecore_hookSiddhesh Poyarekar
Remove __after_morecore_hook from the API and finalize the symbol so that it can no longer be used in new applications. Old applications using __after_morecore_hook will find that their hook is no longer called. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-07-22Make mcheck tests conditional on GLIBC_2.23 or earlierSiddhesh Poyarekar
Targets with base versions of 2.24 or later won't have __malloc_initialize_hook because of which the tests will essentially be the same as the regular malloc tests. Avoid running them instead and save time. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-07-22posix: Add sysconf(_SC_{MIN,}SIGSTKSZ) supportSamuel Thibault