Solaris madvise() first parameter is caddr_t; Linux, BSDs, etc. is void*.
The cast is safe as void and unsigned char have same alignment.

file upstream bug

--- webkitgtk-2.48.1/Source/bmalloc/bmalloc/VMAllocate.h.orig
+++ webkitgtk-2.48.1/Source/bmalloc/bmalloc/VMAllocate.h
@@ -213,7 +213,7 @@
 #elif BOS(FREEBSD)
     SYSCALL(madvise(p, vmSize, MADV_FREE));
 #else
-    SYSCALL(madvise(p, vmSize, MADV_DONTNEED));
+    SYSCALL(madvise(reinterpret_cast<char*>(p), vmSize, MADV_DONTNEED));
 #if BOS(LINUX)
     SYSCALL(madvise(p, vmSize, MADV_DONTDUMP));
 #endif
@@ -230,7 +230,7 @@
     // to commit physical memory to back a range of allocated virtual memory.
     // Instead the kernel will commit pages as they are touched.
 #else
-    SYSCALL(madvise(p, vmSize, MADV_NORMAL));
+    SYSCALL(madvise(reinterpret_cast<char*>(p), vmSize, MADV_NORMAL));
 #if BOS(LINUX)
     SYSCALL(madvise(p, vmSize, MADV_DODUMP));
 #endif