--- old/usr/src/cmd/sgs/include/libld.h	2016-08-03 18:34:01.382021488 +0100
+++ new/usr/src/cmd/sgs/include/libld.h	2016-08-03 18:34:01.399682888 +0100
@@ -24,6 +24,7 @@
  *	  All Rights Reserved
  *
  * Copyright (c) 1992, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2016 RackTop Systems.
  */
 
 #ifndef	_LIBLD_H
@@ -465,6 +466,7 @@
 #define	FLG_OF_EHFRAME	0x200000000000	/* output contains .eh_frame section */
 #define	FLG_OF_FATWARN	0x400000000000	/* make warnings fatal */
 #define	FLG_OF_ADEFLIB	0x800000000000	/* no libraries in default path */
+#define	FLG_OF_MULINCL	0x1000000000000	/* allow multiple inclusions */
 
 /*
  * In the flags1 arena, establish any options that are applicable to archive
--- old/usr/src/cmd/sgs/libld/common/args.c	2016-08-03 18:34:01.598996713 +0100
+++ new/usr/src/cmd/sgs/libld/common/args.c	2016-08-03 18:34:01.606680521 +0100
@@ -27,6 +27,7 @@
  */
 /*
  * Copyright (c) 2012, Joyent, Inc.  All rights reserved.
+ * Copyright 2016 RackTop Systems.
  */
 
 /*
@@ -205,6 +206,7 @@
 	(void) fprintf(stderr, MSG_INTL(MSG_ARG_DETAIL_ZLD64));
 	(void) fprintf(stderr, MSG_INTL(MSG_ARG_DETAIL_ZLO));
 	(void) fprintf(stderr, MSG_INTL(MSG_ARG_DETAIL_ZM));
+	(void) fprintf(stderr, MSG_INTL(MSG_ARG_DETAIL_ZMI));
 	(void) fprintf(stderr, MSG_INTL(MSG_ARG_DETAIL_ZNC));
 	(void) fprintf(stderr, MSG_INTL(MSG_ARG_DETAIL_ZNDFS));
 	(void) fprintf(stderr, MSG_INTL(MSG_ARG_DETAIL_ZNDEF));
@@ -1326,6 +1328,9 @@
 			    MSG_ORIG(MSG_ARG_MULDEFS)) == 0) {
 				ofl->ofl_flags |= FLG_OF_MULDEFS;
 			} else if (strcmp(optarg,
+			    MSG_ORIG(MSG_ARG_MULINCL)) == 0) {
+				ofl->ofl_flags |= FLG_OF_MULINCL;
+			} else if (strcmp(optarg,
 			    MSG_ORIG(MSG_ARG_REDLOCSYM)) == 0) {
 				ofl->ofl_flags |= FLG_OF_REDLSYM;
 			} else if (strcmp(optarg,
--- old/usr/src/cmd/sgs/libld/common/files.c	2016-08-03 18:34:01.826825318 +0100
+++ new/usr/src/cmd/sgs/libld/common/files.c	2016-08-03 18:34:01.832848967 +0100
@@ -25,6 +25,7 @@
  *
  * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2012, Joyent, Inc. All rights reserved.
+ * Copyright 2016 RackTop Systems.
  */
 
 /*
@@ -3240,8 +3241,9 @@
 				 * were dragged in as an implicit dependency),
 				 * then warn the user.
 				 */
