Re: [yocto] [meta-mingw][kirkstone][PATCH] libxcrypt: fixed some build error for nativesdk with mingw

2023-11-30 Thread Khem Raj
On Thu, Nov 30, 2023 at 6:38 PM Kang Wenlin 
wrote:

>
> On 12/1/2023 00:54, Khem Raj wrote:
> > CAUTION: This email comes from a non Wind River email account!
> > Do not click links or open attachments unless you recognize the sender
> and know the content is safe.
> >
> > On Thu, Nov 30, 2023 at 12:31 AM wenlin.k...@windriver.com via
> > lists.yoctoproject.org
> >  wrote:
> >> From: Wenlin Kang 
> >>
> >> Steps to reproduce
> >>1) add layer meta-mingw
> >>2) add line in local.conf
> >>   SDKMACHINE = "x86_64-mingw32"
> >>3) bitbake nativesdk-libxcrypt
> >>
> >> Fixed:
> >> 1. .symver error
> >>| {standard input}: Assembler messages:
> >>| {standard input}:4: Error: unknown pseudo-op: `.symver'
> >>
> >> 2. pedantic error
> >>| ../git/lib/crypt.c:316:24: error: ISO C does not allow extra ';'
> outside of a function [-Werror=pedantic]
> >>|   316 | SYMVER_crypt_gensalt_rn;
> >>|   |
> >>
> >> 3. conversion error
> >>| ../git/lib/util-get-random-bytes.c: In function
> '_crypt_get_random_bytes':
> >>| ../git/lib/util-get-random-bytes.c:140:42: error: conversion from
> 'size_t' {aka 'long long unsigned int'} to 'unsigned int' may change value
> [-Werror=conversion]
> >>|   140 |   ssize_t nread = read (fd, buf, buflen);
> >>
> >> Signed-off-by: Wenlin Kang 
> >> ---
> >>   .../0001-Fix-for-compilation-on-Windows.patch | 37 +++
> >>   ...dom-bytes.c-fixed-conversion-error-w.patch | 47 +++
> >>   recipes-core/libxcrypt/libxcrypt_%.bbappend   |  7 +++
> >>   3 files changed, 91 insertions(+)
> >>   create mode 100644
> recipes-core/libxcrypt/libxcrypt/0001-Fix-for-compilation-on-Windows.patch
> >>   create mode 100644
> recipes-core/libxcrypt/libxcrypt/0001-lib-util-get-random-bytes.c-fixed-conversion-error-w.patch
> >>   create mode 100644 recipes-core/libxcrypt/libxcrypt_%.bbappend
> >>
> >> diff --git
> a/recipes-core/libxcrypt/libxcrypt/0001-Fix-for-compilation-on-Windows.patch
> b/recipes-core/libxcrypt/libxcrypt/0001-Fix-for-compilation-on-Windows.patch
> >> new file mode 100644
> >> index 000..5760ee0
> >> --- /dev/null
> >> +++
> b/recipes-core/libxcrypt/libxcrypt/0001-Fix-for-compilation-on-Windows.patch
> >> @@ -0,0 +1,37 @@
> >> +From a507b628a5a5d4e4f1cf0f0a9a72967470ee7624 Mon Sep 17 00:00:00 2001
> >> +From: Brecht Sanders 
> >> +Date: Fri, 3 Feb 2023 08:44:49 +0100
> >> +Subject: [PATCH] Fix for compilation on Windows
> >> +
> >> +This fix allows the library to build on Windows (at least with
> MinGW-w64).
> >> +
> >> +`.symver` is only supported for ELF format but Windows uses COFF/PE.
> >> +
> >> +Workaround dummy define of `symver_set()`
> >> +
> >> +Upstream-Status: Backport [
> https://github.com/besser82/libxcrypt/commit/a507b628a5a5d4e4f1cf0f0a9a72967470ee7624
> ]
> >> +
> >> +Signed-off-by: Wenlin Kang 
> >> +---
> >> + lib/crypt-port.h | 5 +
> >> + 1 file changed, 5 insertions(+)
> >> +
> >> +diff --git a/lib/crypt-port.h b/lib/crypt-port.h
> >> +index f06ca24..a707939 100644
> >> +--- a/lib/crypt-port.h
> >>  b/lib/crypt-port.h
> >> +@@ -201,6 +201,11 @@ extern size_t strcpy_or_abort (void *dst, size_t
> d_size, const void *src);
> >> +   __asm__(".globl _" extstr);   \
> >> +   __asm__(".set _" extstr ", _" #intname)
> >> +
> >> ++#elif defined _WIN32
> >> ++
> >> ++/* .symver is only supported for ELF format, Windows uses COFF/PE */
> >> ++# define symver_set(extstr, intname, version, mode)
> >> ++
> >> + #elif defined __GNUC__ && __GNUC__ >= 3
> >> +
> >> + # define _strong_alias(name, aliasname) \
> >> +--
> >> +2.34.1
> >> +
> >> diff --git
> a/recipes-core/libxcrypt/libxcrypt/0001-lib-util-get-random-bytes.c-fixed-conversion-error-w.patch
> b/recipes-core/libxcrypt/libxcrypt/0001-lib-util-get-random-bytes.c-fixed-conversion-error-w.patch
> >> new file mode 100644
> >> index 000..3846f76
> >> --- /dev/null
> >> +++
> b/recipes-core/libxcrypt/libxcrypt/0001-lib-util-get-random-bytes.c-fixed-conversion-error-w.patch
> >> @@ -0,0 +1,47 @@
> >> +From ff99091eb8a6b9e6edc567f6d2552183fbaacec3 Mon Sep 17 00:00:00 2001
> >> +From: Wenlin Kang 
> >> +Date: Mon, 6 Nov 2023 14:43:28 +0800
> >> +Subject: [PATCH] lib/util-get-random-bytes.c: fixed conversion error
> with
> >> + mingw
> >> +
> >> +With x86_64-w64-mingw32-gcc. get below error:
> >> +| ../git/lib/util-get-random-bytes.c: In function
> '_crypt_get_random_bytes':
> >> +| ../git/lib/util-get-random-bytes.c:140:42: error: conversion from
> 'size_t' {aka 'long long unsigned int'} to 'unsigned int' may change value
> [-Werror=conversion]
> >> +|   140 |   ssize_t nread = read (fd, buf, buflen);
> >> +|   |  ^~
> >> +
> >> +In util-get-random-bytes.c, has get_random_bytes(void *buf, size_t
> buflen),
> >> +but in mingw-w64-mingw-w64/mingw-w64-headers/crt/io.h, read() has
> "unsigned int"
> >> +read(int _FileHandle,void *_DstBuf,unsigned int _MaxCharCount), 

Re: [yocto] [meta-mingw][kirkstone][PATCH] libxcrypt: fixed some build error for nativesdk with mingw

2023-11-30 Thread wenlin.k...@windriver.com via lists.yoctoproject.org


On 12/1/2023 00:54, Khem Raj wrote:

CAUTION: This email comes from a non Wind River email account!
Do not click links or open attachments unless you recognize the sender and know 
the content is safe.

On Thu, Nov 30, 2023 at 12:31 AM wenlin.k...@windriver.com via
lists.yoctoproject.org
 wrote:

From: Wenlin Kang 

Steps to reproduce
   1) add layer meta-mingw
   2) add line in local.conf
  SDKMACHINE = "x86_64-mingw32"
   3) bitbake nativesdk-libxcrypt

Fixed:
1. .symver error
   | {standard input}: Assembler messages:
   | {standard input}:4: Error: unknown pseudo-op: `.symver'

2. pedantic error
   | ../git/lib/crypt.c:316:24: error: ISO C does not allow extra ';' outside 
of a function [-Werror=pedantic]
   |   316 | SYMVER_crypt_gensalt_rn;
   |   |

3. conversion error
   | ../git/lib/util-get-random-bytes.c: In function '_crypt_get_random_bytes':
   | ../git/lib/util-get-random-bytes.c:140:42: error: conversion from 'size_t' 
{aka 'long long unsigned int'} to 'unsigned int' may change value 
[-Werror=conversion]
   |   140 |   ssize_t nread = read (fd, buf, buflen);

Signed-off-by: Wenlin Kang 
---
  .../0001-Fix-for-compilation-on-Windows.patch | 37 +++
  ...dom-bytes.c-fixed-conversion-error-w.patch | 47 +++
  recipes-core/libxcrypt/libxcrypt_%.bbappend   |  7 +++
  3 files changed, 91 insertions(+)
  create mode 100644 
recipes-core/libxcrypt/libxcrypt/0001-Fix-for-compilation-on-Windows.patch
  create mode 100644 
recipes-core/libxcrypt/libxcrypt/0001-lib-util-get-random-bytes.c-fixed-conversion-error-w.patch
  create mode 100644 recipes-core/libxcrypt/libxcrypt_%.bbappend

diff --git 
a/recipes-core/libxcrypt/libxcrypt/0001-Fix-for-compilation-on-Windows.patch 
b/recipes-core/libxcrypt/libxcrypt/0001-Fix-for-compilation-on-Windows.patch
new file mode 100644
index 000..5760ee0
--- /dev/null
+++ b/recipes-core/libxcrypt/libxcrypt/0001-Fix-for-compilation-on-Windows.patch
@@ -0,0 +1,37 @@
+From a507b628a5a5d4e4f1cf0f0a9a72967470ee7624 Mon Sep 17 00:00:00 2001
+From: Brecht Sanders 
+Date: Fri, 3 Feb 2023 08:44:49 +0100
+Subject: [PATCH] Fix for compilation on Windows
+
+This fix allows the library to build on Windows (at least with MinGW-w64).
+
+`.symver` is only supported for ELF format but Windows uses COFF/PE.
+
+Workaround dummy define of `symver_set()`
+
+Upstream-Status: Backport 
[https://github.com/besser82/libxcrypt/commit/a507b628a5a5d4e4f1cf0f0a9a72967470ee7624]
+
+Signed-off-by: Wenlin Kang 
+---
+ lib/crypt-port.h | 5 +
+ 1 file changed, 5 insertions(+)
+
+diff --git a/lib/crypt-port.h b/lib/crypt-port.h
+index f06ca24..a707939 100644
+--- a/lib/crypt-port.h
 b/lib/crypt-port.h
+@@ -201,6 +201,11 @@ extern size_t strcpy_or_abort (void *dst, size_t d_size, 
const void *src);
+   __asm__(".globl _" extstr);   \
+   __asm__(".set _" extstr ", _" #intname)
+
++#elif defined _WIN32
++
++/* .symver is only supported for ELF format, Windows uses COFF/PE */
++# define symver_set(extstr, intname, version, mode)
++
+ #elif defined __GNUC__ && __GNUC__ >= 3
+
+ # define _strong_alias(name, aliasname) \
+--
+2.34.1
+
diff --git 
a/recipes-core/libxcrypt/libxcrypt/0001-lib-util-get-random-bytes.c-fixed-conversion-error-w.patch
 
b/recipes-core/libxcrypt/libxcrypt/0001-lib-util-get-random-bytes.c-fixed-conversion-error-w.patch
new file mode 100644
index 000..3846f76
--- /dev/null
+++ 
b/recipes-core/libxcrypt/libxcrypt/0001-lib-util-get-random-bytes.c-fixed-conversion-error-w.patch
@@ -0,0 +1,47 @@
+From ff99091eb8a6b9e6edc567f6d2552183fbaacec3 Mon Sep 17 00:00:00 2001
+From: Wenlin Kang 
+Date: Mon, 6 Nov 2023 14:43:28 +0800
+Subject: [PATCH] lib/util-get-random-bytes.c: fixed conversion error with
+ mingw
+
+With x86_64-w64-mingw32-gcc. get below error:
+| ../git/lib/util-get-random-bytes.c: In function '_crypt_get_random_bytes':
+| ../git/lib/util-get-random-bytes.c:140:42: error: conversion from 'size_t' 
{aka 'long long unsigned int'} to 'unsigned int' may change value 
[-Werror=conversion]
+|   140 |   ssize_t nread = read (fd, buf, buflen);
+|   |  ^~
+
+In util-get-random-bytes.c, has get_random_bytes(void *buf, size_t buflen),
+but in mingw-w64-mingw-w64/mingw-w64-headers/crt/io.h, read() has "unsigned 
int"
+read(int _FileHandle,void *_DstBuf,unsigned int _MaxCharCount), and has:
+ #ifdef _WIN64
+   __MINGW_EXTENSION typedef unsigned __int64 size_t;
+ #else
+   typedef unsigned int size_t;
+ #endif /* _WIN64 */
+
+Upstream-Status: Pending
+
+Signed-off-by: Wenlin Kang 
+---
+ lib/util-get-random-bytes.c | 4 
+ 1 file changed, 4 insertions(+)
+
+diff --git a/lib/util-get-random-bytes.c b/lib/util-get-random-bytes.c
+index 79816db..68cd378 100644
+--- a/lib/util-get-random-bytes.c
 b/lib/util-get-random-bytes.c
+@@ -137,7 +137,11 @@ get_random_bytes(void *buf, size_t buflen)
+ dev_urandom_doesnt_work = true;
+   else
+ {

Re: [yocto] [meta-mingw][kirkstone][PATCH] libxcrypt: fixed some build error for nativesdk with mingw

2023-11-30 Thread Khem Raj
On Thu, Nov 30, 2023 at 12:31 AM wenlin.k...@windriver.com via
lists.yoctoproject.org
 wrote:
>
> From: Wenlin Kang 
>
> Steps to reproduce
>   1) add layer meta-mingw
>   2) add line in local.conf
>  SDKMACHINE = "x86_64-mingw32"
>   3) bitbake nativesdk-libxcrypt
>
> Fixed:
> 1. .symver error
>   | {standard input}: Assembler messages:
>   | {standard input}:4: Error: unknown pseudo-op: `.symver'
>
> 2. pedantic error
>   | ../git/lib/crypt.c:316:24: error: ISO C does not allow extra ';' outside 
> of a function [-Werror=pedantic]
>   |   316 | SYMVER_crypt_gensalt_rn;
>   |   |
>
> 3. conversion error
>   | ../git/lib/util-get-random-bytes.c: In function '_crypt_get_random_bytes':
>   | ../git/lib/util-get-random-bytes.c:140:42: error: conversion from 
> 'size_t' {aka 'long long unsigned int'} to 'unsigned int' may change value 
> [-Werror=conversion]
>   |   140 |   ssize_t nread = read (fd, buf, buflen);
>
> Signed-off-by: Wenlin Kang 
> ---
>  .../0001-Fix-for-compilation-on-Windows.patch | 37 +++
>  ...dom-bytes.c-fixed-conversion-error-w.patch | 47 +++
>  recipes-core/libxcrypt/libxcrypt_%.bbappend   |  7 +++
>  3 files changed, 91 insertions(+)
>  create mode 100644 
> recipes-core/libxcrypt/libxcrypt/0001-Fix-for-compilation-on-Windows.patch
>  create mode 100644 
> recipes-core/libxcrypt/libxcrypt/0001-lib-util-get-random-bytes.c-fixed-conversion-error-w.patch
>  create mode 100644 recipes-core/libxcrypt/libxcrypt_%.bbappend
>
> diff --git 
> a/recipes-core/libxcrypt/libxcrypt/0001-Fix-for-compilation-on-Windows.patch 
> b/recipes-core/libxcrypt/libxcrypt/0001-Fix-for-compilation-on-Windows.patch
> new file mode 100644
> index 000..5760ee0
> --- /dev/null
> +++ 
> b/recipes-core/libxcrypt/libxcrypt/0001-Fix-for-compilation-on-Windows.patch
> @@ -0,0 +1,37 @@
> +From a507b628a5a5d4e4f1cf0f0a9a72967470ee7624 Mon Sep 17 00:00:00 2001
> +From: Brecht Sanders 
> +Date: Fri, 3 Feb 2023 08:44:49 +0100
> +Subject: [PATCH] Fix for compilation on Windows
> +
> +This fix allows the library to build on Windows (at least with MinGW-w64).
> +
> +`.symver` is only supported for ELF format but Windows uses COFF/PE.
> +
> +Workaround dummy define of `symver_set()`
> +
> +Upstream-Status: Backport 
> [https://github.com/besser82/libxcrypt/commit/a507b628a5a5d4e4f1cf0f0a9a72967470ee7624]
> +
> +Signed-off-by: Wenlin Kang 
> +---
> + lib/crypt-port.h | 5 +
> + 1 file changed, 5 insertions(+)
> +
> +diff --git a/lib/crypt-port.h b/lib/crypt-port.h
> +index f06ca24..a707939 100644
> +--- a/lib/crypt-port.h
>  b/lib/crypt-port.h
> +@@ -201,6 +201,11 @@ extern size_t strcpy_or_abort (void *dst, size_t 
> d_size, const void *src);
> +   __asm__(".globl _" extstr);   \
> +   __asm__(".set _" extstr ", _" #intname)
> +
> ++#elif defined _WIN32
> ++
> ++/* .symver is only supported for ELF format, Windows uses COFF/PE */
> ++# define symver_set(extstr, intname, version, mode)
> ++
> + #elif defined __GNUC__ && __GNUC__ >= 3
> +
> + # define _strong_alias(name, aliasname) \
> +--
> +2.34.1
> +
> diff --git 
> a/recipes-core/libxcrypt/libxcrypt/0001-lib-util-get-random-bytes.c-fixed-conversion-error-w.patch
>  
> b/recipes-core/libxcrypt/libxcrypt/0001-lib-util-get-random-bytes.c-fixed-conversion-error-w.patch
> new file mode 100644
> index 000..3846f76
> --- /dev/null
> +++ 
> b/recipes-core/libxcrypt/libxcrypt/0001-lib-util-get-random-bytes.c-fixed-conversion-error-w.patch
> @@ -0,0 +1,47 @@
> +From ff99091eb8a6b9e6edc567f6d2552183fbaacec3 Mon Sep 17 00:00:00 2001
> +From: Wenlin Kang 
> +Date: Mon, 6 Nov 2023 14:43:28 +0800
> +Subject: [PATCH] lib/util-get-random-bytes.c: fixed conversion error with
> + mingw
> +
> +With x86_64-w64-mingw32-gcc. get below error:
> +| ../git/lib/util-get-random-bytes.c: In function '_crypt_get_random_bytes':
> +| ../git/lib/util-get-random-bytes.c:140:42: error: conversion from 'size_t' 
> {aka 'long long unsigned int'} to 'unsigned int' may change value 
> [-Werror=conversion]
> +|   140 |   ssize_t nread = read (fd, buf, buflen);
> +|   |  ^~
> +
> +In util-get-random-bytes.c, has get_random_bytes(void *buf, size_t buflen),
> +but in mingw-w64-mingw-w64/mingw-w64-headers/crt/io.h, read() has "unsigned 
> int"
> +read(int _FileHandle,void *_DstBuf,unsigned int _MaxCharCount), and has:
> + #ifdef _WIN64
> +   __MINGW_EXTENSION typedef unsigned __int64 size_t;
> + #else
> +   typedef unsigned int size_t;
> + #endif /* _WIN64 */
> +
> +Upstream-Status: Pending
> +
> +Signed-off-by: Wenlin Kang 
> +---
> + lib/util-get-random-bytes.c | 4 
> + 1 file changed, 4 insertions(+)
> +
> +diff --git a/lib/util-get-random-bytes.c b/lib/util-get-random-bytes.c
> +index 79816db..68cd378 100644
> +--- a/lib/util-get-random-bytes.c
>  b/lib/util-get-random-bytes.c
> +@@ -137,7 +137,11 @@ get_random_bytes(void *buf, size_t buflen)
> + 

[yocto] [meta-mingw][kirkstone][PATCH] libxcrypt: fixed some build error for nativesdk with mingw

2023-11-30 Thread wenlin.k...@windriver.com via lists.yoctoproject.org
From: Wenlin Kang 

Steps to reproduce
  1) add layer meta-mingw
  2) add line in local.conf
 SDKMACHINE = "x86_64-mingw32"
  3) bitbake nativesdk-libxcrypt

Fixed:
1. .symver error
  | {standard input}: Assembler messages:
  | {standard input}:4: Error: unknown pseudo-op: `.symver'

