mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-30 10:45:40 +03:00 
			
		
		
		
	Implement C23 memalignment
Add the C23 memalignment function (query the alignment of a pointer) to glibc. Given how simple this operation is, it would make sense for compilers to inline calls to this function, but I'm treating that as a compiler matter (compilers should add it as a built-in function) rather than adding an inline version to glibc headers (although such an inline version would be reasonable as well). I've filed https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122117 for this feature in GCC. Tested for x86_64 and x86.
This commit is contained in:
		
							
								
								
									
										2
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								NEWS
									
									
									
									
									
								
							| @@ -11,6 +11,8 @@ Major new features: | |||||||
|  |  | ||||||
| * The ISO C23 memset_explicit function has been added. | * The ISO C23 memset_explicit function has been added. | ||||||
|  |  | ||||||
|  | * The ISO C23 memalignment function has been added. | ||||||
|  |  | ||||||
| Deprecated and removed features, and other changes affecting compatibility: | Deprecated and removed features, and other changes affecting compatibility: | ||||||
|  |  | ||||||
| * Support for dumped heaps has been removed - malloc_set_state() now always | * Support for dumped heaps has been removed - malloc_set_state() now always | ||||||
|   | |||||||
| @@ -1135,6 +1135,61 @@ The @code{valloc} function is obsolete and @code{aligned_alloc} or | |||||||
| @code{posix_memalign} should be used instead. | @code{posix_memalign} should be used instead. | ||||||
| @end deftypefun | @end deftypefun | ||||||
|  |  | ||||||
|  | You can determine the alignment of a pointer with the | ||||||
|  | @code{memalignment} function. | ||||||
|  |  | ||||||
|  | @deftypefun size_t memalignment (void *@var{p}) | ||||||
|  | @standards{C23, stdlib.h} | ||||||
|  | @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} | ||||||
|  |  | ||||||
|  | This function, defined in C23, returns the alignment of @var{p}, as a | ||||||
|  | power of two.  If @var{p} is a null pointer, it returns zero.  C23 | ||||||
|  | requires @var{p} to be a valid pointer to an object or a null pointer; | ||||||
|  | as a GNU extension, @theglibc{} supports this function on arbitrary | ||||||
|  | bit patterns of pointer type. | ||||||
|  |  | ||||||
|  | This function was added to the C23 standard to support unconventional | ||||||
|  | platforms where a pointer's low-order bits are unrelated to alignment. | ||||||
|  | For conventional platforms, one can instead cast the pointer to | ||||||
|  | @code{uintptr_t} and then test the low order bits: | ||||||
|  | this is portable to pre-C23 and is typically a bit faster. | ||||||
|  |  | ||||||
|  | For example, if you want to read an @code{int} | ||||||
|  | addressed by possibly-misaligned pointer @code{p}, | ||||||
|  | the following pre-C23 code works on all conventional platforms: | ||||||
|  |  | ||||||
|  | @smallexample | ||||||
|  | int i; | ||||||
|  | if (((uintptr_t) p & (alignof (int) - 1)) != 0) | ||||||
|  |   memcpy (&i, p, sizeof i); | ||||||
|  | else | ||||||
|  |   i = *p; | ||||||
|  | @end smallexample | ||||||
|  |  | ||||||
|  | However, it might not work on unconventional platforms, where one | ||||||
|  | would need something like the following C23 code: | ||||||
|  |  | ||||||
|  | @smallexample | ||||||
|  | int i; | ||||||
|  | if (memalignment (p) < alignof (int)) | ||||||
|  |   memcpy (&i, p, sizeof i); | ||||||
|  | else | ||||||
|  |   i = *p; | ||||||
|  | @end smallexample | ||||||
|  |  | ||||||
|  | However, for this particular case, performance does not improve if | ||||||
|  | different code is used for aligned and unaligned pointers, | ||||||
|  | and the following code is preferable: | ||||||
|  |  | ||||||
|  | @smallexample | ||||||
|  | int i; | ||||||
|  | memcpy (&i, p, sizeof i); | ||||||
|  | @end smallexample | ||||||
|  |  | ||||||
|  | The compiler will generate the most efficient way to access unaligned | ||||||
|  | data for the architecture, optimizing away the @code{memcpy} call. | ||||||
|  | @end deftypefun | ||||||
|  |  | ||||||
| @node Malloc Tunable Parameters | @node Malloc Tunable Parameters | ||||||
| @subsubsection Malloc Tunable Parameters | @subsubsection Malloc Tunable Parameters | ||||||
|  |  | ||||||
|   | |||||||
| @@ -97,6 +97,7 @@ routines := \ | |||||||
|   mblen \ |   mblen \ | ||||||
|   mbstowcs \ |   mbstowcs \ | ||||||
|   mbtowc \ |   mbtowc \ | ||||||
|  |   memalignment \ | ||||||
|   mrand48 \ |   mrand48 \ | ||||||
|   mrand48_r \ |   mrand48_r \ | ||||||
|   nrand48 \ |   nrand48 \ | ||||||
| @@ -299,6 +300,7 @@ tests := \ | |||||||
|   tst-makecontext-align \ |   tst-makecontext-align \ | ||||||
|   tst-makecontext2 \ |   tst-makecontext2 \ | ||||||
|   tst-makecontext3 \ |   tst-makecontext3 \ | ||||||
|  |   tst-memalignment \ | ||||||
|   tst-on_exit \ |   tst-on_exit \ | ||||||
|   tst-qsort \ |   tst-qsort \ | ||||||
|   tst-qsort2 \ |   tst-qsort2 \ | ||||||
| @@ -441,6 +443,8 @@ CFLAGS-tst-stdc_bit_width.c += -fno-builtin | |||||||
| CFLAGS-tst-stdc_bit_floor.c += -fno-builtin | CFLAGS-tst-stdc_bit_floor.c += -fno-builtin | ||||||
| CFLAGS-tst-stdc_bit_ceil.c += -fno-builtin | CFLAGS-tst-stdc_bit_ceil.c += -fno-builtin | ||||||
|  |  | ||||||
|  | CFLAGS-tst-memalignment.c += -fno-builtin | ||||||
|  |  | ||||||
| ifeq ($(have-cxx-thread_local),yes) | ifeq ($(have-cxx-thread_local),yes) | ||||||
| CFLAGS-tst-quick_exit.o = -std=c++11 | CFLAGS-tst-quick_exit.o = -std=c++11 | ||||||
| LDLIBS-tst-quick_exit = -lstdc++ | LDLIBS-tst-quick_exit = -lstdc++ | ||||||
|   | |||||||
| @@ -229,6 +229,9 @@ libc { | |||||||
|     ulabs; |     ulabs; | ||||||
|     ullabs; |     ullabs; | ||||||
|   } |   } | ||||||
|  |   GLIBC_2.43 { | ||||||
|  |     memalignment; | ||||||
|  |   } | ||||||
|   GLIBC_PRIVATE { |   GLIBC_PRIVATE { | ||||||
|     # functions which have an additional interface since they are |     # functions which have an additional interface since they are | ||||||
|     # are cancelable. |     # are cancelable. | ||||||
|   | |||||||
							
								
								
									
										27
									
								
								stdlib/memalignment.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								stdlib/memalignment.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | |||||||
|  | /* Return the alignment of a pointer. | ||||||
|  |    Copyright (C) 2025 Free Software Foundation, Inc. | ||||||
|  |    This file is part of the GNU C Library. | ||||||
|  |  | ||||||
|  |    The GNU C Library is free software; you can redistribute it and/or | ||||||
|  |    modify it under the terms of the GNU Lesser General Public | ||||||
|  |    License as published by the Free Software Foundation; either | ||||||
|  |    version 2.1 of the License, or (at your option) any later version. | ||||||
|  |  | ||||||
|  |    The GNU C Library is distributed in the hope that it will be useful, | ||||||
|  |    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||||
|  |    Lesser General Public License for more details. | ||||||
|  |  | ||||||
|  |    You should have received a copy of the GNU Lesser General Public | ||||||
|  |    License along with the GNU C Library; if not, see | ||||||
|  |    <https://www.gnu.org/licenses/>.  */ | ||||||
|  |  | ||||||
|  | #include <stdlib.h> | ||||||
|  |  | ||||||
|  | /* Return the alignment of P.  */ | ||||||
|  | size_t | ||||||
|  | memalignment (const void *p) | ||||||
|  | { | ||||||
|  |   size_t i = (size_t) p; | ||||||
|  |   return i & -i; | ||||||
|  | } | ||||||
| @@ -1164,6 +1164,9 @@ extern int ttyslot (void) __THROW; | |||||||
| /* Call function __FUNC exactly once, even if invoked from several threads. | /* Call function __FUNC exactly once, even if invoked from several threads. | ||||||
|    All calls must be made with the same __FLAGS object.  */ |    All calls must be made with the same __FLAGS object.  */ | ||||||
| extern void call_once (once_flag *__flag, void (*__func)(void)); | extern void call_once (once_flag *__flag, void (*__func)(void)); | ||||||
|  |  | ||||||
|  | /* Return the alignment of P.  */ | ||||||
|  | extern size_t memalignment (const void *__p); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #include <bits/stdlib-float.h> | #include <bits/stdlib-float.h> | ||||||
|   | |||||||
							
								
								
									
										43
									
								
								stdlib/tst-memalignment.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								stdlib/tst-memalignment.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | |||||||
|  | /* Test memalignment. | ||||||
|  |    Copyright (C) 2025 Free Software Foundation, Inc. | ||||||
|  |    This file is part of the GNU C Library. | ||||||
|  |  | ||||||
|  |    The GNU C Library is free software; you can redistribute it and/or | ||||||
|  |    modify it under the terms of the GNU Lesser General Public | ||||||
|  |    License as published by the Free Software Foundation; either | ||||||
|  |    version 2.1 of the License, or (at your option) any later version. | ||||||
|  |  | ||||||
|  |    The GNU C Library is distributed in the hope that it will be useful, | ||||||
|  |    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||||
|  |    Lesser General Public License for more details. | ||||||
|  |  | ||||||
|  |    You should have received a copy of the GNU Lesser General Public | ||||||
|  |    License along with the GNU C Library; if not, see | ||||||
|  |    <https://www.gnu.org/licenses/>.  */ | ||||||
|  |  | ||||||
|  | #include <stdlib.h> | ||||||
|  | #include <array_length.h> | ||||||
|  | #include <support/check.h> | ||||||
|  |  | ||||||
|  | static int | ||||||
|  | do_test (void) | ||||||
|  | { | ||||||
|  |   void *null = NULL; | ||||||
|  |   TEST_COMPARE (memalignment (NULL), 0); | ||||||
|  |   TEST_COMPARE (memalignment (null), 0); | ||||||
|  |   char ca[256]; | ||||||
|  |   array_foreach (p, ca) | ||||||
|  |     TEST_VERIFY (memalignment (p) >= 1); | ||||||
|  |   TEST_VERIFY (memalignment (&ca[0]) == 1 || memalignment (&ca[1]) == 1); | ||||||
|  |   TEST_VERIFY (memalignment (&ca[0]) == 2 || memalignment (&ca[1]) == 2 | ||||||
|  | 	       || memalignment (&ca[2]) == 2 || memalignment (&ca[3]) == 2); | ||||||
|  |   long long int lla[256]; | ||||||
|  |   array_foreach (p, lla) | ||||||
|  |     TEST_VERIFY (memalignment (p) >= _Alignof (long long int)); | ||||||
|  |   TEST_VERIFY (memalignment (&lla[0]) <= sizeof (long long int) | ||||||
|  | 	       || memalignment (&lla[1]) <= sizeof (long long int)); | ||||||
|  |   return 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #include <support/test-driver.c> | ||||||
| @@ -2663,6 +2663,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.43 pthread_cancel F | GLIBC_2.43 pthread_cancel F | ||||||
| GLIBC_2.43 pthread_clockjoin_np F | GLIBC_2.43 pthread_clockjoin_np F | ||||||
|   | |||||||
| @@ -2344,6 +2344,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.43 pthread_cancel F | GLIBC_2.43 pthread_cancel F | ||||||
| GLIBC_2.43 pthread_clockjoin_np F | GLIBC_2.43 pthread_clockjoin_np F | ||||||
|   | |||||||
| @@ -2768,4 +2768,5 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
|   | |||||||
| @@ -3115,6 +3115,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.5 __readlinkat_chk F | GLIBC_2.5 __readlinkat_chk F | ||||||
| GLIBC_2.5 inet6_opt_append F | GLIBC_2.5 inet6_opt_append F | ||||||
|   | |||||||
| @@ -2529,4 +2529,5 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
|   | |||||||
| @@ -2821,6 +2821,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.5 __readlinkat_chk F | GLIBC_2.5 __readlinkat_chk F | ||||||
| GLIBC_2.5 inet6_opt_append F | GLIBC_2.5 inet6_opt_append F | ||||||
|   | |||||||
| @@ -2818,6 +2818,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.5 __readlinkat_chk F | GLIBC_2.5 __readlinkat_chk F | ||||||
| GLIBC_2.5 inet6_opt_append F | GLIBC_2.5 inet6_opt_append F | ||||||
|   | |||||||
| @@ -2805,4 +2805,5 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
|   | |||||||
| @@ -2842,6 +2842,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.5 __readlinkat_chk F | GLIBC_2.5 __readlinkat_chk F | ||||||
| GLIBC_2.5 inet6_opt_append F | GLIBC_2.5 inet6_opt_append F | ||||||
|   | |||||||
| @@ -3025,6 +3025,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.5 __readlinkat_chk F | GLIBC_2.5 __readlinkat_chk F | ||||||
| GLIBC_2.5 inet6_opt_append F | GLIBC_2.5 inet6_opt_append F | ||||||
|   | |||||||
| @@ -2289,4 +2289,5 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
|   | |||||||
| @@ -2801,6 +2801,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.5 __readlinkat_chk F | GLIBC_2.5 __readlinkat_chk F | ||||||
| GLIBC_2.5 inet6_opt_append F | GLIBC_2.5 inet6_opt_append F | ||||||
|   | |||||||
| @@ -2968,6 +2968,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.5 __readlinkat_chk F | GLIBC_2.5 __readlinkat_chk F | ||||||
| GLIBC_2.5 inet6_opt_append F | GLIBC_2.5 inet6_opt_append F | ||||||
|   | |||||||
| @@ -2854,4 +2854,5 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
|   | |||||||
| @@ -2851,4 +2851,5 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
|   | |||||||
| @@ -2931,6 +2931,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.5 __readlinkat_chk F | GLIBC_2.5 __readlinkat_chk F | ||||||
| GLIBC_2.5 inet6_opt_append F | GLIBC_2.5 inet6_opt_append F | ||||||
|   | |||||||
| @@ -2929,6 +2929,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.5 __readlinkat_chk F | GLIBC_2.5 __readlinkat_chk F | ||||||
| GLIBC_2.5 inet6_opt_append F | GLIBC_2.5 inet6_opt_append F | ||||||
|   | |||||||
| @@ -2937,6 +2937,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.5 __readlinkat_chk F | GLIBC_2.5 __readlinkat_chk F | ||||||
| GLIBC_2.5 inet6_opt_append F | GLIBC_2.5 inet6_opt_append F | ||||||
|   | |||||||
| @@ -2839,6 +2839,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.5 __readlinkat_chk F | GLIBC_2.5 __readlinkat_chk F | ||||||
| GLIBC_2.5 inet6_opt_append F | GLIBC_2.5 inet6_opt_append F | ||||||
|   | |||||||
| @@ -2279,4 +2279,5 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
|   | |||||||
| @@ -3158,6 +3158,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.5 __readlinkat_chk F | GLIBC_2.5 __readlinkat_chk F | ||||||
| GLIBC_2.5 inet6_opt_append F | GLIBC_2.5 inet6_opt_append F | ||||||
|   | |||||||
| @@ -3203,6 +3203,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.5 __readlinkat_chk F | GLIBC_2.5 __readlinkat_chk F | ||||||
| GLIBC_2.5 inet6_opt_append F | GLIBC_2.5 inet6_opt_append F | ||||||
|   | |||||||
| @@ -2912,6 +2912,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.5 __readlinkat_chk F | GLIBC_2.5 __readlinkat_chk F | ||||||
| GLIBC_2.5 inet6_opt_append F | GLIBC_2.5 inet6_opt_append F | ||||||
|   | |||||||
| @@ -2988,4 +2988,5 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
|   | |||||||
| @@ -2532,4 +2532,5 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
|   | |||||||
| @@ -2732,4 +2732,5 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
|   | |||||||
| @@ -3156,6 +3156,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.5 __readlinkat_chk F | GLIBC_2.5 __readlinkat_chk F | ||||||
| GLIBC_2.5 inet6_opt_append F | GLIBC_2.5 inet6_opt_append F | ||||||
|   | |||||||
| @@ -2949,6 +2949,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.5 __readlinkat_chk F | GLIBC_2.5 __readlinkat_chk F | ||||||
| GLIBC_2.5 inet6_opt_append F | GLIBC_2.5 inet6_opt_append F | ||||||
|   | |||||||
| @@ -2848,6 +2848,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.5 __readlinkat_chk F | GLIBC_2.5 __readlinkat_chk F | ||||||
| GLIBC_2.5 inet6_opt_append F | GLIBC_2.5 inet6_opt_append F | ||||||
|   | |||||||
| @@ -2845,6 +2845,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.5 __readlinkat_chk F | GLIBC_2.5 __readlinkat_chk F | ||||||
| GLIBC_2.5 inet6_opt_append F | GLIBC_2.5 inet6_opt_append F | ||||||
|   | |||||||
| @@ -3179,6 +3179,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.5 __readlinkat_chk F | GLIBC_2.5 __readlinkat_chk F | ||||||
| GLIBC_2.5 inet6_opt_append F | GLIBC_2.5 inet6_opt_append F | ||||||
|   | |||||||
| @@ -2815,6 +2815,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.5 __readlinkat_chk F | GLIBC_2.5 __readlinkat_chk F | ||||||
| GLIBC_2.5 inet6_opt_append F | GLIBC_2.5 inet6_opt_append F | ||||||
|   | |||||||
| @@ -2764,6 +2764,7 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
| GLIBC_2.5 __readlinkat_chk F | GLIBC_2.5 __readlinkat_chk F | ||||||
| GLIBC_2.5 inet6_opt_append F | GLIBC_2.5 inet6_opt_append F | ||||||
|   | |||||||
| @@ -2783,4 +2783,5 @@ GLIBC_2.42 uimaxabs F | |||||||
| GLIBC_2.42 ulabs F | GLIBC_2.42 ulabs F | ||||||
| GLIBC_2.42 ullabs F | GLIBC_2.42 ullabs F | ||||||
| GLIBC_2.43 __memset_explicit_chk F | GLIBC_2.43 __memset_explicit_chk F | ||||||
|  | GLIBC_2.43 memalignment F | ||||||
| GLIBC_2.43 memset_explicit F | GLIBC_2.43 memset_explicit F | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user