]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Implement C23 memalignment
authorJoseph Myers <josmyers@redhat.com>
Fri, 17 Oct 2025 16:56:59 +0000 (16:56 +0000)
committerJoseph Myers <josmyers@redhat.com>
Fri, 17 Oct 2025 16:56:59 +0000 (16:56 +0000)
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.

41 files changed:
NEWS
manual/memory.texi
stdlib/Makefile
stdlib/Versions
stdlib/memalignment.c [new file with mode: 0644]
stdlib/stdlib.h
stdlib/tst-memalignment.c [new file with mode: 0644]
sysdeps/mach/hurd/i386/libc.abilist
sysdeps/mach/hurd/x86_64/libc.abilist
sysdeps/unix/sysv/linux/aarch64/libc.abilist
sysdeps/unix/sysv/linux/alpha/libc.abilist
sysdeps/unix/sysv/linux/arc/libc.abilist
sysdeps/unix/sysv/linux/arm/be/libc.abilist
sysdeps/unix/sysv/linux/arm/le/libc.abilist
sysdeps/unix/sysv/linux/csky/libc.abilist
sysdeps/unix/sysv/linux/hppa/libc.abilist
sysdeps/unix/sysv/linux/i386/libc.abilist
sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist
sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
sysdeps/unix/sysv/linux/or1k/libc.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
sysdeps/unix/sysv/linux/sh/be/libc.abilist
sysdeps/unix/sysv/linux/sh/le/libc.abilist
sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist

diff --git a/NEWS b/NEWS
index 8a5c197d42e8fcf90e0ffc1e64226b288d7ae925..244f7613d871c8cb285a3cd6771ab4ce095621fd 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -11,6 +11,8 @@ Major new features:
 
 * 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:
 
 * Support for dumped heaps has been removed - malloc_set_state() now always
index 6a70168e616734ecc588094d04300fc8fecbec9b..dd6c7f99960d1863a80c71e68b95ab3dc3eaf660 100644 (file)
@@ -1135,6 +1135,61 @@ The @code{valloc} function is obsolete and @code{aligned_alloc} or
 @code{posix_memalign} should be used instead.
 @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
 @subsubsection Malloc Tunable Parameters
 
index d2c594885a25204abdd28769fccee165e069cb60..8d9a98602ce4aa230b09959221408f8a70cf460e 100644 (file)
@@ -97,6 +97,7 @@ routines := \
   mblen \
   mbstowcs \
   mbtowc \
+  memalignment \
   mrand48 \
   mrand48_r \
   nrand48 \
@@ -299,6 +300,7 @@ tests := \
   tst-makecontext-align \
   tst-makecontext2 \
   tst-makecontext3 \
+  tst-memalignment \
   tst-on_exit \
   tst-qsort \
   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_ceil.c += -fno-builtin
 
+CFLAGS-tst-memalignment.c += -fno-builtin
+
 ifeq ($(have-cxx-thread_local),yes)
 CFLAGS-tst-quick_exit.o = -std=c++11
 LDLIBS-tst-quick_exit = -lstdc++
index 6d024000f80d39069e19a63d5a2f567d32141dee..da7019a7ed974b495282dc16d97624f74c29faec 100644 (file)
@@ -229,6 +229,9 @@ libc {
     ulabs;
     ullabs;
   }
+  GLIBC_2.43 {
+    memalignment;
+  }
   GLIBC_PRIVATE {
     # functions which have an additional interface since they are
     # are cancelable.
diff --git a/stdlib/memalignment.c b/stdlib/memalignment.c
new file mode 100644 (file)
index 0000000..fb3eef9
--- /dev/null
@@ -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;
+}
index 1d6a83a22c63d7a13f0b0f32fbd08d1564e06f35..8d4d194a465399baa2412e702f69deb1b15ccbd8 100644 (file)
@@ -1164,6 +1164,9 @@ extern int ttyslot (void) __THROW;
 /* Call function __FUNC exactly once, even if invoked from several threads.
    All calls must be made with the same __FLAGS object.  */
 extern void call_once (once_flag *__flag, void (*__func)(void));
+
+/* Return the alignment of P.  */
+extern size_t memalignment (const void *__p);
 #endif
 
 #include <bits/stdlib-float.h>
