[all-commits] [llvm/llvm-project] 15c9af: [asan][test] Disable malloc-no-intercept.c on Solaris

rorth via All-commits all-commits at lists.llvm.org
Thu Sep 24 02:59:55 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 15c9af5618c8c4a810994df53543af9060086a8e
      https://github.com/llvm/llvm-project/commit/15c9af5618c8c4a810994df53543af9060086a8e
  Author: Rainer Orth <ro at gcc.gnu.org>
  Date:   2020-09-24 (Thu, 24 Sep 2020)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
    M compiler-rt/test/asan/TestCases/malloc-no-intercept.c

  Log Message:
  -----------
  [asan][test] Disable malloc-no-intercept.c on Solaris

`TestCases/malloc-no-intercept.c` `FAIL`s on Solaris/x86, e.g. with
`-Dtestfunc=mallinfo`:

  /usr/bin/ld: /tmp/malloc-no-intercept-586529.o: in function `main':
  /vol/llvm/src/llvm-project/dist/compiler-rt/test/asan/TestCases/malloc-no-intercept.c:30: undefined reference to `nonexistent_function'
  clang-12: error: linker command failed with exit code 1 (use -v to see invocation)

This is not surprising, actually:

- `mallinfo` and `mallopt` only exist in `libmalloc`
- `pvalloc` doesn't exist all all
- `cfree` does exist in `libc`, but isn't declared in any public header and
  the OpenSolaris sources reveal that it has a different signature than on
  Linux
- only `memalign` is a public interface

To avoid this, this patch disables the interceptors for all but `meminfo`.
Additionally, the test is marked `UNSUPPORTED` on Solaris since the
`memalign` and `cfree` variants **do** link on Solaris.

Tested on `amd64-pc-solaris2.11`.

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




More information about the All-commits mailing list