[Piglit] [PATCH] util: Add check for aligned_alloc.
Jose Fonseca
jfonseca at vmware.com
Mon Feb 23 03:56:15 PST 2015
I wonder if it wouldn't be easier to just use posix_memalign for all
posix (non-Windows platform.)
Marek can correct me if I'm wrong, but I don't think there's anything
particularly special about aligned_alloc that justifies we go so out of
our way to use it instead of posix_memalign.
(Of course, aligned_alloc's prototype is much easier to use than
posix_memalign, but now that this detail is hidden away, there's really
not much difference.)
Jose
On 23/02/15 01:15, Vinson Lee wrote:
> glibc < 2.16 does not have aligned_alloc.
>
> Signed-off-by: Vinson Lee <vlee at freedesktop.org>
> ---
> CMakeLists.txt | 1 +
> tests/util/config.h.in | 1 +
> tests/util/piglit-util.c | 6 +++---
> 3 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/CMakeLists.txt b/CMakeLists.txt
> index db5f718..dc5e92e 100644
> --- a/CMakeLists.txt
> +++ b/CMakeLists.txt
> @@ -400,6 +400,7 @@ if(NOT MINGW)
> check_function_exists(fopen_s HAVE_FOPEN_S)
> endif()
> check_function_exists(setrlimit HAVE_SETRLIMIT)
> +check_function_exists(aligned_alloc HAVE_ALIGNED_ALLOC)
>
> check_include_file(sys/time.h HAVE_SYS_TIME_H)
> check_include_file(sys/types.h HAVE_SYS_TYPES_H)
> diff --git a/tests/util/config.h.in b/tests/util/config.h.in
> index c6e23db..5fab0e6 100644
> --- a/tests/util/config.h.in
> +++ b/tests/util/config.h.in
> @@ -4,6 +4,7 @@
> #cmakedefine HAVE_FOPEN_S
> #cmakedefine HAVE_SETRLIMIT
> #cmakedefine HAVE_STRNDUP
> +#cmakedefine HAVE_ALIGNED_ALLOC
>
> #cmakedefine HAVE_FCNTL_H
> #cmakedefine HAVE_SYS_STAT_H
> diff --git a/tests/util/piglit-util.c b/tests/util/piglit-util.c
> index 4c5e389..4d8291d 100644
> --- a/tests/util/piglit-util.c
> +++ b/tests/util/piglit-util.c
> @@ -829,14 +829,14 @@ piglit_alloc_aligned(size_t size, size_t alignment)
> {
> #if defined(_WIN32)
> return _aligned_malloc(size, alignment);
> -#elif defined(__APPLE__)
> +#elif defined(HAVE_ALIGNED_ALLOC)
> + return aligned_alloc(alignment, size);
> +#else
> void *p;
> if (posix_memalign(&p, alignment, size) != 0) {
> return NULL;
> }
> return p;
> -#else
> - return aligned_alloc(alignment, size);
> #endif
> }
>
>
More information about the Piglit
mailing list