Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCHv2 1/2] package/zstd: build multithreaded library if supported
@ 2020-12-04  9:57 Thomas De Schampheleire
  2020-12-04  9:57 ` [Buildroot] [PATCHv2 2/2] package/zstd: link programs dynamically with libzstd to save space Thomas De Schampheleire
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Thomas De Schampheleire @ 2020-12-04  9:57 UTC (permalink / raw)
  To: buildroot

From: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>

libzstd.so is built without multi-threading support by default.
The 'HAVE_THREAD' flag is not respected by lib/Makefile, only by
programs/Makefile.

Use the %-mt recipe in lib/Makefile to enable multithreading.

Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
---
v2: split off of next patch

 package/zstd/zstd.mk | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/package/zstd/zstd.mk b/package/zstd/zstd.mk
index 35002da332..37c1a8d687 100644
--- a/package/zstd/zstd.mk
+++ b/package/zstd/zstd.mk
@@ -48,6 +48,14 @@ ZSTD_BUILD_LIBS = libzstd.a libzstd
 ZSTD_INSTALL_LIBS = install-static install-shared
 endif
 
+# The HAVE_THREAD flag is read by the 'programs' makefile but not by  the 'lib'
+# one. Building a multi-threaded binary with a library (which defaults to
+# single-threaded) gives a runtime error when compressing files.
+# The 'lib' makefile provides specific '%-mt' targets for this purpose.
+ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
+ZSTD_BUILD_LIBS := $(addsuffix -mt,$(ZSTD_BUILD_LIBS))
+endif
+
 define ZSTD_BUILD_CMDS
 	$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) $(ZSTD_OPTS) \
 		-C $(@D)/lib $(ZSTD_BUILD_LIBS)
-- 
2.26.2

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-01-18 20:40 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-12-04  9:57 [Buildroot] [PATCHv2 1/2] package/zstd: build multithreaded library if supported Thomas De Schampheleire
2020-12-04  9:57 ` [Buildroot] [PATCHv2 2/2] package/zstd: link programs dynamically with libzstd to save space Thomas De Schampheleire
2021-01-17 14:31   ` Thomas Petazzoni
2021-01-02 17:49 ` [Buildroot] [PATCHv2 1/2] package/zstd: build multithreaded library if supported Thomas Petazzoni
2021-01-05 16:20   ` Thomas De Schampheleire
2021-01-05 16:36     ` Thomas Petazzoni
2021-01-05 16:47       ` Thomas De Schampheleire
2021-01-17 14:30 ` Thomas Petazzoni
2021-01-18 20:40   ` Thomas De Schampheleire

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox