Patchwork rng-random: only build on POSIX platforms

login
register
mail settings
Submitter Anthony Liguori
Date Nov. 17, 2012, 1:41 p.m.
Message ID <1353159697-3922-1-git-send-email-aliguori@us.ibm.com>
Download mbox | patch
Permalink /patch/199854/
State New
Headers show

Comments

Anthony Liguori - Nov. 17, 2012, 1:41 p.m.
There is no /dev/random on win32.

Cc: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
---
 backends/Makefile.objs | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
Stefan Weil - Nov. 18, 2012, 10:29 a.m.
Am 17.11.2012 14:41, schrieb Anthony Liguori:
> There is no /dev/random on win32.
>
> Cc: Stefan Weil<weil@mail.berlios.de>
> Signed-off-by: Anthony Liguori<aliguori@us.ibm.com>
> ---
>   backends/Makefile.objs | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/backends/Makefile.objs b/backends/Makefile.objs
> index 875eebc..8836761 100644
> --- a/backends/Makefile.objs
> +++ b/backends/Makefile.objs
> @@ -1 +1,2 @@
> -common-obj-y += rng.o rng-random.o rng-egd.o
> +common-obj-y += rng.o rng-egd.o
> +common-obj-$(CONFIG_POSIX) += rng-random.o

The patch fixes a build issue on w32 / w64, but the reason given
is misleading: yes, Windows has no /dev files, but the MinGW
library tries to emulate the most important interfaces from /dev.

There is a /dev/random with MinGW, and it does what it is supposed
to do. See this URL for more supported "devices":
http://srv.onzk.net/linwin/apache-php3-mysql/CygWin_20b_98-4_Documents_OnLine/CygWin-Ug-Net/using-specialnames.html

Regards
Stefan W.
Paolo Bonzini - Nov. 18, 2012, 2:44 p.m.
Il 18/11/2012 11:29, Stefan Weil ha scritto:
> Am 17.11.2012 14:41, schrieb Anthony Liguori:
>> There is no /dev/random on win32.
>>
>> Cc: Stefan Weil<weil@mail.berlios.de>
>> Signed-off-by: Anthony Liguori<aliguori@us.ibm.com>
>> ---
>>   backends/Makefile.objs | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/backends/Makefile.objs b/backends/Makefile.objs
>> index 875eebc..8836761 100644
>> --- a/backends/Makefile.objs
>> +++ b/backends/Makefile.objs
>> @@ -1 +1,2 @@
>> -common-obj-y += rng.o rng-random.o rng-egd.o
>> +common-obj-y += rng.o rng-egd.o
>> +common-obj-$(CONFIG_POSIX) += rng-random.o
> 
> The patch fixes a build issue on w32 / w64, but the reason given
> is misleading: yes, Windows has no /dev files, but the MinGW
> library tries to emulate the most important interfaces from /dev.

Ah, I thought that was only MSYS and Cygiwin, not MinGW.

> There is a /dev/random with MinGW, and it does what it is supposed
> to do. See this URL for more supported "devices":
> http://srv.onzk.net/linwin/apache-php3-mysql/CygWin_20b_98-4_Documents_OnLine/CygWin-Ug-Net/using-specialnames.html

But a properly-implemented /dev/random will block more often than not,
so it is not a good idea to use a "fake" O_NONBLOCK.  Using native Win32
crypto APIs is a much better idea.

Paolo

Patch

diff --git a/backends/Makefile.objs b/backends/Makefile.objs
index 875eebc..8836761 100644
--- a/backends/Makefile.objs
+++ b/backends/Makefile.objs
@@ -1 +1,2 @@ 
-common-obj-y += rng.o rng-random.o rng-egd.o
+common-obj-y += rng.o rng-egd.o
+common-obj-$(CONFIG_POSIX) += rng-random.o