diff --git a/stdlib/tst-memalignment.c b/stdlib/tst-memalignment.c
new file mode 100644 (file)
index 0000000..518b83c
--- /dev/null
@@ -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>
index e0dc8aea2894a6405cfbcd49e3138b2725968505..a9d0e625af46a55d041cde42418c566c5f7f5a4a 100644 (file)
@@ -2663,6 +2663,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.43 pthread_cancel F
 GLIBC_2.43 pthread_clockjoin_np F
index c0cac6d5076a1ec90219a4783d8fcc142540a5be..2440c8f669dac4464cb05589965c7740576fac13 100644 (file)
@@ -2344,6 +2344,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.43 pthread_cancel F
 GLIBC_2.43 pthread_clockjoin_np F
index bde5e66ce02de103dc860c42c6a00b9fd47dfaad..cd7d7e7f3fbc48eef94b0053e096b74d22921e20 100644 (file)
@@ -2768,4 +2768,5 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
index 0060616d206e452013a97f7a0916fef98d0db4b4..c772aa126cff1c61d5db9a7309c1866693f64bd7 100644 (file)
@@ -3115,6 +3115,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.5 __readlinkat_chk F
 GLIBC_2.5 inet6_opt_append F
index 79895b9b374bf360c3fdf9383c8e5b869e18a8df..773a94f23af1fa965bf9ce9bc9be3d39df619ceb 100644 (file)
@@ -2529,4 +2529,5 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
index 3426d99f1e09f8b33f0897fe4abba2df8747221f..b6767ebce3ab58dadf756075f750d29cf21c83f8 100644 (file)
@@ -2821,6 +2821,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.5 __readlinkat_chk F
 GLIBC_2.5 inet6_opt_append F
index eca31a2e27cb09cbff310e69fae82a320232deb7..34c59b8f0fd77df113aebbbff32b390d3018d472 100644 (file)
@@ -2818,6 +2818,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.5 __readlinkat_chk F
 GLIBC_2.5 inet6_opt_append F
index 7c5ebdf3ba46058cfcebe6f132b6762b391ec4e3..045f0daafc8028ff7bb6fcd3bb6e105be193b916 100644 (file)
@@ -2805,4 +2805,5 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
index 742118e65ed119cdb8dbe5466117a1ba32d0ae91..3e868398ba8a0b1daf62d267e460c164e28492b7 100644 (file)
@@ -2842,6 +2842,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.5 __readlinkat_chk F
 GLIBC_2.5 inet6_opt_append F
index 8a8ff34e35b0cbcf05799339027f5c130c4d4cbf..4ac5171f4678c8e133a6d2191feaeb70269e14d8 100644 (file)
@@ -3025,6 +3025,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.5 __readlinkat_chk F
 GLIBC_2.5 inet6_opt_append F
index 86b0246ad1b254d831f885e329799423f1dc4913..b2f68316deca3e470348b10404a6016f958bd1d1 100644 (file)
@@ -2289,4 +2289,5 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
index 92cef27d98254d3e4bfcccdbad3e7f44fc94241f..feb34915a120b305db5bbfa0ec3f615ee6881ac7 100644 (file)
@@ -2801,6 +2801,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.5 __readlinkat_chk F
 GLIBC_2.5 inet6_opt_append F
index 3b7457456035c44a6a49e80a93e477cd887dad5e..c497daba54878aceda417998f9c948d8fd0fdcc4 100644 (file)
@@ -2968,6 +2968,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.5 __readlinkat_chk F
 GLIBC_2.5 inet6_opt_append F
index ae2d13ad8f5d846b7ad150e0478f3241189f6d86..e8b15834e2ba05e271664988afc2ea3165e7b9d5 100644 (file)
@@ -2854,4 +2854,5 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
index 1b0264df273b520dfb4508079520fa11ee4e6428..8dc0f9d54f77ba3bd9033076aa0e3ed74867333b 100644 (file)
@@ -2851,4 +2851,5 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
index 892322809096799d22a3bfcf7267ad9339399709..53950e67d9b3325b22717ebc9926a49dcbed774b 100644 (file)
@@ -2931,6 +2931,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.5 __readlinkat_chk F
 GLIBC_2.5 inet6_opt_append F
index 9ce80245f6cb06343f904ae8bc06b50b12550b5e..b60839335edb9bb407e2849d21550c288cdb8474 100644 (file)
@@ -2929,6 +2929,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.5 __readlinkat_chk F
 GLIBC_2.5 inet6_opt_append F
index e3c971367d6cb77f2aa6b8fc7111c70e954b7765..ed12fb7352cacbd0f67770212236db54b5059898 100644 (file)
@@ -2937,6 +2937,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.5 __readlinkat_chk F
 GLIBC_2.5 inet6_opt_append F
