[all-commits] [llvm/llvm-project] aaba9a: [compiler-rt] Don't use __libc_stack_end on ARM

Ilya Leoshkevich via All-commits all-commits at lists.llvm.org
Wed Apr 8 05:28:16 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: aaba9a77615008624eb48fd333ac872c9e1d8883
      https://github.com/llvm/llvm-project/commit/aaba9a77615008624eb48fd333ac872c9e1d8883
  Author: Ilya Leoshkevich <iii at linux.ibm.com>
  Date:   2020-04-08 (Wed, 08 Apr 2020)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp

  Log Message:
  -----------
  [compiler-rt] Don't use __libc_stack_end on ARM

Summary:
Commit b684c1a50f70 ("Add a `Symbolizer::GetEnvP()` method that allows
symbolizer implementations to customise the environment of the
symbolizer binary.") exposed a latent ARM issue, and that broke

http://lab.llvm.org:8011/builders/clang-cmake-thumbv7-full-sh

This coincided with breakage caused by my commit 5f5fb56c68e4
("[compiler-rt] Intercept the uname() function"), so I had to
investigate.

The issue is that GetArgsAndEnv does not work on ARM: there glibc's
_start overwrites argc value stored at __libc_start_end, breaking the
existing argv/envp parsing logic.

Fix by inferring argc from argv.

Reviewers: eugenis, vitalybuka

Reviewed By: eugenis

Subscribers: dberris, kristof.beyls, danielkiss, #sanitizers, delcypher

Tags: #sanitizers

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




More information about the All-commits mailing list