diff --git a/CMakeLists.txt b/CMakeLists.txt index dcbfc2d..d5b3d71 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -183,7 +183,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) 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) endforeach() endforeach() -foreach (SOURCE IN LISTS MOLD_MACHO_TEMPLATE_FILES) - foreach(TARGET IN LISTS MOLD_MACHO_TARGETS) - mold_instantiate_templates(${SOURCE} ${TARGET}) - endforeach() -endforeach() - # Add other non-template source files. target_sources(mold PRIVATE compress.cc demangle.cc - elf/arch-arm32.cc - elf/arch-arm64.cc - elf/arch-i386.cc - elf/arch-ppc64v2.cc - elf/arch-riscv.cc - elf/arch-sparc64.cc elf/arch-x86-64.cc filepath.cc git-hash.cc glob.cc hyperloglog.cc - macho/arch-arm64.cc - macho/arch-x86-64.cc - macho/yaml.cc main.cc multi-glob.cc perf.cc diff --git a/elf/main.cc b/elf/main.cc index b63bba6..c46ffc9 100644 --- a/elf/main.cc +++ b/elf/main.cc @@ -388,33 +388,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(); - } - Timer t_all(ctx, "all"); install_signal_handler(); diff --git a/main.cc b/main.cc index 0f78eff..b4002f8 100644 --- a/main.cc +++ b/main.cc @@ -108,8 +108,5 @@ i64 get_default_thread_count() { int main(int argc, char **argv) { mold::mold_version = mold::get_mold_version(); - std::string cmd = mold::filepath(argv[0]).filename().string(); - if (cmd == "ld64" || cmd == "ld64.mold") - return mold::macho::main(argc, argv); return mold::elf::main(argc, argv); }