Download gnulib/m4/aligned_alloc.m4 from AryaWu/coreutils: direct link, hf CLI and curl.
- Browser
- Download file 2.99 kB
-
https://huggingface.co/AryaWu/coreutils/resolve/main/gnulib/m4/aligned_alloc.m4
- Command line
-
hf download hf://AryaWu/coreutils/gnulib/m4/aligned_alloc.m4
-
curl -L -o aligned_alloc.m4 https://huggingface.co/AryaWu/coreutils/resolve/main/gnulib/m4/aligned_alloc.m4
2.99 kB
| dnl Copyright (C) 2020-2025 Free Software Foundation, Inc. | |
| dnl This file is free software; the Free Software Foundation | |
| dnl gives unlimited permission to copy and/or distribute it, | |
| dnl with or without modifications, as long as this notice is preserved. | |
| dnl This file is offered as-is, without any warranty. | |
| AC_DEFUN([gl_FUNC_ALIGNED_ALLOC], | |
| [ | |
| AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) | |
| AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles | |
| dnl Persuade glibc and OpenBSD <stdlib.h> to declare aligned_alloc(). | |
| AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) | |
| gl_CHECK_FUNCS_ANDROID([aligned_alloc], [[#include <stdlib.h>]]) | |
| if test $ac_cv_func_aligned_alloc = yes; then | |
| dnl On macOS 11.1 and AIX 7.3.1, aligned_alloc returns NULL when the | |
| dnl alignment argument is smaller than sizeof (void *). | |
| dnl On Solaris 11.4, aligned_alloc returns NULL if the size is not a | |
| dnl multiple of the alignment. | |
| dnl On macOS 15, AIX 7.3, Solaris 11.4, aligned_alloc with a zero size | |
| dnl returns NULL. | |
| AC_CACHE_CHECK([whether aligned_alloc works for small alignments and sizes], | |
| [gl_cv_func_aligned_alloc_works], | |
| [AC_RUN_IFELSE( | |
| [AC_LANG_PROGRAM( | |
| [[#include <stdlib.h> | |
| /* Use paligned_alloc to test; 'volatile' prevents the compiler | |
| from optimizing the aligned_alloc call away. */ | |
| void *(*volatile paligned_alloc) (size_t, size_t) | |
| = aligned_alloc;]], | |
| [[int result = 0; | |
| { | |
| void *p = paligned_alloc (2, 18); | |
| if (p == NULL) | |
| result |= 1; | |
| } | |
| { | |
| void *p = paligned_alloc (sizeof (void *), sizeof (void *) + 1); | |
| if (p == NULL) | |
| result |= 2; | |
| } | |
| { | |
| void *p = paligned_alloc (sizeof (void *), 0); | |
| if (p == NULL) | |
| result |= 4; | |
| } | |
| return result; | |
| ]]) | |
| ], | |
| [], | |
| [], | |
| [ | |
| ]) | |
| ]) | |
| case "$gl_cv_func_aligned_alloc_works" in | |
| *yes) ;; | |
| *) REPLACE_ALIGNED_ALLOC=1 ;; | |
| esac | |
| else | |
| dnl The system does not have aligned_alloc. | |
| HAVE_ALIGNED_ALLOC=0 | |
| case "$gl_cv_onwards_func_aligned_alloc" in | |
| future*) REPLACE_ALIGNED_ALLOC=1 ;; | |
| esac | |
| fi | |
| ]) | |