diff options
| author | emmett1 <emmett1.2miligrams@protonmail.com> | 2025-06-10 11:37:57 +0000 |
|---|---|---|
| committer | emmett1 <emmett1.2miligrams@protonmail.com> | 2025-06-10 11:37:57 +0000 |
| commit | 1fbbdc9920eeb4a685a5e1fb68b869bb1e4a69d2 (patch) | |
| tree | 6c9ca2d30b19185a9bc4902800a4869f4c84c507 /repos/extra | |
| parent | 0f58cab1806f5c851e35eb3640fe32d47dea7bbe (diff) | |
| download | alicelinux-1fbbdc9920eeb4a685a5e1fb68b869bb1e4a69d2.tar.gz alicelinux-1fbbdc9920eeb4a685a5e1fb68b869bb1e4a69d2.zip | |
mold: updated to 2.40.0
Diffstat (limited to 'repos/extra')
| -rw-r--r-- | repos/extra/mold/.checksum | 3 | ||||
| -rw-r--r-- | repos/extra/mold/abuild | 5 | ||||
| -rw-r--r-- | repos/extra/mold/amd64_only.patch | 131 |
3 files changed, 136 insertions, 3 deletions
diff --git a/repos/extra/mold/.checksum b/repos/extra/mold/.checksum index 8bf7a8df..c407e2ed 100644 --- a/repos/extra/mold/.checksum +++ b/repos/extra/mold/.checksum @@ -1 +1,2 @@ -552592b83b5a1d56e1de1b68cb11be7aaf685691ce1530fc9d61a2cd35033ee9 mold-v2.39.1.tar.gz +cee8642743d6b954c2c50ff671c11d806802e57005b74bf9e2676e06218d3628 amd64_only.patch +1b3c3986b9bc145ed8e7920efa9c12de94857b5a25bbdab0a94feb1c9be6209d mold-v2.40.0.tar.gz diff --git a/repos/extra/mold/abuild b/repos/extra/mold/abuild index fcc57c3c..25c20514 100644 --- a/repos/extra/mold/abuild +++ b/repos/extra/mold/abuild @@ -1,4 +1,5 @@ name=mold -version=2.39.1 +version=2.40.0 release=1 -source="https://github.com/rui314/${name}/archive/v${version}/${name}-v${version}.tar.gz" +source="https://github.com/rui314/${name}/archive/v${version}/${name}-v${version}.tar.gz + amd64_only.patch" diff --git a/repos/extra/mold/amd64_only.patch b/repos/extra/mold/amd64_only.patch new file mode 100644 index 00000000..1a1574a2 --- /dev/null +++ b/repos/extra/mold/amd64_only.patch @@ -0,0 +1,131 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index bb88c8d..4f0e084 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -314,16 +314,9 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR}) + # compiler instances. This is hacky but greatly reduces compile time + # on a multicore machine. + list(APPEND MOLD_ELF_TARGETS +- X86_64 I386 ARM64LE ARM64BE ARM32LE ARM32BE RV32LE RV32BE RV64LE +- RV64BE PPC32 PPC64V1 PPC64V2 S390X SPARC64 M68K SH4LE SH4BE +- LOONGARCH32 LOONGARCH64) ++ X86_64) + + list(APPEND MOLD_ELF_TEMPLATE_FILES +- src/arch-arm32.cc +- src/arch-arm64.cc +- src/arch-loongarch.cc +- src/arch-riscv.cc +- src/arch-sh4.cc + src/cmdline.cc + src/filetype.cc + src/gc-sections.cc +@@ -390,13 +383,6 @@ target_sources(mold PRIVATE + lib/perf.cc + lib/random.cc + lib/tar.cc +- src/arch-i386.cc +- src/arch-m68k.cc +- src/arch-ppc32.cc +- src/arch-ppc64v1.cc +- src/arch-ppc64v2.cc +- src/arch-s390x.cc +- src/arch-sparc64.cc + src/arch-x86-64.cc + src/elf.cc + src/entry.cc +diff --git a/src/main.cc b/src/main.cc +index c2faf27..0ea5d4c 100644 +--- a/src/main.cc ++++ b/src/main.cc +@@ -279,11 +279,6 @@ int mold_main(int argc, char **argv) { + if (ctx.arg.emulation.empty()) + ctx.arg.emulation = detect_machine_type(ctx, file_args); + +- // Redo if -m is not x86-64. +- if constexpr (is_x86_64<E>) +- if (ctx.arg.emulation != X86_64::name) +- return redo_main(ctx, argc, argv); +- + Timer t_all(ctx, "all"); + + install_signal_handler(); +diff --git a/src/mold.h b/src/mold.h +index 237af93..8bf58bd 100644 +--- a/src/mold.h ++++ b/src/mold.h +@@ -1665,7 +1665,6 @@ std::vector<std::string> parse_nonpositional_args(Context<E> &ctx); + // passes.cc + // + +-template <typename E> int redo_main(Context<E> &, int argc, char **argv); + template <typename E> void create_internal_file(Context<E> &); + template <typename E> void apply_exclude_libs(Context<E> &); + template <typename E> void create_synthetic_sections(Context<E> &); +diff --git a/src/passes.cc b/src/passes.cc +index 4e8ba24..3ebc333 100644 +--- a/src/passes.cc ++++ b/src/passes.cc +@@ -13,54 +13,6 @@ + + namespace mold { + +-// Since mold_main is a template, we can't run it without a type parameter. +-// We speculatively run mold_main with X86_64, and if the speculation was +-// wrong, re-run it with an actual machine type. +-template <typename E> +-int redo_main(Context<E> &ctx, int argc, char **argv) { +- std::string_view target = ctx.arg.emulation; +- +- if (target == I386::name) +- return mold_main<I386>(argc, argv); +- if (target == ARM64LE::name) +- return mold_main<ARM64LE>(argc, argv); +- if (target == ARM64BE::name) +- return mold_main<ARM64BE>(argc, argv); +- if (target == ARM32LE::name) +- return mold_main<ARM32LE>(argc, argv); +- if (target == ARM32BE::name) +- return mold_main<ARM32BE>(argc, argv); +- if (target == RV64LE::name) +- return mold_main<RV64LE>(argc, argv); +- if (target == RV64BE::name) +- return mold_main<RV64BE>(argc, argv); +- if (target == RV32LE::name) +- return mold_main<RV32LE>(argc, argv); +- if (target == RV32BE::name) +- return mold_main<RV32BE>(argc, argv); +- if (target == PPC32::name) +- return mold_main<PPC32>(argc, argv); +- if (target == PPC64V1::name) +- return mold_main<PPC64V1>(argc, argv); +- if (target == PPC64V2::name) +- return mold_main<PPC64V2>(argc, argv); +- if (target == S390X::name) +- return mold_main<S390X>(argc, argv); +- if (target == SPARC64::name) +- return mold_main<SPARC64>(argc, argv); +- if (target == M68K::name) +- return mold_main<M68K>(argc, argv); +- if (target == SH4LE::name) +- return mold_main<SH4LE>(argc, argv); +- if (target == SH4BE::name) +- return mold_main<SH4BE>(argc, argv); +- if (target == LOONGARCH32::name) +- return mold_main<LOONGARCH32>(argc, argv); +- if (target == LOONGARCH64::name) +- return mold_main<LOONGARCH64>(argc, argv); +- abort(); +-} +- + template <typename E> + void apply_exclude_libs(Context<E> &ctx) { + Timer t(ctx, "apply_exclude_libs"); +@@ -3513,7 +3465,6 @@ void show_stats(Context<E> &ctx) { + + using E = MOLD_TARGET; + +-template int redo_main(Context<E> &, int, char **); + template void create_internal_file(Context<E> &); + template void apply_exclude_libs(Context<E> &); + template void create_synthetic_sections(Context<E> &); |