git: 169f8a47c955 - main - devel/mold: New port: A Modern Linker
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 08 Feb 2022 19:20:07 UTC
The branch main has been updated by ashish: URL: https://cgit.FreeBSD.org/ports/commit/?id=169f8a47c95518b2001f322c63ffaee2011292c0 commit 169f8a47c95518b2001f322c63ffaee2011292c0 Author: Ashish SHUKLA <ashish@FreeBSD.org> AuthorDate: 2022-02-08 17:30:54 +0000 Commit: Ashish SHUKLA <ashish@FreeBSD.org> CommitDate: 2022-02-08 19:19:34 +0000 devel/mold: New port: A Modern Linker mold is a faster drop-in replacement for existing Unix linkers. It is several times faster than LLVM lld linker, the second-fastest open-source linker which I originally created a few years ago. mold is created for increasing developer productivity by reducing build time especially in rapid debug-edit-rebuild cycles. WWW: https://github.com/rui314/mold --- devel/Makefile | 1 + devel/mold/Makefile | 39 +++++++++++++++++++++++++++++++++++++++ devel/mold/distinfo | 3 +++ devel/mold/files/patch-Makefile | 28 ++++++++++++++++++++++++++++ devel/mold/pkg-descr | 7 +++++++ 5 files changed, 78 insertions(+) diff --git a/devel/Makefile b/devel/Makefile index 066ea28b57b3..70da30fcc9de 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -1582,6 +1582,7 @@ SUBDIR += mm SUBDIR += mm-common SUBDIR += modd + SUBDIR += mold SUBDIR += mongo-c-driver SUBDIR += mono-addins SUBDIR += monotone diff --git a/devel/mold/Makefile b/devel/mold/Makefile new file mode 100644 index 000000000000..c74543a046bc --- /dev/null +++ b/devel/mold/Makefile @@ -0,0 +1,39 @@ +PORTNAME= mold +DISTVERSIONPREFIX= v +DISTVERSION= 1.0.3 +CATEGORIES= devel + +MAINTAINER= ashish@FreeBSD.org +COMMENT= Modern Linker + +LICENSE= AGPLv3 +LICENSE_FILE= ${WRKSRC}/LICENSE + +NOT_FOR_ARCHS= armhf armv7 i386 + +LIB_DEPENDS= libtbb.so:devel/onetbb \ + libmimalloc.so:devel/mimalloc + +USES= gmake ssl +MAKE_ENV+= SYSTEM_TBB=1 +MAKE_ENV+= SYSTEM_MIMALLOC=1 +MAKE_ENV+= STRIP_CMD=${STRIP_CMD} +CXXFLAGS+= -I${LOCALBASE}/include +LDFLAGS+= -L${LOCALBASE}/lib +MAKE_FLAGS+= "CXXFLAGS=${CXXFLAGS}" +MAKE_FLAGS+= "LDFLAGS=${LDFLAGS}" + +USE_GITHUB= yes +GH_ACCOUNT= rui314 +PLIST_FILES= bin/ld.mold \ + bin/ld64.mold \ + bin/mold \ + lib/mold/mold-wrapper.so \ + libexec/mold/ld \ + share/man/man1/mold.1.gz + +post-patch: + ${REINPLACE_CMD} -e 's,%%PREFIX%%,${PREFIX},' \ + ${WRKSRC}/Makefile + +.include <bsd.port.mk> diff --git a/devel/mold/distinfo b/devel/mold/distinfo new file mode 100644 index 000000000000..b435216c3d8b --- /dev/null +++ b/devel/mold/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1644335355 +SHA256 (rui314-mold-v1.0.3_GH0.tar.gz) = 488c12058b4c7c77bff94c6f919e40b2f12c304214e2e0d7d4833c21167837c0 +SIZE (rui314-mold-v1.0.3_GH0.tar.gz) = 4501162 diff --git a/devel/mold/files/patch-Makefile b/devel/mold/files/patch-Makefile new file mode 100644 index 000000000000..dbe3a8d94b87 --- /dev/null +++ b/devel/mold/files/patch-Makefile @@ -0,0 +1,28 @@ +--- Makefile.orig 2022-02-08 16:00:48 UTC ++++ Makefile +@@ -1,4 +1,4 @@ +-PREFIX = /usr/local ++PREFIX = %%PREFIX%% + BINDIR = $(PREFIX)/bin + LIBDIR = $(PREFIX)/lib + LIBEXECDIR = $(PREFIX)/libexec +@@ -18,7 +18,7 @@ endif + + # If you want to keep symbols in the installed binary, run make with + # `STRIP=true` to run /bin/true instead of the strip command. +-STRIP = strip ++STRIP = $(STRIP_CMD) + + SRCS=$(wildcard *.cc elf/*.cc macho/*.cc) + HEADERS=$(wildcard *.h elf/*.h macho/*.h) +@@ -99,8 +99,8 @@ endif + + # Use pkg-config to know where libcrypto resides. + ifneq ($(OS), Darwin) +- MOLD_CXXFLAGS += $(shell pkg-config --cflags-only-I openssl) +- MOLD_LDFLAGS += $(shell pkg-config --libs-only-L openssl) -lcrypto ++ MOLD_CXXFLAGS += -I${OPENSSLINC} ++ MOLD_LDFLAGS += -L${OPENSSLLIB} -lcrypto + endif + + # '-latomic' flag is needed building on riscv64 system diff --git a/devel/mold/pkg-descr b/devel/mold/pkg-descr new file mode 100644 index 000000000000..2fe2c051957c --- /dev/null +++ b/devel/mold/pkg-descr @@ -0,0 +1,7 @@ +mold is a faster drop-in replacement for existing Unix linkers. It +is several times faster than LLVM lld linker, the second-fastest +open-source linker which I originally created a few years ago. +mold is created for increasing developer productivity by reducing +build time especially in rapid debug-edit-rebuild cycles. + +WWW: https://github.com/rui314/mold