Skip to content

Commit 3430e60

Browse files
authored
Set target arch and default target triple explicitly (#1001)
This fixes an odd quirk where the JIT compiler will default to x86 when cross compiling for arm. * upload cmake logs on failure
1 parent 13a9735 commit 3430e60

File tree

3 files changed

+33
-0
lines changed

3 files changed

+33
-0
lines changed

.github/workflows/vcpkg_ci_amd64.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,13 @@ jobs:
116116
echo "VCPKG_ROOT=$(pwd)/${{ env.ARTIFACT_NAME }}" >> $GITHUB_ENV
117117
echo "TARGET_TRIPLET=${{ matrix.host.triplet }}" >> $GITHUB_ENV
118118
119+
- name: Upload CMake logs on error
120+
if: failure()
121+
uses: actions/upload-artifact@v3
122+
with:
123+
name: ${{ env.ARTIFACT_NAME }}_logs
124+
path: ${{ github.workspace }}/vcpkg/buildtrees/**/*.log
125+
119126
- name: 'Export Packages'
120127
if: contains(env.COMMIT_MESSAGE, 'debug artifacts') || github.event.release
121128
shell: 'bash'

.github/workflows/vcpkg_ci_mac.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,13 @@ jobs:
9999
echo "VCPKG_ROOT=$(pwd)/${{ env.ARTIFACT_NAME }}" >> $GITHUB_ENV
100100
echo "TARGET_TRIPLET=${{ matrix.target_arch }}-osx-rel" >> $GITHUB_ENV
101101
102+
- name: Upload CMake logs on error
103+
if: failure()
104+
uses: actions/upload-artifact@v3
105+
with:
106+
name: ${{ env.ARTIFACT_NAME }}_logs
107+
path: ${{ github.workspace }}/vcpkg/buildtrees/**/*.log
108+
102109
- name: 'Export Packages'
103110
if: contains(env.COMMIT_MESSAGE, 'debug artifacts') || github.event.release
104111
shell: 'bash'

ports/llvm-15/portfile.cmake

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,10 +292,28 @@ vcpkg_add_to_path(${PYTHON3_DIR})
292292

293293
set(LLVM_LINK_JOBS 2)
294294

295+
# Cross compilation for M1
296+
if (VCPKG_TARGET_IS_OSX)
297+
set(LLVM_DEFAULT_TARGET_TRIPLE "${VCPKG_OSX_ARCHITECTURES}-apple-darwin")
298+
list(APPEND OPTIONS "-DLLVM_DEFAULT_TARGET_TRIPLE=${LLVM_DEFAULT_TARGET_TRIPLE}")
299+
message(STATUS "Default target triple ${LLVM_DEFAULT_TARGET_TRIPLE}")
300+
endif()
301+
302+
if (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
303+
set(LLVM_TARGET_ARCH "AArch64")
304+
elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
305+
set(LLVM_TARGET_ARCH "ARM")
306+
elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
307+
set(LLVM_TARGET_ARCH "X86")
308+
else()
309+
message(FATAL_ERROR "Target Architecture not supported.")
310+
endif()
311+
295312
vcpkg_cmake_configure(
296313
SOURCE_PATH ${SOURCE_PATH}/llvm
297314
OPTIONS
298315
${FEATURE_OPTIONS}
316+
${OPTIONS}
299317
-DLLVM_INCLUDE_EXAMPLES=OFF
300318
-DLLVM_BUILD_EXAMPLES=OFF
301319
-DLLVM_INCLUDE_DOCS=OFF
@@ -304,6 +322,7 @@ vcpkg_cmake_configure(
304322
-DLLVM_BUILD_TESTS=OFF
305323
-DLLVM_INCLUDE_BENCHMARKS=OFF
306324
-DLLVM_BUILD_BENCHMARKS=OFF
325+
"-DLLVM_TARGET_ARCH=${LLVM_TARGET_ARCH}"
307326
# Force TableGen to be built with optimization. This will significantly improve build time.
308327
-DLLVM_OPTIMIZED_TABLEGEN=ON
309328
"-DLLVM_ENABLE_PROJECTS=${LLVM_ENABLE_PROJECTS}"

0 commit comments

Comments
 (0)