index db707fad52d26d5f180f6957d415238a62edcd81..6ac6778e658e3a1329ad04b672b6ee2668649cfc 100644 (file)
@@ -2839,6 +2839,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.5 __readlinkat_chk F
 GLIBC_2.5 inet6_opt_append F
index 0780d53978e6ad1ca0f1cf0313cf5ddbe78563c9..7639a50bc49b0add1108f9cf7be4cb0787d0ae2b 100644 (file)
@@ -2279,4 +2279,5 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
index f4f15510545529bef03508ee02adf4032d90a5e8..07171e7f6f5a4a26a9e629f10acfa9c1c6d3b971 100644 (file)
@@ -3158,6 +3158,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.5 __readlinkat_chk F
 GLIBC_2.5 inet6_opt_append F
index 34ec11f6853ce814aaae29c4340320485fda937e..8cadb158d3caecef2fcd2c5792a0063e4ec89dc9 100644 (file)
@@ -3203,6 +3203,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.5 __readlinkat_chk F
 GLIBC_2.5 inet6_opt_append F
index b790b43f4b3c86d6c270903f48a1e2e9dd897239..af449c5420856a59bd2020ec6ec3c199d42be24f 100644 (file)
@@ -2912,6 +2912,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.5 __readlinkat_chk F
 GLIBC_2.5 inet6_opt_append F
index b7de3f95a8d03d55750933fa55dbdba8f67d29e6..4ae1fd8477e2d91f50ccba93248caa28067f7f4b 100644 (file)
@@ -2988,4 +2988,5 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
index 2680eabc7cbacac4a1f397365b159c3f223c30ac..42a37e3e84575c4fc5a3c88732536a55b8ab06e0 100644 (file)
@@ -2532,4 +2532,5 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
index 074ca2f28027d29d8ca6d417b92b80badb089c60..66561593dffd23805ecc705411445d5f01a2aa64 100644 (file)
@@ -2732,4 +2732,5 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
index 0573db9f500672286880772d233610e6d1ae023b..99090f39a289b44fe1709c1041a4168f0f089bca 100644 (file)
@@ -3156,6 +3156,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.5 __readlinkat_chk F
 GLIBC_2.5 inet6_opt_append F
index 55760b901f43ad84953cda0dca6df2ad4313f2e7..8b37af8f760c7745567717a859e13ddf150b875d 100644 (file)
@@ -2949,6 +2949,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.5 __readlinkat_chk F
 GLIBC_2.5 inet6_opt_append F
index a15b4df221fcaa2ee39357b9ba7758500978be49..db85b97e471de3a9ab1b28a7bd343cf6187323e1 100644 (file)
@@ -2848,6 +2848,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.5 __readlinkat_chk F
 GLIBC_2.5 inet6_opt_append F
index b490e1064c308c44319bc5f896fbeb393e90dadd..733d6aaffa96d5d0fc56bcacc170bd7b90fd5504 100644 (file)
@@ -2845,6 +2845,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.5 __readlinkat_chk F
 GLIBC_2.5 inet6_opt_append F
index 8fd42d21d06e97f2114229616c536313d1f39787..85e15e34c174bf4f5816c889ca308f37d467c623 100644 (file)
@@ -3179,6 +3179,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.5 __readlinkat_chk F
 GLIBC_2.5 inet6_opt_append F
index b62dec6a6353e0979eb7ed26c27a07bbcf54e6eb..fb90d0ab152362935bd28c375b952e7e8a20de40 100644 (file)
@@ -2815,6 +2815,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.5 __readlinkat_chk F
 GLIBC_2.5 inet6_opt_append F
index fe23ac668221e44ef959215e89fc0f68c64c3522..aa3cdd6c69b625fd9e606c48cc903cf7969a94d6 100644 (file)
@@ -2764,6 +2764,7 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F
 GLIBC_2.5 __readlinkat_chk F
 GLIBC_2.5 inet6_opt_append F
index 986dfcca2a0f3fedc226f24ad400d3a296962208..1aeb3429c74f3f4f347013151a369e096e2de4ec 100644 (file)
@@ -2783,4 +2783,5 @@ GLIBC_2.42 uimaxabs F
 GLIBC_2.42 ulabs F
 GLIBC_2.42 ullabs F
 GLIBC_2.43 __memset_explicit_chk F
+GLIBC_2.43 memalignment F
 GLIBC_2.43 memset_explicit F