Module Name:    othersrc
Committed By:   dholland
Date:           Mon Feb 25 02:12:24 UTC 2013

Modified Files:
        othersrc/usr.bin/dholland-make2: Makefile make.h portable.h strlist.c
        othersrc/usr.bin/dholland-make2/lst.lib: lstInt.h
Added Files:
        othersrc/usr.bin/dholland-make2: portable.c
Removed Files:
        othersrc/usr.bin/dholland-make2: make_malloc.c make_malloc.h

Log Message:
Fold make_malloc stuff into portable.h.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1 -r1.2 othersrc/usr.bin/dholland-make2/Makefile \
    othersrc/usr.bin/dholland-make2/strlist.c
cvs rdiff -u -r1.3 -r1.4 othersrc/usr.bin/dholland-make2/make.h
cvs rdiff -u -r1.1.1.1 -r0 othersrc/usr.bin/dholland-make2/make_malloc.c \
    othersrc/usr.bin/dholland-make2/make_malloc.h
cvs rdiff -u -r0 -r1.1 othersrc/usr.bin/dholland-make2/portable.c
cvs rdiff -u -r1.1 -r1.2 othersrc/usr.bin/dholland-make2/portable.h
cvs rdiff -u -r1.1.1.1 -r1.2 othersrc/usr.bin/dholland-make2/lst.lib/lstInt.h

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

Modified files:

Index: othersrc/usr.bin/dholland-make2/Makefile
diff -u othersrc/usr.bin/dholland-make2/Makefile:1.1.1.1 othersrc/usr.bin/dholland-make2/Makefile:1.2
--- othersrc/usr.bin/dholland-make2/Makefile:1.1.1.1	Mon Feb 25 01:32:48 2013
+++ othersrc/usr.bin/dholland-make2/Makefile	Mon Feb 25 02:12:23 2013
@@ -1,11 +1,11 @@
-#	$NetBSD: Makefile,v 1.1.1.1 2013/02/25 01:32:48 dholland Exp $
+#	$NetBSD: Makefile,v 1.2 2013/02/25 02:12:23 dholland Exp $
 #	@(#)Makefile	5.2 (Berkeley) 12/28/90
 
 PROG=	make
 SRCS=	arch.c buf.c compat.c cond.c dir.c for.c hash.c job.c main.c \
 	make.c parse.c str.c suff.c targ.c trace.c var.c util.c 
 SRCS+=  strlist.c
-SRCS+=  make_malloc.c
+SRCS+=  portable.c
 SRCS+=	lstAppend.c lstAtEnd.c lstAtFront.c lstClose.c lstConcat.c \
 	lstDatum.c lstDeQueue.c lstDestroy.c lstDupl.c lstEnQueue.c \
 	lstFind.c lstFindFrom.c lstFirst.c lstForEach.c lstForEachFrom.c \
Index: othersrc/usr.bin/dholland-make2/strlist.c
diff -u othersrc/usr.bin/dholland-make2/strlist.c:1.1.1.1 othersrc/usr.bin/dholland-make2/strlist.c:1.2
--- othersrc/usr.bin/dholland-make2/strlist.c:1.1.1.1	Mon Feb 25 01:33:05 2013
+++ othersrc/usr.bin/dholland-make2/strlist.c	Mon Feb 25 02:12:23 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: strlist.c,v 1.1.1.1 2013/02/25 01:33:05 dholland Exp $	*/
+/*	$NetBSD: strlist.c,v 1.2 2013/02/25 02:12:23 dholland Exp $	*/
 
 /*-
  * Copyright (c) 2008 - 2009 The NetBSD Foundation, Inc.
@@ -33,18 +33,18 @@
  */
 
 #ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: strlist.c,v 1.1.1.1 2013/02/25 01:33:05 dholland Exp $";
+static char rcsid[] = "$NetBSD: strlist.c,v 1.2 2013/02/25 02:12:23 dholland Exp $";
 #else
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: strlist.c,v 1.1.1.1 2013/02/25 01:33:05 dholland Exp $");
+__RCSID("$NetBSD: strlist.c,v 1.2 2013/02/25 02:12:23 dholland Exp $");
 #endif /* not lint */
 #endif
 
 #include <stddef.h>
 #include <stdlib.h>
+#include "portable.h"
 #include "strlist.h"
-#include "make_malloc.h"
 
 void
 strlist_init(strlist_t *sl)

Index: othersrc/usr.bin/dholland-make2/make.h
diff -u othersrc/usr.bin/dholland-make2/make.h:1.3 othersrc/usr.bin/dholland-make2/make.h:1.4
--- othersrc/usr.bin/dholland-make2/make.h:1.3	Mon Feb 25 02:02:38 2013
+++ othersrc/usr.bin/dholland-make2/make.h	Mon Feb 25 02:12:23 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: make.h,v 1.3 2013/02/25 02:02:38 dholland Exp $	*/
+/*	$NetBSD: make.h,v 1.4 2013/02/25 02:12:23 dholland Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -96,7 +96,6 @@
 #include "hash.h"
 #include "config.h"
 #include "buf.h"
-#include "make_malloc.h"
 
 /*-
  * The structure for an individual graph node. Each node has several

Index: othersrc/usr.bin/dholland-make2/portable.h
diff -u othersrc/usr.bin/dholland-make2/portable.h:1.1 othersrc/usr.bin/dholland-make2/portable.h:1.2
--- othersrc/usr.bin/dholland-make2/portable.h:1.1	Mon Feb 25 02:02:38 2013
+++ othersrc/usr.bin/dholland-make2/portable.h	Mon Feb 25 02:12:23 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: portable.h,v 1.1 2013/02/25 02:02:38 dholland Exp $	*/
+/*	$NetBSD: portable.h,v 1.2 2013/02/25 02:12:23 dholland Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -72,6 +72,32 @@
  *	from: @(#)make.h	8.3 (Berkeley) 6/13/95
  */
 
