pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/devel/mold
Module Name: pkgsrc
Committed By: fcambus
Date: Mon Jan 31 22:44:55 UTC 2022
Modified Files:
pkgsrc/devel/mold: Makefile distinfo
pkgsrc/devel/mold/patches: patch-Makefile
Removed Files:
pkgsrc/devel/mold/patches: patch-elf_cmdline.cc
patch-elf_object-file.cc
Log Message:
mold: update to 1.0.2.
New features:
- mold now automatically falls back to ld.bfd or ld.lld if GCC-based LTO
(link time optimization) or LLVM-based LTO are requested, respectively.
This is a temporary hack until mold gains native LTO support. (a5029d1)
- The following flags have been added: -z ibt (9ca6a9d), -z cet-report
(31a43a7), -z shstk (e29bd8f), -z ibtplt (fbfa01d)
- [ARM64] Range extension thunks are now supported. Previously, mold
reported "relocation overflow" errors when the output file's text
segment is larger than some threshold (~60 MiB). Now, it can link large
programs just fine. (9287682)
- [NetBSD] mold is now usable on NetBSD. (948248b)
- [x86-64] mold now emits compact 8-byte PLT entries instead of the
regular 16-byte PLT entries if -z now is given. (0370e7f)
- RELR-type packed dynamic relocations are now supported. You can enable
it by passing -z pack-dyn-relocs=relr. The good news is that it can
typically reduce PIE (position-independent executable) size by a few
percent. This is not a negligible saving because PIE is now default on
many systems for security reasons. The bad news is that it needs a
runtime support. To our knowledge, it's supported only on ChromeOS,
Android, Fuchsia and SerenityOS at this moment. We need to wait for a
while for other systems to catch up. (bd6afa1)
Performance improvements:
- Version script processor was rewritten with the Aho-Corasick string
matching algorithm. If your program uses a version script that contains
lots of glob patterns with the * metacharacter, you'll likely to see a
significant speedup. (d0c1c4d)
- Relocation processing for non-memory-allocated sections has been
optimized. You'll likely to see a speedup if your binary contains large
size of debug info. (d8dc8a6)
Bug fixes and compatibility improvements:
- mold can now link ICC-generated object files with GCC-generated ones
even if the -static flag is given. (#271, be6ae07)
- mold can now handle archive files (.a files) larger than 4 GiB.
(bba506d)
- mold no longer have "GNU gold" in its --version string. We had this
identification string for some ./configure scripts that didn't work
without it, but it causes other compatibility issue such as #284. Now,
mold --version prints out something like mold 1.0.2 (compatible with
GNU ld). We still need "GNU ld" for many ./configure scripts. (cea6a56)
- Symbol resolution algorithm has been completely rewritten. The previous
implementation was non-deterministic in some edge cases, meaning that
outcomes from multiple runs of the linker with the same command line
parameters could be different due to thread scheduling randomness or
some other internal randomness. Now it is guaranteed to be
deterministic. (ce5749c)
- mold now try to pull out an object file from an archive if it's needed
to resolve an undefined symbol with a common symbol. mold used to
ignore common symbols in archives, so it could fail with an unresolved
symbol error even if the undefined symbol could be resolved using a
file in an archive. (27d8361)
- mold no longer converts .ctors/.dtors sections into
.init_array/.fini_array sections. mold used to convert them but in a
wrong way. Since .ctors/.dtors have been superseded by
.init_array/.fini_array long ago, it should be fine to stop doing this
now. (4348417)
- [i386] mold now ignores some legacy symbols in an i386 CRT files to
avoid duplicate symbol errors. (#270, 0c19046)
To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 pkgsrc/devel/mold/Makefile
cvs rdiff -u -r1.8 -r1.9 pkgsrc/devel/mold/distinfo
cvs rdiff -u -r1.5 -r1.6 pkgsrc/devel/mold/patches/patch-Makefile
cvs rdiff -u -r1.1 -r0 pkgsrc/devel/mold/patches/patch-elf_cmdline.cc \
pkgsrc/devel/mold/patches/patch-elf_object-file.cc
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/devel/mold/Makefile
diff -u pkgsrc/devel/mold/Makefile:1.6 pkgsrc/devel/mold/Makefile:1.7
--- pkgsrc/devel/mold/Makefile:1.6 Wed Jan 19 02:52:24 2022
+++ pkgsrc/devel/mold/Makefile Mon Jan 31 22:44:55 2022
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.6 2022/01/19 02:52:24 pho Exp $
+# $NetBSD: Makefile,v 1.7 2022/01/31 22:44:55 fcambus Exp $
-DISTNAME= mold-1.0.1
+DISTNAME= mold-1.0.2
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_GITHUB:=rui314/}
GITHUB_TAG= v${PKGVERSION_NOREV}
@@ -13,6 +13,7 @@ LICENSE= gnu-agpl-v3
USE_TOOLS+= gmake
USE_LANGUAGES= c c++20
+MAKE_FLAGS+= PREFIX="${PREFIX}"
MAKE_FLAGS+= MANDIR="${PREFIX}/${PKGMANDIR}"
MAKE_FLAGS+= SYSTEM_MIMALLOC=1 SYSTEM_TBB=1 SYSTEM_XXHASH=1
Index: pkgsrc/devel/mold/distinfo
diff -u pkgsrc/devel/mold/distinfo:1.8 pkgsrc/devel/mold/distinfo:1.9
--- pkgsrc/devel/mold/distinfo:1.8 Wed Jan 19 02:52:24 2022
+++ pkgsrc/devel/mold/distinfo Mon Jan 31 22:44:55 2022
@@ -1,8 +1,6 @@
-$NetBSD: distinfo,v 1.8 2022/01/19 02:52:24 pho Exp $
+$NetBSD: distinfo,v 1.9 2022/01/31 22:44:55 fcambus Exp $
-BLAKE2s (mold-1.0.1.tar.gz) = d41c3256a5e956ffb060b32a6e7549c5e10ce5fa733802cd33b2677d7b3bf8f3
-SHA512 (mold-1.0.1.tar.gz) = cc03a7db395362b97879c28942397d4443d12b72e067b6f979b1ece4d8aab06154b4c1a0f4c57d6ac505bcd4f892bf9a355ad281d628d4d544d8f70edaf34b72
-Size (mold-1.0.1.tar.gz) = 3675262 bytes
-SHA1 (patch-Makefile) = 4599df0bdfdf0718219bf43a1bc2bdcfa0f33ab4
-SHA1 (patch-elf_cmdline.cc) = 2e6879b268e08a76556c167086799122ab8e4b2f
-SHA1 (patch-elf_object-file.cc) = 7ab32cd5cb907ee4a599ae4ced988cee4ad832cf
+BLAKE2s (mold-1.0.2.tar.gz) = b0c37210c716b5b252ee3b57c1e232056dec2ebf0ff6494c9634b19c4b5d63a4
+SHA512 (mold-1.0.2.tar.gz) = 27f6664e63c76c32a6e3ec8bfc4b204138926001f5431be94da9ce47a5d9d3b51aa634c5cd6df45be660d52ac0507f7b7eec17134e35db402db5747d2ecc3715
+Size (mold-1.0.2.tar.gz) = 4501088 bytes
+SHA1 (patch-Makefile) = 4da9e8cf4b5be616027bce527865e683249bfb4c
Index: pkgsrc/devel/mold/patches/patch-Makefile
diff -u pkgsrc/devel/mold/patches/patch-Makefile:1.5 pkgsrc/devel/mold/patches/patch-Makefile:1.6
--- pkgsrc/devel/mold/patches/patch-Makefile:1.5 Wed Jan 19 02:52:24 2022
+++ pkgsrc/devel/mold/patches/patch-Makefile Mon Jan 31 22:44:55 2022
@@ -1,34 +1,25 @@
-$NetBSD: patch-Makefile,v 1.5 2022/01/19 02:52:24 pho Exp $
+$NetBSD: patch-Makefile,v 1.6 2022/01/31 22:44:55 fcambus Exp $
-Do not hard-code -ldl, -pthread, or -fPIE as they are handled by the pkgsrc
-infrastructure.
+- Honour CFLAGS and CXXFLAGS
+- Do not hard-code -pthread, as it is handled by the pkgsrc infrastructure.
---- Makefile.orig 2021-12-31 05:10:03.000000000 +0000
+--- Makefile.orig 2022-01-23 08:19:40.000000000 +0000
+++ Makefile
-@@ -19,7 +19,7 @@ STRIP ?= strip
- OS ?= $(shell uname -s)
+@@ -34,14 +34,14 @@ endif
- # Used for both C and C++
--COMMON_FLAGS = -pthread -fPIE -fno-unwind-tables -fno-asynchronous-unwind-tables
-+COMMON_FLAGS = -fno-unwind-tables -fno-asynchronous-unwind-tables
+ # If you want to compile mold for debugging, invoke make as
+ # `make CXXFLAGS=-g`.
+-CFLAGS = -O2
+-CXXFLAGS = -O2
++CFLAGS ?= -O2
++CXXFLAGS ?= -O2
- CFLAGS ?= -O2
- CFLAGS += $(COMMON_FLAGS)
-@@ -27,7 +27,7 @@ CFLAGS += $(COMMON_FLAGS)
- CXXFLAGS ?= -O2
- CXXFLAGS += $(COMMON_FLAGS) -std=c++20 -fno-exceptions
- CPPFLAGS += -DMOLD_VERSION=\"1.0.1\" -DLIBDIR="\"$(LIBDIR)\""
--LIBS = -pthread -lz -ldl -lm
-+LIBS = -lz -lm
+ MOLD_CXXFLAGS = -std=c++20 -fno-exceptions -fno-unwind-tables \
+ -fno-asynchronous-unwind-tables -DMOLD_VERSION=\"1.0.2\" \
+ -DLIBDIR="\"$(LIBDIR)\""
- SRCS=$(wildcard *.cc elf/*.cc macho/*.cc)
- HEADERS=$(wildcard *.h elf/*.h macho/*.h)
-@@ -120,7 +120,7 @@ mold: $(OBJS) $(MIMALLOC_LIB) $(TBB_LIB)
- ln -sf mold ld64.mold
+-MOLD_LDFLAGS = -pthread -lz -lm
++MOLD_LDFLAGS = -lz -lm
- mold-wrapper.so: elf/mold-wrapper.c Makefile
-- $(CC) $(CPPFLAGS) $(CFLAGS) -fPIC -shared -o $@ $(LDFLAGS) $< -ldl
-+ $(CC) $(CPPFLAGS) $(CFLAGS) -fPIC -shared -o $@ $(LDFLAGS) $<
-
- out/%.o: %.cc $(HEADERS) Makefile out/elf/.keep out/macho/.keep
- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
+ GIT_HASH = $(shell [ -d .git ] && git rev-parse HEAD)
+ ifneq ($(GIT_HASH),)
Home |
Main Index |
Thread Index |
Old Index