Skip to content

Commit

Permalink
Set target arch and default target triple explicitly (#1001)
Browse files Browse the repository at this point in the history
This fixes an odd quirk where the JIT compiler will default to x86 when
cross compiling for arm.

* upload cmake logs on failure
  • Loading branch information
Ninja3047 authored Jan 10, 2023
1 parent 13a9735 commit 3430e60
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 0 deletions.
7 changes: 7 additions & 0 deletions .github/workflows/vcpkg_ci_amd64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,13 @@ jobs:
echo "VCPKG_ROOT=$(pwd)/${{ env.ARTIFACT_NAME }}" >> $GITHUB_ENV
echo "TARGET_TRIPLET=${{ matrix.host.triplet }}" >> $GITHUB_ENV
- name: Upload CMake logs on error
if: failure()
uses: actions/upload-artifact@v3
with:
name: ${{ env.ARTIFACT_NAME }}_logs
path: ${{ github.workspace }}/vcpkg/buildtrees/**/*.log

- name: 'Export Packages'
if: contains(env.COMMIT_MESSAGE, 'debug artifacts') || github.event.release
shell: 'bash'
Expand Down
7 changes: 7 additions & 0 deletions .github/workflows/vcpkg_ci_mac.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,13 @@ jobs:
echo "VCPKG_ROOT=$(pwd)/${{ env.ARTIFACT_NAME }}" >> $GITHUB_ENV
echo "TARGET_TRIPLET=${{ matrix.target_arch }}-osx-rel" >> $GITHUB_ENV
- name: Upload CMake logs on error
if: failure()
uses: actions/upload-artifact@v3
with:
name: ${{ env.ARTIFACT_NAME }}_logs
path: ${{ github.workspace }}/vcpkg/buildtrees/**/*.log

- name: 'Export Packages'
if: contains(env.COMMIT_MESSAGE, 'debug artifacts') || github.event.release
shell: 'bash'
Expand Down
19 changes: 19 additions & 0 deletions ports/llvm-15/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -292,10 +292,28 @@ vcpkg_add_to_path(${PYTHON3_DIR})

set(LLVM_LINK_JOBS 2)

# Cross compilation for M1
if (VCPKG_TARGET_IS_OSX)
set(LLVM_DEFAULT_TARGET_TRIPLE "${VCPKG_OSX_ARCHITECTURES}-apple-darwin")
list(APPEND OPTIONS "-DLLVM_DEFAULT_TARGET_TRIPLE=${LLVM_DEFAULT_TARGET_TRIPLE}")
message(STATUS "Default target triple ${LLVM_DEFAULT_TARGET_TRIPLE}")
endif()

if (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
set(LLVM_TARGET_ARCH "AArch64")
elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
set(LLVM_TARGET_ARCH "ARM")
elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
set(LLVM_TARGET_ARCH "X86")
else()
message(FATAL_ERROR "Target Architecture not supported.")
endif()

vcpkg_cmake_configure(
SOURCE_PATH ${SOURCE_PATH}/llvm
OPTIONS
${FEATURE_OPTIONS}
${OPTIONS}
-DLLVM_INCLUDE_EXAMPLES=OFF
-DLLVM_BUILD_EXAMPLES=OFF
-DLLVM_INCLUDE_DOCS=OFF
Expand All @@ -304,6 +322,7 @@ vcpkg_cmake_configure(
-DLLVM_BUILD_TESTS=OFF
-DLLVM_INCLUDE_BENCHMARKS=OFF
-DLLVM_BUILD_BENCHMARKS=OFF
"-DLLVM_TARGET_ARCH=${LLVM_TARGET_ARCH}"
# Force TableGen to be built with optimization. This will significantly improve build time.
-DLLVM_OPTIMIZED_TABLEGEN=ON
"-DLLVM_ENABLE_PROJECTS=${LLVM_ENABLE_PROJECTS}"
Expand Down

0 comments on commit 3430e60

Please sign in to comment.