diff --git a/extra/mold/checksums b/extra/mold/checksums index 5f6c6378..1d73ebac 100644 --- a/extra/mold/checksums +++ b/extra/mold/checksums @@ -1,2 +1,2 @@ -ec94aa74758f1bc199a732af95c6304ec98292b87f2f4548ce8436a7c5b054a1 -9961e46306499052f631563dad64f084934b422347911287024379e9712fa703 +59cd3ea1a2a5fb50d0d97faddd8bff4c7e71054a576c00a87b17f56ecbd88729 +b726ba359d10f83e33bca35193fd485876e04ea869417ce2642135ede9f55756 diff --git a/extra/mold/patches/elf_amd64_only.patch b/extra/mold/patches/elf_amd64_only.patch index 8de947fe..59503404 100644 --- a/extra/mold/patches/elf_amd64_only.patch +++ b/extra/mold/patches/elf_amd64_only.patch @@ -1,38 +1,18 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index dcbfc2d..d5b3d71 100644 +index a5344d9a..11c7d806 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -183,7 +183,7 @@ add_dependencies(mold git_hash) +@@ -246,8 +246,7 @@ add_dependencies(mold git_hash) # As a workaround, we create a .cc file for each target and spawn many # compiler instances. This is hacky but greatly reduces compile time. list(APPEND MOLD_ELF_TARGETS -- X86_64 I386 ARM64 ARM32 RV32LE RV32BE RV64LE RV64BE PPC64V2 SPARC64) +- X86_64 I386 ARM64 ARM32 RV32LE RV32BE RV64LE RV64BE +- PPC64V1 PPC64V2 SPARC64 S390X) + X86_64) list(APPEND MOLD_ELF_TEMPLATE_FILES elf/cmdline.cc -@@ -203,20 +203,6 @@ list(APPEND MOLD_ELF_TEMPLATE_FILES - elf/thunks.cc - ) - --list(APPEND MOLD_MACHO_TARGETS X86_64 ARM64) -- --list(APPEND MOLD_MACHO_TEMPLATE_FILES -- macho/cmdline.cc -- macho/dead-strip.cc -- macho/input-files.cc -- macho/input-sections.cc -- macho/lto.cc -- macho/main.cc -- macho/mapfile.cc -- macho/output-chunks.cc -- macho/tapi.cc -- ) -- - function(mold_instantiate_templates SOURCE TARGET) - set(PATH ${CMAKE_BINARY_DIR}/${SOURCE}.${TARGET}.cc) - file(WRITE ${PATH} "#define MOLD_${TARGET} 1 -@@ -232,30 +218,15 @@ foreach (SOURCE IN LISTS MOLD_ELF_TEMPLATE_FILES) +@@ -296,32 +295,15 @@ foreach (SOURCE IN LISTS MOLD_ELF_TEMPLATE_FILES) endforeach() endforeach() @@ -49,8 +29,10 @@ index dcbfc2d..d5b3d71 100644 - elf/arch-arm32.cc - elf/arch-arm64.cc - elf/arch-i386.cc +- elf/arch-ppc64v1.cc - elf/arch-ppc64v2.cc - elf/arch-riscv.cc +- elf/arch-s390x.cc - elf/arch-sparc64.cc elf/arch-x86-64.cc filepath.cc @@ -64,48 +46,26 @@ index dcbfc2d..d5b3d71 100644 multi-glob.cc perf.cc diff --git a/elf/main.cc b/elf/main.cc -index b63bba6..c46ffc9 100644 +index 8b6cf3fb..46e07424 100644 --- a/elf/main.cc +++ b/elf/main.cc -@@ -388,33 +388,6 @@ int elf_main(int argc, char **argv) { +@@ -422,11 +422,6 @@ int elf_main(int argc, char **argv) { if (ctx.arg.emulation == MachineType::NONE) ctx.arg.emulation = deduce_machine_type(ctx, file_args); - // Redo if -m is not x86-64. -- if (ctx.arg.emulation != E::machine_type) { -- switch (ctx.arg.emulation) { -- case MachineType::I386: -- return elf_main(argc, argv); -- case MachineType::ARM64: -- return elf_main(argc, argv); -- case MachineType::ARM32: -- return elf_main(argc, argv); -- case MachineType::RV64LE: -- return elf_main(argc, argv); -- case MachineType::RV64BE: -- return elf_main(argc, argv); -- case MachineType::RV32LE: -- return elf_main(argc, argv); -- case MachineType::RV32BE: -- return elf_main(argc, argv); -- case MachineType::PPC64V2: -- return elf_main(argc, argv); -- case MachineType::SPARC64: -- return elf_main(argc, argv); -- default: -- unreachable(); -- } -- unreachable(); -- } +- if constexpr (std::is_same_v) +- if (ctx.arg.emulation != MachineType::X86_64) +- return redo_main(argc, argv, ctx.arg.emulation); - Timer t_all(ctx, "all"); install_signal_handler(); diff --git a/main.cc b/main.cc -index 0f78eff..b4002f8 100644 +index db834c69..181e045e 100644 --- a/main.cc +++ b/main.cc -@@ -108,8 +108,5 @@ i64 get_default_thread_count() { +@@ -144,8 +144,5 @@ i64 get_default_thread_count() { int main(int argc, char **argv) { mold::mold_version = mold::get_mold_version(); diff --git a/extra/mold/version b/extra/mold/version index 0872adad..bfa5a6a4 100644 --- a/extra/mold/version +++ b/extra/mold/version @@ -1 +1 @@ -1.5.1 1 +1.6.0 1