diff --git a/compiler-rt-7.0.0.src.tar.xz b/compiler-rt-7.0.0.src.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..f510c5444cab53a2d19c5cbeee0826a3db848acd Binary files /dev/null and b/compiler-rt-7.0.0.src.tar.xz differ diff --git a/compiler-rt.spec b/compiler-rt.spec new file mode 100644 index 0000000000000000000000000000000000000000..af9934b2a699c805a7570ea0b7f27ba42ce693db --- /dev/null +++ b/compiler-rt.spec @@ -0,0 +1,73 @@ +%global crt_srcdir compiler-rt-%{version}%{?rc_ver:rc%{rc_ver}}.src + +Name: compiler-rt +Version: 7.0.0 +Release: 3 +Summary: LLVM "compiler-rt" runtime libraries +License: NCSA or MIT +URL: http://llvm.org +Source0: http://llvm.org/releases/%{version}/%{crt_srcdir}.tar.xz + +BuildRequires: gcc gcc-c++ cmake python3 python3-devel +BuildRequires: llvm-devel = %{version} llvm-static = %{version} + +%description +The compiler-rt project provides highly tuned implementations of the +low-level code generator support routines like "__fixunsdfdi" and other +calls generated when a target doesn't have a short sequence of native +instructions to implement a core IR operation. + +%prep +%autosetup -n %{crt_srcdir} -p1 +pathfix.py -i %{__python3} -pn . + +%build +mkdir -p _build +cd _build +%cmake .. \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DLLVM_CONFIG_PATH:FILEPATH=%{_bindir}/llvm-config-%{__isa_bits} \ + \ +%if 0%{?__isa_bits} == 64 + -DLLVM_LIBDIR_SUFFIX=64 \ +%else + -DLLVM_LIBDIR_SUFFIX= \ +%endif + -DCOMPILER_RT_INCLUDE_TESTS:BOOL=OFF + +%make_build + +%install +cd _build +%make_install + +mkdir -p %{buildroot}%{_libdir}/clang/%{version}/lib + +%ifarch aarch64 +%global aarch64_blacklists hwasan_blacklist.txt +%endif + +for file in %{aarch64_blacklists} asan_blacklist.txt msan_blacklist.txt dfsan_blacklist.txt \ + cfi_blacklist.txt dfsan_abilist.txt hwasan_blacklist.txt; do + mv -v %{buildroot}%{_datadir}/${file} %{buildroot}%{_libdir}/clang/%{version}/ || : +done + +mv -v %{buildroot}%{_prefix}/lib/linux/libclang_rt* %{buildroot}%{_libdir}/clang/%{version}/lib +mkdir -p %{buildroot}%{_libdir}/clang/%{version}/lib/linux/ +pushd %{buildroot}%{_libdir}/clang/%{version}/lib +for i in *.a *.syms *.so; do + ln -s ../$i linux/$i +done + +%check +cd _build + +%files +%defattr(-,root,root) +%license LICENSE.TXT +%{_includedir}/* +%{_libdir}/clang/%{version} + +%changelog +* Thu Dec 5 2019 openEuler Buildteam - 7.0.0-3 +- Package init