[v2,11/16] libebl/libdwelf: define ssize_t and pid_t for MSVC within installed header libdwelf.h and libebl.h

Message ID 20221217165213.152-12-luoyonggang@gmail.com
State Under Review
Headers
Series Patches for building with mingw/gcc msvc/clang-cl |

Commit Message

Yonggang Luo Dec. 17, 2022, 4:52 p.m. UTC
  Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
---
 libdwelf/libdwelf.h | 5 +++++
 libebl/libebl.h     | 5 +++++
 2 files changed, 10 insertions(+)
  

Comments

Mark Wielaard March 2, 2023, 1:32 p.m. UTC | #1
Hi,

On Sun, 2022-12-18 at 00:52 +0800, Yonggang Luo via Elfutils-devel
wrote:
> Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> ---
>  libdwelf/libdwelf.h | 5 +++++
>  libebl/libebl.h     | 5 +++++
>  2 files changed, 10 insertions(+)
> 
> diff --git a/libdwelf/libdwelf.h b/libdwelf/libdwelf.h
> index 263ca60e..167ac0dc 100644
> --- a/libdwelf/libdwelf.h
> +++ b/libdwelf/libdwelf.h
> @@ -31,6 +31,11 @@
>  
>  #include "libdw.h"
>  
> +#ifdef _MSC_VER
> +#include <BaseTsd.h>
> +typedef SSIZE_T ssize_t;
> +#endif
> +
>  #ifdef __cplusplus
>  extern "C" {
>  #endif
> diff --git a/libebl/libebl.h b/libebl/libebl.h
> index 731001d3..c568f623 100644
> --- a/libebl/libebl.h
> +++ b/libebl/libebl.h
> @@ -44,6 +44,11 @@
>  
>  #include "elf-knowledge.h"
>  
> +#ifdef _MSC_VER
> +#include <BaseTsd.h>
> +typedef SSIZE_T ssize_t;
> +typedef int pid_t;
> +#endif
>  
>  /* Opaque type for the handle.  libasm.h defined the same thing.  */
>  #ifndef _LIBASM_H

Kind of the same comment as for the uid_t, gid_t and mode_t change.
ssize_t and pid_t according to POSIX come from sys/types.h, both signed
and no wider than a long.

libdwelf.h is a public header. libebl.h isn't. But I am not sure these
are the right places to add these typedefs. pid_t and ssize_t are used
all over the place.

Cheers,

Mark
  

Patch

diff --git a/libdwelf/libdwelf.h b/libdwelf/libdwelf.h
index 263ca60e..167ac0dc 100644
--- a/libdwelf/libdwelf.h
+++ b/libdwelf/libdwelf.h
@@ -31,6 +31,11 @@ 
 
 #include "libdw.h"
 
+#ifdef _MSC_VER
+#include <BaseTsd.h>
+typedef SSIZE_T ssize_t;
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
diff --git a/libebl/libebl.h b/libebl/libebl.h
index 731001d3..c568f623 100644
--- a/libebl/libebl.h
+++ b/libebl/libebl.h
@@ -44,6 +44,11 @@ 
 
 #include "elf-knowledge.h"
 
+#ifdef _MSC_VER
+#include <BaseTsd.h>
+typedef SSIZE_T ssize_t;
+typedef int pid_t;
+#endif
 
 /* Opaque type for the handle.  libasm.h defined the same thing.  */
 #ifndef _LIBASM_H