--- old/usr/src/Makefile.master	2015-05-20 12:19:44.587646955 -0400
+++ new/usr/src/Makefile.master	2015-05-20 12:19:44.599523464 -0400
@@ -1135,6 +1135,10 @@
 	$(CPPFORPO) $< > $<.i
 	$(BUILD.po)
 
+.cc.po:
+	$(CPPFORPO) $< > $<.i
+	$(BUILD.po)
+
 .y.po:
 	$(YACC) -d $<
 	$(CPPFORPO) y.tab.c  > $<.i
--- old/usr/src/cmd/Makefile	2015-05-20 12:19:45.102375379 -0400
+++ new/usr/src/cmd/Makefile	2015-05-20 12:19:45.114644125 -0400
@@ -614,6 +614,7 @@
 	luxadm		\
 	lvm		\
 	mailx		\
+	make		\
 	man		\
 	mesg		\
 	mkdir		\
--- old/usr/src/cmd/make/Makefile	2015-05-20 12:19:45.657508174 -0400
+++ new/usr/src/cmd/make/Makefile	2015-05-20 12:19:45.668964639 -0400
@@ -11,20 +11,21 @@
 
 # Copyright 2015, Richard Lowe.
 
-SUBDIRS=bin \
-	lib
+SUBDIRS= bin \
+	 lib
 
 all	:=	TARGET = all
 install :=	TARGET = install
 clean	:=	TARGET = clean
 clobber	:=	TARGET = clobber
 lint	:=	TARGET = lint
+_msg	:=	TARGET = _msg
 
 .KEEP_STATE:
 
 bin: lib
 
-all clean clobber lint install: $(SUBDIRS)
+all clean clobber lint install _msg: $(SUBDIRS)
 
 $(SUBDIRS):	FRC
 	@cd $@; pwd; $(MAKE) $(TARGET)
--- old/usr/src/cmd/make/Makefile.com	2015-05-20 12:19:46.070385951 -0400
+++ new/usr/src/cmd/make/Makefile.com	2015-05-20 12:19:46.082110860 -0400
@@ -16,3 +16,8 @@
 CFLAGS += $(CCVERBOSE)
 CPPFLAGS += -I$(MAKE_INCLUDE) $(MAKE_DEFS)
 
+# So that it's set even for the libraries we build
+TEXT_DOMAIN = SUNW_OST_OSCMD
+
+$(POFILE): $(POFILES)
+	$(CAT) $(POFILES) > $@
--- old/usr/src/cmd/make/bin/Makefile	2015-05-20 12:19:46.461795943 -0400
+++ new/usr/src/cmd/make/bin/Makefile	2015-05-20 12:19:46.473429196 -0400
@@ -12,6 +12,7 @@
 # Copyright 2015, Richard Lowe.
 
 PROG=	make
+POFILE=	make.po
 OBJS=	ar.o		\
 	depvar.o	\
 	doname.o	\
@@ -29,11 +30,12 @@
 	read2.o		\
 	rep.o		\
 	state.o
+POFILES= $(OBJS:%.o=%.po)
 
 include ../../Makefile.cmd
 include ../Makefile.com
 
-LDLIBS += ../lib/mksh/libmksh.a ../lib/mksdmsi18n/libmksdmsi18n.a ../lib/vroot/libvroot.a
+LDLIBS += ../lib/mksh/libmksh.a ../lib/vroot/libvroot.a
 LDLIBS += ../lib/bsd/libbsd.a -lc -lnsl -lumem
 
 CPPFLAGS += -D_FILE_OFFSET_BITS=64
--- old/usr/src/cmd/make/bin/ar.cc	2015-05-20 12:19:46.859901160 -0400
+++ new/usr/src/cmd/make/bin/ar.cc	2015-05-20 12:19:46.871575753 -0400
@@ -43,6 +43,7 @@
 #include <ar.h>
 #include <errno.h>		/* errno */
 #include <fcntl.h>		/* open() */
+#include <libintl.h>
 #include <mk/defs.h>
 #include <mksh/misc.h>		/* retmem_mb() */
 
