链接程序和库指南

硬件和软件功能节

SHT_SUNW_cap 节标识目标文件的硬件和软件功能。此节包含以下结构的数组。 请参见 sys/link.h

typedef struct {

        Elf32_Word      c_tag;

        union {

                Elf32_Word      c_val;

                Elf32_Addr      c_ptr;

        } c_un;

} Elf32_Cap;



typedef struct {

        Elf64_Xword     c_tag;

        union {

                Elf64_Xword     c_val;

                Elf64_Addr      c_ptr;

        } c_un;

} Elf64_Cap;

对于此类型的每一个目标文件,c_tag 会控制 c_un 的解释。

c_val

这些目标文件表示具有各种解释的整数值。

c_ptr

这些目标文件表示程序虚拟地址。

存在以下功能标记。

表 7–12 ELF 功能数组标记

名称 

值 

c_un

CA_SUNW_NULL

0

忽略 

CA_SUNW_HW_1

1

c_val

CA_SUNW_SF_1

2

c_val

CA_SUNW_NULL

标记功能数组的结尾。

CA_SUNW_HW_1

表示硬件功能值。c_val 元素包含用于表示关联硬件功能的值。在 SPARC 平台上,硬件功能在 sys/auxv_SPARC.h 中定义。在 x86 平台上,硬件功能在 sys/auxv_386.h 中定义。

CA_SUNW_SF_1

表示软件功能值。c_val 元素包含用于表示 sys/elf.h 中定义的关联软件功能的值。

可重定位目标文件可以包含功能节。链接编辑器会将多个可重定位输入目标文件中的所有功能节合并到一个单独的功能节中。使用链接编辑器,还可在生成目标文件时定义功能。 请参见标识硬件和软件功能

包含功能节(其中包含硬件功能信息)的动态库具有与该节关联的 PT_SUNWCAP 程序头。使用此程序头,运行时链接程序可以针对可供进程使用的硬件功能来验证目标文件。

利用不同硬件功能的动态库可以提供使用过滤器的灵活运行时环境。 请参见特定于硬件功能的共享库