diff --git a/anda/devs/mold/0001-Use-system-compatible-include-path-for-xxhash.h.patch b/anda/devs/mold/0001-Use-system-compatible-include-path-for-xxhash.h.patch new file mode 100644 index 0000000000..53b9d187f6 --- /dev/null +++ b/anda/devs/mold/0001-Use-system-compatible-include-path-for-xxhash.h.patch @@ -0,0 +1,44 @@ +From 6b57f8b406dc5105d5d83c8b937c3491c7f3852c Mon Sep 17 00:00:00 2001 +Message-ID: <6b57f8b406dc5105d5d83c8b937c3491c7f3852c.1727252245.git.github@sicherha.de> +From: Christoph Erhardt +Date: Sat, 6 Aug 2022 09:18:54 +0200 +Subject: [PATCH 1/2] Use system-compatible include path for `xxhash.h` + +Distributors that build mold against the system-provided xxHash package +expect its header file `xxhash.h` in the top-level include directory, +not in an `xxhash` subdirectory. Adjust the include path and the +`#include` directive accordingly. +--- + CMakeLists.txt | 2 ++ + lib/common.h | 2 +- + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d6d1500a..b5f8b56e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -224,6 +224,8 @@ else() + mold_add_tbb() + endif() + ++target_include_directories(mold PRIVATE third-party/xxhash) ++ + # We always use Clang to build mold on Windows. MSVC can't compile mold. + if(WIN32) + if(MSVC AND NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang") +diff --git a/lib/common.h b/lib/common.h +index d915c97e..417801d1 100644 +--- a/lib/common.h ++++ b/lib/common.h +@@ -34,7 +34,7 @@ + #endif + + #define XXH_INLINE_ALL 1 +-#include "../third-party/xxhash/xxhash.h" ++#include + + #ifdef NDEBUG + # define unreachable() __builtin_unreachable() +-- +2.46.1 + diff --git a/anda/devs/mold/0002-ELF-S390X-Skip-another-test-that-fails-with-GCC-14.patch b/anda/devs/mold/0002-ELF-S390X-Skip-another-test-that-fails-with-GCC-14.patch new file mode 100644 index 0000000000..921f4f86ee --- /dev/null +++ b/anda/devs/mold/0002-ELF-S390X-Skip-another-test-that-fails-with-GCC-14.patch @@ -0,0 +1,30 @@ +From c4a950cfb4fb78a6009c3834b9875606d4bde475 Mon Sep 17 00:00:00 2001 +Message-ID: +In-Reply-To: <6b57f8b406dc5105d5d83c8b937c3491c7f3852c.1727252245.git.github@sicherha.de> +References: <6b57f8b406dc5105d5d83c8b937c3491c7f3852c.1727252245.git.github@sicherha.de> +From: Christoph Erhardt +Date: Sat, 20 Jan 2024 23:58:00 +0100 +Subject: [PATCH 2/2] [ELF][S390X] Skip another test that fails with GCC 14 + +--- + test/rodata-name.sh | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/test/rodata-name.sh b/test/rodata-name.sh +index def5a6fd..f5de4b4a 100755 +--- a/test/rodata-name.sh ++++ b/test/rodata-name.sh +@@ -5,6 +5,10 @@ + # Concretely speaking, ARM as uses "@" as a start of a comment. + [ $MACHINE = arm ] && skip + ++# GCC produces buggy code for this test case on s390x. ++# https://sourceware.org/bugzilla/show_bug.cgi?id=29655 ++[ $MACHINE = s390x ] && $CC -v 2>&1 | grep -E '^gcc version 14\.' && skip ++ + cat <<'EOF' | $CC -c -o $t/a.o -x assembler - + .globl val1, val2, val3, val4, val5 + +-- +2.46.1 + diff --git a/anda/devs/mold/anda.hcl b/anda/devs/mold/anda.hcl new file mode 100644 index 0000000000..f54e6aa2bc --- /dev/null +++ b/anda/devs/mold/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "mold.spec" + } +} diff --git a/anda/devs/mold/mold.spec b/anda/devs/mold/mold.spec new file mode 100644 index 0000000000..14d0880179 --- /dev/null +++ b/anda/devs/mold/mold.spec @@ -0,0 +1,99 @@ +Name: mold +Version: 2.35.0 +Release: %autorelease +Summary: A Modern Linker + +License: MIT AND (Apache-2.0 OR MIT) +URL: https://github.com/rui314/mold +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz + +# Allow building against the system-provided `xxhash.h` +Patch0: 0001-Use-system-compatible-include-path-for-xxhash.h.patch + +# Possibly https://sourceware.org/bugzilla/show_bug.cgi?id=29655 +Patch1: 0002-ELF-S390X-Skip-another-test-that-fails-with-GCC-14.patch + +BuildRequires: blake3-devel +BuildRequires: cmake +%if 0%{?el8} +BuildRequires: gcc-toolset-13 +%else +BuildRequires: gcc +BuildRequires: gcc-c++ >= 10 +%endif +BuildRequires: libzstd-devel +BuildRequires: mimalloc-devel +BuildRequires: xxhash-static +BuildRequires: zlib-devel +BuildRequires: tbb-devel >= 2021.9 +# The following packages are only required for executing the tests +BuildRequires: clang +BuildRequires: gdb +BuildRequires: glibc-static +%if ! 0%{?el8} +%ifarch x86_64 +# Koji 64-bit buildroots do not contain packages from 32-bit builds, therefore +# the 'glibc-devel.i686' variant is provided as 'glibc32'. +BuildRequires: (glibc32 or glibc-devel(%__isa_name-32)) +%endif +BuildRequires: libdwarf-tools +%endif +BuildRequires: libstdc++-static +BuildRequires: llvm +BuildRequires: perl-interpreter + +Requires(post): %{_sbindir}/alternatives +Requires(preun): %{_sbindir}/alternatives + +%description +mold is a faster drop-in replacement for existing Unix linkers. +It is several times faster than the LLVM lld linker. +mold is designed to increase developer productivity by reducing +build time, especially in rapid debug-edit-rebuild cycles. + +%prep +%autosetup -p1 +rm -r third-party/{blake3,mimalloc,xxhash,zlib,zstd} +%if 0%{?fedora} >= 40 +rm -r third-party/tbb +%endif + +%build +%if 0%{?el8} +. /opt/rh/gcc-toolset-13/enable +%endif +%cmake -DMOLD_USE_SYSTEM_MIMALLOC=ON %{?tbb_flags} +%cmake_build + +%install +%cmake_install + +%post +if [ "$1" = 1 ]; then + %{_sbindir}/alternatives --install %{_bindir}/ld ld %{_bindir}/ld.mold 1 +fi + +%postun +if [ "$1" = 0 ]; then + %{_sbindir}/alternatives --remove ld %{_bindir}/ld.mold +fi + +%check +%if 0%{?el8} +. /opt/rh/gcc-toolset-13/enable +%endif +%ctest + +%files +%license %{_docdir}/mold/LICENSE +%ghost %{_bindir}/ld +%{_bindir}/mold +%{_bindir}/ld.mold +%{_libdir}/mold/mold-wrapper.so +%{_libexecdir}/mold/ld +%{_mandir}/man1/ld.mold.1* +%{_mandir}/man1/mold.1* + +%changelog +%autochangelog + diff --git a/anda/devs/mold/update.rhai b/anda/devs/mold/update.rhai new file mode 100644 index 0000000000..b66e0248b6 --- /dev/null +++ b/anda/devs/mold/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("rui314/mold")); diff --git a/anda/lib/dwarf/anda.hcl b/anda/lib/dwarf/anda.hcl new file mode 100644 index 0000000000..7aa3e0ecd6 --- /dev/null +++ b/anda/lib/dwarf/anda.hcl @@ -0,0 +1,5 @@ +project pkg { + rpm { + spec = "libdwarf.spec" + } +} diff --git a/anda/lib/dwarf/libdwarf-both.patch b/anda/lib/dwarf/libdwarf-both.patch new file mode 100644 index 0000000000..e7625a3e48 --- /dev/null +++ b/anda/lib/dwarf/libdwarf-both.patch @@ -0,0 +1,49 @@ +From 472a7ff891d1847b0f3a98325a0bfc2a60a8df82 Mon Sep 17 00:00:00 2001 +From: Tom Hughes +Date: Tue, 25 Jun 2024 08:55:46 +0100 +Subject: [PATCH] Make default-library=both work on linux + +--- + src/lib/libdwarf/meson.build | 6 +++--- + src/lib/libdwarfp/meson.build | 6 +++--- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/src/lib/libdwarf/meson.build b/src/lib/libdwarf/meson.build +index a958b732..c0753db4 100644 +--- a/src/lib/libdwarf/meson.build ++++ b/src/lib/libdwarf/meson.build +@@ -120,10 +120,10 @@ else + libzstd_deps = dependency('',required: false) + endif + +-if (lib_type == 'shared') +- compiler_flags = ['-DLIBDWARF_BUILD'] +-else ++if (lib_type == 'static') + compiler_flags = ['-DLIBDWARF_STATIC'] ++else ++ compiler_flags = ['-DLIBDWARF_BUILD'] + endif + + libdwarf_lib = library('dwarf', libdwarf_src, +diff --git a/src/lib/libdwarfp/meson.build b/src/lib/libdwarfp/meson.build +index 33b5340e..9c527111 100644 +--- a/src/lib/libdwarfp/meson.build ++++ b/src/lib/libdwarfp/meson.build +@@ -31,10 +31,10 @@ libdwarfp_src = [ + ] + + libdwarf_dir = include_directories('../libdwarf') +-if (lib_type == 'shared') +- compiler_flags = ['-DLIBDWARF_BUILD'] +-else ++if (lib_type == 'static') + compiler_flags = ['-DLIBDWARF_STATIC'] ++else ++ compiler_flags = ['-DLIBDWARF_BUILD'] + endif + + +-- +2.45.2 + diff --git a/anda/lib/dwarf/libdwarf.spec b/anda/lib/dwarf/libdwarf.spec new file mode 100644 index 0000000000..cf64cf07b0 --- /dev/null +++ b/anda/lib/dwarf/libdwarf.spec @@ -0,0 +1,91 @@ +#? https://src.fedoraproject.org/rpms/libdwarf/blob/epel10/f/libdwarf.spec +Name: libdwarf +Version: 0.11.1 +Release: %autorelease +Summary: Library to access the DWARF Debugging file format + +License: LGPL-2.1-only AND BSD-2-Clause-FreeBSD +URL: https://www.prevanders.net/dwarf.html +Source0: https://www.prevanders.net/%{name}-%{version}.tar.xz +# Make default-library=both work on linux +Packager: madonuko +Patch: libdwarf-both.patch + +BuildRequires: gcc gcc-c++ meson python3 + +%description +Library to access the DWARF debugging file format which supports +source level debugging of a number of procedural languages, such as C, C++, +and Fortran. Please see http://www.dwarfstd.org for DWARF specification. + +%package devel +Summary: Library and header files of libdwarf +License: LGPL-2.1-only AND BSD-2-Clause-FreeBSD +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description devel +Development package containing library and header files of libdwarf. + +%package static +Summary: Static libdwarf library +License: LGPL-2.1-only AND BSD-2-Clause-FreeBSD +Requires: %{name}-devel = %{?epoch:%epoch:}%{version}-%{release} + +%description static +Static libdwarf library. + +%package tools +Summary: Tools for accessing DWARF debugging information +License: GPL-2.0-only AND BSD-2-Clause-FreeBSD +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description tools +C++ version of dwarfdump (dwarfdump2) command-line utilities +to access DWARF debug information. + + +%prep +%autosetup -p1 + + +%build +%meson --default-library=both +%meson_build + + +%install +%meson_install + + +%check +%meson_test + + +%files +%doc src/lib/libdwarf/ChangeLog src/lib/libdwarf/README +%license src/lib/libdwarf/COPYING src/lib/libdwarf/LIBDWARFCOPYRIGHT src/lib/libdwarf/LGPL.txt +%{_libdir}/libdwarf.so.0 +%{_libdir}/libdwarf.so.0.* + + +%files static +%{_libdir}/libdwarf.a + + +%files devel +%doc doc/*.pdf +%{_includedir}/libdwarf-0 +%{_libdir}/libdwarf.so +%{_libdir}/pkgconfig/libdwarf.pc + + +%files tools +%license src/bin/dwarfdump/COPYING src/bin/dwarfdump/DWARFDUMPCOPYRIGHT src/bin/dwarfdump/GPL.txt +%{_bindir}/dwarfdump +%{_datadir}/dwarfdump/dwarfdump.conf +%{_mandir}/man1/dwarfdump.1.gz + + +%changelog +* Fri Dec 20 2024 madonuko - 0.11.1-1 +- Repackaged for Terra el10 from Fedora el10 diff --git a/anda/lib/dwarf/update.rhai b/anda/lib/dwarf/update.rhai new file mode 100644 index 0000000000..2fda5081f6 --- /dev/null +++ b/anda/lib/dwarf/update.rhai @@ -0,0 +1 @@ +rpm.version(find(`(?m)\nReason for release\n\n\n\n\n\n +BuildRequires: cmake +BuildRequires: gcc-c++ + +%description +mimalloc (pronounced "me-malloc") +is a general purpose allocator with excellent performance characteristics. +Initially developed by Daan Leijen for the run-time systems. + +%package devel +Summary: Development environment for %name +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +Development package for mimalloc. + +%prep +%autosetup -p1 +# Remove unneded binary from sources +rm -rf bin + + +%build +%cmake \ + -DMI_BUILD_OBJECT=OFF \ + -DMI_OVERRIDE=OFF \ + -DMI_INSTALL_TOPLEVEL=ON \ + -DMI_BUILD_STATIC=OFF \ + -DMI_BUILD_TESTS=OFF \ + -DCMAKE_BUILD_TYPE=Release +%cmake_build + + +%install +%cmake_install + + +%files +%license LICENSE +%doc readme.md +%{_libdir}/lib%{name}.so.2* + +%files devel +%{_libdir}/lib%{name}.so +%{_libdir}/cmake/%{name}/ +%{_libdir}/pkgconfig/%{name}.pc +%{_includedir}/* + + +%changelog +* Fri Dec 20 2024 madonuko - 2.1.7-1 +- Repackaged for Terra el10 from Fedora el10 + +* Thu Jul 18 2024 Fedora Release Engineering - 2.1.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Tue Jun 18 2024 Vasiliy Glazov - 2.1.7-1 +- Update to 2.1.7 + +* Wed Apr 24 2024 Vasiliy Glazov - 2.1.4-1 +- Update to 2.1.4 + +* Thu Jan 25 2024 Fedora Release Engineering - 2.1.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 2.1.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Jul 20 2023 Fedora Release Engineering - 2.1.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Fri May 12 2023 Vasiliy Glazov - 2.1.2-1 +- Update to 2.1.2 + +* Wed Apr 05 2023 Vasiliy Glazov - 2.1.1-1 +- Update to 2.1.1 + +* Fri Mar 31 2023 Vasiliy Glazov - 2.1.0-1 +- Update to 2.1.0 + +* Thu Jan 19 2023 Fedora Release Engineering - 2.0.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Dec 28 2022 Vasiliy Glazov - 2.0.9-1 +- Update to 2.0.9 + +* Mon Nov 14 2022 Vasiliy Glazov - 2.0.7-1 +- Update to 2.0.7 + +* Thu Jul 21 2022 Fedora Release Engineering - 2.0.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Fri Apr 15 2022 Vasiliy Glazov - 2.0.6-1 +- Update to 2.0.6 + +* Tue Feb 15 2022 Vasiliy Glazov - 2.0.5-1 +- Update to 2.0.5 + +* Thu Jan 20 2022 Fedora Release Engineering - 2.0.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Mon Nov 15 2021 Vasiliy Glazov - 2.0.3-1 +- Update to 2.0.3 + +* Wed Sep 29 2021 Vasiliy Glazov - 2.0.2-2 +- Clean spec to follow packaging guidelines + +* Wed Sep 29 2021 Vasiliy Glazov - 2.0.2-1 +- Initial packaging for Fedora + diff --git a/anda/lib/mimalloc/update.rhai b/anda/lib/mimalloc/update.rhai new file mode 100644 index 0000000000..f07bb345c0 --- /dev/null +++ b/anda/lib/mimalloc/update.rhai @@ -0,0 +1 @@ +rpm.version(gh("microsoft/mimalloc"));