Module Name:    src
Committed By:   chs
Date:           Mon Jul  6 00:21:51 UTC 2015

Modified Files:
        src/external/cddl/osnet/dist/tools/ctf/cvt: ctfmerge.c
        src/share/mk: sys.mk

Log Message:
reapply some fixes to make multi-threaded ctfmerge work
that were lost in the overzealous resync with freebsd.
remove the hacks which were applied to work around those problems.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
    src/external/cddl/osnet/dist/tools/ctf/cvt/ctfmerge.c
cvs rdiff -u -r1.127 -r1.128 src/share/mk/sys.mk

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dist/tools/ctf/cvt/ctfmerge.c
diff -u src/external/cddl/osnet/dist/tools/ctf/cvt/ctfmerge.c:1.11 src/external/cddl/osnet/dist/tools/ctf/cvt/ctfmerge.c:1.12
--- src/external/cddl/osnet/dist/tools/ctf/cvt/ctfmerge.c:1.11	Fri Mar  6 11:49:30 2015
+++ src/external/cddl/osnet/dist/tools/ctf/cvt/ctfmerge.c	Mon Jul  6 00:21:51 2015
@@ -177,7 +177,13 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#ifndef _NETBSD_SOURCE
+#define _NETBSD_SOURCE /* XXX TBD fix this */
 #include <unistd.h>
+#undef _NETBSD_SOURCE
+#else
+#include <unistd.h>
+#endif
 #include <pthread.h>
 #include <assert.h>
 #if defined(sun)
@@ -208,12 +214,7 @@
 #pragma init(bigheap)
 
 #define	MERGE_PHASE1_BATCH_SIZE		8
-#if 0
-// XXX: bug?
 #define	MERGE_PHASE1_MAX_SLOTS		5
-#else
-#define	MERGE_PHASE1_MAX_SLOTS		1
-#endif
 #define	MERGE_INPUT_THROTTLE_LEN	10
 
 const char *progname;
@@ -686,6 +687,7 @@ wq_init(workqueue_t *wq, int nfiles)
 
 	for (i = 0; i < nslots; i++) {
 		pthread_mutex_init(&wq->wq_wip[i].wip_lock, NULL);
+		pthread_cond_init(&wq->wq_wip[i].wip_cv, NULL);
 		wq->wq_wip[i].wip_batchid = wq->wq_next_batchid++;
 	}
 
@@ -789,7 +791,7 @@ main(int argc, char **argv)
 		debug_level = atoi(getenv("CTFMERGE_DEBUG_LEVEL"));
 
 	err = 0;
-	while ((c = getopt(argc, argv, ":cd:D:fgl:L:o:tvw:sS:")) != EOF) {
+	while ((c = getopt(argc, argv, ":cd:D:fgl:L:o:tvw:s")) != EOF) {
 		switch (c) {
 		case 'c':
 			docopy = 1;
@@ -837,9 +839,6 @@ main(int argc, char **argv)
 			/* use the dynsym rather than the symtab */
 			dynsym = CTF_USE_DYNSYM;
 			break;
-		case 'S':
-			maxslots = atoi(optarg);
-			break;
 		default:
 			usage();
 			exit(2);

Index: src/share/mk/sys.mk
diff -u src/share/mk/sys.mk:1.127 src/share/mk/sys.mk:1.128
--- src/share/mk/sys.mk:1.127	Sun Aug 10 05:57:31 2014
+++ src/share/mk/sys.mk	Mon Jul  6 00:21:51 2015
@@ -1,4 +1,4 @@
-#	$NetBSD: sys.mk,v 1.127 2014/08/10 05:57:31 matt Exp $
+#	$NetBSD: sys.mk,v 1.128 2015/07/06 00:21:51 chs Exp $
 #	@(#)sys.mk	8.2 (Berkeley) 3/21/94
 #
 # This file contains the basic rules for make(1) and is read first
@@ -46,8 +46,7 @@ LINK.c?=	${CC} ${CFLAGS} ${CPPFLAGS} ${L
 
 # C Type Format data is required for DTrace
 CTFFLAGS	?=	-g -L VERSION
-# Use only one thread for now.
-CTFMFLAGS	?=	-S 1 -g -t -L VERSION
+CTFMFLAGS	?=	-t -g -L VERSION
 
 CXX?=		c++
 CXXFLAGS?=	${CFLAGS:N-Wno-traditional:N-Wstrict-prototypes:N-Wmissing-prototypes:N-Wno-pointer-sign:N-ffreestanding:N-std=gnu[0-9][0-9]:N-Wold-style-definition:N-Wno-format-zero-length}

Reply via email to