openwrt/tools/mold/Makefile

23 lines
562 B
Makefile
Raw Normal View History

# SPDX-License-Identifier: GPL-2.0-only
include $(TOPDIR)/rules.mk
PKG_NAME:=mold
tools: mold: update to 2.31.0 New: - mold is now up to 10% faster when linking very large, debug info-enabled executables such as Blender (~1.8 GiB) or Clang (~3.8 GiB), thanks to several improvements we've made to the string merging algorithm. (53ebcd8, d714301, 40f6b17, c9faf3d) - -z start-stop-visibility=hidden is now supported so that linker-synthesized __start_<section-name> and __stop_<section-name> symbols can be completely hidden from other ELF modules. Previously, only -z start-stop-visibility=protected was supported. (99a5b15) - -Bsymbolic-non-weak and -Bsymbolic-non-weak-functions options are now supported for compatibility with LLVM lld. Just like lld, these options control which symbols are exported as dynamic symbols. -Bsymbolic-non-weak makes the linker to export only weak symbols, whereas -Bsymbolic-non-weak-functions makes it to export only weak function symbols. (7d17aa8) Bug fixes and compatibility improvements: - Previously, if a linker script contains a newline character in the beginning four bytes of a file, it was not recognized as a linker script by mold. Now, mold allows newlines at the beginning of a file. (ea054cc) - Under rare circumstances, the INPUT linker script command may have found a different file than GNU ld would. Now, mold's behavior aligns with GNU ld's. (163975d) - Previously, the --repro option produced corrupted tar files. Now the bug has been fixed. (32c4a09) - mold generally guarantees that its output is reproducible, meaning that if you run the linker with the exact same command line options and input files, the output is guaranteed to be bit-for-bit identical to the previous outputs. However, under rare circumstances, it might produce different output due to a bug. It's reported that this nondeterminism caused random crashes for some programs (#1247). This bug has been fixed. (6463a7c) - mold no longer sets the address of the .text section as the entry point address if --entry option is not given, just like LLVM lld. (020b1a7) - [RISC-V] __global_pointer$ symbol is now exported from executables as required by the processor-specific ABI. (3df7c8e) - [ARM32] --long-plt option is now recognized as known option by mold. mold ignores the option, though, because the PLTs generated by our linker is always long. (d432e98) Release Notes: https://github.com/rui314/mold/releases/tag/v2.31.0 Signed-off-by: Sean Khan <datapronix@protonmail.com> Link: https://github.com/openwrt/openwrt/pull/15403 Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-05-06 16:09:09 +00:00
PKG_VERSION:=2.31.0
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL_FILE:=v$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/rui314/mold/archive/refs/tags
tools: mold: update to 2.31.0 New: - mold is now up to 10% faster when linking very large, debug info-enabled executables such as Blender (~1.8 GiB) or Clang (~3.8 GiB), thanks to several improvements we've made to the string merging algorithm. (53ebcd8, d714301, 40f6b17, c9faf3d) - -z start-stop-visibility=hidden is now supported so that linker-synthesized __start_<section-name> and __stop_<section-name> symbols can be completely hidden from other ELF modules. Previously, only -z start-stop-visibility=protected was supported. (99a5b15) - -Bsymbolic-non-weak and -Bsymbolic-non-weak-functions options are now supported for compatibility with LLVM lld. Just like lld, these options control which symbols are exported as dynamic symbols. -Bsymbolic-non-weak makes the linker to export only weak symbols, whereas -Bsymbolic-non-weak-functions makes it to export only weak function symbols. (7d17aa8) Bug fixes and compatibility improvements: - Previously, if a linker script contains a newline character in the beginning four bytes of a file, it was not recognized as a linker script by mold. Now, mold allows newlines at the beginning of a file. (ea054cc) - Under rare circumstances, the INPUT linker script command may have found a different file than GNU ld would. Now, mold's behavior aligns with GNU ld's. (163975d) - Previously, the --repro option produced corrupted tar files. Now the bug has been fixed. (32c4a09) - mold generally guarantees that its output is reproducible, meaning that if you run the linker with the exact same command line options and input files, the output is guaranteed to be bit-for-bit identical to the previous outputs. However, under rare circumstances, it might produce different output due to a bug. It's reported that this nondeterminism caused random crashes for some programs (#1247). This bug has been fixed. (6463a7c) - mold no longer sets the address of the .text section as the entry point address if --entry option is not given, just like LLVM lld. (020b1a7) - [RISC-V] __global_pointer$ symbol is now exported from executables as required by the processor-specific ABI. (3df7c8e) - [ARM32] --long-plt option is now recognized as known option by mold. mold ignores the option, though, because the PLTs generated by our linker is always long. (d432e98) Release Notes: https://github.com/rui314/mold/releases/tag/v2.31.0 Signed-off-by: Sean Khan <datapronix@protonmail.com> Link: https://github.com/openwrt/openwrt/pull/15403 Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-05-06 16:09:09 +00:00
PKG_HASH:=3dc3af83a5d22a4b29971bfad17261851d426961c665480e2ca294e5c74aa1e5
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/cmake.mk
CMAKE_HOST_OPTIONS += \
-DMOLD_LTO=ON \
-DMOLD_MOSTLY_STATIC=ON \
-DMOLD_USE_SYSTEM_MIMALLOC=OFF \
-DMOLD_USE_SYSTEM_TBB=OFF
$(eval $(call HostBuild))