- Aug 01, 2021
-
-
Carlos O'Donell authored
-
Carlos O'Donell authored
-
Carlos O'Donell authored
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
-
Mark Harris authored
Reviewed-by:
Carlos O'Donell <carlos@redhat.com>
-
- Jul 30, 2021
-
-
Adhemerval Zanella authored
Commit 03e187a4 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.
-
- Jul 29, 2021
-
-
Carlos O'Donell authored
-
- Jul 28, 2021
-
-
H.J. Lu authored
commit 3ec5d83d 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%
-
H.J. Lu authored
-
Florian Weimer authored
This configuration exercises various --disable-* configure options. It is expected to catch -Werror failures that only affect these configurations.
-
Siddhesh Poyarekar authored
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>
-
Siddhesh Poyarekar authored
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>
-
Siddhesh Poyarekar authored
Abort in the unlikely event that allocation fails when trying to register a TLS destructor. Reviewed-by:
Florian Weimer <fweimer@redhat.com>
-
- Jul 27, 2021
-
-
Siddhesh Poyarekar authored
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>
-
Samuel Thibault authored
The setitimer fork hook, fork_itimer, needs to call malloc inside __mach_setup_tls, so we need to unlock malloc before calling it.
-
- Jul 26, 2021
-
-
Siddhesh Poyarekar authored
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>
-
- Jul 25, 2021
-
-
Arjun Shankar authored
These failures were caught while building glibc master for Fedora Rawhide which is built with `-mtune=generic -msse2 -mfpmath=sse'.
-
- Jul 23, 2021
-
-
Siddhesh Poyarekar authored
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>
-
H.J. Lu authored
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>
-
Siddhesh Poyarekar authored
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>
-
- Jul 22, 2021
-
-
Samuel Thibault authored
84f7ce84 ("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.
-
Florian Weimer authored
Reviewed-by:
Lukasz Majewski <lukma@denx.de> Reviewed-by:
Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
Florian Weimer authored
Reviewed-by:
Lukasz Majewski <lukma@denx.de> Reviewed-by:
Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
Siddhesh Poyarekar authored
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>
-
Siddhesh Poyarekar authored
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>
-
Siddhesh Poyarekar authored
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>
-
Siddhesh Poyarekar authored
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>
-
Siddhesh Poyarekar authored
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>
-
Siddhesh Poyarekar authored
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>
-
Siddhesh Poyarekar authored
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>
-
Siddhesh Poyarekar authored
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>
-
Siddhesh Poyarekar authored
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>
-
Siddhesh Poyarekar authored
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>
-
Siddhesh Poyarekar authored
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>
-
Samuel Thibault authored
-
Samuel Thibault authored
It uses pthread.
-
- Jul 21, 2021
-
-
Vineet Gupta authored
Signed-off-by:
Vineet Gupta <vgupta@synopsys.com>
-
Vineet Gupta authored
Any FPU_STATUS write needs setting the FWE bit (31) whcih just provides a "control signal" to enable explicit write (vs. the side-effect of FPU instructions). However this bit is RAZ and write-only, thus effectively never stored in FPU_STATUS register. Thus when reading the register there is no need to clear it. This shaves off a BCLR instruction from the fe*exceptino family of functions and while no big deal still makes sense to do. This came up when debugging a race in math/test-fenv-tls [1] [1]: https://github.com/foss-for-synopsys-dwc-arc-processors/linux/issues/54 Signed-off-by:
Vineet Gupta <vgupta@synopsys.com>
-
Florian Weimer authored
Reviewed-by:
Lukasz Majewski <lukma@denx.de> Reviewed-by:
Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
Florian Weimer authored
Reviewed-by:
Lukasz Majewski <lukma@denx.de> Reviewed-by:
Adhemerval Zanella <adhemerval.zanella@linaro.org>
-
Florian Weimer authored
Reviewed-by:
Lukasz Majewski <lukma@denx.de> Reviewed-by:
Adhemerval Zanella <adhemerval.zanella@linaro.org>
-