tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Threaded version of TOOL_XZ ?



On Tue, 19 Apr 2022 10:18:20 -0700 (PDT)
Paul Goyette <paul%whooppee.com@localhost> wrote:

> Using TOOL_XZ instead of TOOL_GZ satisfies requirement #1, and use of
> (unsupported) TOOL_PIGZ satisfies #2, but neither option can meet
> both.  TOOL_XZ is explicitly built without thread support, and simply
> modifying its Makefile to enable_threads=yes doesn't build.

This patch does more or less what you want. But doing it this way means
NetBSD can no longer be cross-compiled from a host without pthreads.
Not sure if we care about this anymore or if we need to hide this
behind a toggle. You also need to hook "-T 0" into xz args for sets.

# set cpu on fire
/work/tools/bin/nbxz -T 0 -9c < /dev/zero > /dev/null

Index: external/public-domain/xz/bin/xz/Makefile
===================================================================
RCS file: /cvsroot/src/external/public-domain/xz/bin/xz/Makefile,v
retrieving revision 1.6
diff -p -u -r1.6 Makefile
--- external/public-domain/xz/bin/xz/Makefile	12 Apr 2021 02:54:08 -0000	1.6
+++ external/public-domain/xz/bin/xz/Makefile	19 Apr 2022 18:03:58 -0000
@@ -44,7 +44,7 @@ FILESNAME_${XZSRCDIR}/po/${lang}.gmo=	xz
 .if defined(HOSTPROG)
 HOST_CPPFLAGS+=	${CPPFLAGS:N-Wp,-iremap,*}
 XZLIBDIR!=	cd ${NETBSDSRCDIR}/tools/xz-lib && ${PRINTOBJDIR}
-LDADD+=	-L${XZLIBDIR} -llzma
+LDADD+=	-L${XZLIBDIR} -llzma -lpthread
 DPADD+=	${XZLIBDIR}/liblzma.a
 .else
 DPADD+=	${LIBLZMA} ${LIBINTL} ${LIBPTHREAD}
Index: external/public-domain/xz/lib/Makefile
===================================================================
RCS file: /cvsroot/src/external/public-domain/xz/lib/Makefile,v
retrieving revision 1.10
diff -p -u -r1.10 Makefile
--- external/public-domain/xz/lib/Makefile	25 Sep 2018 05:42:08 -0000	1.10
+++ external/public-domain/xz/lib/Makefile	19 Apr 2022 18:03:58 -0000
@@ -57,9 +57,7 @@ SRCS+=	common.c block_util.c easy_preset
 	index_decoder.c index_hash.c stream_buffer_decoder.c \
 	stream_decoder.c stream_flags_decoder.c vli_decoder.c
 
-.if !defined(HOSTLIB)
 SRCS+=	 stream_encoder_mt.c
-.endif
 
 .PATH:	${XZSRCDIR}/src/liblzma/delta
 SRCS+=	delta_common.c delta_encoder.c delta_decoder.c
Index: tools/xz-include/Makefile
===================================================================
RCS file: /cvsroot/src/tools/xz-include/Makefile,v
retrieving revision 1.4
diff -p -u -r1.4 Makefile
--- tools/xz-include/Makefile	18 Sep 2021 01:47:11 -0000	1.4
+++ tools/xz-include/Makefile	19 Apr 2022 18:03:59 -0000
@@ -8,7 +8,7 @@
 #
 .include "Makefile.inc"
 
-CONFIGURE_ARGS+=	--enable-threads=no --disable-nls
+CONFIGURE_ARGS+=	--enable-threads=posix --disable-nls
 .if ${MAKEVERBOSE} == 0
 CONFIGURE_ARGS+=	--silent
 .endif


Home | Main Index | Thread Index | Old Index