From 025f1035d0feabd7a04843d78a935163f1e17779 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Thu, 4 Jan 2024 10:09:52 +0300 Subject: [PATCH 01/30] fix: use different prefix --- scripts/configure_llvm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index ec3d8e2..a253436 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -53,7 +53,7 @@ "-DCMAKE_C_COMPILER=clang", "-DCMAKE_CXX_COMPILER=clang++", "-DCMAKE_BUILD_TYPE=Release", - "-DCMAKE_INSTALL_PREFIX=\".\"", + "-DCMAKE_INSTALL_PREFIX=\"\"", "-DLLVM_TARGETS_TO_BUILD={}".format(';'.join(targets_to_build)), "-DLLVM_RUNTIME_TARGETS={}".format(';'.join(runtime_targets)), "-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON", From bae053e644d21a3bffa398279f6fde13340b7886 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Thu, 4 Jan 2024 12:59:25 +0300 Subject: [PATCH 02/30] use junky bash script to avoid stupid gnu conventions --- .github/workflows/llvm.yaml | 22 ++++++++++++++++++++-- scripts/flatten_usr_dirs.sh | 13 +++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 scripts/flatten_usr_dirs.sh diff --git a/.github/workflows/llvm.yaml b/.github/workflows/llvm.yaml index 91ec79b..b0260bb 100644 --- a/.github/workflows/llvm.yaml +++ b/.github/workflows/llvm.yaml @@ -51,9 +51,18 @@ jobs: DESTDIR=$PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-libcpp ninja install-stdlib-distribution-stripped DESTDIR=$PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}} ninja install-toolchain-distribution-stripped + ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-clang-tidy + ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-clang-doc + ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-clang-format + ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-clangd + ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-bolt + ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-lld + ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-libcpp + ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}} + ninja llvm-dwp DESTDIR=$PWD/install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}} ninja install-pstl - cp ./bin/llvm-dwp ../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}/bin + cp ./bin/llvm-dwp ../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}/bin/ cd ../install @@ -108,9 +117,18 @@ jobs: DESTDIR=$PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-libcpp ninja install-stdlib-distribution-stripped DESTDIR=$PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}} ninja install-toolchain-distribution-stripped + ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-clang-tidy + ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-clang-doc + ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-clang-format + ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-clangd + ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-bolt + ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-lld + ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-libcpp + ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}} + ninja llvm-dwp DESTDIR=$PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}} ninja install-pstl - cp ./bin/llvm-dwp ../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}/bin + cp ./bin/llvm-dwp ../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}/bin/ cd ../install diff --git a/scripts/flatten_usr_dirs.sh b/scripts/flatten_usr_dirs.sh new file mode 100644 index 0000000..00a09d1 --- /dev/null +++ b/scripts/flatten_usr_dirs.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -eu + +if [ -d "$1/usr" ]; then + for dir in "$1/usr/*/" + do + dir=${dir%*/} + mv $dir "$1/${dir##*/}" + done + + rm -r $1/usr +fi \ No newline at end of file From 2cc22fab0fdbd6c095f266b9d593fb1ef5e91620 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Thu, 4 Jan 2024 15:22:14 +0300 Subject: [PATCH 03/30] fix typo --- .github/workflows/llvm.yaml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/llvm.yaml b/.github/workflows/llvm.yaml index b0260bb..dde07db 100644 --- a/.github/workflows/llvm.yaml +++ b/.github/workflows/llvm.yaml @@ -51,14 +51,14 @@ jobs: DESTDIR=$PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-libcpp ninja install-stdlib-distribution-stripped DESTDIR=$PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}} ninja install-toolchain-distribution-stripped - ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-clang-tidy - ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-clang-doc - ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-clang-format - ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-clangd - ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-bolt - ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-lld - ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-libcpp - ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}} + ../toolchain/scripts/flatten_usr_dirs.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-clang-tidy + ../toolchain/scripts/flatten_usr_dirs.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-clang-doc + ../toolchain/scripts/flatten_usr_dirs.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-clang-format + ../toolchain/scripts/flatten_usr_dirs.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-clangd + ../toolchain/scripts/flatten_usr_dirs.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-bolt + ../toolchain/scripts/flatten_usr_dirs.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-lld + ../toolchain/scripts/flatten_usr_dirs.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}}-libcpp + ../toolchain/scripts/flatten_usr_dirs.sh $PWD/../install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}} ninja llvm-dwp DESTDIR=$PWD/install/${{inputs.llvm_tag}}-linux-${{matrix.cpu}} ninja install-pstl @@ -117,14 +117,14 @@ jobs: DESTDIR=$PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-libcpp ninja install-stdlib-distribution-stripped DESTDIR=$PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}} ninja install-toolchain-distribution-stripped - ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-clang-tidy - ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-clang-doc - ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-clang-format - ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-clangd - ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-bolt - ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-lld - ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-libcpp - ../toolchain/scripts/flatten_usr_dir.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}} + ../toolchain/scripts/flatten_usr_dirs.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-clang-tidy + ../toolchain/scripts/flatten_usr_dirs.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-clang-doc + ../toolchain/scripts/flatten_usr_dirs.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-clang-format + ../toolchain/scripts/flatten_usr_dirs.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-clangd + ../toolchain/scripts/flatten_usr_dirs.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-bolt + ../toolchain/scripts/flatten_usr_dirs.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-lld + ../toolchain/scripts/flatten_usr_dirs.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}}-libcpp + ../toolchain/scripts/flatten_usr_dirs.sh $PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}} ninja llvm-dwp DESTDIR=$PWD/../install/${{inputs.llvm_tag}}-macos-${{matrix.cpu}} ninja install-pstl From 06eebd9bd9cf86477aa2365f4e945290fa339816 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Thu, 4 Jan 2024 17:01:34 +0300 Subject: [PATCH 04/30] change script permission --- scripts/flatten_usr_dirs.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 scripts/flatten_usr_dirs.sh diff --git a/scripts/flatten_usr_dirs.sh b/scripts/flatten_usr_dirs.sh old mode 100644 new mode 100755 From df3447b1f7f6568dd6391b4e1410de85b1fad9c7 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Thu, 4 Jan 2024 18:52:26 +0300 Subject: [PATCH 05/30] fix prefix once again --- scripts/configure_llvm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index a253436..8f5c5f1 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -53,7 +53,7 @@ "-DCMAKE_C_COMPILER=clang", "-DCMAKE_CXX_COMPILER=clang++", "-DCMAKE_BUILD_TYPE=Release", - "-DCMAKE_INSTALL_PREFIX=\"\"", + "-DCMAKE_INSTALL_PREFIX=\"/\"", "-DLLVM_TARGETS_TO_BUILD={}".format(';'.join(targets_to_build)), "-DLLVM_RUNTIME_TARGETS={}".format(';'.join(runtime_targets)), "-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON", From d8fd2b252111acc338d7201ddefb894c531482ec Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Thu, 4 Jan 2024 20:34:44 +0300 Subject: [PATCH 06/30] fix prefix? --- scripts/configure_llvm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index 8f5c5f1..788832d 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -53,7 +53,7 @@ "-DCMAKE_C_COMPILER=clang", "-DCMAKE_CXX_COMPILER=clang++", "-DCMAKE_BUILD_TYPE=Release", - "-DCMAKE_INSTALL_PREFIX=\"/\"", + "-DCMAKE_INSTALL_PREFIX=/", "-DLLVM_TARGETS_TO_BUILD={}".format(';'.join(targets_to_build)), "-DLLVM_RUNTIME_TARGETS={}".format(';'.join(runtime_targets)), "-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON", From e13a35f711f677dcd76ab72a2a9a008eb9d13396 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Thu, 4 Jan 2024 22:10:26 +0300 Subject: [PATCH 07/30] try a different prefix --- scripts/configure_llvm.py | 2 +- scripts/flatten_usr_dirs.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index 788832d..3efafbd 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -53,7 +53,7 @@ "-DCMAKE_C_COMPILER=clang", "-DCMAKE_CXX_COMPILER=clang++", "-DCMAKE_BUILD_TYPE=Release", - "-DCMAKE_INSTALL_PREFIX=/", + "-DCMAKE_INSTALL_PREFIX=/usr/local", "-DLLVM_TARGETS_TO_BUILD={}".format(';'.join(targets_to_build)), "-DLLVM_RUNTIME_TARGETS={}".format(';'.join(runtime_targets)), "-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON", diff --git a/scripts/flatten_usr_dirs.sh b/scripts/flatten_usr_dirs.sh index 00a09d1..522f31a 100755 --- a/scripts/flatten_usr_dirs.sh +++ b/scripts/flatten_usr_dirs.sh @@ -3,10 +3,10 @@ set -eu if [ -d "$1/usr" ]; then - for dir in "$1/usr/*/" + for dir in $1/usr/local/*/ do dir=${dir%*/} - mv $dir "$1/${dir##*/}" + mv $dir $1/${dir##*/} done rm -r $1/usr From 46df49c555c8e2a9bc7c2b8df17d7530a54c9d18 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 5 Jan 2024 10:01:28 +0300 Subject: [PATCH 08/30] cross-compile please? --- .github/workflows/llvm.yaml | 5 +++++ scripts/configure_llvm.py | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/.github/workflows/llvm.yaml b/.github/workflows/llvm.yaml index dde07db..fd18e87 100644 --- a/.github/workflows/llvm.yaml +++ b/.github/workflows/llvm.yaml @@ -21,6 +21,11 @@ jobs: run: sudo apt install -yqq gcc-aarch64-linux-gnu g++-aarch64-linux-gnu binutils-aarch64-linux-gnu - name: Install RISC-V toolchain run: sudo apt install -yqq gcc-riscv64-linux-gnu g++-riscv64-linux-gnu binutils-riscv64-linux-gnu + - name: Setup mold + uses: warchant/setup-mold@v1 + with: + version: 2.4.0 + make_default: false - name: Checkout LLVM uses: actions/checkout@v4 with: diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index 3efafbd..b031f11 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -78,6 +78,9 @@ if platform.system() == "Darwin": cmake_args.append("-DRUNTIMES_BUILD_ALLOW_DARWIN=ON") + cmake_args.append("-DLLVM_ENABLE_LLD=ON") +elif platform.system() == "Linux": + cmake_args.append("-DLLVM_USE_LINKER=mold") for rt in runtime_targets: cmake_args.extend([ @@ -99,6 +102,10 @@ if not args.target_cpu.startswith("x86_64"): cmake_args.extend([ f"-DLLVM_HOST_TRIPLE={args.target_cpu}", + f"-DLLVM_TARGET_ARCH={args.target_cpu}", + f"-DLLVM_DEFAULT_TARGET_TRIPLE={args.target_cpu}", + f"-DCMAKE_C_COMPILER_TARGET={args.target_cpu}", + f"-DCMAKE_CXX_COMPILER_TARGET={args.target_cpu}", ]) print(' '.join(cmake_args)) From ced2ba5058832be3d8a29d49f465d90625f88daa Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 5 Jan 2024 10:11:33 +0300 Subject: [PATCH 09/30] linker --- .github/workflows/llvm.yaml | 2 +- scripts/configure_llvm.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/llvm.yaml b/.github/workflows/llvm.yaml index fd18e87..78700af 100644 --- a/.github/workflows/llvm.yaml +++ b/.github/workflows/llvm.yaml @@ -22,7 +22,7 @@ jobs: - name: Install RISC-V toolchain run: sudo apt install -yqq gcc-riscv64-linux-gnu g++-riscv64-linux-gnu binutils-riscv64-linux-gnu - name: Setup mold - uses: warchant/setup-mold@v1 + uses: rui314/setup-mold@v1 with: version: 2.4.0 make_default: false diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index b031f11..bdd32d6 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -78,7 +78,6 @@ if platform.system() == "Darwin": cmake_args.append("-DRUNTIMES_BUILD_ALLOW_DARWIN=ON") - cmake_args.append("-DLLVM_ENABLE_LLD=ON") elif platform.system() == "Linux": cmake_args.append("-DLLVM_USE_LINKER=mold") From 4d8fbfda83e4831496d8012f021115c68a09d5a6 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 5 Jan 2024 10:21:36 +0300 Subject: [PATCH 10/30] massage flags? --- scripts/configure_llvm.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index bdd32d6..255e511 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -103,8 +103,6 @@ f"-DLLVM_HOST_TRIPLE={args.target_cpu}", f"-DLLVM_TARGET_ARCH={args.target_cpu}", f"-DLLVM_DEFAULT_TARGET_TRIPLE={args.target_cpu}", - f"-DCMAKE_C_COMPILER_TARGET={args.target_cpu}", - f"-DCMAKE_CXX_COMPILER_TARGET={args.target_cpu}", ]) print(' '.join(cmake_args)) From 135fe6069678cfcd5beaf0f103a356ee9b6190b1 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 5 Jan 2024 10:22:15 +0300 Subject: [PATCH 11/30] massage args --- .github/workflows/llvm.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/llvm.yaml b/.github/workflows/llvm.yaml index 78700af..68f2189 100644 --- a/.github/workflows/llvm.yaml +++ b/.github/workflows/llvm.yaml @@ -24,8 +24,8 @@ jobs: - name: Setup mold uses: rui314/setup-mold@v1 with: - version: 2.4.0 - make_default: false + mold-version: 2.4.0 + make-default: false - name: Checkout LLVM uses: actions/checkout@v4 with: From 22c7c51562acb6ada567286a9a9e093937a60066 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 5 Jan 2024 12:35:05 +0300 Subject: [PATCH 12/30] update target flags --- scripts/configure_llvm.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index 255e511..5d4e51f 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -50,8 +50,6 @@ args.build_dir, "-S", "llvm/llvm", - "-DCMAKE_C_COMPILER=clang", - "-DCMAKE_CXX_COMPILER=clang++", "-DCMAKE_BUILD_TYPE=Release", "-DCMAKE_INSTALL_PREFIX=/usr/local", "-DLLVM_TARGETS_TO_BUILD={}".format(';'.join(targets_to_build)), @@ -104,6 +102,15 @@ f"-DLLVM_TARGET_ARCH={args.target_cpu}", f"-DLLVM_DEFAULT_TARGET_TRIPLE={args.target_cpu}", ]) + if platform.system() == "Darwin": + cmake_args.append("-DCMAKE_OSX_ARCHITECTURES=aarch64") + elif platform.system() == "Linux": + cmake_args.extend([ + f"-DCMAKE_C_COMPILER={args.target_cpu.replace('unknown-', '')}-gcc", + f"-DCMAKE_CXX_COMPILER={args.target_cpu.replace('unknown-', '')}-g++", + "-DCMAKE_TARGET_SYSTEM=Linux", + f"-DCMAKE_TARGET_PROCESSOR={args.target_cpu.split('-')[0]}", + ]) print(' '.join(cmake_args)) subprocess.run(cmake_args, check=True, stdout=subprocess.PIPE) \ No newline at end of file From 28d84bc2ec5d7983ce9e180c07fa230da8f75381 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 5 Jan 2024 12:52:46 +0300 Subject: [PATCH 13/30] less mold --- scripts/configure_llvm.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index 5d4e51f..eb84e99 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -76,8 +76,6 @@ if platform.system() == "Darwin": cmake_args.append("-DRUNTIMES_BUILD_ALLOW_DARWIN=ON") -elif platform.system() == "Linux": - cmake_args.append("-DLLVM_USE_LINKER=mold") for rt in runtime_targets: cmake_args.extend([ @@ -111,6 +109,12 @@ "-DCMAKE_TARGET_SYSTEM=Linux", f"-DCMAKE_TARGET_PROCESSOR={args.target_cpu.split('-')[0]}", ]) +elif platform.system() == "Linux": + cmake_args.extend([ + "-DCMAKE_C_COMPILER=clang", + "-DCMAKE_CXX_COMPILER=clang++", + "-DLLVM_USE_LINKER=mold" + ]) print(' '.join(cmake_args)) subprocess.run(cmake_args, check=True, stdout=subprocess.PIPE) \ No newline at end of file From 2712803eec91b6b70b684a1cbcecc66395ec78f1 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 5 Jan 2024 13:10:15 +0300 Subject: [PATCH 14/30] try more options --- scripts/configure_llvm.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index eb84e99..6326108 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -101,13 +101,13 @@ f"-DLLVM_DEFAULT_TARGET_TRIPLE={args.target_cpu}", ]) if platform.system() == "Darwin": - cmake_args.append("-DCMAKE_OSX_ARCHITECTURES=aarch64") + cmake_args.append("-DCMAKE_OSX_ARCHITECTURES=arm64") elif platform.system() == "Linux": cmake_args.extend([ f"-DCMAKE_C_COMPILER={args.target_cpu.replace('unknown-', '')}-gcc", f"-DCMAKE_CXX_COMPILER={args.target_cpu.replace('unknown-', '')}-g++", - "-DCMAKE_TARGET_SYSTEM=Linux", - f"-DCMAKE_TARGET_PROCESSOR={args.target_cpu.split('-')[0]}", + "-DCMAKE_SYSTEM_NAME=Linux", + f"-DCMAKE_SYSTEM_PROCESSOR={args.target_cpu.split('-')[0]}", ]) elif platform.system() == "Linux": cmake_args.extend([ From 88e9fc22cdbf50dd05b1b8b2ec1228db86372284 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 5 Jan 2024 13:19:31 +0300 Subject: [PATCH 15/30] fix for apple? --- scripts/configure_llvm.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index 6326108..d283610 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -101,7 +101,11 @@ f"-DLLVM_DEFAULT_TARGET_TRIPLE={args.target_cpu}", ]) if platform.system() == "Darwin": - cmake_args.append("-DCMAKE_OSX_ARCHITECTURES=arm64") + cmake_args.extend([ + "-DCMAKE_OSX_ARCHITECTURES=arm64", + "-DCMAKE_SYSTEM_NAME=Apple", + "-DCMAKE_SYSTEM_PROCESSOR=arm64" + ]) elif platform.system() == "Linux": cmake_args.extend([ f"-DCMAKE_C_COMPILER={args.target_cpu.replace('unknown-', '')}-gcc", From dcd650c18db82cf696a866dcb9262e85dc2a7b7c Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 5 Jan 2024 13:42:27 +0300 Subject: [PATCH 16/30] more apple stuff --- scripts/configure_llvm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index d283610..be0990f 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -103,7 +103,7 @@ if platform.system() == "Darwin": cmake_args.extend([ "-DCMAKE_OSX_ARCHITECTURES=arm64", - "-DCMAKE_SYSTEM_NAME=Apple", + "-DCMAKE_SYSTEM_NAME=Apple-Clang", "-DCMAKE_SYSTEM_PROCESSOR=arm64" ]) elif platform.system() == "Linux": From f6ffac75d40a8fc71ec3776b48dffda44bc03b2f Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 5 Jan 2024 13:57:38 +0300 Subject: [PATCH 17/30] less apple flags --- scripts/configure_llvm.py | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index be0990f..92c0f15 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -103,7 +103,6 @@ if platform.system() == "Darwin": cmake_args.extend([ "-DCMAKE_OSX_ARCHITECTURES=arm64", - "-DCMAKE_SYSTEM_NAME=Apple-Clang", "-DCMAKE_SYSTEM_PROCESSOR=arm64" ]) elif platform.system() == "Linux": From 5d76d76cda4ee4899659ccc271bca19563f8de42 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 5 Jan 2024 14:01:59 +0300 Subject: [PATCH 18/30] apple again --- scripts/configure_llvm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index 92c0f15..45e40f1 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -102,7 +102,7 @@ ]) if platform.system() == "Darwin": cmake_args.extend([ - "-DCMAKE_OSX_ARCHITECTURES=arm64", + # "-DCMAKE_OSX_ARCHITECTURES=arm64", "-DCMAKE_SYSTEM_PROCESSOR=arm64" ]) elif platform.system() == "Linux": From 90d0e66b364ac13b101fa15523772a3026df2f3e Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 5 Jan 2024 14:02:10 +0300 Subject: [PATCH 19/30] revert --- scripts/configure_llvm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index 45e40f1..92c0f15 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -102,7 +102,7 @@ ]) if platform.system() == "Darwin": cmake_args.extend([ - # "-DCMAKE_OSX_ARCHITECTURES=arm64", + "-DCMAKE_OSX_ARCHITECTURES=arm64", "-DCMAKE_SYSTEM_PROCESSOR=arm64" ]) elif platform.system() == "Linux": From 427c6fb8191850e4025b25643f213b55a5c8acfa Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 5 Jan 2024 14:12:39 +0300 Subject: [PATCH 20/30] macos again --- scripts/configure_llvm.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index 92c0f15..84c732c 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -102,7 +102,8 @@ ]) if platform.system() == "Darwin": cmake_args.extend([ - "-DCMAKE_OSX_ARCHITECTURES=arm64", + "-DCMAKE_SYSTEM_NAME=Darwin", + # "-DCMAKE_OSX_ARCHITECTURES=arm64", "-DCMAKE_SYSTEM_PROCESSOR=arm64" ]) elif platform.system() == "Linux": From c9b6f667a3009119441d38d3a35a441d51363e30 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 5 Jan 2024 15:46:33 +0300 Subject: [PATCH 21/30] uplift xcode version --- .github/workflows/llvm.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/llvm.yaml b/.github/workflows/llvm.yaml index 68f2189..54d7e4e 100644 --- a/.github/workflows/llvm.yaml +++ b/.github/workflows/llvm.yaml @@ -107,6 +107,7 @@ jobs: CXXFLAGS: -w CFLAGS: -w run: | + sudo xcode-select -s /Applications/Xcode_15.1.app mkdir build && mkdir install python3 ./toolchain/scripts/configure_llvm.py --target_cpu="${{matrix.cpu}}-apple-darwin" --build_dir=$PWD/build From 85665f43627533d9d8cd196059b5e8cc354d9f18 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 5 Jan 2024 19:46:54 +0300 Subject: [PATCH 22/30] disable riscv64 --- .github/workflows/llvm.yaml | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/.github/workflows/llvm.yaml b/.github/workflows/llvm.yaml index 54d7e4e..6519e87 100644 --- a/.github/workflows/llvm.yaml +++ b/.github/workflows/llvm.yaml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - cpu: ["x86_64", "aarch64", "riscv64"] + cpu: ["x86_64", "aarch64"] steps: - name: Install dependencies run: sudo apt update && sudo apt install -yqq python3 git ninja-build cmake zstd @@ -177,14 +177,14 @@ jobs: sha256sum linux-aarch64-toolchain/${{ inputs.llvm_tag }}-linux-aarch64-bolt.tar.zst >> RELEASE.txt sha256sum linux-aarch64-toolchain/${{ inputs.llvm_tag }}-linux-aarch64-lld.tar.zst >> RELEASE.txt sha256sum linux-aarch64-toolchain/${{ inputs.llvm_tag }}-linux-aarch64-libcpp.tar.zst >> RELEASE.txt - sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64.tar.zst >> RELEASE.txt - sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clang-tidy.tar.zst >> RELEASE.txt - sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clang-doc.tar.zst >> RELEASE.txt - sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clang-format.tar.zst >> RELEASE.txt - sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clangd.tar.zst >> RELEASE.txt - sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-bolt.tar.zst >> RELEASE.txt - sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-lld.tar.zst >> RELEASE.txt - sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-libcpp.tar.zst >> RELEASE.txt + # sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64.tar.zst >> RELEASE.txt + # sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clang-tidy.tar.zst >> RELEASE.txt + # sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clang-doc.tar.zst >> RELEASE.txt + # sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clang-format.tar.zst >> RELEASE.txt + # sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clangd.tar.zst >> RELEASE.txt + # sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-bolt.tar.zst >> RELEASE.txt + # sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-lld.tar.zst >> RELEASE.txt + # sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-libcpp.tar.zst >> RELEASE.txt sha256sum macos-x86_64-toolchain/${{ inputs.llvm_tag }}-macos-x86_64.tar.zst >> RELEASE.txt sha256sum macos-x86_64-toolchain/${{ inputs.llvm_tag }}-macos-x86_64-clang-tidy.tar.zst >> RELEASE.txt sha256sum macos-x86_64-toolchain/${{ inputs.llvm_tag }}-macos-x86_64-clang-doc.tar.zst >> RELEASE.txt @@ -227,14 +227,6 @@ jobs: linux-aarch64-toolchain/${{ inputs.llvm_tag }}-linux-aarch64-bolt.tar.zst linux-aarch64-toolchain/${{ inputs.llvm_tag }}-linux-aarch64-lld.tar.zst linux-aarch64-toolchain/${{ inputs.llvm_tag }}-linux-aarch64-libcpp.tar.zst - linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64.tar.zst - linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clang-tidy.tar.zst - linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clang-doc.tar.zst - linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clang-format.tar.zst - linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clangd.tar.zst - linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-bolt.tar.zst - linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-lld.tar.zst - linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-libcpp.tar.zst macos-x86_64-toolchain/${{ inputs.llvm_tag }}-macos-x86_64.tar.zst macos-x86_64-toolchain/${{ inputs.llvm_tag }}-macos-x86_64-clang-tidy.tar.zst macos-x86_64-toolchain/${{ inputs.llvm_tag }}-macos-x86_64-clang-doc.tar.zst From 2fd1436ae7e3e5fa79a4ef6e32e7627a04b57c9f Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 5 Jan 2024 20:42:38 +0300 Subject: [PATCH 23/30] try other flags --- scripts/configure_llvm.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index 84c732c..c3a9f1b 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -58,6 +58,10 @@ "-DLLVM_ENABLE_TERMINFO=OFF", "-DLLVM_ENABLE_ZLIB=OFF", "-DLLVM_ENABLE_ZSTD=OFF", + "-DCLANG_DEFAULT_CXX_STDLIB=libc++", + "-DCLANG_DEFAULT_RTLIB=compiler-rt", + "-DCLANG_DEFAULT_UNWINDLIB=libunwind", + "-DCLANG_DEFAULT_LINKER=lld", "-DLLVM_ENABLE_RUNTIMES=libunwind;compiler-rt;libcxx;libcxxabi;openmp", "-DLLVM_ENABLE_PROJECTS=bolt;clang;clang-tools-extra;lld;pstl", "-DLLVM_STATIC_LINK_CXX_STDLIB=ON", @@ -103,8 +107,12 @@ if platform.system() == "Darwin": cmake_args.extend([ "-DCMAKE_SYSTEM_NAME=Darwin", - # "-DCMAKE_OSX_ARCHITECTURES=arm64", - "-DCMAKE_SYSTEM_PROCESSOR=arm64" + "-DCMAKE_SYSTEM_PROCESSOR=arm64", + "-DCMAKE_CROSSCOMPILING=True", + "-DCMAKE_OSX_DEPLOYMENT_TARGET=14.2", + "-DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk", + "-DCMAKE_FIND_FRAMEWORK=LAST", + "-DCMAKE_FIND_APPBUNDLE=LAST", ]) elif platform.system() == "Linux": cmake_args.extend([ From 1007cc86f07362bf5567af1d2532985b751bf256 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 5 Jan 2024 20:55:46 +0300 Subject: [PATCH 24/30] more weird flags --- .github/workflows/llvm.yaml | 26 +++++++++++++++++--------- scripts/configure_llvm.py | 19 +++++++++++++++++-- 2 files changed, 34 insertions(+), 11 deletions(-) diff --git a/.github/workflows/llvm.yaml b/.github/workflows/llvm.yaml index 6519e87..54d7e4e 100644 --- a/.github/workflows/llvm.yaml +++ b/.github/workflows/llvm.yaml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - cpu: ["x86_64", "aarch64"] + cpu: ["x86_64", "aarch64", "riscv64"] steps: - name: Install dependencies run: sudo apt update && sudo apt install -yqq python3 git ninja-build cmake zstd @@ -177,14 +177,14 @@ jobs: sha256sum linux-aarch64-toolchain/${{ inputs.llvm_tag }}-linux-aarch64-bolt.tar.zst >> RELEASE.txt sha256sum linux-aarch64-toolchain/${{ inputs.llvm_tag }}-linux-aarch64-lld.tar.zst >> RELEASE.txt sha256sum linux-aarch64-toolchain/${{ inputs.llvm_tag }}-linux-aarch64-libcpp.tar.zst >> RELEASE.txt - # sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64.tar.zst >> RELEASE.txt - # sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clang-tidy.tar.zst >> RELEASE.txt - # sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clang-doc.tar.zst >> RELEASE.txt - # sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clang-format.tar.zst >> RELEASE.txt - # sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clangd.tar.zst >> RELEASE.txt - # sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-bolt.tar.zst >> RELEASE.txt - # sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-lld.tar.zst >> RELEASE.txt - # sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-libcpp.tar.zst >> RELEASE.txt + sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64.tar.zst >> RELEASE.txt + sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clang-tidy.tar.zst >> RELEASE.txt + sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clang-doc.tar.zst >> RELEASE.txt + sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clang-format.tar.zst >> RELEASE.txt + sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clangd.tar.zst >> RELEASE.txt + sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-bolt.tar.zst >> RELEASE.txt + sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-lld.tar.zst >> RELEASE.txt + sha256sum linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-libcpp.tar.zst >> RELEASE.txt sha256sum macos-x86_64-toolchain/${{ inputs.llvm_tag }}-macos-x86_64.tar.zst >> RELEASE.txt sha256sum macos-x86_64-toolchain/${{ inputs.llvm_tag }}-macos-x86_64-clang-tidy.tar.zst >> RELEASE.txt sha256sum macos-x86_64-toolchain/${{ inputs.llvm_tag }}-macos-x86_64-clang-doc.tar.zst >> RELEASE.txt @@ -227,6 +227,14 @@ jobs: linux-aarch64-toolchain/${{ inputs.llvm_tag }}-linux-aarch64-bolt.tar.zst linux-aarch64-toolchain/${{ inputs.llvm_tag }}-linux-aarch64-lld.tar.zst linux-aarch64-toolchain/${{ inputs.llvm_tag }}-linux-aarch64-libcpp.tar.zst + linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64.tar.zst + linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clang-tidy.tar.zst + linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clang-doc.tar.zst + linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clang-format.tar.zst + linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-clangd.tar.zst + linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-bolt.tar.zst + linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-lld.tar.zst + linux-riscv64-toolchain/${{ inputs.llvm_tag }}-linux-riscv64-libcpp.tar.zst macos-x86_64-toolchain/${{ inputs.llvm_tag }}-macos-x86_64.tar.zst macos-x86_64-toolchain/${{ inputs.llvm_tag }}-macos-x86_64-clang-tidy.tar.zst macos-x86_64-toolchain/${{ inputs.llvm_tag }}-macos-x86_64-clang-doc.tar.zst diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index c3a9f1b..020cd22 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -115,9 +115,24 @@ "-DCMAKE_FIND_APPBUNDLE=LAST", ]) elif platform.system() == "Linux": + gnu_prefix = args.target_cpu.replace('unknown-', '') cmake_args.extend([ - f"-DCMAKE_C_COMPILER={args.target_cpu.replace('unknown-', '')}-gcc", - f"-DCMAKE_CXX_COMPILER={args.target_cpu.replace('unknown-', '')}-g++", + "-DCMAKE_C_COMPILER=clang", + "-DCMAKE_CXX_COMPILER=clang++", + "-DCMAKE_CROSSCOMPILING=True", + f"-DCMAKE_AR={gnu_prefix}-ar", + f"-DCMAKE_LINKER={gnu_prefix}-ld", + f"-DCMAKE_RANLIB={gnu_prefix}-ranlib", + f"-DCMAKE_STRIP={gnu_prefix}-strip", + f"-DCMAKE_C_COMPILER_AR={gnu_prefix}-ar", + f"-DCMAKE_C_COMPILER_RANLIB={gnu_prefix}-ranlib", + f"-DCMAKE_CXX_COMPILER_AR={gnu_prefix}-ar", + f"-DCMAKE_CXX_COMPILER_RANLIB={gnu_prefix}-ranlib", + "-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER", + "-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY", + "-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY" + # f"-DCMAKE_C_COMPILER={args.target_cpu.replace('unknown-', '')}-gcc", + # f"-DCMAKE_CXX_COMPILER={args.target_cpu.replace('unknown-', '')}-g++", "-DCMAKE_SYSTEM_NAME=Linux", f"-DCMAKE_SYSTEM_PROCESSOR={args.target_cpu.split('-')[0]}", ]) From 44d3b9ee56ad9b875871a89ba1a750e756834503 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 5 Jan 2024 21:00:59 +0300 Subject: [PATCH 25/30] typo fixes --- scripts/configure_llvm.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index 020cd22..af20d58 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -120,17 +120,17 @@ "-DCMAKE_C_COMPILER=clang", "-DCMAKE_CXX_COMPILER=clang++", "-DCMAKE_CROSSCOMPILING=True", - f"-DCMAKE_AR={gnu_prefix}-ar", - f"-DCMAKE_LINKER={gnu_prefix}-ld", - f"-DCMAKE_RANLIB={gnu_prefix}-ranlib", - f"-DCMAKE_STRIP={gnu_prefix}-strip", - f"-DCMAKE_C_COMPILER_AR={gnu_prefix}-ar", - f"-DCMAKE_C_COMPILER_RANLIB={gnu_prefix}-ranlib", - f"-DCMAKE_CXX_COMPILER_AR={gnu_prefix}-ar", - f"-DCMAKE_CXX_COMPILER_RANLIB={gnu_prefix}-ranlib", + f"-DCMAKE_AR=/usr/{gnu_prefix}/bin/{gnu_prefix}-ar", + f"-DCMAKE_LINKER=/usr/{gnu_prefix}/bin/{gnu_prefix}-ld", + f"-DCMAKE_RANLIB=/usr/{gnu_prefix}/bin/{gnu_prefix}-ranlib", + f"-DCMAKE_STRIP=/usr/{gnu_prefix}/bin/{gnu_prefix}-strip", + f"-DCMAKE_C_COMPILER_AR=/usr/{gnu_prefix}/bin/{gnu_prefix}-ar", + f"-DCMAKE_C_COMPILER_RANLIB=/usr/{gnu_prefix}/bin/{gnu_prefix}-ranlib", + f"-DCMAKE_CXX_COMPILER_AR=/usr/{gnu_prefix}/bin/{gnu_prefix}-ar", + f"-DCMAKE_CXX_COMPILER_RANLIB=/usr/{gnu_prefix}/bin/{gnu_prefix}-ranlib", "-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER", "-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY", - "-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY" + "-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY", # f"-DCMAKE_C_COMPILER={args.target_cpu.replace('unknown-', '')}-gcc", # f"-DCMAKE_CXX_COMPILER={args.target_cpu.replace('unknown-', '')}-g++", "-DCMAKE_SYSTEM_NAME=Linux", From 35c77e0df3473b29c26af3d1e9d514203b3d6735 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 5 Jan 2024 21:28:16 +0300 Subject: [PATCH 26/30] update prefix --- scripts/configure_llvm.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index af20d58..9a8e772 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -120,14 +120,14 @@ "-DCMAKE_C_COMPILER=clang", "-DCMAKE_CXX_COMPILER=clang++", "-DCMAKE_CROSSCOMPILING=True", - f"-DCMAKE_AR=/usr/{gnu_prefix}/bin/{gnu_prefix}-ar", - f"-DCMAKE_LINKER=/usr/{gnu_prefix}/bin/{gnu_prefix}-ld", - f"-DCMAKE_RANLIB=/usr/{gnu_prefix}/bin/{gnu_prefix}-ranlib", - f"-DCMAKE_STRIP=/usr/{gnu_prefix}/bin/{gnu_prefix}-strip", - f"-DCMAKE_C_COMPILER_AR=/usr/{gnu_prefix}/bin/{gnu_prefix}-ar", - f"-DCMAKE_C_COMPILER_RANLIB=/usr/{gnu_prefix}/bin/{gnu_prefix}-ranlib", - f"-DCMAKE_CXX_COMPILER_AR=/usr/{gnu_prefix}/bin/{gnu_prefix}-ar", - f"-DCMAKE_CXX_COMPILER_RANLIB=/usr/{gnu_prefix}/bin/{gnu_prefix}-ranlib", + f"-DCMAKE_AR=/usr/bin/{gnu_prefix}-ar", + f"-DCMAKE_LINKER=/usr/bin/{gnu_prefix}-ld", + f"-DCMAKE_RANLIB=/usr/bin/{gnu_prefix}-ranlib", + f"-DCMAKE_STRIP=/usr/bin/{gnu_prefix}-strip", + f"-DCMAKE_C_COMPILER_AR=/usr/bin/{gnu_prefix}-ar", + f"-DCMAKE_C_COMPILER_RANLIB=/usr/bin/{gnu_prefix}-ranlib", + f"-DCMAKE_CXX_COMPILER_AR=/usr/bin/{gnu_prefix}-ar", + f"-DCMAKE_CXX_COMPILER_RANLIB=/usr/bin/{gnu_prefix}-ranlib", "-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER", "-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY", "-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY", From fc3831a37e64a7d4e061ddc3e3e9b97048cdface Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Fri, 5 Jan 2024 23:01:38 +0300 Subject: [PATCH 27/30] more weird flags --- scripts/configure_llvm.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index 9a8e772..ad2abff 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -103,6 +103,9 @@ f"-DLLVM_HOST_TRIPLE={args.target_cpu}", f"-DLLVM_TARGET_ARCH={args.target_cpu}", f"-DLLVM_DEFAULT_TARGET_TRIPLE={args.target_cpu}", + f"-DCMAKE_ASM_COMPILER_TARGET={args.target_cpu}", + f"-DCMAKE_C_COMPILER_TARGET={args.target_cpu}", + f"-DCMAKE_CXX_COMPILER_TARGET={args.target_cpu}", ]) if platform.system() == "Darwin": cmake_args.extend([ From 595a8b9aed98499c52069a7951894a33d3c03c0a Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Sat, 6 Jan 2024 10:07:53 +0300 Subject: [PATCH 28/30] test new flags --- scripts/configure_llvm.py | 41 ++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index ad2abff..2f1fca0 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -34,14 +34,18 @@ "aarch64-unknown-linux-gnu", "riscv64-unknown-linux-gnu", ] - targets_to_build = ["X86", - "AArch64", - "NVPTX", - "AMDGPU", - "RISCV"] + targets_to_build = [ + "X86", + "AArch64", + "NVPTX", + "AMDGPU", + "RISCV", + "WebAssembly", + "BPF", + ] elif platform.system() == "Darwin": - runtime_targets = [args.target_cpu] - targets_to_build = ["X86", "AArch64"] + runtime_targets = ["x86_64-apple-darwin", "aarch64-apple-darwin"] + targets_to_build = ["X86", "AArch64", "WebAssembly"] cmake_args = [ "cmake", @@ -106,12 +110,12 @@ f"-DCMAKE_ASM_COMPILER_TARGET={args.target_cpu}", f"-DCMAKE_C_COMPILER_TARGET={args.target_cpu}", f"-DCMAKE_CXX_COMPILER_TARGET={args.target_cpu}", + "-DCMAKE_CROSSCOMPILING=True", ]) if platform.system() == "Darwin": cmake_args.extend([ "-DCMAKE_SYSTEM_NAME=Darwin", "-DCMAKE_SYSTEM_PROCESSOR=arm64", - "-DCMAKE_CROSSCOMPILING=True", "-DCMAKE_OSX_DEPLOYMENT_TARGET=14.2", "-DCMAKE_OSX_SYSROOT=/Applications/Xcode_15.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk", "-DCMAKE_FIND_FRAMEWORK=LAST", @@ -122,18 +126,15 @@ cmake_args.extend([ "-DCMAKE_C_COMPILER=clang", "-DCMAKE_CXX_COMPILER=clang++", - "-DCMAKE_CROSSCOMPILING=True", - f"-DCMAKE_AR=/usr/bin/{gnu_prefix}-ar", - f"-DCMAKE_LINKER=/usr/bin/{gnu_prefix}-ld", - f"-DCMAKE_RANLIB=/usr/bin/{gnu_prefix}-ranlib", - f"-DCMAKE_STRIP=/usr/bin/{gnu_prefix}-strip", - f"-DCMAKE_C_COMPILER_AR=/usr/bin/{gnu_prefix}-ar", - f"-DCMAKE_C_COMPILER_RANLIB=/usr/bin/{gnu_prefix}-ranlib", - f"-DCMAKE_CXX_COMPILER_AR=/usr/bin/{gnu_prefix}-ar", - f"-DCMAKE_CXX_COMPILER_RANLIB=/usr/bin/{gnu_prefix}-ranlib", - "-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER", - "-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY", - "-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY", + "-DLLVM_USE_LINKER=mold", + # f"-DCMAKE_AR=/usr/bin/{gnu_prefix}-ar", + # f"-DCMAKE_LINKER=/usr/bin/{gnu_prefix}-ld", + # f"-DCMAKE_RANLIB=/usr/bin/{gnu_prefix}-ranlib", + # f"-DCMAKE_STRIP=/usr/bin/{gnu_prefix}-strip", + # f"-DCMAKE_C_COMPILER_AR=/usr/bin/{gnu_prefix}-ar", + # f"-DCMAKE_C_COMPILER_RANLIB=/usr/bin/{gnu_prefix}-ranlib", + # f"-DCMAKE_CXX_COMPILER_AR=/usr/bin/{gnu_prefix}-ar", + # f"-DCMAKE_CXX_COMPILER_RANLIB=/usr/bin/{gnu_prefix}-ranlib", # f"-DCMAKE_C_COMPILER={args.target_cpu.replace('unknown-', '')}-gcc", # f"-DCMAKE_CXX_COMPILER={args.target_cpu.replace('unknown-', '')}-g++", "-DCMAKE_SYSTEM_NAME=Linux", From a5e3b68706db45a48d675e11d325c7dd9ed37ea5 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Sat, 6 Jan 2024 10:28:24 +0300 Subject: [PATCH 29/30] new args --- scripts/configure_llvm.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index 2f1fca0..04678ec 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -44,7 +44,7 @@ "BPF", ] elif platform.system() == "Darwin": - runtime_targets = ["x86_64-apple-darwin", "aarch64-apple-darwin"] + runtime_targets = [args.target_cpu] targets_to_build = ["X86", "AArch64", "WebAssembly"] cmake_args = [ @@ -127,6 +127,7 @@ "-DCMAKE_C_COMPILER=clang", "-DCMAKE_CXX_COMPILER=clang++", "-DLLVM_USE_LINKER=mold", + "-DCMAKE_LINK_FLAGS=-fuse-ld=mold", # f"-DCMAKE_AR=/usr/bin/{gnu_prefix}-ar", # f"-DCMAKE_LINKER=/usr/bin/{gnu_prefix}-ld", # f"-DCMAKE_RANLIB=/usr/bin/{gnu_prefix}-ranlib", From ddbaf8a58c41429bdec0efb2a40d767025ab23c3 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Sat, 6 Jan 2024 10:54:46 +0300 Subject: [PATCH 30/30] my compiler works!!! --- scripts/configure_llvm.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/configure_llvm.py b/scripts/configure_llvm.py index 04678ec..b6c03a2 100644 --- a/scripts/configure_llvm.py +++ b/scripts/configure_llvm.py @@ -128,6 +128,9 @@ "-DCMAKE_CXX_COMPILER=clang++", "-DLLVM_USE_LINKER=mold", "-DCMAKE_LINK_FLAGS=-fuse-ld=mold", + "-DCMAKE_C_COMPILER_WORKS=1", + "-DCMAKE_CXX_COMPILER_WORKS=1", + "-DCMAKE_ASM_COMPILER_WORKS=1", # f"-DCMAKE_AR=/usr/bin/{gnu_prefix}-ar", # f"-DCMAKE_LINKER=/usr/bin/{gnu_prefix}-ld", # f"-DCMAKE_RANLIB=/usr/bin/{gnu_prefix}-ranlib",