@@ -223,7 +224,7 @@
 			}
 			return target->stat.time = file_doesnt_exist;
 		} else {
-			fatal(catgets(catd, 1, 1, "Can't access archive `%s': %s"),
+			fatal(gettext("Can't access archive `%s': %s"),
 			      member->body.member.library->string_mb,
 			      errmsg(errno));
 		}
@@ -232,7 +233,7 @@
 		if (read_archive_dir(&ar, member->body.member.library, 
 				     &long_names_table)
 		    == failed){
-			fatal(catgets(catd, 1, 2, "Can't access archive `%s': %s"),
+			fatal(gettext("Can't access archive `%s': %s"),
 			      member->body.member.library->string_mb,
 			      errmsg(errno));
 		}
@@ -316,7 +317,7 @@
 		if (IS_WEQUALN(arp->ar_port.ar_name, wcs_buffer, 16)) {
  */
 		if (IS_EQUALN(arp->ar_port.ar_name,
-			      NOCATGETS("/               "),
+			      "/               ",
 			      16)) {
 			if (sscanf(arp->ar_port.ar_size,
 				   "%ld",
@@ -334,7 +335,7 @@
 		}
 		return succeeded;
 	}
-	fatal(catgets(catd, 1, 3, "`%s' is not an archive"), filename);
+	fatal(gettext("`%s' is not an archive"), filename);
 	/* NOTREACHED */
 	return failed;
 }
@@ -464,7 +465,7 @@
 				    return succeeded;
 			    }
 			    fatal(
-				catgets(catd, 1, 28, "Read error in archive `%s': invalid archive file member header at 0x%x"),
+				gettext("Read error in archive `%s': invalid archive file member header at 0x%x"),
 				library->string_mb,
 				ftell(arp->fd)
 			    );
@@ -511,7 +512,7 @@
 		    }
 		    if (sscanf(arp->ar_port.ar_date, "%ld", &date) != 1) {
 			    WCSTOMBS(mbs_buffer, name_string);
-			    fatal(catgets(catd, 1, 4, "Bad date field for member `%s' in archive `%s'"),
+			    fatal(gettext("Bad date field for member `%s' in archive `%s'"),
 				  mbs_buffer,
 				  library->string_mb);
 		    }
@@ -524,7 +525,7 @@
 		    }
 		    if (sscanf(arp->ar_port.ar_size, "%ld", &ptr) != 1) {
 			    WCSTOMBS(mbs_buffer, name_string);
-			    fatal(catgets(catd, 1, 5, "Bad size field for member `%s' in archive `%s'"),
+			    fatal(gettext("Bad size field for member `%s' in archive `%s'"),
 				  mbs_buffer,
 				  library->string_mb);
 		    }
@@ -538,7 +539,7 @@
 
 	/* Only here if fread() [or IS_EQUALN()] failed and not at EOF */
 read_error:
-	fatal(catgets(catd, 1, 6, "Read error in archive `%s': %s"),
+	fatal(gettext("Read error in archive `%s': %s"),
 	      library->string_mb,
 	      errmsg(errno));
 	    /* NOTREACHED */
@@ -571,7 +572,7 @@
 	}
 	if ((ar_member_header = 
 	     (Ar_port *) alloca((int) sizeof(Ar_port))) == NULL){
-		perror(catgets(catd, 1, 7, "memory allocation failure"));
+		perror(gettext("memory allocation failure"));
 		return failed;
 	} 
 	int ret = read_member_header(ar_member_header, arp->fd, filename);
@@ -583,7 +584,7 @@
 	}
 	/* Do we have special member containing long names? */
 	if (IS_EQUALN(ar_member_header->ar_name, 
-		      NOCATGETS("//              "),
+		      "//              ",
 		      16)){
 		if (sscanf(ar_member_header->ar_size,
 			   "%ld",
@@ -631,7 +632,7 @@
 	char		buffer[4];
 
 	if (arp->sym_begin == 0L || arp->num_symbols == 0L) {
-		fatal(catgets(catd, 1, 8, "Cannot find symbol `%s' in archive `%s'"),
+		fatal(gettext("Cannot find symbol `%s' in archive `%s'"),
 		      member->body.member.entry->string_mb,
 		      member->body.member.library->string_mb);
 	}
@@ -726,7 +727,7 @@
 				if (sscanf(arp->ar_port.ar_date,
 					   "%ld",
 					   &date) != 1) {
-					fatal(catgets(catd, 1, 9, "Bad date field for member `%s' in archive `%s'"),
+					fatal(gettext("Bad date field for member `%s' in archive `%s'"),
 					      arp->ar_port.ar_name,
 					      target->string_mb);
 				}
@@ -761,18 +762,18 @@
 			syms++;
 		}
 	}
-	fatal(catgets(catd, 1, 10, "Cannot find symbol `%s' in archive `%s'"),
+	fatal(gettext("Cannot find symbol `%s' in archive `%s'"),
 	      member->body.member.entry->string_mb,
 	      member->body.member.library->string_mb);
 	/*NOTREACHED*/
 
 read_error:
 	if (ferror(arp->fd)) {
-		fatal(catgets(catd, 1, 11, "Read error in archive `%s': %s"),
+		fatal(gettext("Read error in archive `%s': %s"),
 		      member->body.member.library->string_mb,
 		      errmsg(errno));
 	} else {
-		fatal(catgets(catd, 1, 12, "Read error in archive `%s': Premature EOF"),
+		fatal(gettext("Read error in archive `%s': Premature EOF"),
 		      member->body.member.library->string_mb);
 	}
 }
@@ -835,7 +836,7 @@
 	    )
 	) {
 		fatal(
-			catgets(catd, 1, 28, "Read error in archive `%s': invalid archive file member header at 0x%x"),
+			gettext("Read error in archive `%s': invalid archive file member header at 0x%x"),
 			filename,
 			ftell(fd)
 		);
--- old/usr/src/cmd/make/bin/depvar.cc	2015-05-20 12:19:47.332618670 -0400
+++ new/usr/src/cmd/make/bin/depvar.cc	2015-05-20 12:19:47.344184098 -0400
@@ -26,6 +26,8 @@
 /*
  * Included files
  */
+#include <libintl.h>
+
 #include <mk/defs.h>
 #include <mksh/misc.h>		/* getmem() */
 
@@ -98,9 +100,9 @@
 depvar_print_results(void)
 {
 	if (variant_deps) {
-		printf(catgets(catd, 1, 234, "differ\n"));
+		printf(gettext("differ\n"));
 	} else {
-		printf(catgets(catd, 1, 235, "same\n"));
+		printf(gettext("same\n"));
 	}
 }
 
--- old/usr/src/cmd/make/bin/doname.cc	2015-05-20 12:19:47.737339673 -0400
+++ new/usr/src/cmd/make/bin/doname.cc	2015-05-20 12:19:47.750138094 -0400
@@ -33,20 +33,15 @@
  * Included files
  */
 #include <alloca.h>		/* alloca() */
-
-
 #include <fcntl.h>
 #include <mk/defs.h>
 #include <mksh/i18n.h>		/* get_char_semantics_value() */
 #include <mksh/macro.h>		/* getvar(), expand_value() */
 #include <mksh/misc.h>		/* getmem() */
 #include <poll.h>
-
-
+#include <libintl.h>
 #include <signal.h>
-
-#	include <stropts.h>
-
+#include <stropts.h>
 #include <sys/errno.h>
 #include <sys/stat.h>
 #include <sys/types.h>
@@ -143,7 +138,7 @@
 		return build_running;
 	case build_failed:
 		if (!continue_after_error) {
-			fatal(catgets(catd, 1, 13, "Target `%s' not remade because of errors"),
+			fatal(gettext("Target `%s' not remade because of errors"),
 			      target->string_mb);
 		}
 		build_failed_seen = true;
@@ -169,12 +164,12 @@
 		}
 		second_pass = 0;
 		if (continue_after_error && !svr4) {
-			warning(catgets(catd, 1, 14, "Don't know how to make target `%s'"),
+			warning(gettext("Don't know how to make target `%s'"),
 				target->string_mb);
 			build_failed_seen = true;
 			return build_failed;
 		}
-		fatal(catgets(catd, 1, 15, "Don't know how to make target `%s'"), target->string_mb);
+		fatal(gettext("Don't know how to make target `%s'"), target->string_mb);
 		break;
 	}
 #ifdef lint
@@ -439,7 +434,7 @@
 		}
 	}
 	if (debug_level > 1) {
-		(void) printf(NOCATGETS("%*sdoname(%s)\n"),
+		(void) printf("%*sdoname(%s)\n",
 			      recursion_level,
 			      "",
 			      target->string_mb);
@@ -447,7 +442,7 @@
 	recursion_level++;
 	/* Avoid infinite loops */
 	if (target->state == build_in_progress) {
-		warning(catgets(catd, 1, 16, "Infinite loop: Target `%s' depends on itself"),
+		warning(gettext("Infinite loop: Target `%s' depends on itself"),
 			target->string_mb);
 		return build_ok;
 	}
@@ -685,7 +680,7 @@
 			if (build_unconditional || out_of_date) {
 				line->body.line.is_out_of_date = true;
 				if (debug_level > 0) {
-					(void) printf(catgets(catd, 1, 17, "%*sBuilding %s using .DEFAULT because it is out of date\n"),
+					(void) printf(gettext("%*sBuilding %s using .DEFAULT because it is out of date\n"),
 						      recursion_level,
 						      "",
 						      true_target->string_mb);
@@ -879,7 +874,7 @@
 							    auto_count,
 							    automatics)) {
 		if (debug_level > 0) {
-			(void) printf(catgets(catd, 1, 18, "%*sTarget `%s' acquired new dependencies from build, rechecking all dependencies\n"),
+			(void) printf(gettext("%*sTarget `%s' acquired new dependencies from build, rechecking all dependencies\n"),
 				      recursion_level,
 				      "",
 				      true_target->string_mb);
@@ -1032,7 +1027,7 @@
 				  command_changed =
 				    true;
 				if (debug_level > 0) {
-					(void) printf(catgets(catd, 1, 19, "Target %s rebuilt because dependency %s does not exist\n"),
+					(void) printf(gettext("Target %s rebuilt because dependency %s does not exist\n"),
 						     true_target->string_mb,
 						     dependency->name->string_mb);
 				}
@@ -1062,14 +1057,14 @@
 			}
 
 			if (debug_level > 1) {
-				(void) printf(catgets(catd, 1, 20, "%*sDate(%s)=%s \n"),
+				(void) printf(gettext("%*sDate(%s)=%s \n"),
 					      recursion_level,
 					      "",
 					      dependency->name->string_mb,
 					      time_to_string(dependency->name->
 							     stat.time));
 				if (dependency->name->stat.time > line->body.line.dependency_time) {
-					(void) printf(catgets(catd, 1, 21, "%*sDate-dependencies(%s) set to %s\n"),
+					(void) printf(gettext("%*sDate-dependencies(%s) set to %s\n"),
 						      recursion_level,
 						      "",
 						      true_target->string_mb,
@@ -1128,13 +1123,13 @@
 				out_of_date_tail = &(*out_of_date_tail)->next;
 				if (debug_level > 0) {
 					if (dependency->name->stat.time == file_max_time) {
-						(void) printf(catgets(catd, 1, 22, "%*sBuilding %s because %s does not exist\n"),
+						(void) printf(gettext("%*sBuilding %s because %s does not exist\n"),
 							      recursion_level,
 							      "",
 							      true_target->string_mb,
 							      dependency->name->string_mb);
 					} else {
-						(void) printf(catgets(catd, 1, 23, "%*sBuilding %s because it is out of date relative to %s\n"),
+						(void) printf(gettext("%*sBuilding %s because it is out of date relative to %s\n"),
 							      recursion_level,
 							      "",
 							      true_target->string_mb,
@@ -1204,7 +1199,7 @@
 	 */
 	if (line->body.line.command_template != NULL) {
 		if (line->body.line.command_template_redefined) {
-			warning(catgets(catd, 1, 24, "Too many rules defined for target %s"),
+			warning(gettext("Too many rules defined for target %s"),
 				target->string_mb);
 		}
 		*command = line;
@@ -1424,7 +1419,7 @@
 				dependency->name = normalize_name(start, p - start);
 				if ((debug_level > 0) &&
 				    (first_member == NULL)) {
-					(void) printf(catgets(catd, 1, 25, "%*sDynamic dependency `%s' for target `%s'\n"),
+					(void) printf(gettext("%*sDynamic dependency `%s' for target `%s'\n"),
 						      recursion_level,
 						      "",
 						      dependency->name->string_mb,
@@ -1459,7 +1454,7 @@
 					retmem(string.buffer.start);
 				}
 				if (debug_level > 0) {
-					(void) printf(catgets(catd, 1, 26, "%*sDynamic dependency `%s' for target `%s'\n"),
+					(void) printf(gettext("%*sDynamic dependency `%s' for target `%s'\n"),
 						      recursion_level,
 						      "",
 						      first_member->name->
@@ -1616,7 +1611,7 @@
 	    line->body.line.sccs_command &&
 	    (target->stat.time != file_doesnt_exist) &&
 	    ((target->stat.mode & 0222) != 0)) {
-		fatal(catgets(catd, 1, 27, "%s is writable so it cannot be sccs gotten"),
+		fatal(gettext("%s is writable so it cannot be sccs gotten"),
 		      target->string_mb);
 		target->has_complained = remember_only = true;
 	}
@@ -1637,7 +1632,7 @@
 		   strcpy(tmp_file_path, temp_file_directory);
 		}
 		sprintf(mbs_buffer,
-				NOCATGETS("%s/.make.dependency.%08x.%d.%d"),
+				"%s/.make.dependency.%08x.%d.%d",
 			        tmp_file_path,
 			        hostid,
 			        getpid(),
@@ -1827,12 +1822,12 @@
 		}
 		if (result == build_failed) {
 			if (silent || rule->silent) {
-				(void) printf(catgets(catd, 1, 242, "The following command caused the error:\n%s\n"),
+				(void) printf(gettext("The following command caused the error:\n%s\n"),
 				              rule->command_line->string_mb);
 			}
 			if (!rule->ignore_error && !ignore_errors) {
 				if (!continue_after_error) {
-					fatal(catgets(catd, 1, 244, "Command failed for target `%s'"),
+					fatal(gettext("Command failed for target `%s'"),
 					      target->string_mb);
 				}
 				/*
@@ -2110,7 +2105,7 @@
 	}
 	switch (*equal) {
 	case nul_char:
-		fatal(catgets(catd, 1, 31, "= expected in rule `%s' for target `%s'"),
+		fatal(gettext("= expected in rule `%s' for target `%s'"),
 		      line->string_mb,
 		      target->string_mb);
 	case plus_char:
@@ -2404,7 +2399,7 @@
 					if (used->command_line != NULL
 					    && *used->command_line->string_mb !=
 					    '\0') {
-						(void) printf(catgets(catd, 1, 32, "%*sBuilding %s because new command \n\t%s\n%*sdifferent from old\n\t%s\n"),
+						(void) printf(gettext("%*sBuilding %s because new command \n\t%s\n%*sdifferent from old\n\t%s\n"),
 							      recursion_level,
 							      "",
 							      target->string_mb,
@@ -2415,7 +2410,7 @@
 							      command_line->
 							      string_mb);
 					} else {
-						(void) printf(catgets(catd, 1, 33, "%*sBuilding %s because new command \n\t%s\n%*sdifferent from empty old command\n"),
+						(void) printf(gettext("%*sBuilding %s because new command \n\t%s\n%*sdifferent from empty old command\n"),
 							      recursion_level,
 							      "",
 							      target->string_mb,
@@ -2440,7 +2435,7 @@
 		if (keep_state &&
 		    !ignore_all_command_dependency) {
 			if (debug_level > 0) {
-				(void) printf(catgets(catd, 1, 34, "%*sBuilding %s because new command shorter than old\n"),
+				(void) printf(gettext("%*sBuilding %s because new command shorter than old\n"),
 					      recursion_level,
 					      "",
 					      target->string_mb);
@@ -2455,7 +2450,7 @@
 	    !ignore_all_command_dependency &&
 	    keep_state) {
 		if (debug_level > 0) {
-			(void) printf(catgets(catd, 1, 35, "%*sBuilding %s because new command longer than old\n"),
+			(void) printf(gettext("%*sBuilding %s because new command longer than old\n"),
 				      recursion_level,
 				      "",
 				      target->string_mb);
@@ -2521,7 +2516,7 @@
 			 * "touch" in .make.state.
 			 */
 			INIT_STRING_FROM_STACK(touch_string, buffer);
-			MBSTOWCS(wcs_buffer, NOCATGETS("touch "));
+			MBSTOWCS(wcs_buffer, "touch ");
 			append_string(wcs_buffer, &touch_string, FIND_LENGTH);
 			touch_cmd = name;
 			if (name->has_vpath_alias_prop) {
@@ -2686,7 +2681,7 @@
 	/* For sccs, we need to chase symlinks. */
         while (target->stat.is_sym_link) {
 		if (sym_link_depth++ > 90) {
-			fatal(catgets(catd, 1, 95, "Can't read symbolic link `%s': Number of symbolic links encountered during path name traversal exceeds 90."),
+			fatal(gettext("Can't read symbolic link `%s': Number of symbolic links encountered during path name traversal exceeds 90."),
 			      target->string_mb);
 		}
                 /* Read the value of the link. */
@@ -2696,7 +2691,7 @@
 					NULL,
 					VROOT_DEFAULT);
                 if (result == -1) {
-                        fatal(catgets(catd, 1, 36, "Can't read symbolic link `%s': %s"),
+                        fatal(gettext("Can't read symbolic link `%s': %s"),
                               target->string_mb, errmsg(errno));
 		}
 		link[result] = 0;
@@ -2768,7 +2763,7 @@
 			 */
 			line->body.line.is_out_of_date = true;
 			if (debug_level > 0) {
-				(void) printf(catgets(catd, 1, 37, "%*sSccs getting %s because s. file is younger than source file\n"),
+				(void) printf(gettext("%*sSccs getting %s because s. file is younger than source file\n"),
 					      recursion_level,
 					      "",
 					      target->string_mb);
@@ -2830,9 +2825,9 @@
 	static Name		usr_include_sys;
 
 	if (usr_include == NULL) {
-		MBSTOWCS(usr_include_buf, NOCATGETS("/usr/include"));
+		MBSTOWCS(usr_include_buf, "/usr/include");
 		usr_include = GETNAME(usr_include_buf, FIND_LENGTH);
-		MBSTOWCS(usr_include_sys_buf, NOCATGETS("/usr/include/sys"));
+		MBSTOWCS(usr_include_sys_buf, "/usr/include/sys");
 		usr_include_sys = GETNAME(usr_include_sys_buf, FIND_LENGTH);
 	}
 
@@ -2965,7 +2960,7 @@
 		  maybe_append_prop(conditional->body.conditional.name,
 				    macro_prop)->body.macro;
 		if (debug_level > 1) {
-			(void) printf(catgets(catd, 1, 38, "%*sActivating conditional value: "),
+			(void) printf(gettext("%*sActivating conditional value: "),
 				      recursion_level,
 				      "");
 		}
@@ -3021,7 +3016,7 @@
 		/* Remove conditional target from chain */
 		if (conditional_targets == NULL ||
 		    conditional_targets->name != target) {
-			warning(catgets(catd, 1, 39, "Internal error: reset target not at head of condtional_targets chain"));
+			warning(gettext("Internal error: reset target not at head of condtional_targets chain"));
 		} else {
 			cond_chain = conditional_targets->next;
 			retmem_mb((caddr_t) conditional_targets);
@@ -3035,7 +3030,7 @@
 	}
 	if (debug_level > 1) {
 		if (old_locals[index].body.macro.value != NULL) {
-			(void) printf(catgets(catd, 1, 40, "%*sdeactivating conditional value: %s= %s\n"),
+			(void) printf(gettext("%*sdeactivating conditional value: %s= %s\n"),
 				      recursion_level,
 				      "",
 				      conditional->body.conditional.name->
@@ -3043,7 +3038,7 @@
 				      old_locals[index].body.macro.value->
 				      string_mb);
 		} else {
-			(void) printf(catgets(catd, 1, 41, "%*sdeactivating conditional value: %s =\n"),
+			(void) printf(gettext("%*sdeactivating conditional value: %s =\n"),
 				      recursion_level,
 				      "",
 				      conditional->body.conditional.name->
--- old/usr/src/cmd/make/bin/files.cc	2015-05-20 12:19:48.420554412 -0400
+++ new/usr/src/cmd/make/bin/files.cc	2015-05-20 12:19:48.432646436 -0400
@@ -42,6 +42,7 @@
 #include <mksh/macro.h>		/* getvar() */
 #include <mksh/misc.h>		/* get_prop(), append_prop() */
 #include <sys/stat.h>		/* lstat() */
+#include <libintl.h>
 
 /*
  * Defined macros
@@ -102,7 +103,7 @@
 	}
 
 	if (debug_level > 1) {
-		(void) printf(NOCATGETS("%*sstat(%s)\n"),
+		(void) printf("%*sstat(%s)\n",
 		              recursion_level,
 		              "",
 		              target->string_mb);
@@ -360,7 +361,7 @@
 			 */
 			if (debug_level > 0){
 				WCSTOMBS(mbs_buffer, pattern);
-				(void) printf(catgets(catd, 1, 231, "'%s: %s' due to %s expansion\n"),
+				(void) printf(gettext("'%s: %s' due to %s expansion\n"),
 					      line->body.line.target->string_mb,
 					      file->string_mb,
 					      mbs_buffer);
@@ -397,7 +398,7 @@
 			    amatch(tmp_wcs_buffer, pattern)) {
 				if (debug_level > 0) {
 					WCSTOMBS(mbs_buffer, pattern);
-					(void) printf(catgets(catd, 1, 232, "'%s: %s' due to %s expansion\n"),
+					(void) printf(gettext("'%s: %s' due to %s expansion\n"),
 						      line->body.line.target->
 						      string_mb,
 						      plain_file->string_mb,
@@ -452,21 +453,21 @@
 			tmp_wchar = *file_name_p;
 			*file_name_p = 0;
 			WCSTOMBS(mbs_buffer, file_name);
-			(void) sprintf(mb_path, NOCATGETS("%s/%s/SCCS"),
+			(void) sprintf(mb_path, "%s/%s/SCCS",
 				        sccs_dir_path,
 				        mbs_buffer);
 			*file_name_p = tmp_wchar;
 		} else {
-			(void) sprintf(mb_path, NOCATGETS("%s/SCCS"), sccs_dir_path);
+			(void) sprintf(mb_path, "%s/SCCS", sccs_dir_path);
 		}
 		MBSTOWCS(path, mb_path);
 		(void) wscpy(file_name, path);
 	  } else {
-		MBSTOWCS(wcs_buffer, NOCATGETS("SCCS"));
+		MBSTOWCS(wcs_buffer, "SCCS");
 		(void) wscpy(file_name_p, wcs_buffer);
 	  }
 	} else {
-		MBSTOWCS(wcs_buffer, NOCATGETS("."));
+		MBSTOWCS(wcs_buffer, ".");
 		(void) wscpy(file_name_p, wcs_buffer);
 	}
 	/* Internalize the constructed SCCS dir name. */
@@ -532,7 +533,7 @@
 			    amatch(tmp_wcs_buffer, pattern)) {
 				if (debug_level > 0) {
 					WCSTOMBS(mbs_buffer, pattern);
-					(void) printf(catgets(catd, 1, 233, "'%s: %s' due to %s expansion\n"),
+					(void) printf(gettext("'%s: %s' due to %s expansion\n"),
 						      line->body.line.target->
 						      string_mb,
 						      plain_file->string_mb,
--- old/usr/src/cmd/make/bin/globals.cc	2015-05-20 12:19:48.868548809 -0400
+++ new/usr/src/cmd/make/bin/globals.cc	2015-05-20 12:19:48.880262208 -0400
@@ -159,8 +159,8 @@
 	Name		suffixes_name;
 	Name		sunpro_dependencies;
         Boolean		target_variants;
-	const char	*tmpdir = NOCATGETS("/tmp");
-	const char	*temp_file_directory = NOCATGETS(".");
+	const char	*tmpdir = "/tmp";
+	const char	*temp_file_directory = ".";
 	Name		temp_file_name;
 	short		temp_file_number;
 	time_t		timing_start;
@@ -173,7 +173,6 @@
 	wchar_t		wcs_buffer2[MAXPATHLEN];
 	wchar_t		*wcs_ptr;
 	wchar_t		*wcs_ptr2;
-	nl_catd		catd;
 	long int	hostid;
 
 /*
--- old/usr/src/cmd/make/bin/implicit.cc	2015-05-20 12:19:49.346696314 -0400
+++ new/usr/src/cmd/make/bin/implicit.cc	2015-05-20 12:19:49.358847926 -0400
@@ -35,6 +35,7 @@
 #include <mk/defs.h>
 #include <mksh/macro.h>		/* expand_value() */
 #include <mksh/misc.h>		/* retmem() */
+#include <libintl.h>
 
 /*
  * Defined macros
@@ -139,7 +140,7 @@
 				       target_prop)->body.target.target;
 	}
 	if (debug_level > 1) {
-		(void) printf(NOCATGETS("%*sfind_suffix_rule(%s,%s,%s)\n"),
+		(void) printf("%*sfind_suffix_rule(%s,%s,%s)\n",
 			      recursion_level,
 			      "",
 			      true_target->string_mb,
@@ -189,7 +190,7 @@
 			  (int) nul_char;
 			if (debug_level > 1) {
 				WCSTOMBS(mbs_buffer, sourcename);
-				(void) printf(catgets(catd, 1, 218, "%*sTrying %s\n"),
+				(void) printf(gettext("%*sTrying %s\n"),
 					      recursion_level,
 					      "",
 					      mbs_buffer);
@@ -239,13 +240,13 @@
 			          }
 				  /* copy everything including '/' */
 				  strncpy(tmpbuf, source->string_mb, p - source->string_mb + 1);
-				  strcat(tmpbuf, NOCATGETS("s."));
+				  strcat(tmpbuf, "s.");
 				  strcat(tmpbuf, p+1);
 				  retmem((wchar_t *) source->string_mb); 
 				  source->string_mb = tmpbuf;
 				
 			        } else {
-				  strcpy(tmpbuf, NOCATGETS("s."));
+				  strcpy(tmpbuf, "s.");
 				  strcat(tmpbuf, source->string_mb);
 				  retmem((wchar_t *) source->string_mb); 
 				  source->string_mb = tmpbuf;
@@ -349,7 +350,7 @@
 			
 			if (debug_level > 1) {
 				WCSTOMBS(mbs_buffer, sourcename);
-				(void) printf(catgets(catd, 1, 219, "%*sFound %s\n"),
+				(void) printf(gettext("%*sFound %s\n"),
 					      recursion_level,
 					      "",
 					      mbs_buffer);
@@ -369,7 +370,7 @@
 			}
 			if ((source->stat.time > (*command)->body.line.dependency_time) &&
 			    (debug_level > 1)) {
-				(void) printf(catgets(catd, 1, 220, "%*sDate(%s)=%s Date-dependencies(%s)=%s\n"),
+				(void) printf(gettext("%*sDate(%s)=%s Date-dependencies(%s)=%s\n"),
 					      recursion_level,
 					      "",
 					      source->string_mb,
@@ -400,7 +401,7 @@
 					line->body.line.is_out_of_date = true;
 				}
 				if (debug_level > 0) {
-					(void) printf(catgets(catd, 1, 221, "%*sBuilding %s using suffix rule for %s%s because it is out of date relative to %s\n"),
+					(void) printf(gettext("%*sBuilding %s using suffix rule for %s%s because it is out of date relative to %s\n"),
 						      recursion_level,
 						      "",
 						      true_target->string_mb,
@@ -436,7 +437,7 @@
 			  extern Name dollarless_value;
 
 			  if(tilde_rule) {
-			      MBSTOWCS(wcs_buffer, NOCATGETS(source->string_mb));
+			      MBSTOWCS(wcs_buffer, source->string_mb);
 			      dollarless_value = GETNAME(wcs_buffer,FIND_LENGTH);
 			  }
 			  else {
@@ -506,7 +507,7 @@
 	Wstring			suf_string;
 
 	if (dot_a == NULL) {
-		MBSTOWCS(wcs_buffer, NOCATGETS(".a"));
+		MBSTOWCS(wcs_buffer, ".a");
 		dot_a = GETNAME(wcs_buffer, FIND_LENGTH);
 	}
 	target_end = targ_string.get_string() + true_target->hash.length;
@@ -516,7 +517,7 @@
 	 * from .SUFFIXES.
 	 */
 	if (debug_level > 1) {
-		(void) printf(NOCATGETS("%*sfind_ar_suffix_rule(%s)\n"),
+		(void) printf("%*sfind_ar_suffix_rule(%s)\n",
 			      recursion_level,
 			      "",
 			      true_target->string_mb);
@@ -617,7 +618,7 @@
 	 */
 	target_end = targ_string.get_string() + true_target->hash.length;
 	if (debug_level > 1) {
-		(void) printf(NOCATGETS("%*sfind_double_suffix_rule(%s)\n"),
+		(void) printf("%*sfind_double_suffix_rule(%s)\n",
 			      recursion_level,
 			      "",
 			      true_target->string_mb);
@@ -709,7 +710,7 @@
 		return;
 	}
 	if (debug_level > 1) {
-		(void) printf(NOCATGETS("%*sbuild_suffix_list(%s) "),
+		(void) printf("%*sbuild_suffix_list(%s) ",
 			      recursion_level,
 			      "",
 			      target_suffix->string_mb);
@@ -822,7 +823,7 @@
 				       long_member_name_prop)->body.long_member_name.member_name;
 	}
 	if (debug_level > 1) {
-		(void) printf(catgets(catd, 1, 222, "%*sLooking for %% rule for %s\n"),
+		(void) printf(gettext("%*sLooking for %% rule for %s\n"),
 			      recursion_level,
 			      "",
 			      true_target->string_mb);
@@ -903,7 +904,7 @@
 						result = build_ok;
 				} else {
 					if (debug_level > 1) {
-						(void) printf(catgets(catd, 1, 223, "%*sTrying %s\n"),
+						(void) printf(gettext("%*sTrying %s\n"),
 							      recursion_level,
 							      "",
 							      depe_to_check->string_mb);
@@ -993,7 +994,7 @@
 	}
 
 	if (debug_level > 1) {
-		(void) printf(catgets(catd, 1, 224, "%*sMatched %s:"),
+		(void) printf(gettext("%*sMatched %s:"),
 				      recursion_level,
 				      "",
 				      target->string_mb);
@@ -1019,7 +1020,7 @@
 			}
 		}
 
-		(void) printf(catgets(catd, 1, 225, " from: %s:"),
+		(void) printf(gettext(" from: %s:"),
 			      pat_rule->name->string_mb);
 
 		for (pat_depe = pat_rule->dependencies;
@@ -1069,7 +1070,7 @@
 
 			if ((depe->name->stat.time > line->body.line.dependency_time) &&
 			    (debug_level > 1)) {
-				(void) printf(catgets(catd, 1, 226, "%*sDate(%s)=%s Date-dependencies(%s)=%s\n"),
+				(void) printf(gettext("%*sDate(%s)=%s Date-dependencies(%s)=%s\n"),
 					      recursion_level,
 					      "",
 					      depe->name->string_mb,
@@ -1095,7 +1096,7 @@
 				add_target_to_chain(depe->name, &(line->body.line.query));
 
 				if (debug_level > 0) {
-					(void) printf(catgets(catd, 1, 227, "%*sBuilding %s using pattern rule %s:"),
+					(void) printf(gettext("%*sBuilding %s using pattern rule %s:"),
 						      recursion_level,
 						      "",
 						      true_target->string_mb,
@@ -1107,7 +1108,7 @@
 						(void) printf(" %s", pat_depe->name->string_mb);
 					}
 
-					(void) printf(catgets(catd, 1, 228, " because it is out of date relative to %s\n"), 
+					(void) printf(gettext(" because it is out of date relative to %s\n"), 
 						      depe->name->string_mb);
 				}	
 			}
@@ -1119,14 +1120,14 @@
 				line->body.line.is_out_of_date = true;
 			}
 			if (debug_level > 0) {
-				(void) printf(catgets(catd, 1, 229, "%*sBuilding %s using pattern rule %s: "),
+				(void) printf(gettext("%*sBuilding %s using pattern rule %s: "),
 					      recursion_level,
 					      "",
 					      true_target->string_mb,
 					      pat_rule->name->string_mb,
 					      (target->stat.time > file_doesnt_exist) ?
-					      catgets(catd, 1, 230, "because it is out of date") :
-					      catgets(catd, 1, 236, "because it does not exist"));
+					      gettext("because it is out of date") :
+					      gettext("because it does not exist"));
 			}
 		}
 	}
--- old/usr/src/cmd/make/bin/main.cc	2015-05-20 12:19:50.429748664 -0400
+++ new/usr/src/cmd/make/bin/main.cc	2015-05-20 12:19:50.442684995 -0400
@@ -32,23 +32,15 @@
 /*
  * Included files
  */
-#if defined(TEAMWARE_MAKE_CMN)
-#       include <avo/intl.h>
-#endif
-
 #include <bsd/bsd.h>		/* bsd_signal() */
 
 
 #include <locale.h>		/* setlocale() */
 #include <libgen.h>
 #include <mk/defs.h>
-#include <mksdmsi18n/mksdmsi18n.h>	/* libmksdmsi18n_init() */
 #include <mksh/macro.h>		/* getvar() */
 #include <mksh/misc.h>		/* getmem(), setup_char_semantics() */
 
-#if defined(TEAMWARE_MAKE_CMN)
-#endif
-
 #include <pwd.h>		/* getpwnam() */
 #include <setjmp.h>
 #include <signal.h>
@@ -78,15 +70,14 @@
 /*
  * Defined macros
  */
-#define MAKE_PREFIX		NOCATGETS("/usr")
-#define	LD_SUPPORT_ENV_VAR	NOCATGETS("SGS_SUPPORT_32")
-#define	LD_SUPPORT_ENV_VAR_32	NOCATGETS("SGS_SUPPORT_32")
-#define	LD_SUPPORT_ENV_VAR_64	NOCATGETS("SGS_SUPPORT_64")
-#define	LD_SUPPORT_MAKE_LIB	NOCATGETS("libmakestate.so.1")
+#define	LD_SUPPORT_ENV_VAR	"SGS_SUPPORT_32"
+#define	LD_SUPPORT_ENV_VAR_32	"SGS_SUPPORT_32"
+#define	LD_SUPPORT_ENV_VAR_64	"SGS_SUPPORT_64"
+#define	LD_SUPPORT_MAKE_LIB	"libmakestate.so.1"
 #ifdef __i386
-#define	LD_SUPPORT_MAKE_ARCH	NOCATGETS("i386")
+#define	LD_SUPPORT_MAKE_ARCH	"i386"
 #elif __sparc
-#define	LD_SUPPORT_MAKE_ARCH	NOCATGETS("sparc")
+#define	LD_SUPPORT_MAKE_ARCH	"sparc"
 #else
 #error "Unsupported architecture"
 #endif
@@ -163,7 +154,6 @@
 static const char	verstring[] = "illumos make";
 
 jmp_buf jmpbuffer;
-extern nl_catd catd;
 
 /*
  *	main(argc, argv)
@@ -218,24 +208,15 @@
 
 
 #ifdef DMAKE_STATISTICS
-	if (getenv(NOCATGETS("DMAKE_STATISTICS"))) {
+	if (getenv("DMAKE_STATISTICS")) {
 		getname_stat = true;
 	}
 #endif
 
-	catd = catopen(AVO_DOMAIN_DMAKE, NL_CAT_LOCALE);
-
-// ---> fprintf(stderr, catgets(catd, 15, 666, "--- SUN make ---\n"));
-
-
-/*
- * I put libmksdmsi18n_init() under #ifdef because it requires avo_i18n_init()
- * from avo_util library. 
- */
-	libmksdmsi18n_init();
-
-
-	textdomain(NOCATGETS("SUNW_SPRO_MAKE"));
+#ifndef TEXT_DOMAIN
+#define	TEXT_DOMAIN	"SYS_TEST"	
+#endif
+	textdomain(TEXT_DOMAIN);
 
 	g_argc = argc;
 	g_argv = (char **) malloc((g_argc + 1) * sizeof(char *));
@@ -295,7 +276,7 @@
 	/* Sun OS make standart */
 	svr4 = false;  
 	posix = false;
-	if(!strcmp(argv_zero_string, NOCATGETS("/usr/xpg4/bin/make"))) {
+	if(!strcmp(argv_zero_string, "/usr/xpg4/bin/make")) {
 		svr4 = false;
 		posix = true;
 	} else {
@@ -305,12 +286,12 @@
 		} else {
 			prognameptr = argv[0];
 		}
-		if(!strcmp(prognameptr, NOCATGETS("svr4.make"))) {
+		if(!strcmp(prognameptr, "svr4.make")) {
 			svr4 = true;
 			posix = false;
 		}
 	}
-	if (getenv(USE_SVR4_MAKE) || getenv(NOCATGETS("USE_SVID"))){
+	if (getenv(USE_SVR4_MAKE) || getenv("USE_SVID")){
 	   svr4 = true;
 	   posix = false;
 	}
@@ -318,9 +299,9 @@
 	/*
 	 * Find the dmake_compat_mode: posix, sun, svr4, or gnu_style, .
 	 */
-	char * dmake_compat_mode_var = getenv(NOCATGETS("SUN_MAKE_COMPAT_MODE"));
+	char * dmake_compat_mode_var = getenv("SUN_MAKE_COMPAT_MODE");
 	if (dmake_compat_mode_var != NULL) {
-		if (0 == strcasecmp(dmake_compat_mode_var, NOCATGETS("GNU"))) {
+		if (0 == strcasecmp(dmake_compat_mode_var, "GNU")) {
 			gnu_style = true;
 		}
 		//svr4 = false;
@@ -330,14 +311,14 @@
 	/*
 	 * Temporary directory set up.
 	 */
-	char * tmpdir_var = getenv(NOCATGETS("TMPDIR"));
+	char * tmpdir_var = getenv("TMPDIR");
 	if (tmpdir_var != NULL && *tmpdir_var == '/' && strlen(tmpdir_var) < MAXPATHLEN) {
 		strcpy(mbs_buffer, tmpdir_var);
 		for (tmpdir_var = mbs_buffer+strlen(mbs_buffer);
 			*(--tmpdir_var) == '/' && tmpdir_var > mbs_buffer;
 			*tmpdir_var = '\0');
 		if (strlen(mbs_buffer) + 32 < MAXPATHLEN) { /* 32 = strlen("/dmake.stdout.%d.%d.XXXXXX") */
-			sprintf(mbs_buffer2, NOCATGETS("%s/dmake.tst.%d.XXXXXX"),
+			sprintf(mbs_buffer2, "%s/dmake.tst.%d.XXXXXX",
 				mbs_buffer, getpid());
 			int fd = mkstemp(mbs_buffer2);
 			if (fd >= 0) {
@@ -350,10 +331,10 @@
 
 	/* find out if stdout and stderr point to the same place */
 	if (fstat(1, &out_stat) < 0) {
-		fatal(catgets(catd, 1, 165, "fstat of standard out failed: %s"), errmsg(errno));
+		fatal(gettext("fstat of standard out failed: %s"), errmsg(errno));
 	}
 	if (fstat(2, &err_stat) < 0) {
-		fatal(catgets(catd, 1, 166, "fstat of standard error failed: %s"), errmsg(errno));
+		fatal(gettext("fstat of standard error failed: %s"), errmsg(errno));
 	}
 	if ((out_stat.st_dev == err_stat.st_dev) &&
 	    (out_stat.st_ino == err_stat.st_ino)) {
@@ -384,7 +365,7 @@
 	read_command_options(argc, argv);
 	if (debug_level > 0) {
 		cp = getenv(makeflags->string_mb);
-		(void) printf(catgets(catd, 1, 167, "MAKEFLAGS value: %s\n"), cp == NULL ? "" : cp);
+		(void) printf(gettext("MAKEFLAGS value: %s\n"), cp == NULL ? "" : cp);
 	}
 
 	setup_interrupt(handle_interrupt);
@@ -394,7 +375,7 @@
 	/*
 	 * Find the dmake_output_mode: TXT1, TXT2 or HTML1.
 	 */
-	MBSTOWCS(wcs_buffer, NOCATGETS("DMAKE_OUTPUT_MODE"));
+	MBSTOWCS(wcs_buffer, "DMAKE_OUTPUT_MODE");
 	dmake_name2 = GETNAME(wcs_buffer, FIND_LENGTH);
 	prop2 = get_prop(dmake_name2->prop, macro_prop);
 	if (prop2 == NULL) {
@@ -403,14 +384,14 @@
 	} else {
 		dmake_value2 = prop2->body.macro.value;
 		if ((dmake_value2 == NULL) ||
-		    (IS_EQUAL(dmake_value2->string_mb, NOCATGETS("TXT1")))) {
+		    (IS_EQUAL(dmake_value2->string_mb, "TXT1"))) {
 			output_mode = txt1_mode;
-		} else if (IS_EQUAL(dmake_value2->string_mb, NOCATGETS("TXT2"))) {
+		} else if (IS_EQUAL(dmake_value2->string_mb, "TXT2")) {
 			output_mode = txt2_mode;
-		} else if (IS_EQUAL(dmake_value2->string_mb, NOCATGETS("HTML1"))) {
+		} else if (IS_EQUAL(dmake_value2->string_mb, "HTML1")) {
 			output_mode = html1_mode;
 		} else {
-			warning(catgets(catd, 1, 352, "Unsupported value `%s' for DMAKE_OUTPUT_MODE after -x flag (ignored)"),
+			warning(gettext("Unsupported value `%s' for DMAKE_OUTPUT_MODE after -x flag (ignored)"),
 			      dmake_value2->string_mb);
 		}
 	}
@@ -421,14 +402,14 @@
         (!pmake_machinesfile_specified)) {
 	char *s = strdup(argv[0]);    
 	    
-	MBSTOWCS(wcs_buffer, NOCATGETS("DMAKE_MODE"));
+	MBSTOWCS(wcs_buffer, "DMAKE_MODE");
 	dmake_name2 = GETNAME(wcs_buffer, FIND_LENGTH);
 	prop2 = get_prop(dmake_name2->prop, macro_prop);
 	// If we're invoked as 'make' run serially, regardless of DMAKE_MODE
 	// If we're invoked as 'make' but passed -j, run parallel
 	// If we're invoked as 'dmake', without DMAKE_MODE, default parallel
 	// If we're invoked as 'dmake' and DMAKE_MODE is set, honour it.
-	if ((strcmp(basename(s), NOCATGETS("make")) == 0) &&
+	if ((strcmp(basename(s), "make") == 0) &&
 	    !dmake_max_jobs_specified) {
 		dmake_mode_type = serial_mode;
 		no_parallel = true;
@@ -436,27 +417,27 @@
 		/* DMAKE_MODE not defined, default based on our name */
 		char *s = strdup(argv[0]);
 
-		if (strcmp(basename(s), NOCATGETS("dmake")) == 0) {
+		if (strcmp(basename(s), "dmake") == 0) {
 			dmake_mode_type = parallel_mode;
 			no_parallel = false;
 		}
 	} else {
 		dmake_value2 = prop2->body.macro.value;
-		if (IS_EQUAL(dmake_value2->string_mb, NOCATGETS("parallel"))) {
+		if (IS_EQUAL(dmake_value2->string_mb, "parallel")) {
 			dmake_mode_type = parallel_mode;
 			no_parallel = false;
-		} else if (IS_EQUAL(dmake_value2->string_mb, NOCATGETS("serial"))) {
+		} else if (IS_EQUAL(dmake_value2->string_mb, "serial")) {
 			dmake_mode_type = serial_mode;
 			no_parallel = true;
 		} else {
-			fatal(catgets(catd, 1, 307, "Unknown dmake mode argument `%s' after -m flag"), dmake_value2->string_mb);
+			fatal(gettext("Unknown dmake mode argument `%s' after -m flag"), dmake_value2->string_mb);
 		}
 	}
 	free(s);
     }
 
 	parallel_flag = true;
-	putenv(strdup(NOCATGETS("DMAKE_CHILD=TRUE")));
+	putenv(strdup("DMAKE_CHILD=TRUE"));
 
 //
 // If dmake is running with -t option, set dmake_mode_type to serial.
@@ -477,8 +458,8 @@
 	 * the 'old' behaviour.
 	 */
 	out_err_same = true;
-	char * dmake_sep_var = getenv(NOCATGETS("__DMAKE_SEPARATE_STDERR"));
-	if (dmake_sep_var == NULL || (0 != strcasecmp(dmake_sep_var, NOCATGETS("NO")))) {
+	char * dmake_sep_var = getenv("__DMAKE_SEPARATE_STDERR");
+	if (dmake_sep_var == NULL || (0 != strcasecmp(dmake_sep_var, "NO"))) {
 		struct stat stdout_stat;
 		struct stat stderr_stat;
 		if( (fstat(1, &stdout_stat) == 0)
@@ -610,7 +591,6 @@
  *				True if -P flag on
  *		running_list	List of parallel running processes
  *		temp_file_name	The temp file is removed, if any
- *		catd	the message catalog file
  */
 extern "C" void
 cleanup_after_exit(void)
@@ -631,24 +611,24 @@
 
 #ifdef DMAKE_STATISTICS
 if(getname_stat) {
-	printf(NOCATGETS(">>> Getname statistics:\n"));
-	printf(NOCATGETS("  Allocated:\n"));
-	printf(NOCATGETS("        Names: %ld\n"), getname_names_count);
-	printf(NOCATGETS("      Strings: %ld Kb (%ld bytes)\n"), getname_bytes_count/1000, getname_bytes_count);
-	printf(NOCATGETS("      Structs: %ld Kb (%ld bytes)\n"), getname_struct_count/1000, getname_struct_count);
-	printf(NOCATGETS("  Total bytes: %ld Kb (%ld bytes)\n"), getname_struct_count/1000 + getname_bytes_count/1000, getname_struct_count + getname_bytes_count);
-
-	printf(NOCATGETS("\n  Unallocated: %ld\n"), freename_names_count);
-	printf(NOCATGETS("        Names: %ld\n"), freename_names_count);
-	printf(NOCATGETS("      Strings: %ld Kb (%ld bytes)\n"), freename_bytes_count/1000, freename_bytes_count);
-	printf(NOCATGETS("      Structs: %ld Kb (%ld bytes)\n"), freename_struct_count/1000, freename_struct_count);
-	printf(NOCATGETS("  Total bytes: %ld Kb (%ld bytes)\n"), freename_struct_count/1000 + freename_bytes_count/1000, freename_struct_count + freename_bytes_count);
+	printf(">>> Getname statistics:\n");
+	printf("  Allocated:\n");
+	printf("        Names: %ld\n", getname_names_count);
+	printf("      Strings: %ld Kb (%ld bytes)\n", getname_bytes_count/1000, getname_bytes_count);
+	printf("      Structs: %ld Kb (%ld bytes)\n", getname_struct_count/1000, getname_struct_count);
+	printf("  Total bytes: %ld Kb (%ld bytes)\n", getname_struct_count/1000 + getname_bytes_count/1000, getname_struct_count + getname_bytes_count);
+
+	printf("\n  Unallocated: %ld\n", freename_names_count);
+	printf("        Names: %ld\n", freename_names_count);
+	printf("      Strings: %ld Kb (%ld bytes)\n", freename_bytes_count/1000, freename_bytes_count);
+	printf("      Structs: %ld Kb (%ld bytes)\n", freename_struct_count/1000, freename_struct_count);
+	printf("  Total bytes: %ld Kb (%ld bytes)\n", freename_struct_count/1000 + freename_bytes_count/1000, freename_struct_count + freename_bytes_count);
 
-	printf(NOCATGETS("\n  Total used: %ld Kb (%ld bytes)\n"), (getname_struct_count/1000 + getname_bytes_count/1000) - (freename_struct_count/1000 + freename_bytes_count/1000), (getname_struct_count + getname_bytes_count) - (freename_struct_count + freename_bytes_count));
+	printf("\n  Total used: %ld Kb (%ld bytes)\n", (getname_struct_count/1000 + getname_bytes_count/1000) - (freename_struct_count/1000 + freename_bytes_count/1000), (getname_struct_count + getname_bytes_count) - (freename_struct_count + freename_bytes_count));
 
-	printf(NOCATGETS("\n>>> Other:\n"));
+	printf("\n>>> Other:\n");
 	printf(
-		NOCATGETS("       Env (%ld): %ld Kb (%ld bytes)\n"),
+		"       Env (%ld): %ld Kb (%ld bytes)\n",
 		env_alloc_num,
 		env_alloc_bytes/1000,
 		env_alloc_bytes
@@ -664,7 +644,7 @@
 	    if (!quest && !list_all_targets) {
 		Name		failed_name;
 
-		MBSTOWCS(wcs_buffer, NOCATGETS(".FAILED"));
+		MBSTOWCS(wcs_buffer, ".FAILED");
 		failed_name = GETNAME(wcs_buffer, FIND_LENGTH);
 		if ((exit_status != 0) && (failed_name->prop != NULL)) {
 			/*
@@ -738,10 +718,6 @@
 #if defined (TEAMWARE_MAKE_CMN) && defined (MAXJOBS_ADJUST_RFE4694000)
 	job_adjust_fini();
 #endif
-
-#ifdef TEAMWARE_MAKE_CMN
-	catclose(catd);
-#endif
 }
 
 /*
@@ -810,15 +786,15 @@
 				       current_target->string_mb);
 			if (current_target->stat.is_dir) {
 				(void) fprintf(stderr,
-					       catgets(catd, 1, 168, "not removed.\n"),
+					       gettext("not removed.\n"),
 					       current_target->string_mb);
 			} else if (unlink(current_target->string_mb) == 0) {
 				(void) fprintf(stderr,
-					       catgets(catd, 1, 169, "removed.\n"),
+					       gettext("removed.\n"),
 					       current_target->string_mb);
 			} else {
 				(void) fprintf(stderr,
-					       catgets(catd, 1, 170, "could not be removed: %s.\n"),
+					       gettext("could not be removed: %s.\n"),
 					       current_target->string_mb,
 					       errmsg(errno));
 			}
@@ -845,15 +821,15 @@
 					       rp->target->string_mb);
 				if (rp->target->stat.is_dir) {
 					(void) fprintf(stderr,
-						       catgets(catd, 1, 171, "not removed.\n"),
+						       gettext("not removed.\n"),
 						       rp->target->string_mb);
 				} else if (unlink(rp->target->string_mb) == 0) {
 					(void) fprintf(stderr,
-						       catgets(catd, 1, 172, "removed.\n"),
+						       gettext("removed.\n"),
 						       rp->target->string_mb);
 				} else {
 					(void) fprintf(stderr,
-						       catgets(catd, 1, 173, "could not be removed: %s.\n"),
+						       gettext("could not be removed: %s.\n"),
 						       rp->target->string_mb,
 						       errmsg(errno));
 				}
@@ -1013,27 +989,27 @@
 		if (ch == '?') {
 			if (svr4) {
 				fprintf(stderr,
-					catgets(catd, 1, 267, "Usage : dmake [ -f makefile ][ -c dmake_rcfile ][ -g dmake_group ]\n"));
+					gettext("Usage : dmake [ -f makefile ][ -c dmake_rcfile ][ -g dmake_group ]\n"));
 				fprintf(stderr,
-					catgets(catd, 1, 268, "              [ -j dmake_max_jobs ][ -m dmake_mode ][ -o dmake_odir ]...\n"));
+					gettext("              [ -j dmake_max_jobs ][ -m dmake_mode ][ -o dmake_odir ]...\n"));
 				fprintf(stderr,
-					catgets(catd, 1, 269, "              [ -e ][ -i ][ -k ][ -n ][ -p ][ -q ][ -r ][ -s ][ -t ][ -v ]\n"));
+					gettext("              [ -e ][ -i ][ -k ][ -n ][ -p ][ -q ][ -r ][ -s ][ -t ][ -v ]\n"));
 				tptr = strchr(SVR4_CMD_OPTS, optopt);
 			} else {
 				fprintf(stderr,
-					catgets(catd, 1, 272, "Usage : dmake [ -f makefile ][ -c dmake_rcfile ][ -g dmake_group ]\n"));
+					gettext("Usage : dmake [ -f makefile ][ -c dmake_rcfile ][ -g dmake_group ]\n"));
 				fprintf(stderr,
-					catgets(catd, 1, 273, "              [ -j dmake_max_jobs ][ -K statefile ][ -m dmake_mode ][ -x MODE_NAME=VALUE ][ -o dmake_odir ]...\n"));
+					gettext("              [ -j dmake_max_jobs ][ -K statefile ][ -m dmake_mode ][ -x MODE_NAME=VALUE ][ -o dmake_odir ]...\n"));
 				fprintf(stderr,
-					catgets(catd, 1, 274, "              [ -d ][ -dd ][ -D ][ -DD ][ -e ][ -i ][ -k ][ -n ][ -p ][ -P ][ -u ][ -w ]\n"));
+					gettext("              [ -d ][ -dd ][ -D ][ -DD ][ -e ][ -i ][ -k ][ -n ][ -p ][ -P ][ -u ][ -w ]\n"));
 				fprintf(stderr,
-					catgets(catd, 1, 275, "              [ -q ][ -r ][ -s ][ -S ][ -t ][ -v ][ -V ][ target... ][ macro=value... ][ \"macro +=value\"... ]\n"));
+					gettext("              [ -q ][ -r ][ -s ][ -S ][ -t ][ -v ][ -V ][ target... ][ macro=value... ][ \"macro +=value\"... ]\n"));
 				tptr = strchr(SUNPRO_CMD_OPTS, optopt);
 			}
 			if (!tptr) {
-				fatal(catgets(catd, 1, 279, "Unknown option `-%c'"), optopt);
+				fatal(gettext("Unknown option `-%c'"), optopt);
 			} else {
-				fatal(catgets(catd, 1, 280, "Missing argument after `-%c'"), optopt);
+				fatal(gettext("Missing argument after `-%c'"), optopt);
 			}
 		}
 
@@ -1060,37 +1036,37 @@
 				}
 				break;
 			case 1:	/* -f seen */
-				argv[i] = (char *)NOCATGETS("-f");
+				argv[i] = (char *)"-f";
 				break;
 			case 2:	/* -c seen */
-				argv[i] = (char *)NOCATGETS("-c");
+				argv[i] = (char *)"-c";
 				break;
 			case 4:	/* -g seen */
-				argv[i] = (char *)NOCATGETS("-g");
+				argv[i] = (char *)"-g";
 				break;
 			case 8:	/* -j seen */
-				argv[i] = (char *)NOCATGETS("-j");
+				argv[i] = (char *)"-j";
 				break;
 			case 16: /* -M seen */
-				argv[i] = (char *)NOCATGETS("-M");
+				argv[i] = (char *)"-M";
 				break;
 			case 32: /* -m seen */
-				argv[i] = (char *)NOCATGETS("-m");
+				argv[i] = (char *)"-m";
 				break;
 			case 128: /* -O seen */
-				argv[i] = (char *)NOCATGETS("-O");
+				argv[i] = (char *)"-O";
 				break;
 			case 256: /* -K seen */
-				argv[i] = (char *)NOCATGETS("-K");
+				argv[i] = (char *)"-K";
 			        break;
 			case 512:	/* -o seen */
-				argv[i] = (char *)NOCATGETS("-o");
+				argv[i] = (char *)"-o";
 				break;
 			case 1024: /* -x seen */
-				argv[i] = (char *)NOCATGETS("-x");
+				argv[i] = (char *)"-x";
 				break;
 			default: /* > 1 of -c, f, g, j, K, M, m, O, o, x seen */
-				fatal(catgets(catd, 1, 286, "Illegal command line. More than one option requiring\nan argument given in the same argument group"));
+				fatal(gettext("Illegal command line. More than one option requiring\nan argument given in the same argument group"));
 			}
 
 			makefile_next = 0;
@@ -1240,7 +1216,7 @@
 	}
 	/* Allocate memory for the new MAKEFLAGS argv */
 	mf_argv = (char **) malloc((mf_argc + 1) * sizeof(char *));
-	mf_argv[0] = (char *)NOCATGETS("MAKEFLAGS");
+	mf_argv[0] = (char *)"MAKEFLAGS";
 	/*
 	 * Convert the MAKEFLAGS string value into a vector of char *,
 	 * similar to argv.
@@ -1527,7 +1503,7 @@
 	case 'v':			/* Version flag */
 		if (invert_this) {
 		} else {
-			fprintf(stdout, NOCATGETS("dmake: %s\n"), verstring);
+			fprintf(stdout, "dmake: %s\n", verstring);
 			exit_status = 0;
 			exit(0);
 		}
@@ -1573,7 +1549,7 @@
 int   done=0;
 
 	/* Check if we should use PROJECTDIR when reading the SCCS dir. */
-	sccs_dir_path = getenv(NOCATGETS("PROJECTDIR"));
+	sccs_dir_path = getenv("PROJECTDIR");
 	if ((sccs_dir_path != NULL) &&
 	    (sccs_dir_path[0] != (int) slash_char)) {
 		struct passwd *pwent;
@@ -1582,18 +1558,18 @@
 		uid = getuid();
 		pwent = getpwuid(uid);
 		if (pwent == NULL) {
-		   fatal(catgets(catd, 1, 188, "Bogus USERID "));
+		   fatal(gettext("Bogus USERID "));
 		}
 		if ((pwent = getpwnam(sccs_dir_path)) == NULL) {
 			/*empty block : it'll go & check cwd  */
 		}
 		else {
-		  (void) sprintf(path, NOCATGETS("%s/src"), pwent->pw_dir);
+		  (void) sprintf(path, "%s/src", pwent->pw_dir);
 		  if (access(path, F_OK) == 0) {
 			sccs_dir_path = path;
 			done = 1;
 		  } else {
-			(void) sprintf(path, NOCATGETS("%s/source"), pwent->pw_dir);
+			(void) sprintf(path, "%s/source", pwent->pw_dir);
 			if (access(path, F_OK) == 0) {
 				sccs_dir_path = path;
 				done = 1;
@@ -1603,12 +1579,12 @@
 		if (!done) {
 		    if (getcwd(cwdpath, MAXPATHLEN - 1 )) {
 
-		       (void) sprintf(path, NOCATGETS("%s/%s"), cwdpath,sccs_dir_path);
+		       (void) sprintf(path, "%s/%s", cwdpath,sccs_dir_path);
 		       if (access(path, F_OK) == 0) {
 		        	sccs_dir_path = path;
 				done = 1;
 		        } else {
-		  	       	fatal(catgets(catd, 1, 189, "Bogus PROJECTDIR '%s'"), sccs_dir_path);
+		  	       	fatal(gettext("Bogus PROJECTDIR '%s'"), sccs_dir_path);
 		        }
 		    }
 		}
@@ -1810,15 +1786,15 @@
  */
 	is_xpg4 = posix;
 
-	MBSTOWCS(wcs_buffer, NOCATGETS("KEEP_STATE"));
+	MBSTOWCS(wcs_buffer, "KEEP_STATE");
 	keep_state_name = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS("Makefile"));
+	MBSTOWCS(wcs_buffer, "Makefile");
 	Makefile = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS("makefile"));
+	MBSTOWCS(wcs_buffer, "makefile");
 	makefile_name = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS("s.makefile"));
+	MBSTOWCS(wcs_buffer, "s.makefile");
 	sdotmakefile_name = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS("s.Makefile"));
+	MBSTOWCS(wcs_buffer, "s.Makefile");
 	sdotMakefile = GETNAME(wcs_buffer, FIND_LENGTH);
 
 /*
@@ -1836,10 +1812,10 @@
 	}
 	if (!ignore_default_mk) {
 		if (svr4) {
-			MBSTOWCS(wcs_buffer, NOCATGETS("svr4.make.rules"));
+			MBSTOWCS(wcs_buffer, "svr4.make.rules");
 			default_makefile = GETNAME(wcs_buffer, FIND_LENGTH);
 		} else {
-			MBSTOWCS(wcs_buffer, NOCATGETS("make.rules"));
+			MBSTOWCS(wcs_buffer, "make.rules");
 			default_makefile = GETNAME(wcs_buffer, FIND_LENGTH);
 		}
 		default_makefile->stat.is_file = true;
@@ -1856,12 +1832,12 @@
 	 * change the macro value of MAKE to be some form
 	 * of argv[0] for recursive MAKE builds.
 	 */
-	MBSTOWCS(wcs_buffer, NOCATGETS("MAKE"));
+	MBSTOWCS(wcs_buffer, "MAKE");
 	def_make_name = GETNAME(wcs_buffer, wslen(wcs_buffer));
 	def_make_macro = get_prop(def_make_name->prop, macro_prop);
 	if ((def_make_macro != NULL) &&
 	    (IS_EQUAL(def_make_macro->body.macro.value->string_mb,
-	              NOCATGETS("make")))) {
+	              "make"))) {
 		MBSTOWCS(wcs_buffer, argv_zero_string);
 		new_make_value = GETNAME(wcs_buffer, wslen(wcs_buffer));
 		(void) SETVAR(def_make_name,
@@ -1993,56 +1969,56 @@
 	}
 	/* -c dmake_rcfile */
 	if (dmake_rcfile_specified) {
-		MBSTOWCS(wcs_buffer, NOCATGETS("DMAKE_RCFILE"));
+		MBSTOWCS(wcs_buffer, "DMAKE_RCFILE");
 		dmake_rcfile = GETNAME(wcs_buffer, FIND_LENGTH);
 		append_makeflags_string(dmake_rcfile, &makeflags_string);
 		append_makeflags_string(dmake_rcfile, &makeflags_string_posix);
 	}
 	/* -g dmake_group */
 	if (dmake_group_specified) {
-		MBSTOWCS(wcs_buffer, NOCATGETS("DMAKE_GROUP"));
+		MBSTOWCS(wcs_buffer, "DMAKE_GROUP");
 		dmake_group = GETNAME(wcs_buffer, FIND_LENGTH);
 		append_makeflags_string(dmake_group, &makeflags_string);
 		append_makeflags_string(dmake_group, &makeflags_string_posix);
 	}
 	/* -j dmake_max_jobs */
 	if (dmake_max_jobs_specified) {
-		MBSTOWCS(wcs_buffer, NOCATGETS("DMAKE_MAX_JOBS"));
+		MBSTOWCS(wcs_buffer, "DMAKE_MAX_JOBS");
 		dmake_max_jobs = GETNAME(wcs_buffer, FIND_LENGTH);
 		append_makeflags_string(dmake_max_jobs, &makeflags_string);
 		append_makeflags_string(dmake_max_jobs, &makeflags_string_posix);
 	}
 	/* -m dmake_mode */
 	if (dmake_mode_specified) {
-		MBSTOWCS(wcs_buffer, NOCATGETS("DMAKE_MODE"));
+		MBSTOWCS(wcs_buffer, "DMAKE_MODE");
 		dmake_mode = GETNAME(wcs_buffer, FIND_LENGTH);
 		append_makeflags_string(dmake_mode, &makeflags_string);
 		append_makeflags_string(dmake_mode, &makeflags_string_posix);
 	}
 	/* -x dmake_compat_mode */
 //	if (dmake_compat_mode_specified) {
-//		MBSTOWCS(wcs_buffer, NOCATGETS("SUN_MAKE_COMPAT_MODE"));
+//		MBSTOWCS(wcs_buffer, "SUN_MAKE_COMPAT_MODE");
 //		dmake_compat_mode = GETNAME(wcs_buffer, FIND_LENGTH);
 //		append_makeflags_string(dmake_compat_mode, &makeflags_string);
 //		append_makeflags_string(dmake_compat_mode, &makeflags_string_posix);
 //	}
 	/* -x dmake_output_mode */
 	if (dmake_output_mode_specified) {
-		MBSTOWCS(wcs_buffer, NOCATGETS("DMAKE_OUTPUT_MODE"));
+		MBSTOWCS(wcs_buffer, "DMAKE_OUTPUT_MODE");
 		dmake_output_mode = GETNAME(wcs_buffer, FIND_LENGTH);
 		append_makeflags_string(dmake_output_mode, &makeflags_string);
 		append_makeflags_string(dmake_output_mode, &makeflags_string_posix);
 	}
 	/* -o dmake_odir */
 	if (dmake_odir_specified) {
-		MBSTOWCS(wcs_buffer, NOCATGETS("DMAKE_ODIR"));
+		MBSTOWCS(wcs_buffer, "DMAKE_ODIR");
 		dmake_odir = GETNAME(wcs_buffer, FIND_LENGTH);
 		append_makeflags_string(dmake_odir, &makeflags_string);
 		append_makeflags_string(dmake_odir, &makeflags_string_posix);
 	}
 	/* -M pmake_machinesfile */
 	if (pmake_machinesfile_specified) {
-		MBSTOWCS(wcs_buffer, NOCATGETS("PMAKE_MACHINESFILE"));
+		MBSTOWCS(wcs_buffer, "PMAKE_MACHINESFILE");
 		pmake_machinesfile = GETNAME(wcs_buffer, FIND_LENGTH);
 		append_makeflags_string(pmake_machinesfile, &makeflags_string);
 		append_makeflags_string(pmake_machinesfile, &makeflags_string_posix);
@@ -2065,13 +2041,13 @@
 
 	if (makeflags_string.buffer.start[1] != (int) nul_char) {
 		if (makeflags_string.buffer.start[1] != (int) space_char) {
-			MBSTOWCS(wcs_buffer, NOCATGETS("MFLAGS"));
+			MBSTOWCS(wcs_buffer, "MFLAGS");
 			(void) SETVAR(GETNAME(wcs_buffer, FIND_LENGTH),
 				      GETNAME(makeflags_string.buffer.start,
 					      FIND_LENGTH),
 				      false);
 		} else {
-			MBSTOWCS(wcs_buffer, NOCATGETS("MFLAGS"));
+			MBSTOWCS(wcs_buffer, "MFLAGS");
 			(void) SETVAR(GETNAME(wcs_buffer, FIND_LENGTH),
 				      GETNAME(makeflags_string.buffer.start + 2,
 					      FIND_LENGTH),
@@ -2143,7 +2119,7 @@
 		    (argv[i][2] == (int) nul_char)) {
 			argv[i] = NULL;		/* Remove -f */
 			if (i >= argc - 1) {
-				fatal(catgets(catd, 1, 190, "No filename argument after -f flag"));
+				fatal(gettext("No filename argument after -f flag"));
 			}
 			MBSTOWCS(wcs_buffer, argv[++i]);
 			primary_makefile = GETNAME(wcs_buffer, FIND_LENGTH);
@@ -2178,7 +2154,7 @@
 	    if (!posix) {
 		if (makefile_name->stat.is_file) {
 			if (Makefile->stat.is_file) {
-				warning(catgets(catd, 1, 310, "Both `makefile' and `Makefile' exist"));
+				warning(gettext("Both `makefile' and `Makefile' exist"));
 			}
 			primary_makefile = makefile_name;
 			makefile_read = read_makefile(makefile_name,
@@ -2201,7 +2177,7 @@
 
 		if (makefile_name->stat.is_file) {
 			if (Makefile->stat.is_file) {
-				warning(catgets(catd, 1, 191, "Both `makefile' and `Makefile' exist"));
+				warning(gettext("Both `makefile' and `Makefile' exist"));
 			}
 		}
 		if (makefile_name->stat.is_file) {
@@ -2311,13 +2287,13 @@
 		 * change the macro value of ARFLAGS to be in accordance
 		 * with "POSIX" requirements.
 		 */
-		MBSTOWCS(wcs_buffer, NOCATGETS("ARFLAGS"));
+		MBSTOWCS(wcs_buffer, "ARFLAGS");
 		name = GETNAME(wcs_buffer, wslen(wcs_buffer));
 		macro = get_prop(name->prop, macro_prop);
 		if ((macro != NULL) && /* Maybe (macro == NULL) || ? */
 		    (IS_EQUAL(macro->body.macro.value->string_mb,
-		              NOCATGETS("rv")))) {
-			MBSTOWCS(wcs_buffer, NOCATGETS("-rv"));
+		              "rv"))) {
+			MBSTOWCS(wcs_buffer, "-rv");
 			value = GETNAME(wcs_buffer, wslen(wcs_buffer));
 			(void) SETVAR(name,
 			              value,
@@ -2377,8 +2353,8 @@
 			 make_state->hash.length = 0;
 			 make_state->string_mb[0] = '\0';
 		      }
-	   	      sprintf(state_file_str_mb,NOCATGETS("%s%s"),
-		       make_state->string_mb,NOCATGETS("/.make.state"));
+	   	      sprintf(state_file_str_mb,"%s%s",
+		       make_state->string_mb,"/.make.state");
 		      make_state = &state_filename;
 			/* adjust the length to reflect the appended string */
 		      make_state->hash.length += 12;
@@ -2393,10 +2369,10 @@
 			tmp_path[slashp - make_state->string_mb]=0;
 		      if(strlen(tmp_path)) {
 		        if(stat(tmp_path, &make_state_stat)) {
-			  warning(catgets(catd, 1, 192, "directory %s for .KEEP_STATE_FILE does not exist"),tmp_path);
+			  warning(gettext("directory %s for .KEEP_STATE_FILE does not exist"),tmp_path);
 		        }
 		        if (access(tmp_path, F_OK) != 0) {
-			  warning(catgets(catd, 1, 193, "can't access dir %s"),tmp_path);
+			  warning(gettext("can't access dir %s"),tmp_path);
 		        }
 		      }
 		   }
@@ -2460,42 +2436,42 @@
 				continue;
 			case 2:	/* -c seen */
 				if (argv[i+1] == NULL) {
-					fatal(catgets(catd, 1, 194, "No dmake rcfile argument after -c flag"));
+					fatal(gettext("No dmake rcfile argument after -c flag"));
 				}
-				MBSTOWCS(wcs_buffer, NOCATGETS("DMAKE_RCFILE"));
+				MBSTOWCS(wcs_buffer, "DMAKE_RCFILE");
 				name = GETNAME(wcs_buffer, FIND_LENGTH);
 				break;
 			case 4:	/* -g seen */
 				if (argv[i+1] == NULL) {
-					fatal(catgets(catd, 1, 195, "No dmake group argument after -g flag"));
+					fatal(gettext("No dmake group argument after -g flag"));
 				}
-				MBSTOWCS(wcs_buffer, NOCATGETS("DMAKE_GROUP"));
+				MBSTOWCS(wcs_buffer, "DMAKE_GROUP");
 				name = GETNAME(wcs_buffer, FIND_LENGTH);
 				break;
 			case 8:	/* -j seen */
 				if (argv[i+1] == NULL) {
-					fatal(catgets(catd, 1, 196, "No dmake max jobs argument after -j flag"));
+					fatal(gettext("No dmake max jobs argument after -j flag"));
 				}
-				MBSTOWCS(wcs_buffer, NOCATGETS("DMAKE_MAX_JOBS"));
+				MBSTOWCS(wcs_buffer, "DMAKE_MAX_JOBS");
 				name = GETNAME(wcs_buffer, FIND_LENGTH);
 				break;
 			case 16: /* -M seen */
 				if (argv[i+1] == NULL) {
-					fatal(catgets(catd, 1, 323, "No pmake machinesfile argument after -M flag"));
+					fatal(gettext("No pmake machinesfile argument after -M flag"));
 				}
-				MBSTOWCS(wcs_buffer, NOCATGETS("PMAKE_MACHINESFILE"));
+				MBSTOWCS(wcs_buffer, "PMAKE_MACHINESFILE");
 				name = GETNAME(wcs_buffer, FIND_LENGTH);
 				break;
 			case 32: /* -m seen */
 				if (argv[i+1] == NULL) {
-					fatal(catgets(catd, 1, 197, "No dmake mode argument after -m flag"));
+					fatal(gettext("No dmake mode argument after -m flag"));
 				}
-				MBSTOWCS(wcs_buffer, NOCATGETS("DMAKE_MODE"));
+				MBSTOWCS(wcs_buffer, "DMAKE_MODE");
 				name = GETNAME(wcs_buffer, FIND_LENGTH);
 				break;
 			case 256: /* -K seen */
 				if (argv[i+1] == NULL) {
-					fatal(catgets(catd, 1, 288, "No makestate filename argument after -K flag"));
+					fatal(gettext("No makestate filename argument after -K flag"));
 				}
 				MBSTOWCS(wcs_buffer, argv[i+1]);
 				make_state = GETNAME(wcs_buffer, FIND_LENGTH);
@@ -2505,31 +2481,31 @@
 				continue;
 			case 512:	/* -o seen */
 				if (argv[i+1] == NULL) {
-					fatal(catgets(catd, 1, 312, "No dmake output dir argument after -o flag"));
+					fatal(gettext("No dmake output dir argument after -o flag"));
 				}
-				MBSTOWCS(wcs_buffer, NOCATGETS("DMAKE_ODIR"));
+				MBSTOWCS(wcs_buffer, "DMAKE_ODIR");
 				name = GETNAME(wcs_buffer, FIND_LENGTH);
 				break;
 			case 1024: /* -x seen */
 				if (argv[i+1] == NULL) {
-					fatal(catgets(catd, 1, 351, "No argument after -x flag"));
+					fatal(gettext("No argument after -x flag"));
 				}
-				length = strlen( NOCATGETS("SUN_MAKE_COMPAT_MODE="));
-				if (strncmp(argv[i+1], NOCATGETS("SUN_MAKE_COMPAT_MODE="), length) == 0) {
+				length = strlen( "SUN_MAKE_COMPAT_MODE=");
+				if (strncmp(argv[i+1], "SUN_MAKE_COMPAT_MODE=", length) == 0) {
 					argv[i+1] = &argv[i+1][length];
-					MBSTOWCS(wcs_buffer, NOCATGETS("SUN_MAKE_COMPAT_MODE"));
+					MBSTOWCS(wcs_buffer, "SUN_MAKE_COMPAT_MODE");
 					name = GETNAME(wcs_buffer, FIND_LENGTH);
 					dmake_compat_mode_specified = dmake_add_mode_specified;
 					break;
 				}
-				length = strlen( NOCATGETS("DMAKE_OUTPUT_MODE="));
-				if (strncmp(argv[i+1], NOCATGETS("DMAKE_OUTPUT_MODE="), length) == 0) {
+				length = strlen( "DMAKE_OUTPUT_MODE=");
+				if (strncmp(argv[i+1], "DMAKE_OUTPUT_MODE=", length) == 0) {
 					argv[i+1] = &argv[i+1][length];
-					MBSTOWCS(wcs_buffer, NOCATGETS("DMAKE_OUTPUT_MODE"));
+					MBSTOWCS(wcs_buffer, "DMAKE_OUTPUT_MODE");
 					name = GETNAME(wcs_buffer, FIND_LENGTH);
 					dmake_output_mode_specified = dmake_add_mode_specified;
 				} else {
-					warning(catgets(catd, 1, 354, "Unknown argument `%s' after -x flag (ignored)"),
+					warning(gettext("Unknown argument `%s' after -x flag (ignored)"),
 					      argv[i+1]);
 					argv[i] = argv[i + 1] = NULL;
 					continue;
@@ -2615,24 +2591,24 @@
 {
 	const char	*option;
 
-	if (strcmp(name->string_mb, NOCATGETS("DMAKE_GROUP")) == 0) {
-		option = NOCATGETS(" -g ");
-	} else if (strcmp(name->string_mb, NOCATGETS("DMAKE_MAX_JOBS")) == 0) {
-		option = NOCATGETS(" -j ");
-	} else if (strcmp(name->string_mb, NOCATGETS("DMAKE_MODE")) == 0) {
-		option = NOCATGETS(" -m ");
-	} else if (strcmp(name->string_mb, NOCATGETS("DMAKE_ODIR")) == 0) {
-		option = NOCATGETS(" -o ");
-	} else if (strcmp(name->string_mb, NOCATGETS("DMAKE_RCFILE")) == 0) {
-		option = NOCATGETS(" -c ");
-	} else if (strcmp(name->string_mb, NOCATGETS("PMAKE_MACHINESFILE")) == 0) {
-		option = NOCATGETS(" -M ");
-	} else if (strcmp(name->string_mb, NOCATGETS("DMAKE_OUTPUT_MODE")) == 0) {
-		option = NOCATGETS(" -x DMAKE_OUTPUT_MODE=");
-	} else if (strcmp(name->string_mb, NOCATGETS("SUN_MAKE_COMPAT_MODE")) == 0) {
-		option = NOCATGETS(" -x SUN_MAKE_COMPAT_MODE=");
+	if (strcmp(name->string_mb, "DMAKE_GROUP") == 0) {
+		option = " -g ";
+	} else if (strcmp(name->string_mb, "DMAKE_MAX_JOBS") == 0) {
+		option = " -j ";
+	} else if (strcmp(name->string_mb, "DMAKE_MODE") == 0) {
+		option = " -m ";
+	} else if (strcmp(name->string_mb, "DMAKE_ODIR") == 0) {
+		option = " -o ";
+	} else if (strcmp(name->string_mb, "DMAKE_RCFILE") == 0) {
+		option = " -c ";
+	} else if (strcmp(name->string_mb, "PMAKE_MACHINESFILE") == 0) {
+		option = " -M ";
+	} else if (strcmp(name->string_mb, "DMAKE_OUTPUT_MODE") == 0) {
+		option = " -x DMAKE_OUTPUT_MODE=";
+	} else if (strcmp(name->string_mb, "SUN_MAKE_COMPAT_MODE") == 0) {
+		option = " -x SUN_MAKE_COMPAT_MODE=";
 	} else {
-		fatal(catgets(catd, 1, 289, "Internal error: name not recognized in append_makeflags_string()"));
+		fatal(gettext("Internal error: name not recognized in append_makeflags_string()"));
 	}
 	Property prop = maybe_append_prop(name, macro_prop);
 	if( prop == 0 || prop->body.macro.value == 0 ||
@@ -2693,11 +2669,11 @@
 		if (!value) {
 			continue;
 		}
-		MBSTOWCS(wcs_buffer2, NOCATGETS("SHELL="));
+		MBSTOWCS(wcs_buffer2, "SHELL=");
 		if (IS_WEQUALN(name, wcs_buffer2, wslen(wcs_buffer2))) {
 			continue;
 		}
-		MBSTOWCS(wcs_buffer2, NOCATGETS("MAKEFLAGS="));
+		MBSTOWCS(wcs_buffer2, "MAKEFLAGS=");
 		if (IS_WEQUALN(name, wcs_buffer2, wslen(wcs_buffer2))) {
 			report_pwd = true;
 			/*
@@ -2720,7 +2696,7 @@
 		 * the child make will end up writing to the parent
 		 * directory's .make.state and clobbering them.
 		 */
-		MBSTOWCS(wcs_buffer2, NOCATGETS("SUNPRO_DEPENDENCIES"));
+		MBSTOWCS(wcs_buffer2, "SUNPRO_DEPENDENCIES");
 		if (IS_WEQUALN(name, wcs_buffer2, wslen(wcs_buffer2))) {
 			continue;
 		}
@@ -2868,11 +2844,11 @@
 				    (exists(default_target_to_build) > file_doesnt_exist)  */) {
 					if (posix) {
 						if (!commands_done) {
-							(void) printf(catgets(catd, 1, 293, "`%s' is updated.\n"),
+							(void) printf(gettext("`%s' is updated.\n"),
 						 		      default_target_to_build->string_mb);
 						} else {
 							if (no_action_was_taken) {
-								(void) printf(catgets(catd, 1, 294, "`%s': no action was taken.\n"),
+								(void) printf(gettext("`%s': no action was taken.\n"),
 						 			      default_target_to_build->string_mb);
 							}
 						}
@@ -2880,7 +2856,7 @@
 						default_target_to_build->stat.time = file_no_time;
 						if (!commands_done &&
 						    (exists(default_target_to_build) > file_doesnt_exist)) {
-							(void) printf(catgets(catd, 1, 295, "`%s' is up to date.\n"),
+							(void) printf(gettext("`%s' is up to date.\n"),
 								      default_target_to_build->string_mb);
 						}
 					}
@@ -2922,7 +2898,7 @@
 			gather_recursive_deps();
 			if (build_failed_seen) {
 				build_failed_ever_seen = true;
-				warning(catgets(catd, 1, 200, "Target `%s' not remade because of errors"),
+				warning(gettext("Target `%s' not remade because of errors"),
 					default_target_to_build->string_mb);
 			}
 			build_failed_seen = false;
@@ -2945,18 +2921,18 @@
 			    (exists(default_target_to_build) > file_doesnt_exist)  */) {
 				if (posix) {
 					if (!commands_done) {
-						(void) printf(catgets(catd, 1, 296, "`%s' is updated.\n"),
+						(void) printf(gettext("`%s' is updated.\n"),
 					 		      default_target_to_build->string_mb);
 					} else {
 						if (no_action_was_taken) {
-							(void) printf(catgets(catd, 1, 297, "`%s': no action was taken.\n"),
+							(void) printf(gettext("`%s': no action was taken.\n"),
 					 			      default_target_to_build->string_mb);
 						}
 					}
 				} else {
 					if (!commands_done &&
 					    (exists(default_target_to_build) > file_doesnt_exist)) {
-						(void) printf(catgets(catd, 1, 298, "`%s' is up to date.\n"),
+						(void) printf(gettext("`%s' is up to date.\n"),
 							      default_target_to_build->string_mb);
 					}
 				}
@@ -2970,15 +2946,15 @@
  */
 	if (!target_to_make_found) {
 		if (default_target_to_build == NULL) {
-			fatal(catgets(catd, 1, 202, "No arguments to build"));
+			fatal(gettext("No arguments to build"));
 		}
 		commands_done = false;
 		top_level_target = get_wstring(default_target_to_build->string_mb);
 		report_recursion(default_target_to_build);
 
 
-		if (getenv(NOCATGETS("SPRO_EXPAND_ERRORS"))){
-			(void) printf(NOCATGETS("::(%s)\n"),
+		if (getenv("SPRO_EXPAND_ERRORS")){
+			(void) printf("::(%s)\n",
 				      default_target_to_build->string_mb);
 		}
 
@@ -2987,7 +2963,7 @@
 		gather_recursive_deps();
 		if (build_failed_seen) {
 			build_failed_ever_seen = true;
-			warning(catgets(catd, 1, 203, "Target `%s' not remade because of errors"),
+			warning(gettext("Target `%s' not remade because of errors"),
 				default_target_to_build->string_mb);
 		}
 		build_failed_seen = false;
@@ -3008,18 +2984,18 @@
 		    (exists(default_target_to_build) > file_doesnt_exist)  */) {
 			if (posix) {
 				if (!commands_done) {
-					(void) printf(catgets(catd, 1, 299, "`%s' is updated.\n"),
+					(void) printf(gettext("`%s' is updated.\n"),
 				 		      default_target_to_build->string_mb);
 				} else {
 					if (no_action_was_taken) {
-						(void) printf(catgets(catd, 1, 300, "`%s': no action was taken.\n"),
+						(void) printf(gettext("`%s': no action was taken.\n"),
 							      default_target_to_build->string_mb);
 					}
 				}
 			} else {
 				if (!commands_done &&
 				    (exists(default_target_to_build) > file_doesnt_exist)) {
-					(void) printf(catgets(catd, 1, 301, "`%s' is up to date.\n"),
+					(void) printf(gettext("`%s' is up to date.\n"),
 						      default_target_to_build->string_mb);
 				}
 			}
@@ -3196,7 +3172,7 @@
 	char *	make_level_str = NULL;
 	int	make_level_val = 0;
 
-	make_level_str = getenv(NOCATGETS("MAKELEVEL"));
+	make_level_str = getenv("MAKELEVEL");
 	if(make_level_str) {
 		make_level_val = atoi(make_level_str);
 	}
@@ -3204,10 +3180,10 @@
 		mlev = (char*) malloc(MAXPATHLEN);
 	}
 	if(entering) {
-		sprintf(mlev, NOCATGETS("MAKELEVEL=%d"), make_level_val + 1);
+		sprintf(mlev, "MAKELEVEL=%d", make_level_val + 1);
 	} else {
 		make_level_val--;
-		sprintf(mlev, NOCATGETS("MAKELEVEL=%d"), make_level_val);
+		sprintf(mlev, "MAKELEVEL=%d", make_level_val);
 	}
 	putenv(mlev);
 
@@ -3215,24 +3191,24 @@
 		if(make_level_val <= 0) {
 			if(entering) {
 				sprintf( rcwd
-				       , catgets(catd, 1, 329, "dmake: Entering directory `%s'\n")
+				       , gettext("dmake: Entering directory `%s'\n")
 				       , get_current_path());
 			} else {
 				sprintf( rcwd
-				       , catgets(catd, 1, 331, "dmake: Leaving directory `%s'\n")
+				       , gettext("dmake: Leaving directory `%s'\n")
 				       , get_current_path());
 			}
 		} else {
 			if(entering) {
 				sprintf( rcwd
-				       , catgets(catd, 1, 333, "dmake[%d]: Entering directory `%s'\n")
+				       , gettext("dmake[%d]: Entering directory `%s'\n")
 				       , make_level_val, get_current_path());
 			} else {
 				sprintf( rcwd
-				       , catgets(catd, 1, 335, "dmake[%d]: Leaving directory `%s'\n")
+				       , gettext("dmake[%d]: Leaving directory `%s'\n")
 				       , make_level_val, get_current_path());
 			}
 		}
-		printf(NOCATGETS("%s"), rcwd);
+		printf("%s", rcwd);
 	}
 }
--- old/usr/src/cmd/make/bin/misc.cc	2015-05-20 12:19:51.199401252 -0400
+++ new/usr/src/cmd/make/bin/misc.cc	2015-05-20 12:19:51.215480193 -0400
@@ -45,6 +45,7 @@
 #include <mksh/misc.h>		/* enable_interrupt() */
 #include <stdarg.h>		/* va_list, va_start(), va_end() */
 #include <vroot/report.h>	/* SUNPRO_DEPENDENCIES */
+#include <libintl.h>
 
 
 #define MAXJOBS_ADJUST_RFE4694000
@@ -141,13 +142,13 @@
 
 	va_start(args, message);
 	(void) fflush(stdout);
-	(void) fprintf(stderr, catgets(catd, 1, 263, "make: Fatal error: "));
+	(void) fprintf(stderr, gettext("make: Fatal error: "));
 	(void) vfprintf(stderr, message, args);
 	(void) fprintf(stderr, "\n");
 	va_end(args);
 	if (report_pwd) {
 		(void) fprintf(stderr,
-			       catgets(catd, 1, 156, "Current working directory %s\n"),
+			       gettext("Current working directory %s\n"),
 			       get_current_path());
 	}
 	(void) fflush(stderr);
@@ -160,10 +161,10 @@
 	if ((dmake_mode_type == parallel_mode) &&
 	    (parallel_process_cnt > 0)) {
 		(void) fprintf(stderr,
-			       catgets(catd, 1, 157, "Waiting for %d %s to finish\n"),
+			       gettext("Waiting for %d %s to finish\n"),
 			       parallel_process_cnt,
 			       parallel_process_cnt == 1 ?
-			       catgets(catd, 1, 158, "job") : catgets(catd, 1, 159, "jobs"));
+			       gettext("job") : gettext("jobs"));
 		(void) fflush(stderr);
 	}
 
@@ -200,13 +201,13 @@
 
 	va_start(args, message);
 	(void) fflush(stdout);
-	(void) fprintf(stderr, catgets(catd, 1, 265, "make: Warning: "));
+	(void) fprintf(stderr, gettext("make: Warning: "));
 	(void) vfprintf(stderr, message, args);
 	(void) fprintf(stderr, "\n");
 	va_end(args);
 	if (report_pwd) {
 		(void) fprintf(stderr,
-			       catgets(catd, 1, 161, "Current working directory %s\n"),
+			       gettext("Current working directory %s\n"),
 			       get_current_path());
 	}
 	(void) fflush(stderr);
@@ -233,13 +234,13 @@
 	char			buf[128];
 
         if (time == file_doesnt_exist) {
-                return catgets(catd, 1, 163, "File does not exist");
+                return gettext("File does not exist");
         }
         if (time == file_max_time) {
-                return catgets(catd, 1, 164, "Younger than any file");
+                return gettext("Younger than any file");
         }
 	tm = localtime(&time.tv_sec);
-	strftime(buf, sizeof (buf), NOCATGETS("%c %Z"), tm);
+	strftime(buf, sizeof (buf), "%c %Z", tm);
         buf[127] = (int) nul_char;
         return strdup(buf);
 }
@@ -558,11 +559,11 @@
 	Name		dollar;
 
 	/* Load the cached_names struct */
-	MBSTOWCS(wcs_buffer, NOCATGETS(".BUILT_LAST_MAKE_RUN"));
+	MBSTOWCS(wcs_buffer, ".BUILT_LAST_MAKE_RUN");
 	built_last_make_run = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS("@"));
+	MBSTOWCS(wcs_buffer, "@");
 	c_at = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(" *conditionals* "));
+	MBSTOWCS(wcs_buffer, " *conditionals* ");
 	conditionals = GETNAME(wcs_buffer, FIND_LENGTH);
 	/*
 	 * A version of make was released with NSE 1.0 that used
@@ -571,87 +572,87 @@
 	 * situation.  If the version number is changed from 1.0
 	 * it should go to 1.2.
 	 */
-	MBSTOWCS(wcs_buffer, NOCATGETS("VERSION-1.0"));
+	MBSTOWCS(wcs_buffer, "VERSION-1.0");
 	current_make_version = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".SVR4"));
+	MBSTOWCS(wcs_buffer, ".SVR4");
 	svr4_name = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".POSIX"));
+	MBSTOWCS(wcs_buffer, ".POSIX");
 	posix_name = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".DEFAULT"));
+	MBSTOWCS(wcs_buffer, ".DEFAULT");
 	default_rule_name = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS("$"));
+	MBSTOWCS(wcs_buffer, "$");
 	dollar = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".DONE"));
+	MBSTOWCS(wcs_buffer, ".DONE");
 	done = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS("."));
+	MBSTOWCS(wcs_buffer, ".");
 	dot = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".KEEP_STATE"));
+	MBSTOWCS(wcs_buffer, ".KEEP_STATE");
 	dot_keep_state = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".KEEP_STATE_FILE"));
+	MBSTOWCS(wcs_buffer, ".KEEP_STATE_FILE");
 	dot_keep_state_file = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(""));
+	MBSTOWCS(wcs_buffer, "");
 	empty_name = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(" FORCE"));
+	MBSTOWCS(wcs_buffer, " FORCE");
 	force = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS("HOST_ARCH"));
+	MBSTOWCS(wcs_buffer, "HOST_ARCH");
 	host_arch = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS("HOST_MACH"));
+	MBSTOWCS(wcs_buffer, "HOST_MACH");
 	host_mach = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".IGNORE"));
+	MBSTOWCS(wcs_buffer, ".IGNORE");
 	ignore_name = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".INIT"));
+	MBSTOWCS(wcs_buffer, ".INIT");
 	init = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".LOCAL"));
+	MBSTOWCS(wcs_buffer, ".LOCAL");
 	localhost_name = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".make.state"));
+	MBSTOWCS(wcs_buffer, ".make.state");
 	make_state = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS("MAKEFLAGS"));
+	MBSTOWCS(wcs_buffer, "MAKEFLAGS");
 	makeflags = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".MAKE_VERSION"));
+	MBSTOWCS(wcs_buffer, ".MAKE_VERSION");
 	make_version = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".NO_PARALLEL"));
+	MBSTOWCS(wcs_buffer, ".NO_PARALLEL");
 	no_parallel_name = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".NOT_AUTO"));
+	MBSTOWCS(wcs_buffer, ".NOT_AUTO");
 	not_auto = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".PARALLEL"));
+	MBSTOWCS(wcs_buffer, ".PARALLEL");
 	parallel_name = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS("PATH"));
+	MBSTOWCS(wcs_buffer, "PATH");
 	path_name = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS("+"));
+	MBSTOWCS(wcs_buffer, "+");
 	plus = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".PRECIOUS"));
+	MBSTOWCS(wcs_buffer, ".PRECIOUS");
 	precious = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS("?"));
+	MBSTOWCS(wcs_buffer, "?");
 	query = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS("^"));
+	MBSTOWCS(wcs_buffer, "^");
 	hat = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".RECURSIVE"));
+	MBSTOWCS(wcs_buffer, ".RECURSIVE");
 	recursive_name = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".SCCS_GET"));
+	MBSTOWCS(wcs_buffer, ".SCCS_GET");
 	sccs_get_name = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".SCCS_GET_POSIX"));
+	MBSTOWCS(wcs_buffer, ".SCCS_GET_POSIX");
 	sccs_get_posix_name = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".GET"));
+	MBSTOWCS(wcs_buffer, ".GET");
 	get_name = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".GET_POSIX"));
+	MBSTOWCS(wcs_buffer, ".GET_POSIX");
 	get_posix_name = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS("SHELL"));
+	MBSTOWCS(wcs_buffer, "SHELL");
 	shell_name = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".SILENT"));
+	MBSTOWCS(wcs_buffer, ".SILENT");
 	silent_name = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".SUFFIXES"));
+	MBSTOWCS(wcs_buffer, ".SUFFIXES");
 	suffixes_name = GETNAME(wcs_buffer, FIND_LENGTH);
 	MBSTOWCS(wcs_buffer, SUNPRO_DEPENDENCIES);
 	sunpro_dependencies = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS("TARGET_ARCH"));
+	MBSTOWCS(wcs_buffer, "TARGET_ARCH");
 	target_arch = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS("TARGET_MACH"));
+	MBSTOWCS(wcs_buffer, "TARGET_MACH");
 	target_mach = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS("VIRTUAL_ROOT"));
+	MBSTOWCS(wcs_buffer, "VIRTUAL_ROOT");
 	virtual_root = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS("VPATH"));
+	MBSTOWCS(wcs_buffer, "VPATH");
 	vpath_name = GETNAME(wcs_buffer, FIND_LENGTH);
-	MBSTOWCS(wcs_buffer, NOCATGETS(".WAIT"));
+	MBSTOWCS(wcs_buffer, ".WAIT");
 	wait_name = GETNAME(wcs_buffer, FIND_LENGTH);
 
 	wait_name->state = build_ok;
@@ -682,9 +683,9 @@
 
 	/* Set the value of $(SHELL) */
 	if (posix) {
-	  MBSTOWCS(wcs_buffer, NOCATGETS("/usr/xpg4/bin/sh"));
+	  MBSTOWCS(wcs_buffer, "/usr/xpg4/bin/sh");
 	} else {
-	  MBSTOWCS(wcs_buffer, NOCATGETS("/bin/sh"));
+	  MBSTOWCS(wcs_buffer, "/bin/sh");
 	}
 	(void) SETVAR(shell_name, GETNAME(wcs_buffer, FIND_LENGTH), false);
 
@@ -706,9 +707,9 @@
 	/* Check if there is NO PATH variable. If not we construct one. */
 	if (getenv(path_name->string_mb) == NULL) {
 		vroot_path = NULL;
-		add_dir_to_path(NOCATGETS("."), &vroot_path, -1);
-		add_dir_to_path(NOCATGETS("/bin"), &vroot_path, -1);
-		add_dir_to_path(NOCATGETS("/usr/bin"), &vroot_path, -1);
+		add_dir_to_path(".", &vroot_path, -1);
+		add_dir_to_path("/bin", &vroot_path, -1);
+		add_dir_to_path("/usr/bin", &vroot_path, -1);
 	}
 }
 
--- old/usr/src/cmd/make/bin/parallel.cc	2015-05-20 12:19:51.672176175 -0400
+++ new/usr/src/cmd/make/bin/parallel.cc	2015-05-20 12:19:51.684201344 -0400
@@ -46,6 +46,7 @@
 #include <sys/wait.h>
 #include <unistd.h>
 #include <netdb.h>
+#include <libintl.h>
 
 
 
@@ -131,14 +132,14 @@
 		if (local_host[0] == '\0') {
 			(void) gethostname(local_host, MAXNAMELEN);
 		}
-		MBSTOWCS(wcs_buffer, NOCATGETS("DMAKE_MAX_JOBS"));
+		MBSTOWCS(wcs_buffer, "DMAKE_MAX_JOBS");
 		dmake_name = GETNAME(wcs_buffer, FIND_LENGTH);
 		if (((prop = get_prop(dmake_name->prop, macro_prop)) != NULL) &&
 		    ((dmake_value = prop->body.macro.value) != NULL)) {
 			pmake_max_jobs = atoi(dmake_value->string_mb);
 			if (pmake_max_jobs <= 0) {
-				warning(catgets(catd, 1, 308, "DMAKE_MAX_JOBS cannot be less than or equal to zero."));
-				warning(catgets(catd, 1, 309, "setting DMAKE_MAX_JOBS to %d."), PMAKE_DEF_MAX_JOBS);
+				warning(gettext("DMAKE_MAX_JOBS cannot be less than or equal to zero."));
+				warning(gettext("setting DMAKE_MAX_JOBS to %d."), PMAKE_DEF_MAX_JOBS);
 				pmake_max_jobs = PMAKE_DEF_MAX_JOBS;
 			}
 		} else {
@@ -148,7 +149,7 @@
 			 * should parse the PMake startup file
 			 * $(HOME)/.make.machines to get the pmake_max_jobs.
 			 */
-			MBSTOWCS(wcs_buffer, NOCATGETS("PMAKE_MACHINESFILE"));
+			MBSTOWCS(wcs_buffer, "PMAKE_MACHINESFILE");
 			dmake_name = GETNAME(wcs_buffer, FIND_LENGTH);
 			if (((prop = get_prop(dmake_name->prop, macro_prop)) != NULL) &&
 			    ((dmake_value = prop->body.macro.value) != NULL)) {
@@ -322,9 +323,9 @@
 	char	*var;
 	key_t	key;
 
-	if ((var = getenv(NOCATGETS("__DMAKE_M2_FILE__"))) == 0) {
+	if ((var = getenv("__DMAKE_M2_FILE__")) == 0) {
 		/* compose tmp file name */
-		sprintf(m2_file, NOCATGETS("%s/dmake.m2.%d.XXXXXX"), tmpdir, getpid());
+		sprintf(m2_file, "%s/dmake.m2.%d.XXXXXX", tmpdir, getpid());
 
 		/* create tmp file */
 		int fd = mkstemp(m2_file);
@@ -366,7 +367,7 @@
 		}
 
 		/* put key to env */
-		sprintf(var, NOCATGETS("__DMAKE_M2_FILE__=%s"), m2_file);
+		sprintf(var, "__DMAKE_M2_FILE__=%s", m2_file);
 		if (putenv(var)) {
 			return -1;
 		}
@@ -481,10 +482,10 @@
 		job_adjust_fini();
 
 		/* warning message for the user */
-		warning(catgets(catd, 1, 339, "Encountered max jobs auto adjustment error - disabling auto adjustment."));
+		warning(gettext("Encountered max jobs auto adjustment error - disabling auto adjustment."));
 
 		/* switch off job adjustment for the children */
-		putenv(strdup(NOCATGETS("DMAKE_ADJUST_MAX_JOBS=NO")));
+		putenv(strdup("DMAKE_ADJUST_MAX_JOBS=NO"));
 
 		/* and for this dmake */
 		job_adjust_mode = ADJUST_NONE;
@@ -517,10 +518,10 @@
 		job_adjust_mode = ADJUST_M1;
 
 		/* determine adjust mode */
-		if (char *var = getenv(NOCATGETS("DMAKE_ADJUST_MAX_JOBS"))) {
-			if (strcasecmp(var, NOCATGETS("NO")) == 0) {
+		if (char *var = getenv("DMAKE_ADJUST_MAX_JOBS")) {
+			if (strcasecmp(var, "NO") == 0) {
 				job_adjust_mode = ADJUST_NONE;
-			} else if (strcasecmp(var, NOCATGETS("M2")) == 0) {
+			} else if (strcasecmp(var, "M2") == 0) {
 				job_adjust_mode = ADJUST_M2;
 			}
 		}
@@ -621,10 +622,10 @@
 		 * Print local_host --> x job(s).
 		 */
 		(void) fprintf(stdout,
-		               catgets(catd, 1, 325, "%s --> %d %s\n"),
+		               gettext("%s --> %d %s\n"),
 		               local_host,
 		               parallel_process_cnt + 1,
-		               (parallel_process_cnt == 0) ? catgets(catd, 1, 124, "job") : catgets(catd, 1, 125, "jobs"));
+		               (parallel_process_cnt == 0) ? gettext("job") : gettext("jobs"));
 
 		/* Print command line(s). */
 		tmp_index = 0;
@@ -645,7 +646,7 @@
 	}
 
 	(void) sprintf(mbstring,
-		        NOCATGETS("%s/dmake.stdout.%d.%d.XXXXXX"),
+		        "%s/dmake.stdout.%d.%d.XXXXXX",
 			tmpdir,
 		        getpid(),
 	                file_number++);
@@ -657,7 +658,7 @@
 
 	if (!out_err_same) {
 		(void) sprintf(mbstring,
-			        NOCATGETS("%s/dmake.stderr.%d.%d.XXXXXX"),
+			        "%s/dmake.stderr.%d.%d.XXXXXX",
 				tmpdir,
 			        getpid(),
 		                file_number++);
@@ -934,11 +935,11 @@
 	 */
 	if (quiescent) {
 		if (subtree_target == NULL) {
-			fatal(catgets(catd, 1, 126, "Internal error: deadlock detected in process_next"));
+			fatal(gettext("Internal error: deadlock detected in process_next"));
 		} else {
 			rp = *subtree_target;
 			if (debug_level > 0) {
-				warning(catgets(catd, 1, 127, "Conditional macro conflict encountered for %s between %s and %s"),
+				warning(gettext("Conditional macro conflict encountered for %s between %s and %s"),
 					subtree_conflict2->string_mb,
 					rp->target->string_mb,
 					subtree_conflict->string_mb);
@@ -1144,7 +1145,7 @@
 			;
 		}
 		if (rp == NULL) {
-			fatal(catgets(catd, 1, 128, "Internal error: returned child pid not in running_list"));
+			fatal(gettext("Internal error: returned child pid not in running_list"));
 		} else {
 			rp->state = (WIFEXITED(status) && WEXITSTATUS(status) == 0) ? build_ok : build_failed;
 		}
@@ -1218,7 +1219,7 @@
 			 */
 			if (rp->stdout_file != NULL) {
 				if (stat(rp->stdout_file, &out_buf) < 0) {
-					fatal(catgets(catd, 1, 130, "stat of %s failed: %s"),
+					fatal(gettext("stat of %s failed: %s"),
 					    rp->stdout_file,
 					    errmsg(errno));
 				}
@@ -1245,7 +1246,7 @@
 
 			if (!out_err_same && (rp->stderr_file != NULL)) {
 				if (stat(rp->stderr_file, &out_buf) < 0) {
-					fatal(catgets(catd, 1, 130, "stat of %s failed: %s"),
+					fatal(gettext("stat of %s failed: %s"),
 					    rp->stderr_file,
 					    errmsg(errno));
 				}
@@ -1271,7 +1272,7 @@
 				if (continue_after_error ||
 				    fatal_in_progress ||
 				    !docheck) {
-					warning(catgets(catd, 1, 256, "Command failed for target `%s'"),
+					warning(gettext("Command failed for target `%s'"),
 						rp->command ? line2->body.line.target->string_mb : rp->target->string_mb);
 					build_failed_seen = true;
 				} else {
@@ -1280,10 +1281,10 @@
 					 * but shouldn't call fatal().
 					 */
 #ifdef PRINT_EXIT_STATUS
-					warning(NOCATGETS("I'm in finish_children. rp->state == build_failed."));
+					warning("I'm in finish_children. rp->state == build_failed.");
 #endif
 
-					fatal(catgets(catd, 1, 258, "Command failed for target `%s'"),
+					fatal(gettext("Command failed for target `%s'"),
 						rp->command ? line2->body.line.target->string_mb : rp->target->string_mb);
 				}
 			}
@@ -1331,15 +1332,15 @@
 	int		out_fd = (err ? 2 : 1);
 
 	if ((fd = open(filename, O_RDONLY)) < 0) {
-		fatal(catgets(catd, 1, 141, "open failed for output file %s: %s"),
+		fatal(gettext("open failed for output file %s: %s"),
 		      filename,
 		      errmsg(errno));
 	}
 	if (!silent && output_mode != txt2_mode) {
 		(void) fprintf(err ? stderr : stdout,
 		               err ?
-				catgets(catd, 1, 338, "%s --> Job errors\n") :
-				catgets(catd, 1, 259, "%s --> Job output\n"),
+				gettext("%s --> Job errors\n") :
+				gettext("%s --> Job output\n"),
 		               local_host);
 		(void) fflush(err ? stderr : stdout);
 	}
@@ -1350,7 +1351,7 @@
 		 * Read buffers from the source file until end or error.
 		 */
 		if (write(out_fd, copybuf, chars_read) < 0) {
-			fatal(catgets(catd, 1, 260, "write failed for output file %s: %s"),
+			fatal(gettext("write failed for output file %s: %s"),
 			      filename,
 			      errmsg(errno));
 		}
@@ -1384,9 +1385,9 @@
 	recursion_level = rp->recursion_level;
 	if (result == build_ok) {
 		if (true_target == NULL) {
-			(void) printf(NOCATGETS("Target = %s\n"), target->string_mb);
-			(void) printf(NOCATGETS(" State = %d\n"), result);
-			fatal(NOCATGETS("Internal error: NULL true_target in finish_doname"));
+			(void) printf("Target = %s\n", target->string_mb);
+			(void) printf(" State = %d\n", result);
+			fatal("Internal error: NULL true_target in finish_doname");
 		}
 		/* If all went OK, set a nice timestamp */
 		if (true_target->stat.time == file_doesnt_exist) {
@@ -1416,7 +1417,7 @@
 							    auto_count,
 							    automatics)) {
 		if (debug_level > 0) {
-			(void) printf(catgets(catd, 1, 261, "%*sTarget `%s' acquired new dependencies from build, checking all dependencies\n"),
+			(void) printf(gettext("%*sTarget `%s' acquired new dependencies from build, checking all dependencies\n"),
 				      recursion_level,
 				      "",
 				      true_target->string_mb);
@@ -1784,7 +1785,7 @@
 	childPid = fork();
 	switch (childPid) {
 	case -1:	/* Error */
-		fatal(catgets(catd, 1, 337, "Could not fork child process for dmake job: %s"),
+		fatal(gettext("Could not fork child process for dmake job: %s"),
 		      errmsg(errno));
 		break;
 	case 0:		/* Child */
@@ -1837,7 +1838,7 @@
 			               (Name) NULL);
 			if (result == build_failed) {
 				if (silent_flag) {
-					(void) printf(catgets(catd, 1, 152, "The following command caused the error:\n%s\n"), command->string_mb);
+					(void) printf(gettext("The following command caused the error:\n%s\n"), command->string_mb);
 				}
 				if (!ignore) {
 					_exit(1);
--- old/usr/src/cmd/make/bin/pmake.cc	2015-05-20 12:19:52.226437571 -0400
+++ new/usr/src/cmd/make/bin/pmake.cc	2015-05-20 12:19:52.238246315 -0400
@@ -37,6 +37,7 @@
 #include <sys/types.h>
 #include <sys/utsname.h>
 #include <rpc/rpc.h>		/* host2netname(), netname2host() */
+#include <libintl.h>
 
 /*
  * Defined macros
@@ -98,16 +99,16 @@
 	struct utsname		uts_info;
 
 
-	MBSTOWCS(wcs_buffer, NOCATGETS("MAKE_MACHINES"));
+	MBSTOWCS(wcs_buffer, "MAKE_MACHINES");
 	MAKE_MACHINES = GETNAME(wcs_buffer, FIND_LENGTH);
 	/* Did the user specify a .make.machines file on the command line? */
 	default_make_machines = false;
 	if (make_machines_name == NULL) {
 		/* Try reading the default .make.machines file, in $(HOME). */
-		homedir = getenv(NOCATGETS("HOME"));
+		homedir = getenv("HOME");
 		if ((homedir != NULL) && (strlen(homedir) < (sizeof(mb_make_machines_path) - 16))) {
 			sprintf(mb_make_machines_path,
-			 NOCATGETS("%s/.make.machines"), homedir);
+			 "%s/.make.machines", homedir);
 			MBSTOWCS(make_machines_path, mb_make_machines_path);
 			make_machines_name = GETNAME(make_machines_path, FIND_LENGTH);
 			default_make_machines = true;
@@ -127,7 +128,7 @@
 	if ((make_machines_file = fopen(make_machines_name->string_mb, "r")) == NULL) {
 		if (!default_make_machines) {
 			/* Error opening .make.machines file. */
-			fatal(catgets(catd, 1, 314, "Open of %s failed: %s"),
+			fatal(gettext("Open of %s failed: %s"),
 			      make_machines_name->string_mb,
 			      errmsg(errno));
 		} else {
@@ -140,7 +141,7 @@
 	/* Stat the .make.machines file to get the size of the file.  */
 	} else if (fstat(fileno(make_machines_file), &make_machines_buf) < 0) {
 		/* Error stat'ing .make.machines file. */
-		fatal(catgets(catd, 1, 315, "Stat of %s failed: %s"),
+		fatal(gettext("Stat of %s failed: %s"),
 		      make_machines_name->string_mb,
 		      errmsg(errno));
 	} else {
@@ -161,7 +162,7 @@
 			 * Error reading .make.machines file.
 			 * Return 0 for PMake max jobs.
 			 */
-			warning(catgets(catd, 1, 316, "Unable to read %s"),
+			warning(gettext("Unable to read %s"),
 				make_machines_name->string_mb);
 			(void) fclose(make_machines_file);
 			retmem_mb((caddr_t) make_machines_list_mb);
@@ -174,7 +175,7 @@
 			  1 +
 			  make_machines_buf.st_size) = (int) nul_char;
 			if (putenv(make_machines_list_mb) != 0) {
-				warning(catgets(catd, 1, 317, "Couldn't put contents of %s in environment"),
+				warning(gettext("Couldn't put contents of %s in environment"),
 					make_machines_name->string_mb);
 			} else {
 				make_machines_list_mb += strlen(MAKE_MACHINES->string_mb) + 1;
@@ -238,7 +239,7 @@
 			 */
 			if ((wslen(mp) > MAX_HOSTNAMELEN) ||
 			    ((hp = gethostbyname(mbs_buffer)) == NULL)) {
-				warning(catgets(catd, 1, 318, "Ignoring unknown host %s"),
+				warning(gettext("Ignoring unknown host %s"),
 					mbs_buffer);
 				SKIPTOEND(ms);
 				/* Increment ptr if not end of file. */
@@ -274,7 +275,7 @@
 				/* If we get here, local_host is in .make.machines. */
 				if (c != '\n')  {
 					/* Now look for keyword 'max'. */
-					MBSTOWCS(wcs_buffer, NOCATGETS("max"));
+					MBSTOWCS(wcs_buffer, "max");
 					SKIPSPACE(ms);
 					while ((*ms != '\n') && (*ms)) {
 						if (*ms == '#') {
@@ -285,7 +286,7 @@
 							pmake_max_jobs = get_max(&ms, mp); 
 							SKIPSPACE(ms);
 						} else {
-							warning(catgets(catd, 1, 322, "unknown option for host %s"), mbs_buffer);
+							warning(gettext("unknown option for host %s"), mbs_buffer);
 							SKIPTOEND(ms);
 							break;
 						}
@@ -393,7 +394,7 @@
 	SKIPSPACE(ms);
 	if ((!*ms) || (*ms == '\n') || (*ms != '=')) {
 		SKIPTOEND(ms);
-		warning(catgets(catd, 1, 319, "expected `=' after max, ignoring rest of line for host %s"),
+		warning(gettext("expected `=' after max, ignoring rest of line for host %s"),
 			mbs_buffer);
 		*ms_address = ms;
 		return((int) limit);
@@ -405,11 +406,11 @@
 			limit = (int) wcstol(ms, &ms, 10);
 			if (limit < 1) {
 				limit = PMAKE_DEF_MAX_JOBS;
-				warning(catgets(catd, 1, 320, "max value cannot be less than or equal to zero for host %s"), mbs_buffer);
+				warning(gettext("max value cannot be less than or equal to zero for host %s"), mbs_buffer);
 			}
 		} else {
 			/* No "max" value after "max=". */
-			warning(catgets(catd, 1, 321, "no max value specified for host %s"), mbs_buffer);
+			warning(gettext("no max value specified for host %s"), mbs_buffer);
 		}
 		*ms_address = ms;
 		return(limit);
--- old/usr/src/cmd/make/bin/read.cc	2015-05-20 12:19:52.739395776 -0400
+++ new/usr/src/cmd/make/bin/read.cc	2015-05-20 12:19:52.751634412 -0400
@@ -41,6 +41,7 @@
 #include <mksh/read.h>		/* get_next_block_fn() */
 #include <sys/uio.h>		/* read() */
 #include <unistd.h>		/* read(), unlink() */
+#include <libintl.h>
 
 
 /*
@@ -117,7 +118,7 @@
 	wchar_t * wcb = get_wstring(makefile_name->string_mb);
 
 	if (max_include_depth++ >= 40) {
-		fatal(catgets(catd, 1, 66, "Too many nested include statements"));
+		fatal(gettext("Too many nested include statements"));
 	}
 	if (makefile->body.makefile.contents != NULL) {
 		retmem(makefile->body.makefile.contents);
@@ -150,10 +151,10 @@
 				add_dir_to_path(path, &makefile_path, -1);
 				free(path);
 				    
-				add_dir_to_path(NOCATGETS("/usr/share/lib/make"),
+				add_dir_to_path("/usr/share/lib/make",
 						&makefile_path,
 						-1);
-				add_dir_to_path(NOCATGETS("/etc/default"),
+				add_dir_to_path("/etc/default",
 						&makefile_path,
 						-1);
 
@@ -204,16 +205,16 @@
 		if (lock_makefile && 
 		    !do_not_exec_rule) {
 
-			 make_state_lockfile = getmem(strlen(make_state->string_mb) + strlen(NOCATGETS(".lock")) + 1);
+			 make_state_lockfile = getmem(strlen(make_state->string_mb) + strlen(".lock") + 1);
 			 (void) sprintf(make_state_lockfile,
-						NOCATGETS("%s.lock"),
+						"%s.lock",
 						make_state->string_mb);
 			(void) file_lock(make_state->string_mb,
 					 make_state_lockfile,
 					 (int *) &make_state_locked,
 					 0);
 			if(!make_state_locked) {
-				printf(NOCATGETS("-- NO LOCKING for read\n"));
+				printf("-- NO LOCKING for read\n");
 				retmem_mb(make_state_lockfile);
 				make_state_lockfile = 0;
 				return failed;
@@ -226,7 +227,7 @@
 			    (doname(makefile_name, true, false) == build_failed)) {
 				if (complain) {
 					(void) fprintf(stderr,
-						       catgets(catd, 1, 237, "make: Couldn't make `%s'\n"),
+						       gettext("make: Couldn't make `%s'\n"),
 						       makefile_name->string_mb);
 				}
 				max_include_depth--;
@@ -243,12 +244,12 @@
 				if (complain ||
 				    (makefile_name->stat.stat_errno != ENOENT)) {
 					if (must_exist) {
-						fatal(catgets(catd, 1, 68, "Can't find `%s': %s"),
+						fatal(gettext("Can't find `%s': %s"),
 						      makefile_name->string_mb,
 						      errmsg(makefile_name->
 							     stat.stat_errno));
 					} else {
-						warning(catgets(catd, 1, 69, "Can't find `%s': %s"),
+						warning(gettext("Can't find `%s': %s"),
 							makefile_name->string_mb,
 							errmsg(makefile_name->
 							       stat.stat_errno));
@@ -293,11 +294,11 @@
 			if (source->fd < 0) {
 				if (complain || (errno != ENOENT)) {
 					if (must_exist) {
-						fatal(catgets(catd, 1, 70, "Can't open `%s': %s"),
+						fatal(gettext("Can't open `%s': %s"),
 						      makefile_name->string_mb,
 						      errmsg(errno));
 					} else {
-						warning(catgets(catd, 1, 71, "Can't open `%s': %s"),
+						warning(gettext("Can't open `%s': %s"),
 							makefile_name->string_mb,
 							errmsg(errno));
 					}
@@ -339,7 +340,7 @@
 		int		num_mb_chars;
 		size_t		num_wc_chars;
 
-		MBSTOWCS(wcs_buffer, NOCATGETS("Standard in"));
+		MBSTOWCS(wcs_buffer, "Standard in");
 		makefile_name = GETNAME(wcs_buffer, FIND_LENGTH);
 		/*
 		 * Memory to read standard in, then convert it
@@ -348,7 +349,7 @@
 		stdin_buffer_start =
 		  stdin_text_p = getmem(length = 1024);
 		stdin_buffer_end = stdin_text_p + length;
-		MBSTOWCS(wcs_buffer, NOCATGETS("standard input"));
+		MBSTOWCS(wcs_buffer, "standard input");
 		file_being_read = (wchar_t *) wsdup(wcs_buffer);
 		line_number = 0;
 		while ((n = read(fileno(stdin),
@@ -374,7 +375,7 @@
 			}
 		}
 		if (n < 0) {
-			fatal(catgets(catd, 1, 72, "Error reading standard input: %s"),
+			fatal(gettext("Error reading standard input: %s"),
 			      errmsg(errno));
 		}
 		stdin_text_p = stdin_buffer_start;
@@ -405,12 +406,12 @@
 	}
 	line_number = 1;
 	if (trace_reader) {
-		(void) printf(catgets(catd, 1, 73, ">>>>>>>>>>>>>>>> Reading makefile %s\n"),
+		(void) printf(gettext(">>>>>>>>>>>>>>>> Reading makefile %s\n"),
 			      makefile_name->string_mb);
 	}
 	parse_makefile(makefile_name, source);
 	if (trace_reader) {
-		(void) printf(catgets(catd, 1, 74, ">>>>>>>>>>>>>>>> End of makefile %s\n"),
+		(void) printf(gettext(">>>>>>>>>>>>>>>> End of makefile %s\n"),
 			      makefile_name->string_mb);
 	}
 	if(file_being_read) {
@@ -729,8 +730,8 @@
 	if ((makefile_type == reading_makefile) &&
 	    !source->already_expanded) {
 	    if (include_space[0] == (int) nul_char) {
-		MBSTOWCS(include_space, NOCATGETS("include "));
-		MBSTOWCS(include_tab, NOCATGETS("include\t"));
+		MBSTOWCS(include_space, "include ");
+		MBSTOWCS(include_tab, "include\t");
 	    }
 	    if ((IS_WEQUALN(source_p, include_space, 8)) ||
 		(IS_WEQUALN(source_p, include_tab, 8))) {
@@ -873,7 +874,7 @@
 					     false,
 					     true,
 					     false) == failed) {
-				fatal_reader(catgets(catd, 1, 75, "Read of include file `%s' failed"),
+				fatal_reader(gettext("Read of include file `%s' failed"),
 					     makefile_name->string_mb);
 			}
 			makefile_type = save_makefile_type;
@@ -1059,10 +1060,10 @@
 			break;
 		case newline_char:
 			if (paren_count > 0) {
-				fatal_reader(catgets(catd, 1, 76, "Unmatched `(' on line"));
+				fatal_reader(gettext("Unmatched `(' on line"));
 			}
 			if (brace_count > 0) {
-				fatal_reader(catgets(catd, 1, 77, "Unmatched `{' on line"));
+				fatal_reader(gettext("Unmatched `{' on line"));
 			}
 			source_p++;
 			/* Enter name */
@@ -1115,7 +1116,7 @@
 			if (paren_count + brace_count > 0) {
 				break;
 			}
-			fatal_reader(catgets(catd, 1, 78, "Unexpected comment seen"));
+			fatal_reader(gettext("Unexpected comment seen"));
 		case dollar_char:
 			if (source->already_expanded) {
 				break;
@@ -1150,7 +1151,7 @@
 			break;
 		case parenright_char:
 			if (--paren_count < 0) {
-				fatal_reader(catgets(catd, 1, 79, "Unmatched `)' on line"));
+				fatal_reader(gettext("Unmatched `)' on line"));
 			}
 			break;
 		case braceleft_char:
@@ -1158,7 +1159,7 @@
 			break;
 		case braceright_char:
 			if (--brace_count < 0) {
-				fatal_reader(catgets(catd, 1, 80, "Unmatched `}' on line"));
+				fatal_reader(gettext("Unmatched `}' on line"));
 			}
 			break;
 		case ampersand_char:
@@ -1203,7 +1204,7 @@
 			/* End of the target list. We now start reading */
 			/* dependencies or a conditional assignment */
 			if (separator != none_seen) {
-				fatal_reader(catgets(catd, 1, 81, "Extra `:', `::', or `:=' on dependency line"));
+				fatal_reader(gettext("Extra `:', `::', or `:=' on dependency line"));
 			}
 			/* Enter the last target */
 			if ((string_start != source_p) ||
@@ -1235,7 +1236,7 @@
 				goto scan_colon_label;
 			case equal_char:
 				if(svr4) {
-				  fatal_reader(catgets(catd, 1, 82, "syntax error"));
+				  fatal_reader(gettext("syntax error"));
 				}
 				separator = conditional_seen;
 				source_p++;
@@ -1258,7 +1259,7 @@
 			/* End of reading names. Start reading the rule */
 			if ((separator != one_colon) &&
 			    (separator != two_colon)) {
-				fatal_reader(catgets(catd, 1, 83, "Unexpected command seen"));
+				fatal_reader(gettext("Unexpected command seen"));
 			}
 			/* Enter the last dependency */
 			if ((string_start != source_p) ||
@@ -1385,7 +1386,7 @@
 				if(!svr4) {
 				  append = true;
 				} else {
-				  fatal_reader(catgets(catd, 1, 84, "Must be a separator on rules"));
+				  fatal_reader(gettext("Must be a separator on rules"));
 				}
 				break;
 			default:
@@ -1412,9 +1413,9 @@
 				/* Reader must special check for "MACRO:sh=" */
 				/* notation */
 				if (sh_name == NULL) {
-					MBSTOWCS(wcs_buffer, NOCATGETS("sh"));
+					MBSTOWCS(wcs_buffer, "sh");
 					sh_name = GETNAME(wcs_buffer, FIND_LENGTH);
-					MBSTOWCS(wcs_buffer, NOCATGETS("shell"));
+					MBSTOWCS(wcs_buffer, "shell");
 					shell_name = GETNAME(wcs_buffer, FIND_LENGTH);
 				}
 
@@ -1483,10 +1484,10 @@
 					break;
 				} 
 				if(svr4) {
-				  fatal_reader(catgets(catd, 1, 85, "syntax error"));
+				  fatal_reader(gettext("syntax error"));
 				}
 				else {
-				  fatal_reader(catgets(catd, 1, 86, "Macro assignment on dependency line"));
+				  fatal_reader(gettext("Macro assignment on dependency line"));
 				}
 			}
 			if (append) {
@@ -1985,21 +1986,21 @@
  *	Error states
  */
 case illegal_bytes_state:
-	fatal_reader(catgets(catd, 1, 340, "Invalid byte sequence"));
+	fatal_reader(gettext("Invalid byte sequence"));
 case illegal_eoln_state:
 	if (line_number > 1) {
 		if (line_started_with_space == (line_number - 1)) {
 			line_number--;
-			fatal_reader(catgets(catd, 1, 90, "Unexpected end of line seen\n\t*** missing separator (did you mean TAB instead of 8 spaces?)"));
+			fatal_reader(gettext("Unexpected end of line seen\n\t*** missing separator (did you mean TAB instead of 8 spaces?)"));
 		}
 	}
-	fatal_reader(catgets(catd, 1, 87, "Unexpected end of line seen"));
+	fatal_reader(gettext("Unexpected end of line seen"));
 case poorly_formed_macro_state:
-	fatal_reader(catgets(catd, 1, 88, "Badly formed macro assignment"));
+	fatal_reader(gettext("Badly formed macro assignment"));
 case exit_state:
 	return;
 default:
-	fatal_reader(catgets(catd, 1, 89, "Internal error. Unknown reader state"));
+	fatal_reader(gettext("Internal error. Unknown reader state"));
 }
 }
 
@@ -2087,7 +2088,7 @@
 					target_group_member =
 					  find_target_groups(target, i, reset);
 					if(target_group_member == NULL) {
-						fatal_reader(catgets(catd, 1, 328, "Unexpected '+' on dependency line"));
+						fatal_reader(gettext("Unexpected '+' on dependency line"));
 					}
 				}
 				reset = false;
--- old/usr/src/cmd/make/bin/read2.cc	2015-05-20 12:19:53.338859367 -0400
+++ new/usr/src/cmd/make/bin/read2.cc	2015-05-20 12:19:53.351096777 -0400
@@ -37,6 +37,7 @@
 #include <mksh/macro.h>		/* expand_value() */
 #include <mksh/misc.h>		/* retmem() */
 #include <stdarg.h>		/* va_list, va_start(), va_end() */
+#include <libintl.h>
 
 /*
  * Defined macros
@@ -671,7 +672,7 @@
 			target->colons = separator;
 		} else {
 			if (target->colons != separator) {
-				fatal_reader(catgets(catd, 1, 92, ":/:: conflict for target `%s'"),
+				fatal_reader(gettext(":/:: conflict for target `%s'"),
 					     target->string_mb);
 			}
 		}
@@ -805,13 +806,13 @@
 		}
 		break;
 	default:
-		fatal_reader(catgets(catd, 1, 93, "Internal error. Unknown makefile type %d"),
+		fatal_reader(gettext("Internal error. Unknown makefile type %d"),
 			     makefile_type);
 	}
 	/* A target may only be involved in one target group */
 	if (line->body.line.target_group != NULL) {
 		if (target_group != NULL) {
-			fatal_reader(catgets(catd, 1, 94, "Too many target groups for target `%s'"),
+			fatal_reader(gettext("Too many target groups for target `%s'"),
 				     target->string_mb);
 		}
 	} else {
@@ -1078,7 +1079,7 @@
 	*insert = result;
 
 	if (trace_reader) {
-		(void) printf(NOCATGETS("Dynamic target %s:\n"), result->name->string_mb);
+		(void) printf("Dynamic target %s:\n", result->name->string_mb);
 	}
 	return( result);
 }
@@ -1133,7 +1134,7 @@
 
 	case svr4_special:
 		if (depes->used != 0) {
-			fatal_reader(catgets(catd, 1, 98, "Illegal dependencies for target `%s'"),
+			fatal_reader(gettext("Illegal dependencies for target `%s'"),
 				     target->string_mb);
 		}
 		svr4  = true;
@@ -1150,7 +1151,7 @@
 		if(svr4)
 		  break;
 		if (depes->used != 0) {
-			fatal_reader(catgets(catd, 1, 99, "Illegal dependencies for target `%s'"),
+			fatal_reader(gettext("Illegal dependencies for target `%s'"),
 				     target->string_mb);
 		}
 		posix  = true;
@@ -1159,7 +1160,7 @@
 			/* turn keep state off being SunPro make specific */
 		keep_state = false;
 		/* Use /usr/xpg4/bin/sh on Solaris */
-		MBSTOWCS(wcs_buffer, NOCATGETS("/usr/xpg4/bin/sh"));
+		MBSTOWCS(wcs_buffer, "/usr/xpg4/bin/sh");
 		(void) SETVAR(shell_name, GETNAME(wcs_buffer, FIND_LENGTH), false);
 		if (trace_reader) {
 			(void) printf("%s:\n", posix_name->string_mb);
@@ -1172,7 +1173,7 @@
 
 	case default_special:
 		if (depes->used != 0) {
-			warning(catgets(catd, 1, 100, "Illegal dependency list for target `%s'"),
+			warning(gettext("Illegal dependency list for target `%s'"),
 				target->string_mb);
 		}
 		default_rule = command;
@@ -1186,7 +1187,7 @@
 
 	case ignore_special:
 		if ((depes->used != 0) &&(!posix)){
-			fatal_reader(catgets(catd, 1, 101, "Illegal dependencies for target `%s'"),
+			fatal_reader(gettext("Illegal dependencies for target `%s'"),
 				     target->string_mb);
 		}
 		if (depes->used == 0)
@@ -1214,7 +1215,7 @@
 		if(posix)
 		  break;
 		if (depes->used != 0) {
-			fatal_reader(catgets(catd, 1, 102, "Illegal dependencies for target `%s'"),
+			fatal_reader(gettext("Illegal dependencies for target `%s'"),
 				     target->string_mb);
 		}
 		keep_state = true;
@@ -1234,7 +1235,7 @@
 			*/
 		keep_state = true;
 		if (depes->used != 0) {
-		   if((!make_state) ||(!strcmp(make_state->string_mb,NOCATGETS(".make.state")))) {
+		   if((!make_state) ||(!strcmp(make_state->string_mb,".make.state"))) {
 		     make_state = depes->names[0];
 		   }
 		}
@@ -1243,7 +1244,7 @@
 		if(svr4)
 		  break;
 		if (depes->used != 1) {
-			fatal_reader(catgets(catd, 1, 103, "Illegal dependency list for target `%s'"),
+			fatal_reader(gettext("Illegal dependency list for target `%s'"),
 				     target->string_mb);
 		}
 		if (depes->names[0] != current_make_version) {
@@ -1252,16 +1253,16 @@
 			 * are identical.
 			 */
 			if (!IS_EQUAL(depes->names[0]->string_mb,
-				      NOCATGETS("VERSION-1.1")) ||
+				      "VERSION-1.1") ||
 			    !IS_EQUAL(current_make_version->string_mb,
-				      NOCATGETS("VERSION-1.0"))) {
+				      "VERSION-1.0")) {
 				/*
 				 * Version mismatches should cause the
 				 * .make.state file to be skipped.
 				 * This is currently not true - it is read
 				 * anyway.
 				 */
-				warning(catgets(catd, 1, 104, "Version mismatch between current version `%s' and `%s'"),
+				warning(gettext("Version mismatch between current version `%s' and `%s'"),
 					current_make_version->string_mb,
 					depes->names[0]->string_mb);
 			}
@@ -1365,7 +1366,7 @@
 
 	case sccs_get_special:
 		if (depes->used != 0) {
-			fatal_reader(catgets(catd, 1, 105, "Illegal dependencies for target `%s'"),
+			fatal_reader(gettext("Illegal dependencies for target `%s'"),
 				     target->string_mb);
 		}
 		sccs_get_rule = command;
@@ -1378,7 +1379,7 @@
 
 	case sccs_get_posix_special:
 		if (depes->used != 0) {
-			fatal_reader(catgets(catd, 1, 106, "Illegal dependencies for target `%s'"),
+			fatal_reader(gettext("Illegal dependencies for target `%s'"),
 				     target->string_mb);
 		}
 		sccs_get_posix_rule = command;
@@ -1390,7 +1391,7 @@
 
 	case get_posix_special:
 		if (depes->used != 0) {
-			fatal_reader(catgets(catd, 1, 107, "Illegal dependencies for target `%s'"),
+			fatal_reader(gettext("Illegal dependencies for target `%s'"),
 				     target->string_mb);
 		}
 		get_posix_rule = command;
@@ -1405,7 +1406,7 @@
 		  break;
 		}
 		if (depes->used != 0) {
-			fatal_reader(catgets(catd, 1, 108, "Illegal dependencies for target `%s'"),
+			fatal_reader(gettext("Illegal dependencies for target `%s'"),
 				     target->string_mb);
 		}
 		get_rule = command;
@@ -1418,7 +1419,7 @@
 
 	case silent_special:
 		if ((depes->used != 0) && (!posix)){
-			fatal_reader(catgets(catd, 1, 109, "Illegal dependencies for target `%s'"),
+			fatal_reader(gettext("Illegal dependencies for target `%s'"),
 				     target->string_mb);
 		}
 		if (depes->used == 0)
@@ -1445,7 +1446,7 @@
 
 	default:
 
-		fatal_reader(catgets(catd, 1, 110, "Internal error: Unknown special reader"));
+		fatal_reader(gettext("Internal error: Unknown special reader"));
 	}
 }
 
@@ -1753,11 +1754,11 @@
 	if (string[0]=='F' &&
 	    string[1]=='C' &&
 	    string[2]=='\0') {
-		MBSTOWCS(wcs_buffer, NOCATGETS("F77"));
+		MBSTOWCS(wcs_buffer, "F77");
 		temp = GETNAME(wcs_buffer, FIND_LENGTH);
 		(void) SETVAR(temp, value, append);
 /*
-		fprintf(stderr, catgets(catd, 1, 111, "warning: FC is obsolete, use F77 instead\n"));
+		fprintf(stderr, gettext("warning: FC is obsolete, use F77 instead\n"));
  */
 	}
 
@@ -1799,8 +1800,8 @@
 	static wchar_t	colon_shell[7];
 
 	if (colon_sh[0] == (int) nul_char) {
-		MBSTOWCS(colon_sh, NOCATGETS(":sh"));
-		MBSTOWCS(colon_shell, NOCATGETS(":shell"));
+		MBSTOWCS(colon_sh, ":sh");
+		MBSTOWCS(colon_shell, ":shell");
 	}
 	Wstring nms((*name));
 	wchar_t * wcb = nms.get_string();
@@ -1857,7 +1858,7 @@
 		WCSTOMBS(mbs_buffer, file_being_read);
 		if (line_number != 0) {
 			(void) sprintf(message,
-				       catgets(catd, 1, 112, "%s, line %d: %s"),
+				       gettext("%s, line %d: %s"),
 				       mbs_buffer,
 				       line_number,
 				       pattern);
@@ -1871,21 +1872,21 @@
 	}
 
 	(void) fflush(stdout);
-	(void) fprintf(stderr, catgets(catd, 1, 238, "make: Fatal error in reader: "));
+	(void) fprintf(stderr, gettext("make: Fatal error in reader: "));
 	(void) vfprintf(stderr, pattern, args);
 	(void) fprintf(stderr, "\n");
 	va_end(args);
 
 	if (temp_file_name != NULL) {
 		(void) fprintf(stderr,
-			       catgets(catd, 1, 239, "make: Temp-file %s not removed\n"),
+			       gettext("make: Temp-file %s not removed\n"),
 			       temp_file_name->string_mb);
 		temp_file_name = NULL;
 	}
 
 	if (report_pwd) {
 		(void) fprintf(stderr,
-			       catgets(catd, 1, 115, "Current working directory %s\n"),
+			       gettext("Current working directory %s\n"),
 			       get_current_path());
 	}
 	(void) fflush(stderr);
--- old/usr/src/cmd/make/bin/rep.cc	2015-05-20 12:19:53.898841995 -0400
+++ new/usr/src/cmd/make/bin/rep.cc	2015-05-20 12:19:53.910531548 -0400
@@ -86,7 +86,7 @@
 		depinfo_already_read = true;
 	}
 					
-	search_dir = getenv(NOCATGETS("NSE_DEP"));
+	search_dir = getenv("NSE_DEP");
 	if (search_dir == NULL) {
 		return;
 	}
--- old/usr/src/cmd/make/bin/state.cc	2015-05-20 12:19:54.668769419 -0400
+++ new/usr/src/cmd/make/bin/state.cc	2015-05-20 12:19:54.680430927 -0400
@@ -145,9 +145,9 @@
 		return;
 	}
 	/* Lock the file for writing. */
- 	make_state_lockfile = getmem(strlen(make_state->string_mb) + strlen(NOCATGETS(".lock")) + 1);
+ 	make_state_lockfile = getmem(strlen(make_state->string_mb) + strlen(".lock") + 1);
  	(void) sprintf(make_state_lockfile,
- 	               NOCATGETS("%s.lock"),
+ 	               "%s.lock",
  	               make_state->string_mb);
 	if (lock_err = file_lock(make_state->string_mb, 
 				 make_state_lockfile, 
@@ -162,25 +162,25 @@
 		 */
 		
 		if (exiting) {
-			(void) sprintf(buffer, NOCATGETS("%s/.make.state.%d.XXXXXX"), tmpdir, getpid());
+			(void) sprintf(buffer, "%s/.make.state.%d.XXXXXX", tmpdir, getpid());
 			report_pwd = true;
-			warning(catgets(catd, 1, 60, "Writing to %s"), buffer);
+			warning(gettext("Writing to %s"), buffer);
 			int fdes = mkstemp(buffer);
 			if ((fdes < 0) || (fd = fdopen(fdes, "w")) == NULL) {
 				fprintf(stderr,
-					catgets(catd, 1, 61, "Could not open statefile `%s': %s"),
+					gettext("Could not open statefile `%s': %s"),
 					buffer,
 					errmsg(errno));
 				return;
 			}
 		} else {
 			report_pwd = true;
-			fatal(catgets(catd, 1, 62, "Can't lock .make.state"));
+			fatal(gettext("Can't lock .make.state"));
 		}
 	}
 
 	(void) sprintf(make_state_tempfile,
-	               NOCATGETS("%s.tmp"),
+	               "%s.tmp",
 	               make_state->string_mb);
 	/* Delete old temporary statefile (in case it exists) */
 	(void) unlink(make_state_tempfile);
@@ -190,7 +190,7 @@
  		retmem_mb(make_state_lockfile);
 		make_state_lockfile = NULL;
 		make_state_locked = false;
-		fatal(catgets(catd, 1, 59, "Could not open temporary statefile `%s': %s"),
+		fatal(gettext("Could not open temporary statefile `%s': %s"),
 		      make_state_tempfile,
 		      errmsg(lock_err));
 	}
@@ -208,17 +208,17 @@
 				make_state_lockfile = NULL;
 				make_state_locked = false;
 			}
-			fatal(catgets(catd, 1, 63, "Giving up on writing statefile"));
+			fatal(gettext("Giving up on writing statefile"));
 		}
 		sleep(10);
-		(void) sprintf(buffer, NOCATGETS("%s/.make.state.%d.XXXXXX"), tmpdir, getpid());
+		(void) sprintf(buffer, "%s/.make.state.%d.XXXXXX", tmpdir, getpid());
 		int fdes = mkstemp(buffer);
 		if ((fdes < 0) || (fd = fdopen(fdes, "w")) == NULL) {
-			fatal(catgets(catd, 1, 64, "Could not open statefile `%s': %s"),
+			fatal(gettext("Could not open statefile `%s': %s"),
 			      buffer,
 			      errmsg(errno));
 		}
-		warning(catgets(catd, 1, 65, "Initial write of statefile failed. Trying again on %s"),
+		warning(gettext("Initial write of statefile failed. Trying again on %s"),
 			buffer);
 	}
 
@@ -365,7 +365,7 @@
 	 		retmem_mb(make_state_lockfile);
 			make_state_lockfile = NULL;
 			make_state_locked = false;
-			fatal(catgets(catd, 1, 356, "Could not delete old statefile `%s': %s"),
+			fatal(gettext("Could not delete old statefile `%s': %s"),
 			      make_state->string_mb,
 			      errmsg(lock_err));
 		}
@@ -377,7 +377,7 @@
 	 		retmem_mb(make_state_lockfile);
 			make_state_lockfile = NULL;
 			make_state_locked = false;
-			fatal(catgets(catd, 1, 357, "Could not rename `%s' to `%s': %s"),
+			fatal(gettext("Could not rename `%s' to `%s': %s"),
 			      make_state_tempfile,
 			      make_state->string_mb,
 			      errmsg(lock_err));
--- old/usr/src/cmd/make/include/avo/intl.h	2015-05-20 12:19:55.101072558 -0400
+++ /dev/null	2015-05-20 12:19:55.000000000 -0400
@@ -1,50 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2001 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _AVO_INTL_H
-#define _AVO_INTL_H
-
-
-/*
- * For catgets
- */
-#include <nl_types.h>
-
-
-/*
- * NOCATGETS is a dummy macro that returns it argument.
- * It is used to identify strings that we consciously do not
- * want to apply catgets() to.  We have tools that check the
- * sources for strings that are not catgets'd and the tools
- * ignore strings that are NOCATGETS'd.
- */
-#define	NOCATGETS(str)	(str)
-
-/*
- * Define the various text domains
- */
-#define AVO_DOMAIN_DMAKE	"dmake"
-
-#endif
--- old/usr/src/cmd/make/include/mk/defs.h	2015-05-20 12:19:55.302696334 -0400
+++ new/usr/src/cmd/make/include/mk/defs.h	2015-05-20 12:19:55.314390258 -0400
@@ -288,7 +288,6 @@
 extern	wchar_t		wcs_buffer2[];
 extern	wchar_t		*wcs_ptr;
 extern	wchar_t		*wcs_ptr2;
-extern	nl_catd		catd;
 extern	long int	hostid;
 
 /*
--- old/usr/src/cmd/make/include/mksdmsi18n/mksdmsi18n.h	2015-05-20 12:19:55.835984343 -0400
+++ /dev/null	2015-05-20 12:19:55.000000000 -0400
@@ -1,38 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 1996 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _AVO_MKSDMSI18N_H
-#define _AVO_MKSDMSI18N_H
-
-#ifndef _AVO_INTL_H
-#include <avo/intl.h>
-#endif
-
-extern	nl_catd	libmksdmsi18n_catd;
-
-int	libmksdmsi18n_init();
-void	libmksdmsi18n_fini();
-
-#endif
--- old/usr/src/cmd/make/include/mksh/defs.h	2015-05-20 12:19:55.988642040 -0400
+++ new/usr/src/cmd/make/include/mksh/defs.h	2015-05-20 12:19:56.000747752 -0400
@@ -25,12 +25,10 @@
  * Use is subject to license terms.
  */
 
-#include <avo/intl.h>
 #include <limits.h>		/* MB_LEN_MAX */
 #include <stdio.h>
 #include <stdlib.h>		/* wchar_t */
 #include <string.h>		/* strcmp() */
-#include <nl_types.h>		/* catgets() */
 #include <sys/param.h>		/* MAXPATHLEN */
 #include <sys/types.h>		/* time_t, caddr_t */
 #include <vroot/vroot.h>	/* pathpt */
@@ -898,7 +896,6 @@
 extern Boolean		make_state_locked;
 extern Boolean		out_err_same;
 extern pid_t		childPid;
-extern nl_catd		libmksh_catd;
 
 /*
  * RFE 1257407: make does not use fine granularity time info available from stat.
--- old/usr/src/cmd/make/include/vroot/vroot.h	2015-05-20 12:19:56.452604948 -0400
+++ new/usr/src/cmd/make/include/vroot/vroot.h	2015-05-20 12:19:56.464317020 -0400
@@ -58,6 +58,4 @@
 extern	int		stat_vroot(char *path, struct stat *buffer, pathpt vroot_path, pathpt vroot_vroot);
 extern	int		readlink_vroot(char *path, char *buffer, int buffer_size, pathpt vroot_path, pathpt vroot_vroot);
 
-
-extern nl_catd	libvroot_catd;
 #endif
--- old/usr/src/cmd/make/lib/Makefile	2015-05-20 12:19:56.854331291 -0400
+++ new/usr/src/cmd/make/lib/Makefile	2015-05-20 12:19:56.866013357 -0400
@@ -13,7 +13,6 @@
 
 SUBDIRS=bsd \
 	makestate \
-	mksdmsi18n \
 	mksh \
 	vroot
 
@@ -22,10 +21,11 @@
 clean	:=	TARGET = clean
 clobber	:=	TARGET = clobber
 lint	:=	TARGET = lint
+_msg	:=	TARGET = _msg
 
 .KEEP_STATE:
 
-all clean clobber lint install: $(SUBDIRS)
+all clean clobber lint install _msg: $(SUBDIRS)
 
 $(SUBDIRS):	FRC
 	@cd $@; pwd; $(MAKE) $(TARGET)
--- old/usr/src/cmd/make/lib/bsd/Makefile	2015-05-20 12:19:57.250737210 -0400
+++ new/usr/src/cmd/make/lib/bsd/Makefile	2015-05-20 12:19:57.262466700 -0400
@@ -28,4 +28,6 @@
 
 lint:
 
+_msg:
+
 include $(SRC)/lib/Makefile.targ
--- old/usr/src/cmd/make/lib/makestate/Makefile	2015-05-20 12:19:57.647721586 -0400
+++ new/usr/src/cmd/make/lib/makestate/Makefile	2015-05-20 12:19:57.659480855 -0400
@@ -25,6 +25,8 @@
 
 all clean clobber lint install: $(SUBDIRS)
 
+_msg:
+
 $(SUBDIRS):	FRC
 	@cd $@; pwd; $(MAKE) $(TARGET)
 
--- old/usr/src/cmd/make/lib/mksdmsi18n/Makefile	2015-05-20 12:19:58.045154541 -0400
+++ /dev/null	2015-05-20 12:19:58.000000000 -0400
@@ -1,31 +0,0 @@
-#
-# This file and its contents are supplied under the terms of the
-# Common Development and Distribution License ("CDDL"), version 1.0.
-# You may only use this file in accordance with the terms of version
-# 1.0 of the CDDL.
-#
-# A full copy of the text of the CDDL should have accompanied this
-# source.  A copy of the CDDL is also available via the Internet at
-# http://www.illumos.org/license/CDDL.
-#
-
-# Copyright 2015, Richard Lowe.
-
-LIBRARY = libmksdmsi18n.a
-VERS = .1
-OBJECTS = libmksdmsi18n_init.o
-
-include $(SRC)/lib/Makefile.lib
-include ../../Makefile.com
-
-LIBS = $(LIBRARY)
-SRCDIR = ../
-CPPFLAGS += -DI18N_VERSION=1 -D_FILE_OFFSET_BITS=64
-
-all: $(LIBS)
-
-install: all
-
-lint:
-
-include $(SRC)/lib/Makefile.targ
--- old/usr/src/cmd/make/lib/mksdmsi18n/libmksdmsi18n_init.cc	2015-05-20 12:19:58.196558352 -0400
+++ /dev/null	2015-05-20 12:19:58.000000000 -0400
@@ -1,57 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 1996 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#include <avo/intl.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-nl_catd libmksdmsi18n_catd;
- 
-/*
- * Open the catalog file for libmksdmsi18n.  Users of this library must set
- * NSLPATH first.  See avo_18n_init().
- */
-int
-libmksdmsi18n_init()
-{
-	char		name[20];
-
-	if (getenv(NOCATGETS("NLSPATH")) == NULL) {
-		return 1;
-	}
-	sprintf(name, NOCATGETS("libmksdmsi18n_%d"), I18N_VERSION);
-	libmksdmsi18n_catd = catopen(name, NL_CAT_LOCALE);
-	return 0;
-}
- 
-/*
- * Close the catalog file for libmksdmsi18n
- */
-void
-libmksdmsi18n_fini()
-{
-	catclose(libmksdmsi18n_catd);
-}
-
--- old/usr/src/cmd/make/lib/mksh/Makefile	2015-05-20 12:19:58.352132861 -0400
+++ new/usr/src/cmd/make/lib/mksh/Makefile	2015-05-20 12:19:58.363842312 -0400
@@ -24,6 +24,9 @@
 include $(SRC)/lib/Makefile.lib
 include ../../Makefile.com
 
+POFILE = libmksh.po
+POFILES = $(OBJECTS:%.o=%.po)
+
 LIBS = $(LIBRARY)
 SRCDIR = ../
 MAPFILES=
@@ -35,4 +38,11 @@
 
 lint:
 
+$(POFILE): $(POFILES)
+	$(CAT) $(POFILES) > $@
+
+_msg: $(MSGDOMAIN) $(POFILE)
+	$(RM) $(MSGDOMAIN)/$(POFILE)
+	$(CP) $(POFILE) $(MSGDOMAIN)
+
 include $(SRC)/lib/Makefile.targ
--- old/usr/src/cmd/make/lib/mksh/dosys.cc	2015-05-20 12:19:58.748223225 -0400
+++ new/usr/src/cmd/make/lib/mksh/dosys.cc	2015-05-20 12:19:58.759821907 -0400
@@ -42,12 +42,12 @@
 #include <mksh/dosys.h>
 #include <mksh/macro.h>		/* getvar() */
 #include <mksh/misc.h>		/* getmem(), fatal_mksh(), errmsg() */
-#include <mksdmsi18n/mksdmsi18n.h>	/* libmksdmsi18n_init() */
 #include <sys/signal.h>		/* SIG_DFL */
 #include <sys/stat.h>		/* open() */
 #include <sys/wait.h>		/* wait() */
 #include <ulimit.h>		/* ulimit() */
 #include <unistd.h>		/* close(), dup2() */
+#include <libintl.h>
 
 /*
  * typedefs & structs
@@ -90,7 +90,7 @@
 	int		i;
 
 	if ((descriptor_limit = ulimit(UL_GDESLIM)) < 0) {
-		fatal_mksh(catgets(libmksdmsi18n_catd, 1, 89, "ulimit() failed: %s"), errmsg(errno));
+		fatal_mksh(gettext("ulimit() failed: %s"), errmsg(errno));
 	}
 	for (i = 3; i < descriptor_limit; i++) {
 		(void) close(i);
@@ -98,30 +98,30 @@
 	if ((i = my_open(stdout_file,
 	         O_WRONLY | O_CREAT | O_TRUNC | O_DSYNC,
 	         S_IREAD | S_IWRITE)) < 0) {
-		fatal_mksh(catgets(libmksdmsi18n_catd, 1, 90, "Couldn't open standard out temp file `%s': %s"),
+		fatal_mksh(gettext("Couldn't open standard out temp file `%s': %s"),
 		      stdout_file,
 		      errmsg(errno));
 	} else {
 		if (dup2(i, 1) == -1) {
-			fatal_mksh(NOCATGETS("*** Error: dup2(3, 1) failed: %s"),
+			fatal_mksh("*** Error: dup2(3, 1) failed: %s",
 				errmsg(errno));
 		}
 		close(i);
 	}
 	if (stderr_file == NULL) {
 		if (dup2(1, 2) == -1) {
-			fatal_mksh(NOCATGETS("*** Error: dup2(1, 2) failed: %s"),
+			fatal_mksh("*** Error: dup2(1, 2) failed: %s",
 				errmsg(errno));
 		}
 	} else if ((i = my_open(stderr_file,
 	                O_WRONLY | O_CREAT | O_TRUNC | O_DSYNC,
 	                S_IREAD | S_IWRITE)) < 0) {
-		fatal_mksh(catgets(libmksdmsi18n_catd, 1, 91, "Couldn't open standard error temp file `%s': %s"),
+		fatal_mksh(gettext("Couldn't open standard error temp file `%s': %s"),
 		      stderr_file,
 		      errmsg(errno));
 	} else {
 		if (dup2(i, 2) == -1) {
-			fatal_mksh(NOCATGETS("*** Error: dup2(3, 2) failed: %s"),
+			fatal_mksh("*** Error: dup2(3, 2) failed: %s",
 				errmsg(errno));
 		}
 		close(i);
@@ -173,12 +173,12 @@
 	 * Nice priorities can be a positive or a negative number.
 	 */
 	if (nice_prio != 0) {
-		argv[argv_index++] = (char *)NOCATGETS("nice");
-		(void) sprintf(nice_prio_buf, NOCATGETS("-%d"), nice_prio);
+		argv[argv_index++] = (char *)"nice";
+		(void) sprintf(nice_prio_buf, "-%d", nice_prio);
 		argv[argv_index++] = strdup(nice_prio_buf);
 	}
 	argv[argv_index++] = shellname;
-	argv[argv_index++] = (char*)(ignore_error ? NOCATGETS("-c") : NOCATGETS("-ce"));
+	argv[argv_index++] = (char*)(ignore_error ? "-c" : "-ce");
 	if ((length = wslen(command)) >= MAXPATHLEN) {
 		tmp_mbs_buffer = getmem((length * MB_LEN_MAX) + 1);
                 (void) wcstombs(tmp_mbs_buffer, command, (length * MB_LEN_MAX) + 1);
@@ -200,18 +200,18 @@
 		}
 #endif
 		if (nice_prio != 0) {
-			(void) execve(NOCATGETS("/usr/bin/nice"), argv, environ);
-			fatal_mksh(catgets(libmksdmsi18n_catd, 1, 92, "Could not load `/usr/bin/nice': %s"),
+			(void) execve("/usr/bin/nice", argv, environ);
+			fatal_mksh(gettext("Could not load `/usr/bin/nice': %s"),
 			      errmsg(errno));
 		} else {
 			(void) execve(shell->string_mb, argv, environ);
-			fatal_mksh(catgets(libmksdmsi18n_catd, 1, 93, "Could not load Shell from `%s': %s"),
+			fatal_mksh(gettext("Could not load Shell from `%s': %s"),
 			      shell->string_mb,
 			      errmsg(errno));
 		}
 	}
 	if (childPid  == -1) {
-		fatal_mksh(catgets(libmksdmsi18n_catd, 1, 94, "fork failed: %s"),
+		fatal_mksh(gettext("fork failed: %s"),
 		      errmsg(errno));
 	}
 	retmem_mb(argv[cmd_argv_index]);
@@ -266,7 +266,7 @@
 				shellname++;
 			}
 			shargv[0] = shellname;
-			shargv[1] = (char*)(ignore_error ? NOCATGETS("-c") : NOCATGETS("-ce"));
+			shargv[1] = (char*)(ignore_error ? "-c" : "-ce");
 			shargv[2] = argv[0];
 			shargv[3] = NULL;
 			tmp_shell = getvar(shell_name);
@@ -353,8 +353,8 @@
 	}
 
 	if (nice_prio != 0) {
-		*p++ = strdup(NOCATGETS("/usr/bin/nice"));
-		(void) sprintf(nice_prio_buf, NOCATGETS("-%d"), nice_prio);
+		*p++ = strdup("/usr/bin/nice");
+		(void) sprintf(nice_prio_buf, "-%d", nice_prio);
 		*p++ = strdup(nice_prio_buf);
 	}
 	/* Build list of argument words. */
@@ -362,7 +362,7 @@
 		if (p >= &argv[arg_count]) {
 			/* This should never happen, right? */
 			WCSTOMBS(mbs_buffer, command);
-			fatal_mksh(catgets(libmksdmsi18n_catd, 1, 95, "Command `%s' has more than %d arguments"),
+			fatal_mksh(gettext("Command `%s' has more than %d arguments"),
 			      mbs_buffer,
 			      arg_count);
 		}
@@ -395,10 +395,10 @@
 		}
 #endif
 		(void) exec_vp(argv[1], argv, environ, ignore_error, vroot_path);
-		fatal_mksh(catgets(libmksdmsi18n_catd, 1, 96, "Cannot load command `%s': %s"), argv[1], errmsg(errno));
+		fatal_mksh(gettext("Cannot load command `%s': %s"), argv[1], errmsg(errno));
 	}
 	if (childPid  == -1) {
-		fatal_mksh(catgets(libmksdmsi18n_catd, 1, 97, "fork failed: %s"),
+		fatal_mksh(gettext("fork failed: %s"),
 		      errmsg(errno));
 	}
 	for (int i = 0; argv[i] != NULL; i++) {
@@ -445,7 +445,7 @@
 
 	while ((pid = wait(&status)) != running_pid) {
 		if (pid == -1) {
-			fatal_mksh(catgets(libmksdmsi18n_catd, 1, 98, "wait() failed: %s"), errmsg(errno));
+			fatal_mksh(gettext("wait() failed: %s"), errmsg(errno));
 		}
 	}
 	(void) fflush(stdout);
@@ -454,21 +454,21 @@
         if (status == 0) {
 
 #ifdef PRINT_EXIT_STATUS
-		warning_mksh(NOCATGETS("I'm in await(), and status is 0."));
+		warning_mksh("I'm in await(), and status is 0.");
 #endif
 
                 return succeeded;
 	}
 
 #ifdef PRINT_EXIT_STATUS
-	warning_mksh(NOCATGETS("I'm in await(), and status is *NOT* 0."));
+	warning_mksh("I'm in await(), and status is *NOT* 0.");
 #endif
 
 
         exit_status = WEXITSTATUS(status);
 
 #ifdef PRINT_EXIT_STATUS
-	warning_mksh(NOCATGETS("I'm in await(), and exit_status is %d."), exit_status);
+	warning_mksh("I'm in await(), and exit_status is %d.", exit_status);
 #endif
 
         termination_signal = WTERMSIG(status);
@@ -483,27 +483,27 @@
 	if (!silent_error) {
 		if (exit_status != 0) {
 			(void) fprintf(stdout,
-				       catgets(libmksdmsi18n_catd, 1, 103, "*** Error code %d"),
+				       gettext("*** Error code %d"),
 				       exit_status);
 		} else {
 				(void) fprintf(stdout,
-					       catgets(libmksdmsi18n_catd, 1, 105, "*** Signal %d"),
+					       gettext("*** Signal %d"),
 					       termination_signal);
 			if (core_dumped) {
 				(void) fprintf(stdout,
-					       catgets(libmksdmsi18n_catd, 1, 107, " - core dumped"));
+					       gettext(" - core dumped"));
 			}
 		}
 		if (ignore_error) {
 			(void) fprintf(stdout,
-				       catgets(libmksdmsi18n_catd, 1, 109, " (ignored)"));
+				       gettext(" (ignored)"));
 		}
 		(void) fprintf(stdout, "\n");
 		(void) fflush(stdout);
 	}
 
 #ifdef PRINT_EXIT_STATUS
-	warning_mksh(NOCATGETS("I'm in await(), returning failed."));
+	warning_mksh("I'm in await(), returning failed.");
 #endif
 
 	return failed;
@@ -536,7 +536,7 @@
 	WCSTOMBS(mbs_buffer, command->buffer.start);
 	if ((fd = popen(mbs_buffer, "r")) == NULL) {
 		WCSTOMBS(mbs_buffer, command->buffer.start);
-		fatal_mksh(catgets(libmksdmsi18n_catd, 1, 111, "Could not run command `%s' for :sh transformation"),
+		fatal_mksh(gettext("Could not run command `%s' for :sh transformation"),
 		      mbs_buffer);
 	}
 	while ((chr = getc(fd)) != EOF) {
@@ -569,7 +569,7 @@
 	status = pclose(fd);
 	if (status != 0) {
 		WCSTOMBS(mbs_buffer, command->buffer.start);
-		fatal_mksh(catgets(libmksdmsi18n_catd, 1, 112, "The command `%s' returned status `%d'"),
+		fatal_mksh(gettext("The command `%s' returned status `%d'"),
 		      mbs_buffer,
 		      WEXITSTATUS(status));
 	}
--- old/usr/src/cmd/make/lib/mksh/macro.cc	2015-05-20 12:19:59.248893936 -0400
+++ new/usr/src/cmd/make/lib/mksh/macro.cc	2015-05-20 12:19:59.260675522 -0400
@@ -38,9 +38,9 @@
 #include <mksh/macro.h>
 #include <mksh/misc.h>		/* retmem() */
 #include <mksh/read.h>		/* get_next_block_fn() */
-#include <mksdmsi18n/mksdmsi18n.h>	/* libmksdmsi18n_init() */
 
 #include <widec.h>
+#include <libintl.h>
 
 /*
  * File table of contents
@@ -149,7 +149,7 @@
 	}
 
 	if (value->being_expanded) {
-		fatal_reader_mksh(catgets(libmksdmsi18n_catd, 1, 113, "Loop detected when expanding macro value `%s'"),
+		fatal_reader_mksh(gettext("Loop detected when expanding macro value `%s'"),
 			     value->string_mb);
 	}
 	value->being_expanded = true;
@@ -214,7 +214,7 @@
 				return;
 			}
 			if (source->error_converting) {
-				fatal_reader_mksh(NOCATGETS("Internal error: Invalid byte sequence in expand_value()"));
+				fatal_reader_mksh("Internal error: Invalid byte sequence in expand_value()");
 			}
 			block_start = source_p;
 			source_p--;
@@ -299,11 +299,11 @@
 	}			replacement = no_replace;
 
 	if (make == NULL) {
-		MBSTOWCS(wcs_buffer, NOCATGETS("MAKE"));
+		MBSTOWCS(wcs_buffer, "MAKE");
 		make = GETNAME(wcs_buffer, FIND_LENGTH);
 
-		MBSTOWCS(colon_sh, NOCATGETS(":sh"));
-		MBSTOWCS(colon_shell, NOCATGETS(":shell"));
+		MBSTOWCS(colon_sh, ":sh");
+		MBSTOWCS(colon_shell, ":shell");
 	}
 
 	right_hand[0] = NULL;
@@ -317,11 +317,11 @@
 		GET_NEXT_BLOCK_NOCHK(source);
 		if (source == NULL) {
 			WCSTOMBS(mbs_buffer, current_string);
-			fatal_reader_mksh(catgets(libmksdmsi18n_catd, 1, 114, "'$' at end of string `%s'"),
+			fatal_reader_mksh(gettext("'$' at end of string `%s'"),
 				     mbs_buffer);
 		}
 		if (source->error_converting) {
-			fatal_reader_mksh(NOCATGETS("Internal error: Invalid byte sequence in expand_macro()"));
+			fatal_reader_mksh("Internal error: Invalid byte sequence in expand_macro()");
 		}
 		goto recheck_first_char;
 	case parenleft_char:
@@ -333,7 +333,7 @@
 		closer = (int) braceright_char;
 		break;
 	case newline_char:
-		fatal_reader_mksh(catgets(libmksdmsi18n_catd, 1, 115, "'$' at end of line"));
+		fatal_reader_mksh(gettext("'$' at end of line"));
 	default:
 		/* Single char macro name. Just suck it up */
 		append_char(*source_p, &string);
@@ -354,24 +354,24 @@
 			if (source == NULL) {
 				if (current_string != NULL) {
 					WCSTOMBS(mbs_buffer, current_string);
-					fatal_reader_mksh(catgets(libmksdmsi18n_catd, 1, 116, "Unmatched `%c' in string `%s'"),
+					fatal_reader_mksh(gettext("Unmatched `%c' in string `%s'"),
 						     closer ==
 						     (int) braceright_char ?
 						     (int) braceleft_char :
 						     (int) parenleft_char,
 						     mbs_buffer);
 				} else {
-					fatal_reader_mksh(catgets(libmksdmsi18n_catd, 1, 117, "Premature EOF"));
+					fatal_reader_mksh(gettext("Premature EOF"));
 				}
 			}
 			if (source->error_converting) {
-				fatal_reader_mksh(NOCATGETS("Internal error: Invalid byte sequence in expand_macro()"));
+				fatal_reader_mksh("Internal error: Invalid byte sequence in expand_macro()");
 			}
 			block_start = source_p;
 			source_p--;
 			continue;
 		case newline_char:
-			fatal_reader_mksh(catgets(libmksdmsi18n_catd, 1, 118, "Unmatched `%c' on line"),
+			fatal_reader_mksh(gettext("Unmatched `%c' on line"),
 				     closer == (int) braceright_char ?
 				     (int) braceleft_char :
 				     (int) parenleft_char);
@@ -454,7 +454,7 @@
 			break;
 		default:
 			WCSTOMBS(mbs_buffer, string.buffer.start);
-			fatal_reader_mksh(catgets(libmksdmsi18n_catd, 1, 119, "Illegal macro reference `%s'"),
+			fatal_reader_mksh(gettext("Illegal macro reference `%s'"),
 				     mbs_buffer);
 		}
 		/* Internalize the macro name using the first char only. */
@@ -481,7 +481,7 @@
 			while (colon != NULL) {
 				if ((eq = (wchar_t *) wschr(colon + 1,
 							    (int) equal_char)) == NULL) {
-					fatal_reader_mksh(catgets(libmksdmsi18n_catd, 1, 120, "= missing from replacement macro reference"));
+					fatal_reader_mksh(gettext("= missing from replacement macro reference"));
 				}
 				left_tail_len = eq - colon - 1;
 				if(left_tail) {
@@ -516,14 +516,14 @@
 		} else {
 			if ((eq = (wchar_t *) wschr(colon + 1,
 						    (int) equal_char)) == NULL) {
-				fatal_reader_mksh(catgets(libmksdmsi18n_catd, 1, 121, "= missing from replacement macro reference"));
+				fatal_reader_mksh(gettext("= missing from replacement macro reference"));
 			}
 			if ((percent = (wchar_t *) wschr(colon + 1,
 							 (int) percent_char)) == NULL) {
-				fatal_reader_mksh(catgets(libmksdmsi18n_catd, 1, 122, "%% missing from replacement macro reference"));
+				fatal_reader_mksh(gettext("%% missing from replacement macro reference"));
 			}
 			if (eq < percent) {
-				fatal_reader_mksh(catgets(libmksdmsi18n_catd, 1, 123, "%% missing from replacement macro reference"));
+				fatal_reader_mksh(gettext("%% missing from replacement macro reference"));
 			}
 
 			if (percent > (colon + 1)) {
@@ -574,7 +574,7 @@
 					right_hand[i][percent-eq] =
 					  (int) nul_char;
 					if (i++ >= VSIZEOF(right_hand)) {
-						fatal_mksh(catgets(libmksdmsi18n_catd, 1, 124, "Too many %% in pattern"));
+						fatal_mksh(gettext("Too many %% in pattern"));
 					}
 					eq = percent + 1;
 					if (eq[0] == (int) nul_char) {
@@ -633,7 +633,7 @@
 		 */
 		add_macro_to_global_list(name);
 		if (makefile_type == reading_makefile) {
-			warning_mksh(catgets(libmksdmsi18n_catd, 1, 164, "Conditional macro `%s' referenced in file `%ws', line %d"),
+			warning_mksh(gettext("Conditional macro `%s' referenced in file `%ws', line %d"),
 					name->string_mb, file_being_read, line_number);
 		}
 	}
@@ -812,7 +812,7 @@
 		 * This is for the case when the macro name did not
 		 * specify transforms.
 		 */
-		if (!strncmp(name->string_mb, NOCATGETS("GET"), 3)) {
+		if (!strncmp(name->string_mb, "GET", 3)) {
 			dollarget_seen = true;
 		}
 		dollarless_flag = false;
@@ -905,7 +905,7 @@
 	FILE		*pipe;
 	Name		value;
 	int		set_host, set_target;
-	const char	*mach_command = NOCATGETS("/bin/mach");
+	const char	*mach_command = "/bin/mach";
 
 	set_host = (get_prop(host_arch->prop, macro_prop) == NULL);
 	set_target = (get_prop(target_arch->prop, macro_prop) == NULL);
@@ -915,14 +915,14 @@
 		append_char((int) hyphen_char, &result_string);
 
 		if ((pipe = popen(mach_command, "r")) == NULL) {
-			fatal_mksh(catgets(libmksdmsi18n_catd, 1, 185, "Execute of %s failed"), mach_command);
+			fatal_mksh(gettext("Execute of %s failed"), mach_command);
 		}
 		while (fgets(mb_buf, sizeof(mb_buf), pipe) != NULL) {
 			MBSTOWCS(wcs_buffer, mb_buf);
 			append_string(wcs_buffer, &result_string, wslen(wcs_buffer));
 		}
 		if (pclose(pipe) != 0) {
-			fatal_mksh(catgets(libmksdmsi18n_catd, 1, 186, "Execute of %s failed"), mach_command);
+			fatal_mksh(gettext("Execute of %s failed"), mach_command);
 		}
 
 		value = GETNAME(result_string.buffer.start, wslen(result_string.buffer.start));
@@ -960,7 +960,7 @@
 	FILE		*pipe;
 	Name		value;
 	int		set_host, set_target;
-	const char	*arch_command = NOCATGETS("/bin/arch");
+	const char	*arch_command = "/bin/arch";
 
 	set_host = (get_prop(host_mach->prop, macro_prop) == NULL);
 	set_target = (get_prop(target_mach->prop, macro_prop) == NULL);
@@ -970,14 +970,14 @@
 		append_char((int) hyphen_char, &result_string);
 
 		if ((pipe = popen(arch_command, "r")) == NULL) {
-			fatal_mksh(catgets(libmksdmsi18n_catd, 1, 183, "Execute of %s failed"), arch_command);
+			fatal_mksh(gettext("Execute of %s failed"), arch_command);
 		}
 		while (fgets(mb_buf, sizeof(mb_buf), pipe) != NULL) {
 			MBSTOWCS(wcs_buffer, mb_buf);
 			append_string(wcs_buffer, &result_string, wslen(wcs_buffer));
 		}
 		if (pclose(pipe) != 0) {
-			fatal_mksh(catgets(libmksdmsi18n_catd, 1, 184, "Execute of %s failed"), arch_command);
+			fatal_mksh(gettext("Execute of %s failed"), arch_command);
 		}
 
 		value = GETNAME(result_string.buffer.start, wslen(result_string.buffer.start));
@@ -1251,7 +1251,7 @@
 			/*
 			 * We use a permanent buffer to reset SUNPRO_DEPENDENCIES value.
 			 */
-			if (!strncmp(name->string_mb, NOCATGETS("SUNPRO_DEPENDENCIES"), 19)) {
+			if (!strncmp(name->string_mb, "SUNPRO_DEPENDENCIES", 19)) {
 				if (length >= sunpro_dependencies_buf_size) {
 					sunpro_dependencies_buf_size=length*2;
 					if (sunpro_dependencies_buf_size < 4096)
@@ -1302,7 +1302,7 @@
 		    wslen(wcb_ta) +
 		      wslen(wcb_vr);
 		old_vr = wcb_vr;
-		MBSTOWCS(wcs_buffer, NOCATGETS("/usr/arch/"));
+		MBSTOWCS(wcs_buffer, "/usr/arch/");
 		if (IS_WEQUALN(old_vr,
 			       wcs_buffer,
 			       wslen(wcs_buffer))) {
@@ -1315,7 +1315,7 @@
 			new_value_allocated = true;
 			WCSTOMBS(mbs_buffer, old_vr);
 			(void) wsprintf(new_value,
-				        NOCATGETS("/usr/arch/%s/%s:%s"),
+				        "/usr/arch/%s/%s:%s",
 				        ha->string_mb + 1,
 				        ta->string_mb + 1,
 				        mbs_buffer);
--- old/usr/src/cmd/make/lib/mksh/misc.cc	2015-05-20 12:19:59.827111383 -0400
+++ new/usr/src/cmd/make/lib/mksh/misc.cc	2015-05-20 12:19:59.839089041 -0400
@@ -43,13 +43,13 @@
 #include <bsd/bsd.h>		/* bsd_signal() */
 #include <mksh/i18n.h>		/* get_char_semantics_value() */
 #include <mksh/misc.h>
-#include <mksdmsi18n/mksdmsi18n.h>
 #include <stdarg.h>		/* va_list, va_start(), va_end() */
 #include <stdlib.h>		/* mbstowcs() */
 #include <sys/signal.h>		/* SIG_DFL */
 #include <sys/wait.h>		/* wait() */
 
 #include <string.h>		/* strerror() */
+#include <libintl.h>
 
 
 /*
@@ -107,8 +107,8 @@
 	register char          *result = (char *) malloc((unsigned) size);
 	if (result == NULL) {
 		char buf[FATAL_ERROR_MSG_SIZE];
-		sprintf(buf, NOCATGETS("*** Error: malloc(%d) failed: %s\n"), size, strerror(errno));
-		strcat(buf, catgets(libmksdmsi18n_catd, 1, 126, "mksh: Fatal error: Out of memory\n"));
+		sprintf(buf, "*** Error: malloc(%d) failed: %s\n", size, strerror(errno));
+		strcat(buf, gettext("mksh: Fatal error: Out of memory\n"));
 		fputs(buf, stderr);
 		exit_status = 1;
 		exit(1);
@@ -352,7 +352,7 @@
 
 	if ((errnum < 0) || (errnum > sys_nerr)) {
 		errbuf = getmem(6+1+11+1);
-		(void) sprintf(errbuf, catgets(libmksdmsi18n_catd, 1, 127, "Error %d"), errnum);
+		(void) sprintf(errbuf, gettext("Error %d"), errnum);
 		return errbuf;
 	} else {
 		return strerror(errnum);
@@ -377,8 +377,8 @@
 {
 	va_list args;
 	char    *buf = static_buf;
-	char	*mksh_fat_err = catgets(libmksdmsi18n_catd, 1, 128, "mksh: Fatal error: ");
-	char	*cur_wrk_dir = catgets(libmksdmsi18n_catd, 1, 129, "Current working directory: ");
+	char	*mksh_fat_err = gettext("mksh: Fatal error: ");
+	char	*cur_wrk_dir = gettext("Current working directory: ");
 	int	mksh_fat_err_len = strlen(mksh_fat_err);
 
 	va_start(args, message);
@@ -437,7 +437,7 @@
 		WCSTOMBS(mbs_buffer, file_being_read);
 		if (line_number != 0) {
 			(void) sprintf(message,
-				       catgets(libmksdmsi18n_catd, 1, 130, "%s, line %d: %s"),
+				       gettext("%s, line %d: %s"),
 				       mbs_buffer,
 				       line_number,
 				       pattern);
@@ -452,7 +452,7 @@
  */
 
 	(void) fflush(stdout);
-	(void) fprintf(stderr, catgets(libmksdmsi18n_catd, 1, 131, "mksh: Fatal error in reader: "));
+	(void) fprintf(stderr, gettext("mksh: Fatal error in reader: "));
 	(void) vfprintf(stderr, pattern, args);
 	(void) fprintf(stderr, "\n");
 	va_end(args);
@@ -460,7 +460,7 @@
 /*
 	if (temp_file_name != NULL) {
 		(void) fprintf(stderr,
-			       catgets(libmksdmsi18n_catd, 1, 132, "mksh: Temp-file %s not removed\n"),
+			       gettext("mksh: Temp-file %s not removed\n"),
 			       temp_file_name->string_mb);
 		temp_file_name = NULL;
 	}
@@ -471,7 +471,7 @@
  */
 	if (1) {
 		(void) fprintf(stderr,
-			       catgets(libmksdmsi18n_catd, 1, 133, "Current working directory %s\n"),
+			       gettext("Current working directory %s\n"),
 			       get_current_path_mksh());
 	}
 	(void) fflush(stderr);
@@ -496,7 +496,7 @@
 
 	va_start(args, message);
 	(void) fflush(stdout);
-	(void) fprintf(stderr, catgets(libmksdmsi18n_catd, 1, 134, "mksh: Warning: "));
+	(void) fprintf(stderr, gettext("mksh: Warning: "));
 	(void) vfprintf(stderr, message, args);
 	(void) fprintf(stderr, "\n");
 	va_end(args);
@@ -505,7 +505,7 @@
  */
 	if (1) {
 		(void) fprintf(stderr,
-			       catgets(libmksdmsi18n_catd, 1, 135, "Current working directory %s\n"),
+			       gettext("Current working directory %s\n"),
 			       get_current_path_mksh());
 	}
 	(void) fflush(stderr);
@@ -602,7 +602,7 @@
 		size = sizeof (struct _Env_mem);
 		break;
 	default:
-		fatal_mksh(catgets(libmksdmsi18n_catd, 1, 136, "Internal error. Unknown prop type %d"), type);
+		fatal_mksh(gettext("Internal error. Unknown prop type %d"), type);
 	}
 	for (; prop != NULL; insert = &prop->next, prop = *insert);
 	size += PROPERTY_HEAD_SIZE;
@@ -849,7 +849,7 @@
 mbstowcs_with_check(wchar_t *pwcs, const char *s, size_t n)
 {
 	if(mbstowcs(pwcs, s, n) == -1) {
-		fatal_mksh(catgets(libmksdmsi18n_catd, 1, 143, "The string `%s' is not valid in current locale"), s);
+		fatal_mksh(gettext("The string `%s' is not valid in current locale"), s);
 	}
 }
 
--- old/usr/src/cmd/make/lib/mksh/mksh.cc	2015-05-20 12:20:00.304081264 -0400
+++ new/usr/src/cmd/make/lib/mksh/mksh.cc	2015-05-20 12:20:00.315799820 -0400
@@ -36,7 +36,6 @@
 #include <mksh/dosys.h>		/* redirect_io() */
 #include <mksh/misc.h>		/* retmem() */
 #include <mksh/mksh.h>
-#include <mksdmsi18n/mksdmsi18n.h>
 #include <errno.h>
 #include <signal.h>
 
@@ -81,13 +80,13 @@
 init_mksh_globals(char *shell)
 {
 /*
-	MBSTOWCS(wcs_buffer, NOCATGETS("SHELL"));
+	MBSTOWCS(wcs_buffer, "SHELL");
 	shell_name = GETNAME(wcs_buffer, FIND_LENGTH);
 	MBSTOWCS(wcs_buffer, shell);
 	(void) SETVAR(shell_name, GETNAME(wcs_buffer, FIND_LENGTH), false);
  */
 	char * dmake_shell;
-	if ((dmake_shell = getenv(NOCATGETS("DMAKE_SHELL"))) == NULL) {
+	if ((dmake_shell = getenv("DMAKE_SHELL")) == NULL) {
 		dmake_shell = shell;
 	} 
 	MBSTOWCS(wcs_buffer, dmake_shell);
@@ -108,7 +107,7 @@
 	char		*sp_dep_value;
 
 	/* check if SUNPRO_DEPENDENCIES is set in the environment */
-	if ((sp_dep_value = getenv(NOCATGETS("SUNPRO_DEPENDENCIES"))) != NULL) {
+	if ((sp_dep_value = getenv("SUNPRO_DEPENDENCIES")) != NULL) {
 		oldpathlen = strlen(oldpath);
 		/* check if oldpath is indeed in the value of SUNPRO_DEPENDENCIES */
 		if (strncmp(oldpath, sp_dep_value, oldpathlen) == 0) {
@@ -117,12 +116,12 @@
 				       newpath,
 				       sp_dep_value + oldpathlen);
 			length = 2 +
-				strlen(NOCATGETS("SUNPRO_DEPENDENCIES")) +
+				strlen("SUNPRO_DEPENDENCIES") +
 				strlen(buf);
 			env = getmem(length);
 			(void) sprintf(env,
 				       "%s=%s",
-				       NOCATGETS("SUNPRO_DEPENDENCIES"),
+				       "SUNPRO_DEPENDENCIES",
 				       buf);
 			(void) putenv(env);
 		}
--- old/usr/src/cmd/make/lib/mksh/read.cc	2015-05-20 12:20:00.706672330 -0400
+++ new/usr/src/cmd/make/lib/mksh/read.cc	2015-05-20 12:20:00.718419469 -0400
@@ -35,9 +35,9 @@
  */
 #include <mksh/misc.h>		/* retmem() */
 #include <mksh/read.h>
-#include <mksdmsi18n/mksdmsi18n.h>
 #include <sys/uio.h>		/* read() */
 #include <unistd.h>		/* close(), unlink(), read() */
+#include <libintl.h>
 
 #define	STRING_LEN_TO_CONVERT	(8*1024)
 
@@ -110,10 +110,10 @@
 		if (length != to_read) {
 			WCSTOMBS(mbs_buffer, file_being_read);
 			if (length == 0) {
-				fatal_mksh(catgets(libmksdmsi18n_catd, 1, 140, "Error reading `%s': Premature EOF"),
+				fatal_mksh(gettext("Error reading `%s': Premature EOF"),
 				      mbs_buffer);
 			} else {
-				fatal_mksh(catgets(libmksdmsi18n_catd, 1, 141, "Error reading `%s': %s"),
+				fatal_mksh(gettext("Error reading `%s': %s"),
 				      mbs_buffer,
 				      errmsg(errno));
 			}
@@ -153,7 +153,7 @@
 	if (source->inp_buf_ptr >= source->inp_buf_end) {
 		if (*(source->string.text.end - 1) != (int) newline_char) {
 			WCSTOMBS(mbs_buffer, file_being_read);
-			warning_mksh(catgets(libmksdmsi18n_catd, 1, 142, "newline is not last character in file %s"),
+			warning_mksh(gettext("newline is not last character in file %s"),
 					     mbs_buffer);
 			*source->string.text.end++ = (int) newline_char;
 			*source->string.text.end = (int) nul_char;
--- old/usr/src/cmd/make/lib/vroot/Makefile	2015-05-20 12:20:01.117096936 -0400
+++ new/usr/src/cmd/make/lib/vroot/Makefile	2015-05-20 12:20:01.128919897 -0400
@@ -39,6 +39,9 @@
 include $(SRC)/lib/Makefile.lib
 include ../../Makefile.com
 
+POFILE = libvroot.po
+POFILES = $(OBJECTS:%.o=%.po)
+
 LIBS = $(LIBRARY)
 SRCDIR = ../
 MAPFILES=
@@ -50,4 +53,11 @@
 
 lint:
 
+$(POFILE): $(POFILES)
+	$(CAT) $(POFILES) > $@
+
+_msg: $(MSGDOMAIN) $(POFILE)
+	$(RM) $(MSGDOMAIN)/$(POFILE)
+	$(CP) $(POFILE) $(MSGDOMAIN)
+
 include $(SRC)/lib/Makefile.targ
--- old/usr/src/cmd/make/lib/vroot/lock.cc	2015-05-20 12:20:01.514449339 -0400
+++ new/usr/src/cmd/make/lib/vroot/lock.cc	2015-05-20 12:20:01.526102530 -0400
@@ -23,7 +23,6 @@
  * Use is subject to license terms.
  */
 
-#include <avo/intl.h>	/* for NOCATGETS */
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -33,9 +32,9 @@
 #include <sys/types.h>
 #include <unistd.h>
 #include <vroot/vroot.h>
-#include <mksdmsi18n/mksdmsi18n.h>
 #include <signal.h>
 #include <errno.h>			/* errno */
+#include <libintl.h>
 
 extern	char		*sys_errlist[];
 extern	int		sys_nerr;
@@ -109,7 +108,7 @@
 		UNBLOCK_INTERUPTS;
 
 		if (errno != EEXIST) {
-			file_lock_error(msg, name, (char *)NOCATGETS("symlink(%s, %s)"),
+			file_lock_error(msg, name, (char *)"symlink(%s, %s)",
 			    (int) name, (int) lockname);
 			fprintf(stderr, "%s", msg);
 			return errno;
@@ -131,13 +130,13 @@
 				/* Print waiting message after 5 secs */
 				(void) getcwd(msg, MAXPATHLEN);
 				fprintf(stderr,
-					catgets(libmksdmsi18n_catd, 1, 162, "file_lock: file %s is already locked.\n"),
+					gettext("file_lock: file %s is already locked.\n"),
 					name);
 				fprintf(stderr,
-					catgets(libmksdmsi18n_catd, 1, 163, "file_lock: will periodically check the lockfile %s for two minutes.\n"),
+					gettext("file_lock: will periodically check the lockfile %s for two minutes.\n"),
 					lockname);
 				fprintf(stderr,
-					catgets(libmksdmsi18n_catd, 1, 144, "Current working directory %s\n"),
+					gettext("Current working directory %s\n"),
 					msg);
 
 				printed_warning = 1;
@@ -162,15 +161,15 @@
 {
 	int		len;
 
-	sprintf(msg, catgets(libmksdmsi18n_catd, 1, 145, "Could not lock file `%s'; "), file);
+	sprintf(msg, gettext("Could not lock file `%s'; "), file);
 	len = strlen(msg);
 	sprintf(&msg[len], str, arg1, arg2);
-	strcat(msg, catgets(libmksdmsi18n_catd, 1, 146, " failed - "));
+	strcat(msg, gettext(" failed - "));
 	if (errno < sys_nerr) {
 		strcat(msg, strerror(errno));
 	} else {
 		len = strlen(msg);
-		sprintf(&msg[len], NOCATGETS("errno %d"), errno);
+		sprintf(&msg[len], "errno %d", errno);
 	}
 }
 
--- old/usr/src/cmd/make/lib/vroot/report.cc	2015-05-20 12:20:01.924422572 -0400
+++ new/usr/src/cmd/make/lib/vroot/report.cc	2015-05-20 12:20:01.936078394 -0400
@@ -29,11 +29,10 @@
 #include <sys/param.h>
 #include <sys/wait.h>
 #include <unistd.h>
+#include <libintl.h>
 
 #include <vroot/report.h>
 #include <vroot/vroot.h>
-#include <mksdmsi18n/mksdmsi18n.h>
-#include <avo/intl.h>	/* for NOCATGETS */
 #include <mk/defs.h>	/* for tmpdir */
 
 static	FILE	*report_file;
@@ -110,12 +109,12 @@
 		return;
 	}
 	sprintf(nse_depinfo_file, "%s/%s", search_dir, NSE_DEPINFO);
-	sprintf(merge_file, NOCATGETS("%s/.tmp%s.%d"), search_dir, NSE_DEPINFO, getpid());
+	sprintf(merge_file, "%s/.tmp%s.%d", search_dir, NSE_DEPINFO, getpid());
 	sprintf(lock_file, "%s/%s", search_dir, NSE_DEPINFO_LOCK);
 	err = file_lock(nse_depinfo_file, lock_file, &file_locked, 0);
 	if (err) {
 		if (warning_ptr != (void (*) (char *, ...)) NULL) {
-			(*warning_ptr)(catgets(libmksdmsi18n_catd, 1, 147, "Couldn't write to %s"), nse_depinfo_file);
+			(*warning_ptr)(gettext("Couldn't write to %s"), nse_depinfo_file);
                       }
 		unlink(command_output_tmpfile);
 		return;
@@ -125,7 +124,7 @@
 		if (is_path) {
 			if ((nse_depinfo_fp = 
 			     fopen(nse_depinfo_file, "w")) == NULL) {
-				fprintf(stderr, catgets(libmksdmsi18n_catd, 1, 148, "Cannot open `%s' for writing\n"),
+				fprintf(stderr, gettext("Cannot open `%s' for writing\n"),
 				    nse_depinfo_file);
 				unlink(command_output_tmpfile);
 
@@ -146,7 +145,7 @@
 		return;
 	}
 	if ((merge_fp = fopen(merge_file, "w")) == NULL) {
-		fprintf(stderr, catgets(libmksdmsi18n_catd, 1, 149, "Cannot open %s for writing\n"), merge_file);
+		fprintf(stderr, gettext("Cannot open %s for writing\n"), merge_file);
 		if (file_locked) {
 			unlink(lock_file);
 		}
@@ -208,12 +207,12 @@
 
 	if (command_output_fp == NULL) {
 		sprintf(command_output_tmpfile, 
-			NOCATGETS("%s/%s.%d.XXXXXX"), tmpdir, NSE_DEPINFO, getpid());
+			"%s/%s.%d.XXXXXX", tmpdir, NSE_DEPINFO, getpid());
 		int fd = mkstemp(command_output_tmpfile);
 		if ((fd < 0) || (command_output_fp = fdopen(fd, "w")) == NULL) {
 			return;
 		}
-		if ((search_dir = getenv(NOCATGETS("NSE_DEP"))) == NULL) {
+		if ((search_dir = getenv("NSE_DEP")) == NULL) {
 			return;
 		}
 		atexit(close_file);
@@ -257,7 +256,7 @@
 	char		filename[MAXPATHLEN];
 	char		*p, *ptr;
 
-	if ((sdir = getenv(NOCATGETS("NSE_DEP"))) == NULL) {
+	if ((sdir = getenv("NSE_DEP")) == NULL) {
 		return;
 	}
 	if ((p= getenv(SUNPRO_DEPENDENCIES)) == NULL) {
@@ -267,7 +266,7 @@
 	if( ! ptr ) {
 		return;
 	}
-	sprintf(filename, NOCATGETS("%s-CPP"), ptr+1);
+	sprintf(filename, "%s-CPP", ptr+1);
 	getcwd(curdir, sizeof(curdir));
 	if (strcmp(curdir, sdir) != 0 && strlen(iflag) > 2 && 
 	    iflag[2] != '/') {
--- old/usr/src/cmd/make/lib/vroot/vroot.cc	2015-05-20 12:20:02.351474881 -0400
+++ new/usr/src/cmd/make/lib/vroot/vroot.cc	2015-05-20 12:20:02.363265211 -0400
@@ -34,8 +34,6 @@
 #include <sys/param.h>
 #include <sys/file.h>
 
-#include <avo/intl.h>	/* for NOCATGETS */
-
 typedef struct {
 	short		init;
 	pathpt		vector;
@@ -54,8 +52,8 @@
 } vroot_datat, *vroot_datapt;
 
 static vroot_datat	vroot_data= {
-	{ 0, NULL, NOCATGETS("VIRTUAL_ROOT")},
-	{ 0, NULL, NOCATGETS("PATH")},
+	{ 0, NULL, "VIRTUAL_ROOT"},
+	{ 0, NULL, "PATH"},
 	"", NULL, NULL, NULL, 0, 1};
 
 void
