mold 1.9.0 might crash with SIGSEGV if -emit-relocs is used with object files containing debug info.Now, mold correctly reports such link errors. That bug resulted in producing a non-working executable instead of reporting a link failure. Previously, mold failed to report an undefined symbol error if there's a weak undefined symbol of the same name.We fixed the performance regression and made it even faster than 1.8.0. mold 1.9.0 was up to 10% slower than 1.8.0 on some multicore machines.mold is now able to optimize GOT load by rewriting an ADDR+LDR instruction pair with an ADDR+ADD if the loaded GOT value is known at link-time.If your shared library is not intended to be used via dlopen(2) and your library frequently accesses thread-local variables, you might want to pass that option when linking your library. mold now optimizes thread-local variable accesses in shared libraries if the library is linked with -z nodlopen.There are many use cases of the option for example, if you want to eliminate the dependency to some library from your program, you can use this option to find out all the functions that use the library's function to fix them. Here is a truncated example output when linking mold itself with the option. mold now officially supports the -print-dependencies option to print out dependency information between input files.In particular, we'd like to acknowledge the following organizations and people who have sponsored $32/mo or more during this release cycle: We thank you to everybody who sponsors our project. Mold is an open-source project, and we accept donations via GitHub Sponsors and OpenCollective. bss section may fail to link due to R_X86_64_REX_GOTPCRELX relocation overflow ( #975). Previously, a program with a very large.mold can now link object files generated by old buggy versions of GCC.This improves compatibility with GNU linkers. Since this version, if a required DSO depends on other as-needed DSO, mold keeps the latter DSO as a required one. mold used to ignore dependencies between DSOs.Previous versions of mold failed to link some programs in rare corner cases if Link-Time Optimization (LTO) is enabled.R_RISCV_PLT32 relocation type has been supported.R_ARM_PLT32 relocation type has been supported.-hash-style=none has been added to cancel -hash-style=sysv, -hash-style=gnu or -hash-style=both.Previously, mold created broken executables for that target. This is not a big release but includes general improvements and bug fixes. Mold 1.11.0 is a new release of the high-speed linker. R_PPC64_RE元2 relocation type is now supported.R_RISCV_SET_ULEB128 and R_RISCV_SUB_ULEB128 relocation types are now supported ( 4bffe26, 1ac5fe7).-nopie is now handled as a synonym for -no-pie.This seems inconsistent, as -ufoo is generally treated as -u foo (which is an alias for -undefined foo), but this is the behavior of the GNU linkers and LLVM lld, so we prioritize compatibility over consistency. mold now interprets -undefined as a synonym for -undefined instead of -u ndefined.Previously, mold could not produce an object file with more than 65520 sections using the -relocatable option.In addition to the license change, here is a list of updates we have made in this release: If you are happy with the license change, please consider becoming a sponsor. We don't want to persist with a strategy that didn't work well.Īs always, we welcome new GitHub sponsors. The license change represents our acceptance of this reality. Unfortunately, this approach didn't meet our expectations. This was not an easy decision, as those who have been following our progress know that we've been attempting to monetize our product through an AGPL/commercial license dual-licensing scheme. With this release, we've transitioned our license from AGPL to MIT, aiming to expand the user base of our linker. Mold 2.0.0 is a new major release of our high-speed linker. We thank everyone who sponsors our project. R_AARCH64_MOVW_UABS_G3 relocation type has now been handled as a PLT-generating relocation to fix an issue when main is not defined in the main executable but rather in a.R_AARCH64_ADR_PREL_PG_HI21_NC relocation type has been supported.Now, mold produces binaries compatible with glibc 2.38. Previously, linking with the -z pack-relative-relocs option produces an executable that glibc 2.38 refuses to run with DT_RELR without GLIBC_ABI_DT_RELR dependency error.-z nosectionheader has been added to eliminate section headers from the output file.Loongson's LoongArch CPU has been supported.Mold 2.1.0 is a new release of the high-speed linker.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |