手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

moe(1)

名称

moe - 显示路径名的最佳扩展

用法概要

moe [-c] [-32 | -64] [-s | -v] path

描述

moe 实用程序显示包含保留的运行时链接程序标记的路径名的最佳扩展。这些标记可用于定义动态目标文件中的依赖项、filtee 和运行路径。这些运行时标记的扩展为选择能够在该计算机上以最佳性能运行的目标文件和搜索路径提供了灵活的机制。请参见 ld.so.1(1)

例如,标记 $HWCAP 可用于表示过滤器和依赖项。此标记的运行时解释使所分析的一系列目标文件能够确定它们是否适合随某个进程装入。这些目标文件根据每个目标文件需要执行的硬件功能排序。moe 返回最适合在当前平台上执行的目标文件的名称。

moe 通过将所提供的 path 传递到 dlmopen(3C),同时传递 RTLD_FIRST 标志来分析路径名称。因此,保留标记的扩展是由 ld.so.1 执行的,就像在正在执行的进程中发生的扩展一样。尽管使用 dlmopen() 调用可对多个目标文件进行分析,但是 RTLD_FIRST 标志可确保只处理最佳目标文件。

缺省情况下,moe 对指定的 path 分析两次。第一次分析会查找 32 位目标文件。第二次分析(如果适用)会查找 64 位目标文件。通常,32 位目标文件和 64 位目标文件分别被置于不同的目录中。这些目录的名称通常能够反映目录所包含的目标文件类。如果 32 位目标文件和 64 位目标文件占用同一目录,可通过多次传递 moe 捕获所有实例。如果用户无法从所指定的路径名推断该目录可能包含的目标文件类,也可以灵活地使用多次传递。

有关运行时链接程序执行的保留标记扩展的完整说明,请参阅Oracle Solaris 11.2 链接程序和库指南

选项

支持以下选项:

–32

仅分析 32 位目标文件。

–64

仅分析 64 位目标文件。

–c

在每个路径名之前加上目标文件类作为前缀。

–s

无提示。不显示任何最佳名称或错误诊断消息。仅提供一个错误返回值。此选项只有与 –32–64 选项一起使用时才有意义。–s 选项不可与 –v 选项一起使用。

–v

详细模式。如果无法确定最佳扩展名,则会向标准错误写入一条错误诊断消息。–v 选项不可与 –s 选项一起使用。

操作数

支持下列操作数:

path

要扩展的路径名。

示例

以下示例使用 moe 显示了 /usr/lib/libc 目录中的目标文件的最佳扩展。此目录包含一系列 Intel 目标文件,构建这些目标文件是为了使用各种硬件功能。

% moe '/usr/lib/libc/$HWCAP'
/usr/lib/libc/libc_hwcap.so.1

–c 选项可用于明确最佳目标文件的类。

% moe -c '/usr/lib/libc/$HWCAP'
32-bit: /usr/lib/libc/libc_hwcap.so.1

以下示例使用 moe 显示了 /opt/ISV/cpu 目录分层结构下的目标文件的最佳扩展。这些目录包含一系列针对各种平台构建的 SPARC 目标文件。

% moe -c -64 '/opt/ISV/$ISALIST/isa.so.1'
64-bit: /opt/ISV/sparcv9/isa.so.1

–v 可用于诊断未返回最佳名称的实例。如果尝试将前面的路径名作为 32 位目标文件进行检查,将会产生下面的诊断消息。

% moe -c -v -32 '/opt/ISV/$ISALIST/isa.so.1'
32-bit: /opt/ISV/sparcv9/isa.so.1: wrong ELF class: ELFCLASS64 

退出状态

当使用 –32–64 选项时,成功的最佳扩展将返回 0,其他情况下将返回非零值。未使用 –32–64 选项时,返回值始终为 0

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/linker
接口稳定性
Committed(已确定)

另请参见

ld.so.1(1)optisa(1)isalist(1)dlmopen(3C)attributes(5)

Oracle Solaris 11.2 链接程序和库指南