init for Multi-Version LLVM-18.1.8

Signed-off-by: liyunfei <liyunfei33@huawei.com>
This commit is contained in:
liyunfei 2024-12-09 11:37:19 +08:00
parent 8f4c48bf2f
commit 43e9820a06
6 changed files with 41 additions and 118 deletions

View File

@ -1,71 +0,0 @@
From d8d712c632e925139a6e5e53ee64749301358b25 Mon Sep 17 00:00:00 2001
From: Tulio Magno Quites Machado Filho <tuliom@redhat.com>
Date: Tue, 5 Sep 2023 10:35:37 -0300
Subject: [PATCH] [mlir][python] Reuse the library directory
Prefer to get the path to the shared libraries from config.llvm_shlib_dir.
Fallback to the previous path only if config.llvm_shlib_dir is not
defined.
This ensures the test will pass regardless of the build configuration
used downstream.
---
mlir/test/lit.cfg.py | 1 +
mlir/test/python/execution_engine.py | 12 +++++++-----
2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/mlir/test/lit.cfg.py b/mlir/test/lit.cfg.py
index 3a8bdbfcec28..eb8e66a2491c 100644
--- a/mlir/test/lit.cfg.py
+++ b/mlir/test/lit.cfg.py
@@ -130,6 +130,7 @@ tools.extend(
ToolSubst("toyc-ch7", unresolved="ignore"),
ToolSubst('transform-opt-ch2', unresolved='ignore'),
ToolSubst('transform-opt-ch3', unresolved='ignore'),
+ ToolSubst("%llvm_shlib_dir", config.llvm_shlib_dir, unresolved="ignore"),
ToolSubst("%mlir_lib_dir", config.mlir_lib_dir, unresolved="ignore"),
ToolSubst("%mlir_src_dir", config.mlir_src_root, unresolved="ignore"),
]
diff --git a/mlir/test/python/execution_engine.py b/mlir/test/python/execution_engine.py
index e8b47007a890..0cb78dd0bac6 100644
--- a/mlir/test/python/execution_engine.py
+++ b/mlir/test/python/execution_engine.py
@@ -1,4 +1,4 @@
-# RUN: %PYTHON %s 2>&1 | FileCheck %s
+# RUN: env LLVM_SHLIB_DIR=%llvm_shlib_dir %PYTHON %s 2>&1 | FileCheck %s
# REQUIRES: host-supports-jit
import gc, sys, os, tempfile
from mlir.ir import *
@@ -6,6 +6,8 @@ from mlir.passmanager import *
from mlir.execution_engine import *
from mlir.runtime import *
+_DEFAULT_LIB_DIR = "../../../../lib"
+LIB_DIR = os.getenv("LLVM_SHLIB_DIR", _DEFAULT_LIB_DIR)
# Log everything to stderr and flush so that we have a unified stream to match
# errors/info emitted by MLIR to stderr.
@@ -540,8 +542,8 @@ def testSharedLibLoad():
]
else:
shared_libs = [
- "../../../../lib/libmlir_runner_utils.so",
- "../../../../lib/libmlir_c_runner_utils.so",
+ LIB_DIR + "/libmlir_runner_utils.so",
+ LIB_DIR + "/libmlir_c_runner_utils.so",
]
execution_engine = ExecutionEngine(
@@ -583,8 +585,8 @@ def testNanoTime():
]
else:
shared_libs = [
- "../../../../lib/libmlir_runner_utils.so",
- "../../../../lib/libmlir_c_runner_utils.so",
+ LIB_DIR + "/libmlir_runner_utils.so",
+ LIB_DIR + "/libmlir_c_runner_utils.so",
]
execution_engine = ExecutionEngine(
--
2.41.0

View File

@ -1,27 +1,22 @@
%bcond_without sys_llvm
%bcond_without check %bcond_without check
%bcond_without toolchain_clang %bcond_without toolchain_clang
%bcond_without bisheng_autotuner
%if %{with toolchain_clang} %if %{with toolchain_clang}
%global toolchain clang %global toolchain clang
%endif %endif
%global maj_ver 17 %global maj_ver 18
%global min_ver 0 %global min_ver 1
%global patch_ver 6 %global patch_ver 8
%global mlir_version %{maj_ver}.%{min_ver}.%{patch_ver} %global mlir_version %{maj_ver}.%{min_ver}.%{patch_ver}
%global mlir_srcdir mlir-%{mlir_version}%{?rc_ver:rc%{rc_ver}}.src %global mlir_srcdir mlir-%{mlir_version}%{?rc_ver:rc%{rc_ver}}.src
%if %{with sys_llvm} %global _scl_prefix /opt/openEuler
%global pkg_name mlir %{?scl:%scl_package %scl}
%global install_prefix %{_prefix} %{!?scl:%global scl_prefix llvm-toolset-%{maj_ver}-}
%global install_datadir %{_datadir} %{!?scl:%global pkg_name %{name}}
%else %global install_prefix %{!?scl:%{_scl_prefix}/llvm-toolset-%{maj_ver}/root}%{_prefix}
%global pkg_name mlir%{maj_ver} %global install_datadir %{!?scl:%{_scl_prefix}/llvm-toolset-%{maj_ver}/root}%{_datadir}
%global install_prefix %{_libdir}/llvm%{maj_ver}
%global install_datadir %{install_prefix}/share
%endif
%global install_bindir %{install_prefix}/bin %global install_bindir %{install_prefix}/bin
%if 0%{?__isa_bits} == 64 %if 0%{?__isa_bits} == 64
@ -31,9 +26,9 @@
%endif %endif
%global install_includedir %{install_prefix}/include %global install_includedir %{install_prefix}/include
Name: %{pkg_name} Name: %{?scl_prefix}llvm-mlir
Version: %{mlir_version} Version: %{mlir_version}
Release: 4 Release: 1
Summary: The MLIR project is a novel approach to building reusable and extensible compiler infrastructure. Summary: The MLIR project is a novel approach to building reusable and extensible compiler infrastructure.
License: Apache-2.0 License: Apache-2.0
URL: https://mlir.llvm.org/ URL: https://mlir.llvm.org/
@ -41,21 +36,13 @@ URL: https://mlir.llvm.org/
Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{mlir_version}/%{mlir_srcdir}.tar.xz Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{mlir_version}/%{mlir_srcdir}.tar.xz
Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{mlir_version}/%{mlir_srcdir}.tar.xz.sig Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{mlir_version}/%{mlir_srcdir}.tar.xz.sig
Patch0: fedora-0001-mlir-python-Reuse-the-library-directory.patch
BuildRequires: clang BuildRequires: clang
BuildRequires: gcc gcc-c++ cmake ninja-build zlib-devel python3-lit BuildRequires: gcc gcc-c++ cmake ninja-build zlib-devel python3-lit
%if %{with sys_llvm} BuildRequires: %{?scl_prefix}llvm-devel = %{version}
BuildRequires: llvm-devel = %{version} BuildRequires: %{?scl_prefix}llvm-googletest = %{version}
BuildRequires: llvm-googletest = %{version} BuildRequires: %{?scl_prefix}llvm-test = %{version}
BuildRequires: llvm-test = %{version} BuildRequires: %{?scl_prefix}llvm-cmake-utils = %{version}
BuildRequires: llvm-cmake-utils = %{version}
%else
BuildRequires: llvm%{maj_ver}-devel = %{version}
BuildRequires: llvm%{maj_ver}-googletest = %{version}
BuildRequires: llvm%{maj_ver}-test = %{version}
BuildRequires: llvm%{maj_ver}-cmake-utils = %{version}
%endif
BuildRequires: python3-devel BuildRequires: python3-devel
BuildRequires: python3-numpy BuildRequires: python3-numpy
BuildRequires: python3-pybind11 BuildRequires: python3-pybind11
@ -69,32 +56,32 @@ existing compilers together.
%package static %package static
Summary: MLIR static files Summary: MLIR static files
Requires: %{name} = %{version} Requires: %{pkg_name} = %{version}
%description static %description static
MLIR static files. MLIR static files.
%package devel %package devel
Summary: MLIR development files Summary: MLIR development files
Requires: %{name} = %{version}-%{release} Requires: %{pkg_name} = %{version}-%{release}
Requires: %{name}-static = %{version}-%{release} Requires: %{pkg_name}-static = %{version}-%{release}
%description devel %description devel
MLIR development files. MLIR development files.
%package -n python3-%{name} %package -n python3-mlir
Summary: MLIR python bindings Summary: MLIR python bindings
Requires: python3 Requires: python3
Requires: python3-numpy Requires: python3-numpy
%description -n python3-%{name} %description -n python3-mlir
%{summary} %{summary}
%prep %prep
%autosetup -n %{mlir_srcdir} -p2 %autosetup -n %{mlir_srcdir} -p2
%build %build
%cmake -G Ninja \ %cmake -G Ninja \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_SKIP_RPATH=ON \ -DCMAKE_SKIP_RPATH=ON \
-DLLVM_LINK_LLVM_DYLIB:BOOL=ON \ -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \
@ -112,13 +99,12 @@ Requires: python3-numpy
-DBUILD_SHARED_LIBS=OFF \ -DBUILD_SHARED_LIBS=OFF \
-DMLIR_INSTALL_AGGREGATE_OBJECTS=OFF \ -DMLIR_INSTALL_AGGREGATE_OBJECTS=OFF \
-DMLIR_BUILD_MLIR_C_DYLIB=ON \ -DMLIR_BUILD_MLIR_C_DYLIB=ON \
-DLLVM_EXTERNAL_LIT=%{_bindir}/lit \
-DCMAKE_INSTALL_PREFIX=%{install_prefix} \
%if "%{toolchain}" == "clang" %if "%{toolchain}" == "clang"
-DCMAKE_C_COMPILER=clang \ -DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \ -DCMAKE_CXX_COMPILER=clang++ \
%endif %endif
%if %{with bisheng_autotuner}
-DLLVM_ENABLE_AUTOTUNER=ON \
%endif
%ifarch aarch64 %ix86 ppc64le x86_64 %ifarch aarch64 %ix86 ppc64le x86_64
-DLLVM_PARALLEL_LINK_JOBS=1 \ -DLLVM_PARALLEL_LINK_JOBS=1 \
%endif %endif
@ -129,7 +115,7 @@ Requires: python3-numpy
%if 0%{?__isa_bits} == 64 %if 0%{?__isa_bits} == 64
-DLLVM_LIBDIR_SUFFIX=64 \ -DLLVM_LIBDIR_SUFFIX=64 \
%else %else
-DLLVM_LIBDIR_SUFFIX= -DLLVM_LIBDIR_SUFFIX= \
%endif %endif
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
-DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_TARGETS_TO_BUILD="X86"
@ -138,17 +124,17 @@ Requires: python3-numpy
-DLLVM_TARGETS_TO_BUILD="AArch64" -DLLVM_TARGETS_TO_BUILD="AArch64"
%endif %endif
%cmake_build %ninja_build
%install %install
%cmake_install %ninja_install
mkdir -p %{buildroot}/%{python3_sitearch} mkdir -p %{buildroot}/%{python3_sitearch}
mv %{buildroot}/usr/python_packages/mlir_core/mlir %{buildroot}/%{python3_sitearch} mv %{buildroot}%{install_prefix}/python_packages/mlir_core/mlir %{buildroot}/%{python3_sitearch}/mlir
# These directories should be empty now. # These directories should be empty now.
rmdir %{buildroot}/usr/python_packages/mlir_core %{buildroot}/usr/python_packages rmdir %{buildroot}%{install_prefix}/python_packages/mlir_core %{buildroot}%{install_prefix}/python_packages
# Unneeded files. # Unneeded files.
rm -rf %{buildroot}/usr/src/python rm -rf %{buildroot}%{install_prefix}/src/python
%if %{with check} %if %{with check}
%check %check
@ -177,14 +163,16 @@ rm -rf test/tblgen-lsp-server/document-links.test
rm -rf test/tblgen-lsp-server/hover.test rm -rf test/tblgen-lsp-server/hover.test
# build process .exe tools normally use rpath or static linkage # build process .exe tools normally use rpath or static linkage
export LD_LIBRARY_PATH=%{buildroot}/%{_libdir}:%{buildroot}/%{python3_sitearch}/mlir/_mlir_libs export LD_LIBRARY_PATH=%{buildroot}/%{install_libdir}:%{buildroot}/%{python3_sitearch}/mlir/_mlir_libs
export PYTHONPATH=%{buildroot}/%{python3_sitearch} export PYTHONPATH=%{buildroot}/%{python3_sitearch}
%cmake_build --target check-mlir %ninja_build check-mlir
%endif %endif
%files %files
%license LICENSE.TXT %license LICENSE.TXT
%{install_libdir}/libMLIR*.so.* %{install_libdir}/libMLIR*.so.*
%{install_libdir}/libmlir_arm_runner_utils.so.%{maj_ver}*
%{install_libdir}/libmlir_arm_sme_abi_stubs.so.%{maj_ver}*
%{install_libdir}/libmlir_runner_utils.so.* %{install_libdir}/libmlir_runner_utils.so.*
%{install_libdir}/libmlir_c_runner_utils.so.* %{install_libdir}/libmlir_c_runner_utils.so.*
%{install_libdir}/libmlir_float16_utils.so.%{maj_ver}* %{install_libdir}/libmlir_float16_utils.so.%{maj_ver}*
@ -197,6 +185,9 @@ export PYTHONPATH=%{buildroot}/%{python3_sitearch}
%{install_bindir}/mlir-tblgen %{install_bindir}/mlir-tblgen
%{install_bindir}/mlir-pdll %{install_bindir}/mlir-pdll
%{install_libdir}/libMLIR*.so %{install_libdir}/libMLIR*.so
%{install_bindir}/tblgen-to-irdl
%{install_libdir}/libmlir_arm_runner_utils.so
%{install_libdir}/libmlir_arm_sme_abi_stubs.so
%{install_libdir}/libmlir_runner_utils.so %{install_libdir}/libmlir_runner_utils.so
%{install_libdir}/libmlir_c_runner_utils.so %{install_libdir}/libmlir_c_runner_utils.so
%{install_libdir}/libmlir_float16_utils.so %{install_libdir}/libmlir_float16_utils.so
@ -205,10 +196,13 @@ export PYTHONPATH=%{buildroot}/%{python3_sitearch}
%{install_includedir}/mlir-c %{install_includedir}/mlir-c
%{install_libdir}/cmake/mlir %{install_libdir}/cmake/mlir
%files -n python3-%{name} %files -n python3-mlir
%{python3_sitearch}/mlir/ %{python3_sitearch}/mlir/
%changelog %changelog
* Fri Dec 6 2024 liyunfei <liyunfei33@huawei.com> - 18.1.8-1
- init for Multi-Version LLVM-18.1.8
* Mon Nov 11 2024 Funda Wang <fundawang@yeah.net> - 17.0.6-4 * Mon Nov 11 2024 Funda Wang <fundawang@yeah.net> - 17.0.6-4
- adopt to new cmake macro - adopt to new cmake macro

Binary file not shown.

Binary file not shown.

BIN
mlir-18.1.8.src.tar.xz Normal file

Binary file not shown.

BIN
mlir-18.1.8.src.tar.xz.sig Normal file

Binary file not shown.