[Mesa-dev] [PATCH] blob: Use intptr_t instead of ssize_t

Vinson Lee vlee at freedesktop.org
Fri Oct 13 20:27:31 UTC 2017


On Fri, Oct 13, 2017 at 10:44 AM, Jason Ekstrand <jason at jlekstrand.net> wrote:
> ssize_t is a GNU extension and is not available on Windows or MacOS.
> Instead, we use intptr_t which should be effectively equivalent and is
> part of the C standard.  This should fix the Windows and Mac OS builds.
>
> Cc: Jose Fonseca <jfonseca at vmware.com>
> Cc: Vinson Lee <vlee at freedesktop.org>
> Fixes: 3af1c829891a4530682bce113fdd512d4f2de3c6
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103253
> ---
>  src/compiler/blob.c                   | 8 ++++----
>  src/compiler/blob.h                   | 6 +++---
>  src/intel/vulkan/anv_pipeline_cache.c | 2 +-
>  3 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/src/compiler/blob.c b/src/compiler/blob.c
> index f0fa85e..8dd254f 100644
> --- a/src/compiler/blob.c
> +++ b/src/compiler/blob.c
> @@ -158,10 +158,10 @@ blob_write_bytes(struct blob *blob, const void *bytes, size_t to_write)
>     return true;
>  }
>
> -ssize_t
> +intptr_t
>  blob_reserve_bytes(struct blob *blob, size_t to_write)
>  {
> -   ssize_t ret;
> +   intptr_t ret;
>
>     if (! grow_to_fit (blob, to_write))
>        return -1;
> @@ -172,14 +172,14 @@ blob_reserve_bytes(struct blob *blob, size_t to_write)
>     return ret;
>  }
>
> -ssize_t
> +intptr_t
>  blob_reserve_uint32(struct blob *blob)
>  {
>     align_blob(blob, sizeof(uint32_t));
>     return blob_reserve_bytes(blob, sizeof(uint32_t));
>  }
>
> -ssize_t
> +intptr_t
>  blob_reserve_intptr(struct blob *blob)
>  {
>     align_blob(blob, sizeof(intptr_t));
> diff --git a/src/compiler/blob.h b/src/compiler/blob.h
> index f0f28ec..2b975d4 100644
> --- a/src/compiler/blob.h
> +++ b/src/compiler/blob.h
> @@ -135,7 +135,7 @@ blob_write_bytes(struct blob *blob, const void *bytes, size_t to_write);
>   * \return An offset to space allocated within \blob to which \to_write bytes
>   * can be written, (or -1 in case of any allocation error).
>   */
> -ssize_t
> +intptr_t
>  blob_reserve_bytes(struct blob *blob, size_t to_write);
>
>  /**
> @@ -143,7 +143,7 @@ blob_reserve_bytes(struct blob *blob, size_t to_write);
>   * space. Note that this must be used if later reading with \sa
>   * blob_read_uint32, since it aligns the offset correctly.
>   */
> -ssize_t
> +intptr_t
>  blob_reserve_uint32(struct blob *blob);
>
>  /**
> @@ -151,7 +151,7 @@ blob_reserve_uint32(struct blob *blob);
>   * space. Note that this must be used if later reading with \sa
>   * blob_read_intptr, since it aligns the offset correctly.
>   */
> -ssize_t
> +intptr_t
>  blob_reserve_intptr(struct blob *blob);
>
>  /**
> diff --git a/src/intel/vulkan/anv_pipeline_cache.c b/src/intel/vulkan/anv_pipeline_cache.c
> index ad9c810..82551e9 100644
> --- a/src/intel/vulkan/anv_pipeline_cache.c
> +++ b/src/intel/vulkan/anv_pipeline_cache.c
> @@ -449,7 +449,7 @@ VkResult anv_GetPipelineCacheData(
>     blob_write_bytes(&blob, &header, sizeof(header));
>
>     uint32_t count = 0;
> -   ssize_t count_offset = blob_reserve_uint32(&blob);
> +   intptr_t count_offset = blob_reserve_uint32(&blob);
>     if (count_offset < 0) {
>        *pDataSize = 0;
>        blob_finish(&blob);
> --
> 2.5.0.400.gff86faf
>


This patch fixes the Mac OS X build error.

Tested-by: Vinson Lee <vlee at freedesktop.org>


More information about the mesa-dev mailing list