8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / man / man1 / moe.1
blob994192b8a4b35fcc07c94cbe8d525c21812968cd
1 '\" te
2 .\"  Copyright (c) 2005 by Sun Microsystems, Inc. All rights reserved.
3 .\" 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.
4 .\" 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.
5 .\" 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]
6 .TH MOE 1 "Feb 2, 2005"
7 .SH NAME
8 moe \- manifest the optimal expansion of a pathname
9 .SH SYNOPSIS
10 .LP
11 .nf
12 \fBmoe\fR [\fB-c\fR] [\fB-32\fR | \fB-64\fR] [\fB-s\fR | \fB-v\fR] \fIpath\fR
13 .fi
15 .SH DESCRIPTION
16 .sp
17 .LP
18 The \fBmoe\fR utility manifests the optimal expansion of a pathname containing
19 reserved runtime linker tokens. These tokens can be used to define
20 dependencies, filtees and runpaths within dynamic objects. The expansion of
21 these tokens at runtime, provides a flexible mechanism for selecting objects
22 and search paths that perform best on this machine. See \fBld.so.1\fR(1).
23 .sp
24 .LP
25 For example, the token \fB$HWCAP\fR can be employed to represent filters and
26 dependencies. The runtime interpretation of this token can result in a family
27 of objects that are analyzed to determine their applicability for loading with
28 a process. The objects are sorted based on the hardware capabilities that each
29 object requires to execute. \fBmoe\fR returns the name of the object optimally
30 suited for execution on the current platform.
31 .sp
32 .LP
33 \fBmoe\fR analyzes a pathname by passing the supplied \fIpath\fR to
34 \fBdlmopen\fR(3C), together with the \fBRTLD_FIRST\fR flag. Reserved token
35 expansion is therefore carried out by \fBld.so.1\fR as the expansion would
36 occur in an executing process. Although multiple objects can be analyzed as a
37 result of the \fBdlmopen()\fR call, the \fBRTLD_FIRST\fR flag insures only the
38 optimal object is processed.
39 .sp
40 .LP
41 By default, \fBmoe\fR analyzes the specified \fIpath\fR twice. The first
42 analysis looks for 32-bit objects. The second analysis, if applicable, looks
43 for 64-bit objects. Typically, 32-bit objects and 64-bit objects are isolated
44 to different directories. These directories are frequently named to reflect the
45 class of object the directory contains. The multiple passes of \fBmoe\fR catch
46 any instances where 32-bit objects and 64-bit objects occupy the same
47 directory. Multiple passes also provide flexibility when the pathname that is
48 specified does not convey to the user the class of object the directory might
49 contain.
50 .sp
51 .LP
52 For a complete description of the reserved token expansion carried out by the
53 runtime linker, refer to the \fILinker and Libraries Guide\fR.
54 .SH OPTIONS
55 .sp
56 .LP
57 The following options are supported:
58 .sp
59 .ne 2
60 .na
61 \fB\fB-32\fR\fR
62 .ad
63 .RS 7n
64 Only analyze 32-bit objects.
65 .RE
67 .sp
68 .ne 2
69 .na
70 \fB\fB-64\fR\fR
71 .ad
72 .RS 7n
73 Only analyze 64-bit objects.
74 .RE
76 .sp
77 .ne 2
78 .na
79 \fB\fB-c\fR\fR
80 .ad
81 .RS 7n
82 Prefix each pathname with the class of the object.
83 .RE
85 .sp
86 .ne 2
87 .na
88 \fB\fB-s\fR\fR
89 .ad
90 .RS 7n
91 Silent. No optimal name, or error diagnostics are displayed. Only an error
92 return is made available. This option is only meaningful with the \fB-32\fR and
93 \fB-64\fR options. The \fB-s\fR option can not be used with the \fB-v\fR
94 option.
95 .RE
97 .sp
98 .ne 2
99 .na
100 \fB\fB-v\fR\fR
102 .RS 7n
103 Verbose. If no optimal expansion name can be determined, an error diagnostic is
104 written to standard error. The \fB-v\fR option can not be used with the
105 \fB-s\fR option.
108 .SH OPERANDS
111 The following operand is supported:
113 .ne 2
115 \fB\fIpath\fR\fR
117 .RS 8n
118 The pathname to be expanded.
121 .SH EXAMPLES
124 The following example uses \fBmoe\fR to display the optimal expansion of
125 objects in the directory \fB/usr/lib/libc\fR. This directory contains a family
126 of Intel objects that are built to use various hardware capabilities.
128 .in +2
130 % \fBmoe '/usr/lib/libc/$HWCAP'\fR
131 /usr/lib/libc/libc_hwcap.so.1
133 .in -2
138 The \fB-c\fR option can be used to clarify the class of the optimal object.
140 .in +2
142 % \fBmoe -c '/usr/lib/libc/$HWCAP'\fR
143 32-bit: /usr/lib/libc/libc_hwcap.so.1
145 .in -2
150 The following example uses \fBmoe\fR to display the optimal expansion of
151 objects under the \fB/opt/ISV/cpu\fR directory hierarchy. These directories
152 contain a family of SPARC objects that are built for various platforms.
154 .in +2
156 % \fBmoe -c -64 '/opt/ISV/$ISALIST/isa.so.1'\fR
157 64-bit: /opt/ISV/sparcv9/isa.so.1
159 .in -2
164 The \fB-v\fR can be used to diagnose the instance where an optimal name is not
165 returned. An attempt to inspect the previous pathname as a 32-bit object, would
166 result in the following diagnostic being produced.
168 .in +2
170 % \fBmoe -c -v -32 '/opt/ISV/$ISALIST/isa.so.1'\fR
171 32-bit: /opt/ISV/sparcv9/isa.so.1: wrong ELF class: ELFCLASS64
173 .in -2
176 .SH EXIT STATUS
179 When the \fB-32\fR or \fB-64\fR options are in effect, a successful optimal
180 expansion returns \fB0\fR, otherwise non-zero. Without the \fB-32\fR or
181 \fB-64\fR options in effect, the return value is always \fB0\fR.
182 .SH ATTRIBUTES
185 See \fBattributes\fR(5) for descriptions of the following attributes:
190 box;
191 c | c
192 l | l .
193 ATTRIBUTE TYPE  ATTRIBUTE VALUE
195 Interface Stability     Stable
198 .SH SEE ALSO
201 \fBld.so.1\fR(1), \fBoptisa\fR(1), \fBisalist\fR(1), \fBdlmopen\fR(3C),
202 \fBattributes\fR(5)
205 \fILinker and Libraries Guide\fR