Add workaround for gcc bug on sparc/64bit
PR: 52900
Submitted by: sf
Reviewed by: sf, covener, rpluem
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@
1476144 13f79535-47bb-0310-9956-
ffa450edef68
Changes with Apache 2.4.5
+ *) core: Add workaround for gcc bug on sparc/64bit. PR 52900.
+ [Stefan Fritsch]
+
*) mod_setenvif: Fix crash in case SetEnvif and SetEnvIfExpr are used
together. PR 54881. [Ruediger Pluem]
2.4.x patch: trunk patches work
+1: sf, humbedooh, covener
- * core: Add workaround for gcc bug on sparc/64bit
- trunk patches: https://svn.apache.org/r1470183
- 2.4.x patch: trunk patches work
- +1: sf, covener, rpluem
-
PATCHES PROPOSED TO BACKPORT FROM TRUNK:
[ New proposals should be added at the end of the list ]
AP_DECLARE(apr_uint32_t) ap_random_pick(apr_uint32_t min, apr_uint32_t max)
{
apr_uint32_t number;
+#if (!__GNUC__ || __GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) || \
+ !__sparc__ || APR_SIZEOF_VOIDP != 8)
+ /* This triggers a gcc bug on sparc/64bit with gcc < 4.8, PR 52900 */
if (max < 16384) {
apr_uint16_t num16;
ap_random_insecure_bytes(&num16, sizeof(num16));
RAND_RANGE(num16, min, max, APR_UINT16_MAX);
number = num16;
}
- else {
+ else
+#endif
+ {
ap_random_insecure_bytes(&number, sizeof(number));
RAND_RANGE(number, min, max, APR_UINT32_MAX);
}