[PATCH] D59702: Unbreak the build of compiler-rt on Linux/mips64el

Simon Atanasyan via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Apr 23 13:58:08 PDT 2019


atanasyan added a comment.

I'm sorry for delay with handling this issue.

The **160** constant in the `FIRST_32_SECOND_64(144, 104)` depends on the following fragment from the `cmake/modules/HandleLLVMOptions.cmake` file introduced by the rL301171 <https://reviews.llvm.org/rL301171>. If `_LARGEFILE_SOURCE` and `_FILE_OFFSET_BITS=64` are defined, `sizeof(struct stat)` equals to **160**. This constant was configured by the rL301307 <https://reviews.llvm.org/rL301307>. Unfortunately, in case of building on MIPS 64-bit `CMAKE_SIZEOF_VOID_P` equals to **8** and these definitions are not provided to the compiler. It's a separate problem. Probably it needs to be handled by supporting the `LLVM_BUILD_32_BITS` option for MIPS targets. These option is used to build 32-bit binaries on 64-bit host. But now it's supported on limited set of architectures.

  if( CMAKE_SIZEOF_VOID_P EQUAL 4 AND NOT LLVM_FORCE_SMALLFILE_FOR_ANDROID)
    # FIXME: It isn't handled in LLVM_BUILD_32_BITS.
    add_definitions( -D_LARGEFILE_SOURCE )
    add_definitions( -D_FILE_OFFSET_BITS=64 )
  endif()

Meanwhile, could you try to workaround the issue by explicitly providing `-mabi=32` (for building MIPS 32-bit binaries) and `-mabi=64` (for building MIPS 64-bit binaries) options to the cmake? Something like that:

  -DCMAKE_C_FLAGS="-mabi=32"
  -DCMAKE_CXX_FLAGS="-mabi=32"


Repository:
  rCRT Compiler Runtime

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D59702/new/

https://reviews.llvm.org/D59702





More information about the cfe-commits mailing list