2. pedantic error
  | ../git/lib/crypt.c:316:24: error: ISO C does not allow extra ';' outside of 
a function [-Werror=pedantic]
  |   316 | SYMVER_crypt_gensalt_rn;
  |   |

3. conversion error
  | ../git/lib/util-get-random-bytes.c: In function '_crypt_get_random_bytes':
  | ../git/lib/util-get-random-bytes.c:140:42: error: conversion from 'size_t' 
{aka 'long long unsigned int'} to 'unsigned int' may change value 
[-Werror=conversion]
  |   140 |   ssize_t nread = read (fd, buf, buflen);

Signed-off-by: Wenlin Kang 
---
 .../0001-Fix-for-compilation-on-Windows.patch | 37 +++
 ...dom-bytes.c-fixed-conversion-error-w.patch | 47 +++
 recipes-core/libxcrypt/libxcrypt_%.bbappend   |  7 +++
 3 files changed, 91 insertions(+)
 create mode 100644 
recipes-core/libxcrypt/libxcrypt/0001-Fix-for-compilation-on-Windows.patch
 create mode 100644 
recipes-core/libxcrypt/libxcrypt/0001-lib-util-get-random-bytes.c-fixed-conversion-error-w.patch
 create mode 100644 recipes-core/libxcrypt/libxcrypt_%.bbappend

