alicelinux

A lightweight musl + clang/llvm + libressl + busybox distro
git clone https://codeberg.org/emmett1/alicelinux
Log | Files | Refs | README | LICENSE

amd64_only.patch (4268B)


      1 diff --git a/CMakeLists.txt b/CMakeLists.txt
      2 index bb88c8d..4f0e084 100644
      3 --- a/CMakeLists.txt
      4 +++ b/CMakeLists.txt
      5 @@ -314,16 +314,9 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR})
      6  # compiler instances. This is hacky but greatly reduces compile time
      7  # on a multicore machine.
      8  list(APPEND MOLD_ELF_TARGETS
      9 -  X86_64 I386 ARM64LE ARM64BE ARM32LE ARM32BE RV32LE RV32BE RV64LE
     10 -  RV64BE PPC32 PPC64V1 PPC64V2 S390X SPARC64 M68K SH4LE SH4BE
     11 -  LOONGARCH32 LOONGARCH64)
     12 +  X86_64)
     13  
     14  list(APPEND MOLD_ELF_TEMPLATE_FILES
     15 -  src/arch-arm32.cc
     16 -  src/arch-arm64.cc
     17 -  src/arch-loongarch.cc
     18 -  src/arch-riscv.cc
     19 -  src/arch-sh4.cc
     20    src/cmdline.cc
     21    src/filetype.cc
     22    src/gc-sections.cc
     23 @@ -390,13 +383,6 @@ target_sources(mold PRIVATE
     24    lib/perf.cc
     25    lib/random.cc
     26    lib/tar.cc
     27 -  src/arch-i386.cc
     28 -  src/arch-m68k.cc
     29 -  src/arch-ppc32.cc
     30 -  src/arch-ppc64v1.cc
     31 -  src/arch-ppc64v2.cc
     32 -  src/arch-s390x.cc
     33 -  src/arch-sparc64.cc
     34    src/arch-x86-64.cc
     35    src/elf.cc
     36    src/entry.cc
     37 diff --git a/src/main.cc b/src/main.cc
     38 index c2faf27..0ea5d4c 100644
     39 --- a/src/main.cc
     40 +++ b/src/main.cc
     41 @@ -279,11 +279,6 @@ int mold_main(int argc, char **argv) {
     42    if (ctx.arg.emulation.empty())
     43      ctx.arg.emulation = detect_machine_type(ctx, file_args);
     44  
     45 -  // Redo if -m is not x86-64.
     46 -  if constexpr (is_x86_64<E>)
     47 -    if (ctx.arg.emulation != X86_64::name)
     48 -      return redo_main(ctx, argc, argv);
     49 -
     50    Timer t_all(ctx, "all");
     51  
     52    install_signal_handler();
     53 diff --git a/src/mold.h b/src/mold.h
     54 index 237af93..8bf58bd 100644
     55 --- a/src/mold.h
     56 +++ b/src/mold.h
     57 @@ -1665,7 +1665,6 @@ std::vector<std::string> parse_nonpositional_args(Context<E> &ctx);
     58  // passes.cc
     59  //
     60  
     61 -template <typename E> int redo_main(Context<E> &, int argc, char **argv);
     62  template <typename E> void create_internal_file(Context<E> &);
     63  template <typename E> void apply_exclude_libs(Context<E> &);
     64  template <typename E> void create_synthetic_sections(Context<E> &);
     65 diff --git a/src/passes.cc b/src/passes.cc
     66 index 4e8ba24..3ebc333 100644
     67 --- a/src/passes.cc
     68 +++ b/src/passes.cc
     69 @@ -13,54 +13,6 @@
     70  
     71  namespace mold {
     72  
     73 -// Since mold_main is a template, we can't run it without a type parameter.
     74 -// We speculatively run mold_main with X86_64, and if the speculation was
     75 -// wrong, re-run it with an actual machine type.
     76 -template <typename E>
     77 -int redo_main(Context<E> &ctx, int argc, char **argv) {
     78 -  std::string_view target = ctx.arg.emulation;
     79 -
     80 -  if (target == I386::name)
     81 -    return mold_main<I386>(argc, argv);
     82 -  if (target == ARM64LE::name)
     83 -    return mold_main<ARM64LE>(argc, argv);
     84 -  if (target == ARM64BE::name)
     85 -    return mold_main<ARM64BE>(argc, argv);
     86 -  if (target == ARM32LE::name)
     87 -    return mold_main<ARM32LE>(argc, argv);
     88 -  if (target == ARM32BE::name)
     89 -    return mold_main<ARM32BE>(argc, argv);
     90 -  if (target == RV64LE::name)
     91 -    return mold_main<RV64LE>(argc, argv);
     92 -  if (target == RV64BE::name)
     93 -    return mold_main<RV64BE>(argc, argv);
     94 -  if (target == RV32LE::name)
     95 -    return mold_main<RV32LE>(argc, argv);
     96 -  if (target == RV32BE::name)
     97 -    return mold_main<RV32BE>(argc, argv);
     98 -  if (target == PPC32::name)
     99 -    return mold_main<PPC32>(argc, argv);
    100 -  if (target == PPC64V1::name)
    101 -    return mold_main<PPC64V1>(argc, argv);
    102 -  if (target == PPC64V2::name)
    103 -    return mold_main<PPC64V2>(argc, argv);
    104 -  if (target == S390X::name)
    105 -    return mold_main<S390X>(argc, argv);
    106 -  if (target == SPARC64::name)
    107 -    return mold_main<SPARC64>(argc, argv);
    108 -  if (target == M68K::name)
    109 -    return mold_main<M68K>(argc, argv);
    110 -  if (target == SH4LE::name)
    111 -    return mold_main<SH4LE>(argc, argv);
    112 -  if (target == SH4BE::name)
    113 -    return mold_main<SH4BE>(argc, argv);
    114 -  if (target == LOONGARCH32::name)
    115 -    return mold_main<LOONGARCH32>(argc, argv);
    116 -  if (target == LOONGARCH64::name)
    117 -    return mold_main<LOONGARCH64>(argc, argv);
    118 -  abort();
    119 -}
    120 -
    121  template <typename E>
    122  void apply_exclude_libs(Context<E> &ctx) {
    123    Timer t(ctx, "apply_exclude_libs");
    124 @@ -3513,7 +3465,6 @@ void show_stats(Context<E> &ctx) {
    125  
    126  using E = MOLD_TARGET;
    127  
    128 -template int redo_main(Context<E> &, int, char **);
    129  template void create_internal_file(Context<E> &);
    130  template void apply_exclude_libs(Context<E> &);
    131  template void create_synthetic_sections(Context<E> &);