ObjFW  Check-in [ba1135b0b2]

Overview
Comment:Add support for getrandom()
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: ba1135b0b28106f36be3178cd0661f1dc268a9b2495a62da2d155543d7a6dbc3
User & Date: js on 2020-07-12 10:00:16
Other Links: manifest | tags
Context
2020-07-12
10:35
Split of_random() into of_random{16,32,64}() check-in: 14f05841a3 user: js tags: trunk
10:00
Add support for getrandom() check-in: ba1135b0b2 user: js tags: trunk
09:49
Make of_random() a function check-in: c1fe4b2b77 user: js tags: trunk
Changes

Modified configure.ac from [989ef7fcda] to [69c688a7b0].

897
898
899
900
901
902
903
904

905
906
907
908
909
910
911
897
898
899
900
901
902
903

904
905
906
907
908
909
910
911







-
+







	])
	AS_IF([test x"$enable_static" = x"yes" -o x"$enable_shared" = x"no"], [
		AC_SUBST(ENCODINGS_A, "encodings.a")
		AC_SUBST(ENCODINGS_ENCODINGS_A, "encodings/encodings.a")
	])
])

AC_CHECK_FUNCS(arc4random random, break)
AC_CHECK_FUNCS(arc4random getrandom random, break)

AS_IF([test x"$host_os" != x"morphos"], [
	AC_CHECK_LIB(dl, dlopen, LIBS="$LIBS -ldl")
])
AC_CHECK_HEADERS_ONCE(dlfcn.h)
case "$host_os" in
	netbsd*)

Modified src/OFObject.m from [54579841e3] to [d3c7a17532].

119
120
121
122
123
124
125
126

127






128
129
130
131
132
133
134
119
120
121
122
123
124
125

126
127
128
129
130
131
132
133
134
135
136
137
138
139
140







-
+

+
+
+
+
+
+







# endif
}
#endif

uint32_t
of_random(void)
{
#ifdef HAVE_ARC4RANDOM
#if defined(HAVE_ARC4RANDOM)
	return arc4random();
#elif defined(HAVE_GETRANDOM)
	uint32_t buffer;

	OF_ENSURE(getrandom(&buffer, sizeof(buffer), 0) == sizeof(buffer));

	return buffer;
#else
	static of_once_t onceControl;

	of_once(&onceControl, initRandom);
# ifdef HAVE_RANDOM
	return (((uint32_t)(random()) << 16) | ((uint32_t)(random()) & 0xFFFF));
# else