diff --git 
a/recipes-core/libxcrypt/libxcrypt/0001-Fix-for-compilation-on-Windows.patch 
b/recipes-core/libxcrypt/libxcrypt/0001-Fix-for-compilation-on-Windows.patch
new file mode 100644
index 000..5760ee0
--- /dev/null
+++ b/recipes-core/libxcrypt/libxcrypt/0001-Fix-for-compilation-on-Windows.patch
@@ -0,0 +1,37 @@
+From a507b628a5a5d4e4f1cf0f0a9a72967470ee7624 Mon Sep 17 00:00:00 2001
+From: Brecht Sanders 
+Date: Fri, 3 Feb 2023 08:44:49 +0100
+Subject: [PATCH] Fix for compilation on Windows
+
+This fix allows the library to build on Windows (at least with MinGW-w64).
+
+`.symver` is only supported for ELF format but Windows uses COFF/PE.
+
+Workaround dummy define of `symver_set()`
+
+Upstream-Status: Backport 
[https://github.com/besser82/libxcrypt/commit/a507b628a5a5d4e4f1cf0f0a9a72967470ee7624]
+
+Signed-off-by: Wenlin Kang 
+---
+ lib/crypt-port.h | 5 +
+ 1 file changed, 5 insertions(+)
+
+diff --git a/lib/crypt-port.h b/lib/crypt-port.h
+index f06ca24..a707939 100644
+--- a/lib/crypt-port.h
 b/lib/crypt-port.h
+@@ -201,6 +201,11 @@ extern size_t strcpy_or_abort (void *dst, size_t d_size, 
const void *src);
+   __asm__(".globl _" extstr);   \
+   __asm__(".set _" extstr ", _" #intname)
+ 
++#elif defined _WIN32
++
++/* .symver is only supported for ELF format, Windows uses COFF/PE */
++# define symver_set(extstr, intname, version, mode)
++
+ #elif defined __GNUC__ && __GNUC__ >= 3
+ 
+ # define _strong_alias(name, aliasname) \
+-- 
+2.34.1
+
diff --git 
a/recipes-core/libxcrypt/libxcrypt/0001-lib-util-get-random-bytes.c-fixed-conversion-error-w.patch
 
b/recipes-core/libxcrypt/libxcrypt/0001-lib-util-get-random-bytes.c-fixed-conversion-error-w.patch
new file mode 100644
index 000..3846f76
--- /dev/null
+++ 
b/recipes-core/libxcrypt/libxcrypt/0001-lib-util-get-random-bytes.c-fixed-conversion-error-w.patch
@@ -0,0 +1,47 @@
+From ff99091eb8a6b9e6edc567f6d2552183fbaacec3 Mon Sep 17 00:00:00 2001
+From: Wenlin Kang 
+Date: Mon, 6 Nov 2023 14:43:28 +0800
+Subject: [PATCH] lib/util-get-random-bytes.c: fixed conversion error with
+ mingw
+
+With x86_64-w64-mingw32-gcc. get below error:
+| ../git/lib/util-get-random-bytes.c: In function '_crypt_get_random_bytes':
+| ../git/lib/util-get-random-bytes.c:140:42: error: conversion from 'size_t' 
{aka 'long long unsigned int'} to 'unsigned int' may change value 
[-Werror=conversion]
+|   140 |   ssize_t nread = read (fd, buf, buflen);
+|   |  ^~
+
+In util-get-random-bytes.c, has get_random_bytes(void *buf, size_t buflen),
+but in mingw-w64-mingw-w64/mingw-w64-headers/crt/io.h, read() has "unsigned 
int"
+read(int _FileHandle,void *_DstBuf,unsigned int _MaxCharCount), and has:
+ #ifdef _WIN64
+   __MINGW_EXTENSION typedef unsigned __int64 size_t;
+ #else
+   typedef unsigned int size_t;
+ #endif /* _WIN64 */
+
+Upstream-Status: Pending
+
+Signed-off-by: Wenlin Kang 
+---
+ lib/util-get-random-bytes.c | 4 
+ 1 file changed, 4 insertions(+)
+
+diff --git a/lib/util-get-random-bytes.c b/lib/util-get-random-bytes.c
+index 79816db..68cd378 100644
+--- a/lib/util-get-random-bytes.c
 b/lib/util-get-random-bytes.c
+@@ -137,7 +137,11 @@ get_random_bytes(void *buf, size_t buflen)
+ dev_urandom_doesnt_work = true;
+   else
+ {
++#ifdef _WIN64
++  ssize_t nread = read (fd, buf, (unsigned int)buflen);
++#else
+   ssize_t nread = read (fd, buf, buflen);
++#endif
+   if (nread < 0 || (size_t)nread < buflen)
+ dev_urandom_doesnt_work = true;
+ 
+-- 
+2.25.1
+
diff --git