Sun Studio 12:C 用户指南

B.2.112 -xmodel=[a]

(x86) -xmodel 选项使编译器可为 Solaris x86 平台修改 64 位对象的格式,只能为此类对象的编译指定此选项。

仅当在支持 64 位的 x64 处理器上同时指定了 -m64 时,该选项才有效。

a 必须是以下值之一:

表 B–30 -xmodel 标志

值 

含义 

small

此选项可为小模型生成代码,其中执行代码的虚拟地址在链接时已知,并且已知在 0 到 2^31 - 2^24 - 1 的虚拟地址范围内可以找到所有符号。 

kernel

按内核模型生成代码,在该模型中, 所有符号都定义在 2^64 - 2^31 到 2^64 - 2^24 范围内。 

medium

按中等模型生成代码,在该模型中, 不对数据段的符号引用范围进行假定。文本段的大小和地址与小代码模型具有相同限制。当使用 -m64 进行编译时,具有大量静态数据的应用程序可能需要使用 -xmodel=medium

此选项不累积,因此编译器根据命令行最右侧的 -xmodel 实例设置模型值。

如果未指定 -xmodel,编译器将假定 -xmodel=small。指定不带参数的 -xmodel 是不正确的。

不必使用此选项编译所有转换单元。只有可以确保访问的对象在可访问范围之内,才可编译选择的文件。

请注意,并不是所有的 Linux 系统都支持中等模型。