[all-commits] [llvm/llvm-project] cd0a82: add support for riscv64

Alex Fan via All-commits all-commits at lists.llvm.org
Fri Oct 6 13:49:14 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: cd0a8245b0feb951569eb3d396a1ff629daeb55c
      https://github.com/llvm/llvm-project/commit/cd0a8245b0feb951569eb3d396a1ff629daeb55c
  Author: Alex Fan <alex.fan.q at gmail.com>
  Date:   2023-10-06 (Fri, 06 Oct 2023)

  Changed paths:
    M clang/lib/Driver/ToolChains/Linux.cpp
    M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
    M compiler-rt/lib/tsan/rtl/CMakeLists.txt
    M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
    M compiler-rt/lib/tsan/rtl/tsan_platform.h
    M compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
    M compiler-rt/lib/tsan/rtl/tsan_rtl.h
    M compiler-rt/test/tsan/map32bit.cpp
    M compiler-rt/test/tsan/mmap_large.cpp
    M compiler-rt/test/tsan/test.h

  Log Message:
  -----------
  add support for riscv64

Implements for sv39 and sv48 VMA layout.

Userspace only has access to the bottom half of vma range. The top half is used by kernel.
There is no dedicated vsyscall or heap segment.
PIE program is allocated to start at TASK_SIZE/3*2. Maximum ASLR is ARCH_MMAP_RND_BITS_MAX+PAGE_SHIFT=24+12=36
Loader, vdso and other libraries are allocated below stack from the top.

Also change RestoreAddr to use 4 bits to accommodate MappingRiscv64_48

Reviewed by: MaskRay, dvyukov, asb, StephenFan, luismarques, jrtc27, hiraditya, vitalybuka

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




More information about the All-commits mailing list