diff options
author | Sam James <sam@gentoo.org> | 2021-12-14 11:13:03 +0000 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2021-12-14 11:14:02 +0000 |
commit | cb38ac7fc6ad1953967241e3520eb754f263840e (patch) | |
tree | 746d82c7ff4c481f91a4a1861aace95050dd0d5c /sys-devel/mold/files | |
parent | sys-devel/mold: really fix wrapper (diff) | |
download | gentoo-cb38ac7fc6ad1953967241e3520eb754f263840e.tar.gz gentoo-cb38ac7fc6ad1953967241e3520eb754f263840e.tar.bz2 gentoo-cb38ac7fc6ad1953967241e3520eb754f263840e.zip |
sys-devel/mold: add live ebuild
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sys-devel/mold/files')
-rw-r--r-- | sys-devel/mold/files/mold-9999-build-respect-user-FLAGS.patch | 83 | ||||
-rw-r--r-- | sys-devel/mold/files/mold-9999-don-t-compress-man-page.patch | 22 |
2 files changed, 105 insertions, 0 deletions
diff --git a/sys-devel/mold/files/mold-9999-build-respect-user-FLAGS.patch b/sys-devel/mold/files/mold-9999-build-respect-user-FLAGS.patch new file mode 100644 index 000000000000..ac218201b902 --- /dev/null +++ b/sys-devel/mold/files/mold-9999-build-respect-user-FLAGS.patch @@ -0,0 +1,83 @@ +https://github.com/rui314/mold/pull/135 + +From: Sam James <sam@gentoo.org> +Date: Tue, 14 Dec 2021 10:53:44 +0000 +Subject: [PATCH 1/2] build: respect user *FLAGS + +- Respect user CXXFLAGS +- Rename CPPFLAGS (previously used in the sense of "flags for the C++ compiler") -> CXXFLAGS +- CPPFLAGS is generally used for "flags for the C(++) preprocessor.", so let's + use it for that +- Respect user LDFLAGS + (In one instance, we were respecting LDFLAGS, but doing it too late. + We need to pass LDFLAGS _before_ any objects in order for -Wl,--as-needed + to work correctly.) + +Signed-off-by: Sam James <sam@gentoo.org> +--- a/Makefile ++++ b/Makefile +@@ -17,10 +17,15 @@ STRIP ?= strip + + OS ?= $(shell uname -s) + +-CPPFLAGS = -pthread -std=c++20 -fPIE -DMOLD_VERSION=\"0.9.6\" \ +- -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables \ +- -DLIBDIR="\"$(LIBDIR)\"" $(EXTRA_CPPFLAGS) +-LDFLAGS += $(EXTRA_LDFLAGS) ++# Used for both C and C++ ++COMMON_FLAGS = -pthread -fPIE -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables ++ ++CFLAGS ?= -O2 ++CFLAGS += $(COMMON_FLAGS) ++ ++CXXFLAGS ?= -O2 ++CXXFLAGS += $(COMMON_FLAGS) -std=c++20 ++CPPFLAGS += -DMOLD_VERSION=\"0.9.6\" -DLIBDIR="\"$(LIBDIR)\"" + LIBS = -pthread -lz -lxxhash -ldl -lm + + SRCS=$(wildcard *.cc elf/*.cc macho/*.cc) +@@ -38,21 +43,19 @@ ifneq ($(GIT_HASH),) + endif + + ifeq ($(DEBUG), 1) +- CPPFLAGS += -O0 -g +-else +- CPPFLAGS += -O2 ++ CXXFLAGS += -O0 -g + endif + + ifeq ($(LTO), 1) +- CPPFLAGS += -flto -O3 ++ CXXFLAGS += -flto -O3 + LDFLAGS += -flto + endif + + ifeq ($(ASAN), 1) +- CPPFLAGS += -fsanitize=address ++ CXXFLAGS += -fsanitize=address + LDFLAGS += -fsanitize=address + else ifeq ($(TSAN), 1) +- CPPFLAGS += -fsanitize=thread ++ CXXFLAGS += -fsanitize=thread + LDFLAGS += -fsanitize=thread + else ifneq ($(OS), Darwin) + # By default, we want to use mimalloc as a memory allocator. +@@ -89,15 +92,15 @@ endif + all: mold mold-wrapper.so + + mold: $(OBJS) $(MIMALLOC_LIB) $(TBB_LIB) +- $(CXX) $(CPPFLAGS) $(OBJS) -o $@ $(LDFLAGS) $(LIBS) ++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) $(OBJS) -o $@ $(LIBS) + ln -sf mold ld + ln -sf mold ld64.mold + + mold-wrapper.so: elf/mold-wrapper.c Makefile +- $(CC) -fPIC -shared -o $@ $< -ldl ++ $(CC) $(CPPFLAGS) $(CFLAGS) -fPIC -shared -o $@ $(LDFLAGS) $< -ldl + + out/%.o: %.cc $(HEADERS) Makefile out/elf/.keep out/macho/.keep +- $(CXX) $(CPPFLAGS) -c -o $@ $< ++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< + + out/elf/.keep: + mkdir -p out/elf diff --git a/sys-devel/mold/files/mold-9999-don-t-compress-man-page.patch b/sys-devel/mold/files/mold-9999-don-t-compress-man-page.patch new file mode 100644 index 000000000000..23dd705b553a --- /dev/null +++ b/sys-devel/mold/files/mold-9999-don-t-compress-man-page.patch @@ -0,0 +1,22 @@ +https://github.com/rui314/mold/pull/135 + +From: Sam James <sam@gentoo.org> +Date: Tue, 14 Dec 2021 11:01:19 +0000 +Subject: [PATCH 2/2] build: don't compress man page + +Negligible saving and downstream, distributions usually recompress or +compress with their own specific options. Unconditionally compressing +man pages, while well intended, usually creates more hassle there. + +Signed-off-by: Sam James <sam@gentoo.org> +--- a/Makefile ++++ b/Makefile +@@ -140,8 +140,6 @@ install: all + + install -m 755 -d $D$(MANDIR)/man1 + install -m 644 docs/mold.1 $D$(MANDIR)/man1 +- rm -f $D$(MANDIR)/man1/mold.1.gz +- gzip -9 $D$(MANDIR)/man1/mold.1 + + ln -sf mold $D$(BINDIR)/ld.mold + ln -sf mold $D$(BINDIR)/ld64.mold |