[compiler-rt] r182303 - [nolibc] Move GetPageSize to the individual platforms.
Kostya Serebryany
kcc at google.com
Mon May 20 22:56:10 PDT 2013
This broke asan on PowerPC linux, where the page size
(sysconf(_SC_PAGESIZE)) is 64K, but for some reason EXEC_PAGESIZE is 4K
On Mon, May 20, 2013 at 9:05 PM, Peter Collingbourne <peter at pcc.me.uk>wrote:
> Author: pcc
> Date: Mon May 20 12:05:29 2013
> New Revision: 182303
>
> URL: http://llvm.org/viewvc/llvm-project?rev=182303&view=rev
> Log:
> [nolibc] Move GetPageSize to the individual platforms.
>
> GetPageSize wraps sysconf(_SC_PAGESIZE) on POSIX platforms, but
> sysconf resides in libc. To make this libc-independent on Linux,
> move the wrapper to sanitizer_mac.cc and return the Linux-specific
> constant EXEC_PAGESIZE in the sanitizer_linux.cc implementation.
>
> Modified:
> compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc
> compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc
> compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc
>
> Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc?rev=182303&r1=182302&r2=182303&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc (original)
> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc Mon May 20
> 12:05:29 2013
> @@ -613,6 +613,10 @@ bool ThreadLister::GetDirectoryEntries()
> return true;
> }
>
> +uptr GetPageSize() {
> + return EXEC_PAGESIZE;
> +}
> +
> // Match full names of the form /path/to/base_name{-,.}*
> bool LibraryNameIs(const char *full_name, const char *base_name) {
> const char *name = full_name;
>
> Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc?rev=182303&r1=182302&r2=182303&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc (original)
> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc Mon May 20
> 12:05:29 2013
> @@ -170,6 +170,10 @@ void PrepareForSandboxing() {
> // Nothing here for now.
> }
>
> +uptr GetPageSize() {
> + return sysconf(_SC_PAGESIZE);
> +}
> +
> // ----------------- sanitizer_procmaps.h
>
> MemoryMappingLayout::MemoryMappingLayout(bool cache_enabled) {
>
> Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc?rev=182303&r1=182302&r2=182303&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc (original)
> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc Mon May 20
> 12:05:29 2013
> @@ -35,10 +35,6 @@
> namespace __sanitizer {
>
> // ------------- sanitizer_common.h
> -uptr GetPageSize() {
> - return sysconf(_SC_PAGESIZE);
> -}
> -
> uptr GetMmapGranularity() {
> return GetPageSize();
> }
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130521/37d0a0bf/attachment.html>
More information about the llvm-commits
mailing list