-				if ((flags & FLG_IF_CMDLINE) ||
-				    (ifl->ifl_flags & FLG_IF_CMDLINE)) {
+				if (((flags & FLG_IF_CMDLINE) ||
+				    (ifl->ifl_flags & FLG_IF_CMDLINE)) &&
+				    !(ofl->ofl_flags & FLG_OF_MULINCL)) {
 					const char	*errmsg;
 
 					/*
--- old/usr/src/cmd/sgs/libld/common/libld.msg	2016-08-03 18:34:02.090065217 +0100
+++ new/usr/src/cmd/sgs/libld/common/libld.msg	2016-08-03 18:34:02.097040900 +0100
@@ -25,6 +25,7 @@
 
 #
 # Copyright (c) 2012, Joyent, Inc.  All rights reserved.
+# Copyright 2016 RackTop Systems.
 #
 
 @ _START_
@@ -206,6 +207,8 @@
 			 \t\t\tfiltees at runtime\n"
 @ MSG_ARG_DETAIL_ZM	"\t[-z muldefs], [--allow-multiple-definition]\n\
 			 \t\t\tallow multiply-defined symbols\n"
+@ MSG_ARG_DETAIL_ZMI	"\t[-z mulincl]\n\
+			 \t\t\tallow multiple inclusions of the same file\n"
 @ MSG_ARG_DETAIL_ZNDFS	"\t[-z nodefs]\tallow undefined symbol references\n"
 @ MSG_ARG_DETAIL_ZNDEF	"\t[-z nodefaultlib]\n\
 			 \t\t\tmark object to ignore any default library \
@@ -1401,6 +1404,7 @@
 @ MSG_ARG_TEXTOFF	"textoff"
 @ MSG_ARG_TEXTWARN	"textwarn"
 @ MSG_ARG_MULDEFS	"muldefs"
+@ MSG_ARG_MULINCL	"mulincl"
 @ MSG_ARG_NODELETE	"nodelete"
 @ MSG_ARG_NOINTERP	"nointerp"
 @ MSG_ARG_NOPARTIAL	"nopartial"
--- old/usr/src/cmd/sgs/packages/common/SUNWonld-README	2016-08-03 18:34:02.277330478 +0100
+++ new/usr/src/cmd/sgs/packages/common/SUNWonld-README	2016-08-03 18:34:02.295041864 +0100
@@ -1,5 +1,6 @@
 #
 # Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright 2016 RackTop Systems.
 #
 # CDDL HEADER START
 #
@@ -1658,3 +1659,4 @@
 5688	ELF tools need to be more careful with dwarf data
 6098	ld(1) should not require symbols which identify group sections be global
 6252	ld should merge function/data-sections in the same manner as GNU ld
+7319	Need a way to turn off ld "multiple inclusion" warnings
--- old/usr/src/man/man1/ld.1	2016-08-03 18:34:02.482187339 +0100
+++ new/usr/src/man/man1/ld.1	2016-08-03 18:34:02.501436440 +0100
@@ -2,10 +2,11 @@
 .\" Copyright 1989 AT&T
 .\" Copyright (c) 2009, Sun Microsystems, Inc. All Rights Reserved
 .\" Copyright (c) 2012, Joyent, Inc. All Rights Reserved
+.\" Copyright 2016 RackTop Systems.
 .\" 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]
-.TH LD 1 "Sep 10, 2013"
+.TH LD 1 "Aug 24, 2016"
 .SH NAME
 ld \- link-editor for object files
 .SH SYNOPSIS
@@ -29,7 +30,7 @@
 [\fB-z\fR ignore | record] [\fB-z\fR initarray=\fIfunction\fR] [\fB-z\fR initfirst]
 [\fB-z\fR interpose] [\fB-z\fR lazyload | nolazyload]
 [\fB-z\fR ld32=\fIarg1\fR,\fIarg2\fR,...] [\fB-z\fR ld64=\fIarg1\fR,\fIarg2\fR,...]
-[\fB-z\fR loadfltr] [\fB-z\fR muldefs] [\fB-z\fR nocompstrtab] [\fB-z\fR nodefaultlib]
+[\fB-z\fR loadfltr] [\fB-z\fR muldefs] [\fB-z\fR mulincl] [\fB-z\fR nocompstrtab] [\fB-z\fR nodefaultlib]
 [\fB-z\fR nodelete] [\fB-z\fR nodlopen] [\fB-z\fR nodump] [\fB-z\fR noldynsym]
 [\fB-z\fR nopartial] [\fB-z\fR noversion] [\fB-z\fR now] [\fB-z\fR origin]
 [\fB-z\fR preinitarray=\fIfunction\fR] [\fB-z\fR redlocsym] [\fB-z\fR relaxreloc]
@@ -70,8 +71,9 @@
 .sp
 .LP
 If any argument is a library, \fBld\fR by default searches the library exactly
-once at the point the library is encountered on the argument list. The library
-can be either a shared object or relocatable archive. See \fBar.h\fR(3HEAD)).
+once at the point the library is first encountered on the argument list. The
+library can be either a shared object or relocatable archive. See
+\fBar.h\fR(3HEAD)).
 .sp
 .LP
 A shared object consists of an indivisible, whole unit that has been generated
@@ -1267,6 +1269,20 @@
 .RE
 
 .sp
+.ne 2
+.na
+\fB\fB-z\fR \fBmulincl\fR\fR
+.ad
+.sp .6
+.RS 4n
+Allows multiple inclusion of the same file. By default, a warning is generated
+for libraries that are passed multiple times on the command line.  This option
+suppresses that warning, allowing \fB-z\fR \fBfatal-warnings\fR to be used when
+compiling code that makes multiple inclusions.  \fBNote:\fR When a file is
+specified more than once, only the first instance is included.
+.RE
+
+.sp
 .ne 2
 .na
 \fB\fB-z\fR \fBnocompstrtab\fR\fR
