[all-commits] [llvm/llvm-project] b51e6b: [libc] Allows cross compilation of membenchmarks

Guillaume Chatelet via All-commits all-commits at lists.llvm.org
Thu May 11 01:58:09 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b51e6bfcb6745d88a0d41be28c6204019c79bea2
      https://github.com/llvm/llvm-project/commit/b51e6bfcb6745d88a0d41be28c6204019c79bea2
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2023-05-11 (Thu, 11 May 2023)

  Changed paths:
    M libc/benchmarks/CMakeLists.txt
    M libc/cmake/modules/LLVMLibCTestRules.cmake

  Log Message:
  -----------
  [libc] Allows cross compilation of membenchmarks

This patch makes sure:
 - we pass the correct compiler options when building Google benchmarks,
 - we only import the C++ version of the memory functions.

The change in libc/cmake/modules/LLVMLibCTestRules.cmake is here to make sure CMake can generate the right command line in the presence of the CMAKE_CROSSCOMPILING_EMULATOR option.

Relevant documentation:
https://cmake.org/cmake/help/latest/variable/CMAKE_CROSSCOMPILING_EMULATOR.html
https://cmake.org/cmake/help/latest/command/add_custom_command.html#command:add_custom_command
"
If COMMAND specifies an executable target name (created by the `add_executable()` command), it will automatically be replaced by the location of the executable created at build time if either of the following is true:
 - The target is not being cross-compiled (i.e. the CMAKE_CROSSCOMPILING variable is not set to true).
 - New in version 3.6: The target is being cross-compiled and an emulator is provided (i.e. its CROSSCOMPILING_EMULATOR target property is set). In this case, the contents of CROSSCOMPILING_EMULATOR will be prepended to the command before the location of the target executable.
"

Reviewed By: gchatelet

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




More information about the All-commits mailing list