+/*-
+ * Copyright (c) 2009 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
 /*
  * portable.h -- stuff for making make buildable anywhere
  *
@@ -81,11 +107,19 @@
  *    MAKE_ATTR_PRINTFLIKE	attribute for printf functions
  *    UNCONST(p)		macro for discarding const
  *    MIN(a, b), MAX(a, b)
+ *    bmake_malloc		allocator functions that crash on error
+ *    bmake_realloc		allocator functions that crash on error
+ *    bmake_strdup		allocator functions that crash on error
+ *    bmake_strndup		allocator functions that crash on error
+ *
+ * External toggles that can be set:
+ *    USE_EMALLOC		use emalloc() from libutil
  */
 
 #ifndef PORTABLE_H
 #define PORTABLE_H
 
+#include <stddef.h>	/* for size_t */
 
 #ifdef BSD4_4
 # include <sys/cdefs.h>
@@ -138,5 +172,17 @@
 #define MAX(a, b) ((a > b) ? a : b)
 #endif
 
+#ifndef USE_EMALLOC
+void *bmake_malloc(size_t);
+void *bmake_realloc(void *, size_t);
+char *bmake_strdup(const char *);
+char *bmake_strndup(const char *, size_t);
+#else
+#include <util.h>
+#define bmake_malloc(x)         emalloc(x)
+#define bmake_realloc(x,y)      erealloc(x,y)
+#define bmake_strdup(x)         estrdup(x)
+#define bmake_strndup(x,y)      estrndup(x,y)
+#endif
 
 #endif /* PORTABLE_H */

Index: othersrc/usr.bin/dholland-make2/lst.lib/lstInt.h
diff -u othersrc/usr.bin/dholland-make2/lst.lib/lstInt.h:1.1.1.1 othersrc/usr.bin/dholland-make2/lst.lib/lstInt.h:1.2
--- othersrc/usr.bin/dholland-make2/lst.lib/lstInt.h:1.1.1.1	Mon Feb 25 01:33:22 2013
+++ othersrc/usr.bin/dholland-make2/lst.lib/lstInt.h	Mon Feb 25 02:12:23 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: lstInt.h,v 1.1.1.1 2013/02/25 01:33:22 dholland Exp $	*/
+/*	$NetBSD: lstInt.h,v 1.2 2013/02/25 02:12:23 dholland Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -41,8 +41,8 @@
 #ifndef _LSTINT_H_
 #define _LSTINT_H_
 
+#include	  "../portable.h"
 #include	  "../lst.h"
-#include	  "../make_malloc.h"
 
 typedef struct ListNode {
 	struct ListNode	*prevPtr;   /* previous element in list */

Added files:

Index: othersrc/usr.bin/dholland-make2/portable.c
diff -u /dev/null othersrc/usr.bin/dholland-make2/portable.c:1.1
--- /dev/null	Mon Feb 25 02:12:24 2013
+++ othersrc/usr.bin/dholland-make2/portable.c	Mon Feb 25 02:12:23 2013
@@ -0,0 +1,120 @@
+/*	$NetBSD: portable.c,v 1.1 2013/02/25 02:12:23 dholland Exp $	*/
+
+/*-
+ * Copyright (c) 2009 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifdef MAKE_NATIVE
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: portable.c,v 1.1 2013/02/25 02:12:23 dholland Exp $");
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+
+#include "portable.h"
+#include "make.h"
+
+#ifndef USE_EMALLOC
+static void enomem(void) MAKE_ATTR_DEAD;
+
+/*
+ * enomem --
+ *	die when out of memory.
+ */
+static void
+enomem(void)
+{
+	(void)fprintf(stderr, "%s: %s.\n", progname, strerror(ENOMEM));
+	exit(2);
+}
+
+/*
+ * bmake_malloc --
+ *	malloc, but die on error.
+ */
+void *
+bmake_malloc(size_t len)
+{
+	void *p;
+
+	if ((p = malloc(len)) == NULL)
+		enomem();
+	return(p);
+}
+
+/*
+ * bmake_strdup --
+ *	strdup, but die on error.
+ */
+char *
+bmake_strdup(const char *str)
+{
+	size_t len;
+	char *p;
+
+	len = strlen(str) + 1;
+	if ((p = malloc(len)) == NULL)
+		enomem();
+	return memcpy(p, str, len);
+}
+
+/*
+ * bmake_strndup --
+ *	strndup, but die on error.
+ */
+char *
+bmake_strndup(const char *str, size_t max_len)
+{
+	size_t len;
+	char *p;
+
+	if (str == NULL)
+		return NULL;
+
+	len = strlen(str);
+	if (len > max_len)
+		len = max_len;
+	p = bmake_malloc(len + 1);
+	memcpy(p, str, len);
+	p[len] = '\0';
+
+	return(p);
+}
+
+/*
+ * bmake_realloc --
+ *	realloc, but die on error.
+ */
+void *
+bmake_realloc(void *ptr, size_t size)
+{
+	if ((ptr = realloc(ptr, size)) == NULL)
+		enomem();
+	return(ptr);
+}
+#endif

Reply via email to