diff --git a/CMakeLists.txt b/CMakeLists.txt index bce7166..e43dc77 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -297,12 +297,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 ARM64 ARM32 RV32LE RV32BE RV64LE RV64BE PPC32 PPC64V1 PPC64V2 - S390X SPARC64 M68K SH4 ALPHA LOONGARCH32 LOONGARCH64) + X86_64) list(APPEND MOLD_ELF_TEMPLATE_FILES - elf/arch-loongarch.cc - elf/arch-riscv.cc elf/cmdline.cc elf/gc-sections.cc elf/gdb-index.cc @@ -373,17 +370,6 @@ target_sources(mold PRIVATE common/perf.cc common/tar.cc common/uuid.cc - elf/arch-alpha.cc - elf/arch-arm32.cc - elf/arch-arm64.cc - elf/arch-i386.cc - elf/arch-m68k.cc - elf/arch-ppc32.cc - elf/arch-ppc64v1.cc - elf/arch-ppc64v2.cc - elf/arch-s390x.cc - elf/arch-sh4.cc - elf/arch-sparc64.cc elf/arch-x86-64.cc elf/elf.cc git-hash.cc diff --git a/elf/main.cc b/elf/main.cc index 7847d14..660a442 100644 --- a/elf/main.cc +++ b/elf/main.cc @@ -359,11 +359,6 @@ int elf_main(int argc, char **argv) { if (ctx.arg.emulation.empty()) ctx.arg.emulation = deduce_machine_type(ctx, file_args); - // Redo if -m is not x86-64. - if constexpr (is_x86_64) - if (ctx.arg.emulation != X86_64::target_name) - return redo_main(ctx, argc, argv); - Timer t_all(ctx, "all"); install_signal_handler(); diff --git a/elf/mold.h b/elf/mold.h index 3028e73..9a0c5dd 100644 --- a/elf/mold.h +++ b/elf/mold.h @@ -1346,7 +1346,6 @@ std::vector parse_nonpositional_args(Context &ctx); // passes.cc // -template int redo_main(Context &, int argc, char **argv); template void create_internal_file(Context &); template void apply_exclude_libs(Context &); template void create_synthetic_sections(Context &); diff --git a/elf/passes.cc b/elf/passes.cc index 3664538..112aa79 100644 --- a/elf/passes.cc +++ b/elf/passes.cc @@ -13,50 +13,6 @@ namespace mold::elf { -// Since elf_main is a template, we can't run it without a type parameter. -// We speculatively run elf_main with X86_64, and if the speculation was -// wrong, re-run it with an actual machine type. -template -int redo_main(Context &ctx, int argc, char **argv) { - std::string_view target = ctx.arg.emulation; - - if (target == I386::target_name) - return elf_main(argc, argv); - if (target == ARM64::target_name) - return elf_main(argc, argv); - if (target == ARM32::target_name) - return elf_main(argc, argv); - if (target == RV64LE::target_name) - return elf_main(argc, argv); - if (target == RV64BE::target_name) - return elf_main(argc, argv); - if (target == RV32LE::target_name) - return elf_main(argc, argv); - if (target == RV32BE::target_name) - return elf_main(argc, argv); - if (target == PPC32::target_name) - return elf_main(argc, argv); - if (target == PPC64V1::target_name) - return elf_main(argc, argv); - if (target == PPC64V2::target_name) - return elf_main(argc, argv); - if (target == S390X::target_name) - return elf_main(argc, argv); - if (target == SPARC64::target_name) - return elf_main(argc, argv); - if (target == M68K::target_name) - return elf_main(argc, argv); - if (target == SH4::target_name) - return elf_main(argc, argv); - if (target == ALPHA::target_name) - return elf_main(argc, argv); - if (target == LOONGARCH32::target_name) - return elf_main(argc, argv); - if (target == LOONGARCH64::target_name) - return elf_main(argc, argv); - unreachable(); -} - template void apply_exclude_libs(Context &ctx) { Timer t(ctx, "apply_exclude_libs"); @@ -2725,7 +2681,6 @@ void show_stats(Context &ctx) { using E = MOLD_TARGET; -template int redo_main(Context &, int, char **); template void create_internal_file(Context &); template void apply_exclude_libs(Context &); template void create_synthetic_sections(Context &);