[scudo][standalone] Introduce the C & C++ wrappers [fixed]
authorKostya Kortchinsky <kostyak@google.com>
Thu, 27 Jun 2019 14:23:26 +0000 (14:23 +0000)
committerKostya Kortchinsky <kostyak@google.com>
Thu, 27 Jun 2019 14:23:26 +0000 (14:23 +0000)
commitd44cb7a65673796927cbb651685044d7e3ed0691
tree122ea4328ba249dd63a9db7bdf169a7b4120ef28
parentd0e098696f940842146c70bc0f7bf8a41beb46a8
[scudo][standalone] Introduce the C & C++ wrappers [fixed]

Summary:
This is a redo of D63612.

Two problems came up on some bots:
- `__builtin_umull_overflow` was not declared. This is likely due to an
  older clang or gcc, so add a guard with `__has_builtin` and fallback
  to a division in the event the builtin doesn't exist;
- contradicting definition for `malloc`, etc. This is AFAIU due to the
  fact that we ended up transitively including `stdlib.h` in the `.inc`
  due to it being the flags parser header: so move the include to the
  cc instead.

This should fix the issues, but since those didn't come up in my local
tests it's mostly guesswork.

Rest is the same!

Reviewers: morehouse, hctim, eugenis, vitalybuka, dyung, hans

Reviewed By: morehouse, dyung, hans

Subscribers: srhines, mgorny, delcypher, jfb, #sanitizers, llvm-commits

Tags: #llvm, #sanitizers

Differential Revision: https://reviews.llvm.org/D63831

llvm-svn: 364547
13 files changed:
compiler-rt/lib/scudo/standalone/CMakeLists.txt
compiler-rt/lib/scudo/standalone/flags_parser.cc
compiler-rt/lib/scudo/standalone/flags_parser.h
compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt
compiler-rt/lib/scudo/standalone/tests/wrappers_c_test.cc [new file with mode: 0644]
compiler-rt/lib/scudo/standalone/tests/wrappers_cpp_test.cc [new file with mode: 0644]
compiler-rt/lib/scudo/standalone/tsd.h
compiler-rt/lib/scudo/standalone/wrappers_c.cc [new file with mode: 0644]
compiler-rt/lib/scudo/standalone/wrappers_c.h [new file with mode: 0644]
compiler-rt/lib/scudo/standalone/wrappers_c.inc [new file with mode: 0644]
compiler-rt/lib/scudo/standalone/wrappers_c_bionic.cc [new file with mode: 0644]
compiler-rt/lib/scudo/standalone/wrappers_c_checks.h [new file with mode: 0644]
compiler-rt/lib/scudo/standalone/wrappers_cpp.cc [new file with mode: 0644]