diff --git a/README.en.md b/README.en.md index 0e3544a67e3038b21bff1e455e79d83031ba1046..8299cca92704c7dc03260ed1003f2d0d50a8da60 100644 --- a/README.en.md +++ b/README.en.md @@ -1,8 +1,23 @@ -# libcxx +# libcxx-latest #### Description The libcxx is c++ libs of llvm for openEuler +#### Software Architecture +Software architecture description + +#### Installation + +1. xxxx +2. xxxx +3. xxxx + +#### Instructions + +1. xxxx +2. xxxx +3. xxxx + #### Contribution 1. Fork the repository diff --git a/README.md b/README.md index 2b91a60e5a56f8acd57a507a580d32fb31091cb5..b2a9fa11bbbe6aad9257c532b73d2431e5aded5b 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,24 @@ -# libcxx +# libcxx-latest #### 介绍 The libcxx is c++ libs of llvm for openEuler +#### 软件架构 +软件架构说明 + + +#### 安装教程 + +1. xxxx +2. xxxx +3. xxxx + +#### 使用说明 + +1. xxxx +2. xxxx +3. xxxx + #### 参与贡献 1. Fork 本仓库 diff --git a/libcxx-17.0.6.src.tar.xz b/libcxx-18.1.8.src.tar.xz similarity index 35% rename from libcxx-17.0.6.src.tar.xz rename to libcxx-18.1.8.src.tar.xz index c5c32c5e81a761eae89ecc0a86532e6dc9cf043a..89ffc9d1122dd57b14ed332ed2393fea60601977 100644 Binary files a/libcxx-17.0.6.src.tar.xz and b/libcxx-18.1.8.src.tar.xz differ diff --git a/libcxx.spec b/libcxx.spec index b46529d91db435ffe804c0610f165a58407e7e21..e55b0920fed6487f4894ab290866e5755e45f66c 100644 --- a/libcxx.spec +++ b/libcxx.spec @@ -1,17 +1,13 @@ -%undefine __cmake_in_source_build - -%bcond_without sys_llvm %bcond_without check %bcond_without toolchain_clang -%bcond_without bisheng_autotuner %if %{with toolchain_clang} %global toolchain clang %endif -%global maj_ver 17 -%global min_ver 0 -%global patch_ver 6 +%global maj_ver 18 +%global min_ver 1 +%global patch_ver 8 %global libcxx_version %{maj_ver}.%{min_ver}.%{patch_ver} %global libcxx_srcdir libcxx-%{libcxx_version}.src @@ -20,16 +16,12 @@ %global runtimes_srcdir runtimes-%{libcxx_version}.src %global runtimes_cmakedir %{runtimes_srcdir}/cmake/Modules - -%if %{with sys_llvm} -%global pkg_name libcxx -%global install_prefix %{_prefix} -%global install_datadir %{_datadir} -%else -%global pkg_name libcxx%{maj_ver} -%global install_prefix %{_libdir}/llvm%{maj_ver} -%global install_datadir %{install_prefix}/share -%endif +%global _scl_prefix /opt/openEuler +%{?scl:%scl_package %scl} +%{!?scl:%global scl_prefix llvm-toolset-%{maj_ver}-} +%{!?scl:%global pkg_name %{name}} +%global install_prefix %{!?scl:%{_scl_prefix}/llvm-toolset-%{maj_ver}/root}%{_prefix} +%global install_datadir %{!?scl:%{_scl_prefix}/llvm-toolset-%{maj_ver}/root}%{_datadir} %if 0%{?__isa_bits} == 64 %global install_libdir %{install_prefix}/lib64 @@ -38,10 +30,9 @@ %endif %global install_includedir %{install_prefix}/include - -Name: %{pkg_name} +Name: %{?scl_prefix}libcxx Version: %{libcxx_version} -Release: 4 +Release: 1 Summary: LLVM "libcxx" runtime libraries License: Apache-2.0 URL: http://llvm.org @@ -53,14 +44,12 @@ Source4: CMakeLists.txt Patch0: fedora-standalone.patch -BuildRequires: clang cmake ninja-build -%if %{with sys_llvm} -BuildRequires: llvm-devel = %{version} -BuildRequires: llvm-cmake-utils = %{version} -%else -BuildRequires: llvm%{maj_ver}-devel = %{version} -BuildRequires: llvm%{maj_ver}-cmake-utils = %{version} +%if "%toolchain" == "clang" +BuildRequires: clang %endif +BuildRequires: %{?scl_prefix}clang cmake ninja-build +BuildRequires: %{?scl_prefix}llvm-devel = %{version} +BuildRequires: %{?scl_prefix}llvm-cmake-utils = %{version} # We need python3-devel for %%py3_shebang_fix BuildRequires: python3-devel @@ -68,13 +57,15 @@ BuildRequires: python3-devel # For documentation BuildRequires: python3-sphinx +%{?scl:Requires: %scl_runtime} + %description The libcxx-devel package includes the libraries and header files for libcxx. -# libcxx +# libcxx %package devel Summary: Headers and libraries for libcxx devel -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{pkg_name}%{?_isa} = %{version}-%{release} Requires: libcxxabi-devel %description devel @@ -82,64 +73,64 @@ Requires: libcxxabi-devel %package static Summary: Static libraries for libcxx - + %description static %{summary}. # libcxxabi -%package -n libcxxabi +%package -n %{?scl_prefix}libcxxabi Summary: Low level support for a standard C++ library - -%description -n libcxxabi + +%description -n %{?scl_prefix}libcxxabi libcxxabi provides low level support for a standard C++ library. - -%package -n libcxxabi-devel + +%package -n %{?scl_prefix}libcxxabi-devel Summary: Headers and libraries for libcxxabi devel -Requires: libcxxabi%{?_isa} = %{version}-%{release} - -%description -n libcxxabi-devel +Requires: %{?scl_prefix}libcxxabi%{?_isa} = %{version}-%{release} + +%description -n %{?scl_prefix}libcxxabi-devel %{summary}. - -%package -n libcxxabi-static + +%package -n %{?scl_prefix}libcxxabi-static Summary: Static libraries for libcxxabi - -%description -n libcxxabi-static + +%description -n %{?scl_prefix}libcxxabi-static %{summary}. # libunwind -%package -n llvm-libunwind +%package -n %{?scl_prefix}llvm-libunwind Summary: LLVM libunwind - -%description -n llvm-libunwind - + +%description -n %{?scl_prefix}llvm-libunwind + LLVM libunwind is an implementation of the interface defined by the HP libunwind project. It was contributed Apple as a way to enable clang++ to port to platforms that do not have a system unwinder. It is intended to be a small and fast implementation of the ABI, leaving off some features of HP's libunwind that never materialized (e.g. remote unwinding). - -%package -n llvm-libunwind-devel + +%package -n %{?scl_prefix}llvm-libunwind-devel Summary: LLVM libunwind development files -Provides: libunwind(major) = %{maj_ver} -Requires: llvm-libunwind%{?_isa} = %{version}-%{release} - -%description -n llvm-libunwind-devel +Provides: %{?scl_prefix}libunwind(major) = %{maj_ver} +Requires: %{?scl_prefix}llvm-libunwind%{?_isa} = %{version}-%{release} + +%description -n %{?scl_prefix}llvm-libunwind-devel Unversioned shared library for LLVM libunwind - -%package -n llvm-libunwind-static + +%package -n %{?scl_prefix}llvm-libunwind-static Summary: Static library for LLVM libunwind - -%description -n llvm-libunwind-static + +%description -n %{?scl_prefix}llvm-libunwind-static %{summary}. -%package -n llvm-libunwind-doc +%package -n %{?scl_prefix}llvm-libunwind-doc Summary: libunwind documentation # jquery.js and langage_data.js are used in the HTML doc and under BSD License License: BSD AND (Apache-2.0 WITH LLVM-exception OR NCSA OR MIT) - -%description -n llvm-libunwind-doc + +%description -n %{?scl_prefix}llvm-libunwind-doc Documentation for LLVM libunwind %prep @@ -162,10 +153,15 @@ cp ../%{runtimes_cmakedir}/WarningFlags.cmake runtimes/cmake/Modules/ #%py3_shebang_fix libcxx/utils/ %build +mkdir -p _build +cd _build # Copy CFLAGS into ASMFLAGS, so -fcf-protection is used when compiling assembly files. export ASMFLAGS=$CFLA %cmake -GNinja \ + -DCMAKE_INSTALL_PREFIX=%{install_prefix} \ + -DLLVM_COMMON_CMAKE_UTILS=%{install_datadir}/llvm/cmake \ + -DLLVM_MAIN_SRC_DIR=%{install_prefix}/src \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_MODULE_PATH="%{install_libdir}/cmake/llvm;%{install_datadir}/llvm/cmake/Modules" \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ @@ -177,6 +173,7 @@ export ASMFLAGS=$CFLA -DLIBCXX_INCLUDE_BENCHMARKS=OFF \ -DLIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY=ON \ -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=ON \ + -DLIBCXXABI_USE_LLVM_UNWINDER=OFF \ -DLLVM_BUILD_DOCS=ON \ -DLLVM_ENABLE_SPHINX=ON \ -DLIBUNWIND_INCLUDE_DOCS=ON \ @@ -186,14 +183,14 @@ export ASMFLAGS=$CFLA -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ %endif -%if %{with bisheng_autotuner} - -DLLVM_ENABLE_AUTOTUNER=ON \ -%endif + .. -%cmake_build +%ninja_build %install -%cmake_install +cd _build + +%ninja_install # We can't install the unversionned path on default location because that would conflict with # https://src.fedoraproject.org/rpms/libunwind # @@ -204,48 +201,49 @@ export ASMFLAGS=$CFLA # have the exact same ABI as gcc's libunwind (it actually provides a subset). rm %{buildroot}%{install_libdir}/libunwind.so mkdir -p %{buildroot}/%{install_libdir}/llvm-unwind/ - + pushd %{buildroot}/%{install_libdir}/llvm-unwind ln -s ../libunwind.so.1.0 libunwind.so popd - + rm %{buildroot}%{_pkgdocdir}/html/.buildinfo - + +%ldconfig_scriptlets %files %license libcxx/LICENSE.TXT %doc libcxx/CREDITS.TXT libcxx/TODO.TXT %{install_libdir}/libc++.so.* - + %files devel %{install_includedir}/c++/ %exclude %{install_includedir}/c++/v1/cxxabi.h %exclude %{install_includedir}/c++/v1/__cxxabi_config.h %{install_libdir}/libc++.so - + %files static %license libcxx/LICENSE.TXT %{install_libdir}/libc++.a %{install_libdir}/libc++experimental.a - -%files -n libcxxabi + +%files -n %{?scl_prefix}libcxxabi %license libcxxabi/LICENSE.TXT %doc libcxxabi/CREDITS.TXT %{install_libdir}/libc++abi.so.* - -%files -n libcxxabi-devel + +%files -n %{?scl_prefix}libcxxabi-devel %{install_includedir}/c++/v1/cxxabi.h %{install_includedir}/c++/v1/__cxxabi_config.h %{install_libdir}/libc++abi.so - -%files -n libcxxabi-static + +%files -n %{?scl_prefix}libcxxabi-static %{install_libdir}/libc++abi.a - -%files -n llvm-libunwind + +%files -n %{?scl_prefix}llvm-libunwind %license libunwind/LICENSE.TXT %{install_libdir}/libunwind.so.1 %{install_libdir}/libunwind.so.1.0 - -%files -n llvm-libunwind-devel + +%files -n %{?scl_prefix}llvm-libunwind-devel %{install_includedir}/llvm-libunwind/__libunwind_config.h %{install_includedir}/llvm-libunwind/libunwind.h %{install_includedir}/llvm-libunwind/libunwind.modulemap @@ -256,15 +254,18 @@ rm %{buildroot}%{_pkgdocdir}/html/.buildinfo %{install_includedir}/llvm-libunwind/unwind_itanium.h %dir %{install_libdir}/llvm-unwind %{install_libdir}/llvm-unwind/libunwind.so - -%files -n llvm-libunwind-static + +%files -n %{?scl_prefix}llvm-libunwind-static %{install_libdir}/libunwind.a - -%files -n llvm-libunwind-doc + +%files -n %{?scl_prefix}llvm-libunwind-doc %license libunwind/LICENSE.TXT %doc %{_pkgdocdir}/html %changelog +* Fri Dec 6 2024 liyunfei - 18.1.8-1 +- init for Multi-Version LLVM-18.1.8 + * Thu Nov 07 2024 Funda Wang - 17.0.6-4 - adopt to new cmake macro - force out-of-source build diff --git a/libcxxabi-17.0.6.src.tar.xz b/libcxxabi-17.0.6.src.tar.xz deleted file mode 100644 index 13a592ac505a34f3a713ffbf61bf0bda031241b8..0000000000000000000000000000000000000000 Binary files a/libcxxabi-17.0.6.src.tar.xz and /dev/null differ diff --git a/libcxxabi-18.1.8.src.tar.xz b/libcxxabi-18.1.8.src.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..10189dd558a31849c4d376dfbe0baffcef88022d Binary files /dev/null and b/libcxxabi-18.1.8.src.tar.xz differ diff --git a/libunwind-17.0.6.src.tar.xz b/libunwind-17.0.6.src.tar.xz deleted file mode 100644 index cebe6735751833c2b528afd44b0e5ab9898e24f0..0000000000000000000000000000000000000000 Binary files a/libunwind-17.0.6.src.tar.xz and /dev/null differ diff --git a/libunwind-18.1.8.src.tar.xz b/libunwind-18.1.8.src.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..171084563144fadf7239449957019806419de80d Binary files /dev/null and b/libunwind-18.1.8.src.tar.xz differ diff --git a/runtimes-17.0.6.src.tar.xz b/runtimes-17.0.6.src.tar.xz deleted file mode 100644 index b629a8e2fe5729da2e0efaa46a3af96e66cd5f76..0000000000000000000000000000000000000000 Binary files a/runtimes-17.0.6.src.tar.xz and /dev/null differ diff --git a/runtimes-18.1.8.src.tar.xz b/runtimes-18.1.8.src.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..40168632023cd87be6d3e3c8430a5efbcb690aea Binary files /dev/null and b/runtimes-18.1.8.src.tar.xz differ