Print this page
7319 Need a way to turn off ld "multiple inclusion" warnings
Reviewed by: Martin Bochnig <opensxce@mail.ru>
Reviewed by: Kim Shrier <kshrier@racktopsystems.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>

@@ -1,13 +1,14 @@
 '\" te
 .\" 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
 .LP
 .nf

@@ -27,11 +28,11 @@
 [\fB-z\fR globalaudit] [\fB-z\fR groupperm | nogroupperm] 
 [\fB-z\fR guidance[=\fIid1\fR,\fIid2\fR...] [\fB-z\fR help ]
 [\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]
 [\fB-z\fR rescan-now] [\fB-z\fR recan] [\fB-z\fR rescan-start \fI\&...\fR \fB-z\fR rescan-end]]
 [\fB-z\fR target=sparc|x86] [\fB-z\fR text | textwarn | textoff]

@@ -68,12 +69,13 @@
 Both of these utilities, together with their related technologies and
 utilities, are extensively documented in the \fILinker and Libraries Guide\fR.
 .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
 by a previous link-edit of one or more input files. When the link-editor
 processes a shared object, the entire contents of the shared object become a

@@ -1267,10 +1269,24 @@
 .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
 .ad
 .sp .6
 .RS 4n
 Disables the compression of \fBELF\fR string tables. By default, string