--- /dev/null
+%define keepstatic 1
+%define llvm_release_build 1
+
+%define llvm_version 19
+
+Name: llvm
+Summary: The LLVM Project is a collection of modular and reusable compiler and toolchain technologies
+Version: 19.1.4
+Release: 1
+Group: Development/Toolchain
+License: NCSA
+Source0: %{name}-%{version}.tar.gz
+Source1001: llvm.manifest
+
+BuildRequires: cmake
+BuildRequires: python3
+BuildRequires: python3-devel
+BuildRequires: patchelf
+BuildRequires: binutils-devel
+# do not comapre with old rpms
+#!BuildIgnore: build-compare
+
+%if 0%{llvm_release_build}
+BuildRequires: sed
+%endif
+
+Requires: libllvm = %{version}-%{release}
+
+%if 0%{llvm_release_build}
+# Disable debug packages building
+%define debug_package %{nil}
+%define __debug_install_post %{_rpmconfigdir}/find-debuginfo.sh %{?_find_debuginfo_opts} %{?_find_debuginfo_strip_opts} %{?_find_debuginfo_ko_strip_opts} "%{_builddir}/%{?buildsubdir}"\
+ rm -rf "%{buildroot}/usr/lib/debug"\
+ rm -rf "%{buildroot}/usr/src/debug"
+%endif
+
+%define install_prefix /usr
+%define sdk_install_prefix /home/owner/share/tmp/sdk_tools/lldb
+%define sdk_bin_dir %{sdk_install_prefix}/bin
+
+%ifarch x86_64 aarch64 riscv64
+%define library_dir %{install_prefix}/lib64
+%define sdk_lib_dir %{sdk_install_prefix}/lib64
+%define system_lib_dir /usr/lib64
+%else
+%define library_dir %{install_prefix}/lib
+%define sdk_lib_dir %{sdk_install_prefix}/lib
+%define system_lib_dir /usr/lib
+%endif
+
+%ifarch armv7l
+%define ARCH armv7l
+%define ABI eabi
+%endif
+%ifarch armv7hl
+%define ARCH armv7hl
+%define ABI eabihf
+%endif
+%ifarch %ix86
+%define ARCH i586
+%endif
+%ifarch x86_64
+%define ARCH x86_64
+%endif
+%ifarch aarch64
+%define ARCH aarch64
+%endif
+%ifarch riscv64
+%define ARCH riscv64
+%endif
+%define host_arch %{ARCH}-tizen-linux-gnu%{?ABI}
+
+%description
+LLVM is a compiler infrastructure designed for compile-time, link-time, runtime,
+and idle-time optimization of programs from arbitrary programming languages.
+LLVM is written in C++ and has been developed since 2000 at the University of
+Illinois and Apple. It currently supports compilation of C and C++ programs,
+using front-ends derived from GCC 4.0.1. A new front-end for the C family of
+languages is in development. The compiler infrastructure
+includes mirror sets of programming tools as well as libraries with equivalent
+functionality.
+
+%package devel
+Summary: Libraries and Header Files for LLVM %{version}
+Requires: %{name} = %{version}
+
+%description devel
+This package contains library and header files needed to develop
+new native programs that use the LLVM infrastructure.
+
+%package static-devel
+Summary: Static libraries for LLVM
+Requires: %{name} = %{version}
+
+%description static-devel
+This package contains static libraries needed to develop new
+native programs that use the LLVM infrastructure.
+
+%package -n libllvm
+Summary: LLVM shared libraries
+
+%description -n libllvm
+Shared libraries for the LLVM compiler infrastructure.
+
+%package -n clang
+Summary: Clang %{version} (C Language family frontend for LLVM)
+License: NCSA
+Requires: llvm = %{version}-%{release}
+Provides: libclang.so.%{version}
+
+%description -n clang
+A new front-end for the C family of languages is in development.
+
+%package -n clang-gcc-replace
+Summary: Clang %{version} symlinks as gcc/g++
+License: NCSA
+Requires: clang = %{version}-%{release}
+Conflicts: gcc
+
+%description -n clang-gcc-replace
+Symlinks to replace gcc and g++ for compilation
+
+%package -n clang-devel
+Summary: Clang %{version} Development Library
+Requires: clang = %{version}-%{release}
+
+%description -n clang-devel
+This package contains the clang (C language) frontend for LLVM.
+(development files)
+
+%package -n lldb
+Summary: LLDB
+License: NCSA
+
+%description -n lldb
+LLDB is a next generation, high-performance debugger. It is built as a set
+of reusable components which highly leverage existing libraries in the
+larger LLVM Project, such as the Clang expression parser and LLVM
+disassembler.
+
+%package -n lldb-devel
+Summary: Development header files for LLDB
+Requires: lldb = %{version}-%{release}
+
+%description -n lldb-devel
+The package contains header files for the LLDB debugger.
+
+%package -n compiler-rt
+Summary: Compiler runtime libraries
+
+%description -n compiler-rt
+Compiler runtime libraries
+
+%package -n python-clang
+Summary: Python bindings to parts of the Clang library
+
+%description -n python-clang
+Python bindings to parts of the Clang library
+
+%prep
+%setup -q
+
+%build
+%if 0%{llvm_release_build}
+# Not to build debug info
+RELCFLAGS=$(echo $CFLAGS | sed -e 's*\(^\|[[:space:]]\)-g\([[:digit:]]\+\|gdb\|dwarf-[[:digit:]]\)\?* *g')
+export CFLAGS=${RELCFLAGS}
+RELCXXFLAGS=$(echo $CXXFLAGS | sed -e 's*\(^\|[[:space:]]\)-g\([[:digit:]]\+\|gdb\|dwarf-[[:digit:]]\)\?* *g')
+export CXXFLAGS=${RELCXXFLAGS}
+RELFFLAGS=$(echo $FFLAGS | sed -e 's*\(^\|[[:space:]]\)-g\([[:digit:]]\+\|gdb\)|dwarf-[[:digit:]]\\?* *g')
+export FFLAGS=${RELFFLAGS}
+%endif
+
+cp %{SOURCE1001} .
+%{?asan:%gcc_unforce_options}
+
+%ifarch armv7l armv7hl aarch64
+CPP_INCLUDE_PATHS=$(cpp -xc++ -v < /dev/null 2>&1 | \
+ awk '/search starts here:/{flag=1;next}/End of search list/{flag=0}flag' | \
+ sed -e "s/^ //" | tr '\n' ':' | sed -e 's/.$//')
+%endif
+
+mkdir -p build
+cd build
+cmake \
+ -DCMAKE_C_COMPILER=%__cc \
+ -DCMAKE_CXX_COMPILER=%__cxx \
+ -DCMAKE_INSTALL_PREFIX=%{install_prefix} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_ASSERTIONS=No \
+ -DLLVM_TARGETS_TO_BUILD='X86;ARM;AArch64;BPF;RISCV' \
+ -DLLVM_BUILD_LLVM_DYLIB=1 \
+ -DLLDB_DISABLE_LIBEDIT=1 \
+ -DLLDB_DISABLE_PYTHON=1 \
+ -DLLVM_TARGET_ARCH=%{ARCH} \
+ -DLLVM_HOST_TRIPLE=%{host_arch} \
+ -DLLDB_DISABLE_CURSES=1 \
+ -DLLVM_ENABLE_PROJECTS="clang;lldb;clang-tools-extra;compiler-rt" \
+ -DLLVM_BUILD_EXAMPLES=OFF \
+ -DLLVM_INCLUDE_EXAMPLES=OFF \
+ -DLLVM_BUILD_TESTS=OFF \
+ -DLLVM_INCLUDE_TESTS=OFF \
+ -DLLVM_ENABLE_DOXYGEN=OFF \
+ -DLLVM_BUILD_DOCS=OFF \
+ -DLLVM_INCLUDE_DOCS=OFF \
+ -DLLVM_OPTIMIZED_TABLEGEN=ON \
+%ifarch armv7l armv7hl aarch64
+ -DC_INCLUDE_DIRS="${CPP_INCLUDE_PATHS}" \
+%endif
+%ifarch armv7l armv7hl
+ -DCMAKE_ASM_FLAGS="-mfpu=neon" \
+%endif
+%ifarch x86_64 aarch64 riscv64
+ -DLLVM_LIBDIR_SUFFIX=64 \
+%endif
+%ifarch %ix86
+ -DCMAKE_C_FLAGS="-m32" \
+ -DCMAKE_CXX_FLAGS="-m32" \
+%endif
+ -DLLVM_BINUTILS_INCDIR=/usr/include \
+ ../llvm
+
+%if 0%{llvm_release_build}
+make %{?jobs:-j%jobs}
+%else
+%if 0%{?jobs}>4
+make -j4
+%else
+make %{?jobs:-j%jobs}
+%endif
+%endif
+
+%install
+cd build
+%make_install
+ln -sf %{install_prefix}/bin/clang++ %{buildroot}%{install_prefix}/bin/clang++-%{llvm_version}
+
+# Compiler replacement hack
+ln -sf %{install_prefix}/bin/clang-%{llvm_version} %{buildroot}%{_bindir}/gcc
+ln -sf %{install_prefix}/bin/clang++-%{llvm_version} %{buildroot}%{_bindir}/g++
+
+mkdir -p %{buildroot}%{bindir}
+
+# copy lldb for sdk
+mkdir -p %{buildroot}%{sdk_bin_dir}
+mkdir -p %{buildroot}%{sdk_lib_dir}
+
+mv %{buildroot}%{install_prefix}/bin/lldb %{buildroot}%{sdk_bin_dir}
+mv %{buildroot}%{install_prefix}/bin/lldb-argdumper %{buildroot}%{sdk_bin_dir}
+mv %{buildroot}%{install_prefix}/bin/lldb-server %{buildroot}%{sdk_bin_dir}
+
+ln -sf %{sdk_bin_dir}/lldb %{buildroot}%{install_prefix}/bin/
+
+cp -P %{buildroot}%{library_dir}/liblldb.so* %{buildroot}%{sdk_lib_dir}/
+
+# Install the clang python bits
+mkdir -p %{buildroot}%{python3_sitelib}
+cp -a ../clang/bindings/python/clang %{buildroot}%{python3_sitelib}/
+
+rm -rf %{buildroot}%{library_dir}/debug/*
+#rm -rf %{buildroot}%{library_dir}/libear/*
+rm -rf %{buildroot}/usr/lib/libear/*
+#rm -rf %{buildroot}%{library_dir}/libscanbuild/*
+rm -rf %{buildroot}/usr/lib/libscanbuild/*
+
+%post -n clang -p /sbin/ldconfig
+%postun -n clang -p /sbin/ldconfig
+
+%post -n lldb
+echo "plugin load /usr/share/dotnet.tizen/netcoreapp/SOS/libsosplugin.so" > /root/.lldbinit
+
+%clean
+echo Cleaning %{buildroot}
+
+%files
+%manifest %{name}.manifest
+%defattr(-,root,root,-)
+%{install_prefix}/bin/analyze-build
+%{install_prefix}/bin/bugpoint
+%{install_prefix}/bin/clang-linker-wrapper
+%{install_prefix}/bin/clang-offload-packager
+%{install_prefix}/bin/clang-pseudo
+%{install_prefix}/bin/clang-repl
+%{install_prefix}/bin/intercept-build
+%{install_prefix}/bin/llc
+%{install_prefix}/bin/lli
+%{install_prefix}/bin/llvm-ar
+%{install_prefix}/bin/llvm-as
+%{install_prefix}/bin/llvm-bcanalyzer
+%{install_prefix}/bin/llvm-bitcode-strip
+%{install_prefix}/bin/llvm-c-test
+%{install_prefix}/bin/llvm-cat
+%{install_prefix}/bin/llvm-config
+%{install_prefix}/bin/llvm-cov
+%{install_prefix}/bin/llvm-cvtres
+%{install_prefix}/bin/llvm-cxxdump
+%{install_prefix}/bin/llvm-cxxfilt
+%{install_prefix}/bin/llvm-debuginfo-analyzer
+%{install_prefix}/bin/llvm-debuginfod
+%{install_prefix}/bin/llvm-debuginfod-find
+%{install_prefix}/bin/llvm-diff
+%{install_prefix}/bin/llvm-dis
+%{install_prefix}/bin/llvm-dlltool
+%{install_prefix}/bin/llvm-dwarfdump
+%{install_prefix}/bin/llvm-dwarfutil
+%{install_prefix}/bin/llvm-dwp
+%{install_prefix}/bin/llvm-extract
+%{install_prefix}/bin/llvm-gsymutil
+%{install_prefix}/bin/llvm-lib
+%{install_prefix}/bin/llvm-libtool-darwin
+%{install_prefix}/bin/llvm-link
+%{install_prefix}/bin/llvm-lto
+%{install_prefix}/bin/llvm-lto2
+%{install_prefix}/bin/llvm-mc
+%{install_prefix}/bin/llvm-ml
+%{install_prefix}/bin/llvm-modextract
+%{install_prefix}/bin/llvm-mt
+%{install_prefix}/bin/llvm-nm
+%{install_prefix}/bin/llvm-objdump
+%{install_prefix}/bin/llvm-opt-report
+%{install_prefix}/bin/llvm-otool
+%{install_prefix}/bin/llvm-remarkutil
+%{install_prefix}/bin/llvm-pdbutil
+%{install_prefix}/bin/llvm-profdata
+%{install_prefix}/bin/llvm-profgen
+%{install_prefix}/bin/llvm-ranlib
+%{install_prefix}/bin/llvm-readelf
+%{install_prefix}/bin/llvm-readobj
+%{install_prefix}/bin/llvm-readtapi
+%{install_prefix}/bin/llvm-rtdyld
+%{install_prefix}/bin/llvm-sim
+%{install_prefix}/bin/llvm-size
+%{install_prefix}/bin/llvm-split
+%{install_prefix}/bin/llvm-stress
+%{install_prefix}/bin/llvm-strings
+%{install_prefix}/bin/llvm-symbolizer
+%{install_prefix}/bin/llvm-tblgen
+%{install_prefix}/bin/llvm-tli-checker
+%{install_prefix}/bin/llvm-windres
+%{install_prefix}/bin/llvm-xray
+%{install_prefix}/bin/opt
+%{install_prefix}/bin/run-clang-tidy
+%{install_prefix}/bin/sancov
+%{install_prefix}/bin/sanstats
+%{install_prefix}/bin/scan-build
+%{install_prefix}/bin/scan-build-py
+%{install_prefix}/bin/scan-view
+%{install_prefix}/bin/verify-uselistorder
+%{install_prefix}/bin/diagtool
+%{install_prefix}/bin/dsymutil
+%{install_prefix}/bin/hmaptool
+%{install_prefix}/bin/lldb-dap
+%{install_prefix}/bin/lldb-instr
+%{install_prefix}/bin/llvm-addr2line
+%{install_prefix}/bin/llvm-cfi-verify
+%{install_prefix}/bin/llvm-cxxmap
+%{install_prefix}/bin/llvm-exegesis
+%{install_prefix}/bin/llvm-ifs
+%{install_prefix}/bin/llvm-install-name-tool
+%{install_prefix}/bin/llvm-jitlink
+%{install_prefix}/bin/llvm-lipo
+%{install_prefix}/bin/llvm-mca
+%{install_prefix}/bin/llvm-objcopy
+%{install_prefix}/bin/llvm-rc
+%{install_prefix}/bin/llvm-reduce
+%{install_prefix}/bin/llvm-strip
+%{install_prefix}/bin/llvm-undname
+%{install_prefix}/bin/pp-trace
+%{install_prefix}/bin/reduce-chunk-list
+
+%files devel
+%manifest %{name}.manifest
+%defattr(-,root,root,-)
+%{install_prefix}/include/llvm/*
+%{install_prefix}/include/llvm-c/*
+%{install_prefix}/share/*
+%{library_dir}/cmake/llvm/*
+%{library_dir}/libLTO*.so*
+%{library_dir}/LLVMgold.so
+%{library_dir}/libRemarks.so*
+%{install_prefix}/bin/amdgpu-arch
+%{install_prefix}/bin/nvptx-arch
+
+%files static-devel
+%manifest %{name}.manifest
+%defattr(-,root,root,-)
+%{library_dir}/lib*.a
+
+%files -n libllvm
+%manifest %{name}.manifest
+%defattr(-,root,root,-)
+%{library_dir}/libLLVM*.so*
+
+%files -n clang
+%manifest %{name}.manifest
+%defattr(-,root,root,-)
+%{install_prefix}/bin/c-index-test
+%{install_prefix}/bin/clang
+%{install_prefix}/bin/clang++
+%{install_prefix}/bin/clang-%{llvm_version}
+%{install_prefix}/bin/clang++-%{llvm_version}
+%{install_prefix}/bin/clang-apply-replacements
+%{install_prefix}/bin/clang-change-namespace
+%{install_prefix}/bin/clang-check
+%{install_prefix}/bin/clang-cl
+%{install_prefix}/bin/clang-cpp
+%{install_prefix}/bin/clang-doc
+%{install_prefix}/bin/clang-extdef-mapping
+%{install_prefix}/bin/clang-move
+%{install_prefix}/bin/clang-refactor
+%{install_prefix}/bin/clang-scan-deps
+%{install_prefix}/bin/clang-format
+%{install_prefix}/bin/clang-include-cleaner
+%{install_prefix}/bin/clang-include-fixer
+%{install_prefix}/bin/clang-offload-bundler
+%{install_prefix}/bin/clang-query
+%{install_prefix}/bin/clang-rename
+%{install_prefix}/bin/clang-reorder-fields
+%{install_prefix}/bin/clang-tidy
+%{install_prefix}/bin/clang-installapi
+%{install_prefix}/bin/clang-nvlink-wrapper
+%{install_prefix}/bin/clangd
+%{install_prefix}/bin/git-clang-format
+%{install_prefix}/bin/find-all-symbols
+%{install_prefix}/bin/modularize
+%{library_dir}/clang/%{llvm_version}/include/*
+%{library_dir}/libclang*.so*
+%{library_dir}/cmake/clang/*
+%{install_prefix}/libexec/analyze-c++
+%{install_prefix}/libexec/analyze-cc
+%{install_prefix}/libexec/c++-analyzer
+%{install_prefix}/libexec/ccc-analyzer
+%{install_prefix}/libexec/intercept-c++
+%{install_prefix}/libexec/intercept-cc
+
+%files -n clang-gcc-replace
+%manifest %{name}.manifest
+%defattr(-,root,root,-)
+%{_bindir}/gcc
+%{_bindir}/g++
+
+%files -n clang-devel
+%manifest %{name}.manifest
+%defattr(-,root,root,-)
+%{install_prefix}/bin/clang-tblgen
+%{install_prefix}/include/clang/*
+%{install_prefix}/include/clang-c/*
+%{install_prefix}/include/clang-tidy/*
+
+%files -n lldb
+%manifest %{name}.manifest
+%defattr(-,root,root,-)
+%{sdk_bin_dir}/lldb
+%{install_prefix}/bin/lldb
+%{sdk_bin_dir}/lldb-argdumper
+%{sdk_bin_dir}/lldb-server
+%{sdk_lib_dir}/liblldb*.so*
+
+%files -n lldb-devel
+%manifest %{name}.manifest
+%defattr(-,root,root,-)
+%{install_prefix}/include/lldb/*
+%{library_dir}/liblldb*.so*
+
+%files -n compiler-rt
+%manifest %{name}.manifest
+%defattr(-,root,root,-)
+%{library_dir}/clang/%{llvm_version}/include/sanitizer/*
+%{library_dir}/clang/%{llvm_version}/*
+
+%files -n python-clang
+%{python3_sitelib}/clang