triton-git: update and build against LLVM-20

This commit is contained in:
مهدي شينون (Mehdi Chinoune) 2025-09-19 09:07:16 +01:00
parent 0199b5c5e3
commit a0174cc7ad
2 changed files with 6 additions and 53 deletions

View File

@ -1,44 +0,0 @@
--- triton/src/libtriton/includes/triton/tritonToLLVM.hpp.orig 2023-12-18 10:10:45.627931500 +0300
+++ triton/src/libtriton/includes/triton/tritonToLLVM.hpp 2023-12-18 10:10:50.668006900 +0300
@@ -19,9 +19,10 @@
#include <llvm/IR/IRBuilder.h>
#include <llvm/IR/LLVMContext.h>
-#include <llvm/IR/LegacyPassManager.h>
#include <llvm/IR/Module.h>
-#include <llvm/Transforms/IPO/PassManagerBuilder.h>
+#include <llvm-c/TargetMachine.h>
+#include <llvm-c/Transforms/PassBuilder.h>
+#include <llvm/Support/CBindingWrapping.h>
--- triton/src/libtriton/ast/llvm/tritonToLLVM.cpp.orig 2023-12-18 10:41:32.749828600 +0300
+++ triton/src/libtriton/ast/llvm/tritonToLLVM.cpp 2023-12-19 10:50:25.693682600 +0300
@@ -100,12 +100,20 @@
/* Apply LLVM optimizations (-03 -Oz) if enabled */
if (optimize) {
- llvm::legacy::PassManager pm;
- llvm::PassManagerBuilder pmb;
- pmb.OptLevel = 3;
- pmb.SizeLevel = 2;
- pmb.populateModulePassManager(pm);
- pm.run(*this->llvmModule);
+ LLVMTargetRef targ;
+ char *err_message;
+ if (LLVMGetTargetFromTriple(this->llvmModule->getTargetTriple().c_str(), &targ, &err_message)) {
+ LLVMTargetMachineRef tm = LLVMCreateTargetMachine(targ, this->llvmModule->getTargetTriple().c_str(),
+ "", "", LLVMCodeGenLevelAggressive,
+ LLVMRelocDefault, LLVMCodeModelDefault);
+
+ if (tm) {
+ LLVMPassBuilderOptionsRef opts = LLVMCreatePassBuilderOptions();
+ LLVMRunPasses(wrap(this->llvmModule.get()), "default<O3>", tm, opts);
+
+ LLVMDisposeTargetMachine(tm);
+ }
+ }
}
return this->llvmModule;

View File

@ -4,9 +4,9 @@ _realname=triton
pkgbase=mingw-w64-${_realname}-git
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-git")
_ver_base=0.9
pkgver=0.9.r4256.b022f317
_commit=b022f3179b3ff6fbafd597099ab0e2f5f07df23a
pkgrel=2
pkgver=0.9.r4320.34e1de35
_commit=34e1de35869eb3d7e571f21e9c2561dff126e040
pkgrel=1
pkgdesc="Triton is a dynamic binary analysis library (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
@ -25,17 +25,15 @@ depends=("${MINGW_PACKAGE_PREFIX}-cc-libs"
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
"${MINGW_PACKAGE_PREFIX}-cmake"
"${MINGW_PACKAGE_PREFIX}-ninja"
"${MINGW_PACKAGE_PREFIX}-llvm-16"
"${MINGW_PACKAGE_PREFIX}-llvm-20"
"${MINGW_PACKAGE_PREFIX}-boost"
"${MINGW_PACKAGE_PREFIX}-libffi"
"${MINGW_PACKAGE_PREFIX}-python-setuptools"
"git")
source=("${_realname}"::"git+https://github.com/JonathanSalwan/Triton.git#commit=$_commit"
001-remove-legacy.patch
002-cmake-install-dir.patch
003-cmake-target-config.patch)
sha256sums=('c2c5243454084ff80dd3f6840fb9e92f095635a882013017c3323cbd2dd8867d'
'94100f4106c04360a2d45bbe34a79c8fb909182d5819f9aaa232b9a1ae3cf3d0'
sha256sums=('83d18c072ac44b95d2e22b9a105489ee8c6e18a2c6f2fbeb8ce9b70b3d7c2c67'
'b8da26b33d1cf3ff7d620987e45cbef2c32df0b68fe662b0779ffcc933b33ba9'
'4282cdcc0ec16d1a07857855494ac2fb83b1bbc258323fe1c8b0da25b42c3985')
@ -46,7 +44,6 @@ pkgver() {
prepare() {
cd "${srcdir}/Triton"
patch -p1 -i "${srcdir}"/001-remove-legacy.patch
patch -p1 -i "${srcdir}"/002-cmake-install-dir.patch
patch -p1 -i "${srcdir}"/003-cmake-target-config.patch
}
@ -65,7 +62,7 @@ build() {
"${MINGW_PREFIX}"/bin/cmake.exe \
-GNinja \
-DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \
-DCMAKE_PREFIX_PATH=${MINGW_PREFIX}/opt/llvm-16 \
-DCMAKE_PREFIX_PATH=${MINGW_PREFIX}/opt/llvm-20 \
-DBUILD_SHARED_LIBS=ON \
-DBOOST_INTERFACE=ON \
-DLLVM_INTERFACE=ON \