tcmalloc: support userland ASLR on Linux and Chrome OS

Original CLs:

- https://chromiumcodereview.appspot.com/12093035

  TCMalloc: support userland ASLR on Linux and Chrome OS

  On Linux and Chrome OS, we implement user-land ASLR in TCMalloc
  on 64 bits Intel architecture.

  In this configuration, we are not constrained by the address space
  and we don't mind fragmentation.
  But to be on the safe side, we only ever fragment half of the
  address space.

  BUG=170133
  NOTRY=true

  Committed:
  https://src.chromium.org/viewvc/chrome?view=rev&revision=179776

- https://chromiumcodereview.appspot.com/12192024

  Linux: grow a unique random mapping in ASLR

  We loosen ASLR by only growing one random mapping. The previous
  version
  had security benefits but had a negative performance impact.
  This change aims to be performance neutral in respect to the pre-ASLR
  era.
  At a later date, we may try to strike a good balance between
  performance and
  security.

  This is a re-land of https://chromiumcodereview.appspot.com/12090112/

  BUG=170133, 173371
  NOTRY=true
  TBR=jar

  Committed:
  https://src.chromium.org/viewvc/chrome?view=rev&revision=180556

- https://codereview.chromium.org/237673002

  remove redundant ifdefs

  OS_CHROMEOS implies OS_LINUX, so OS_LINUX || OS_CHROMEOS can be
  simplified to OS_LINUX

  BUG=none

  Committed:
  https://src.chromium.org/viewvc/chrome?view=rev&revision=263993

BUG=724399,b:70905156

Change-Id: Ic9da3524439312252f0f14d4c55ad882d67ebfed
Reviewed-on: https://chromium-review.googlesource.com/1130791
Reviewed-by: Will Harris <wfh@chromium.org>
Reviewed-by: Chris Palmer <palmer@chromium.org>
Commit-Queue: Gabriel Marin <gmx@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#585993}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 27ebd00bcd3c6095c3626526cec2b7f438965757
1 file changed
tree: 9ccb75120e7aa23257463bb66710639fe9fc93bc
  1. src/