Questions tagged [abi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

Filter by
Sorted by
Tagged with
0 投票
1 回答
144 浏览

iOS 2.x ABI 中的 R9 用法?

iOS ARM ABI 中的 R9 寄存器是做什么用的?在 ABI 文档中,它说“寄存器 R9 有特殊用途”,但没有实际说明它的用途。

0 投票
4 回答
6974 浏览

为什么我需要在 linux 内核升级后重新编译 vmware 内核模块?

linux 内核升级后,我的 VMWare 服务器无法启动,直到使用 vmware-config.pl 进行一些重新配置工作(包括构建一些内核模块)。

如果我用最新的 Windows Service Pack 更新我的 Windows VMWare 主机,我通常不需要做任何事情来运行 VMWare。

为什么 VMWare 在 Linux 和 Windows 之间的工作方式不同?此重新编译操作是否在 Linux 平台上比 Windows 带来任何好处?

0 投票
4 回答
11589 浏览

为什么数据结构对齐对性能很重要?

有人可以给我一个简短而合理的解释,解释为什么编译器会向数据结构添加填充以对齐其成员吗?我知道这样做是为了让 CPU 可以更有效地访问数据,但我不明白为什么会这样。

如果这只是 CPU 相关的,为什么在 Linux 中对齐双 4 字节而在 Windows 中对齐 8 字节?

0 投票
1 回答
1329 浏览

是否可以仅在 Mac OS X 上使用 GNU Assembler 生成纯二进制文件?

我为 x86 编写了一些汇编代码,并希望仅使用 Mac 的默认汇编程序('as')将其汇编成普通的二进制文件(不是 Mach-O)。经过几次谷歌搜索和尝试,我失败了。

虽然我知道如何使用 NASM(使用选项:-f 二进制)来做到这一点,但我不想这样做。因为我的代码是用写的,而且我习惯了 AT&T 的语法。

0 投票
10 回答
2193 浏览

C 编译器能否生成指针为 32 位的 64 位可执行文件?

大多数程序都非常适合小于 4GB 的地址空间,但需要使用仅在 x64 架构上可用的新功能。

是否有可以使用 x64 寄存器和特定指令但保留 32 位指针以节省内存的编译器/平台?

是否有可能在遗留代码上透明地做到这一点?什么开关可以做到这一点?

或者

在保持 32 位指针的同时获得 64 位功能需要对代码进行哪些更改?

0 投票
5 回答
1632 浏览

在 C++ 中,覆盖现有的虚函数会破坏 ABI 吗?

我的库有两个类,一个基类和一个派生类。在当前版本的库中,基类有一个虚函数 foo(),派生类不会覆盖它。在下一个版本中,我希望派生类覆盖它。这会破坏 ABI 吗?我知道通常会引入一个新的虚函数,但这似乎是一个特例。我的直觉是它应该改变 vtbl 中的偏移量,而不实际改变表的大小。

显然,由于 C++ 标准没有强制要求特定的 ABI,所以这个问题在某种程度上是特定于平台的,但实际上在大多数编译器中破坏和维护 ABI 的内容是相似的。我对 GCC 的行为很感兴趣,但是人们可以回答的编译器越多,这个问题就越有用;)

0 投票
3 回答
4252 浏览

程序启动时的默认寄存器状态是什么(asm,linux)?

当程序启动时(linux,elf)- , 等是否有零eaxebx或者可以有任何东西(我没有做任何调用或使用外部库)?在我的机器上确实如此,我可以在编写 asm 程序时中继这种行为吗?

0 投票
1 回答
501 浏览

可变参数在 mips 中工作

根据 mips abi 的说法,调用者将前几个参数放在 GPR 中以提高性能,并且不要将这些参数推送到堆栈框架中。但是当我使用 varargs api(stdarg.h) 定义具有可变参数列表的函数时,例如 void func(int type, ...);,api 工作。

我发现 stdarg.h apis 只搜索堆栈中的参数,如果编译器只将前几个参数推入 GPR,为什么 stdarg.h 工作?我错过了关于 ABI 的一些东西吗?

0 投票
3 回答
37787 浏览

ELF文件格式中的section和segment有什么区别

来自wiki Executable and Linkable Format

段包含文件运行时执行所必需的信息,而节包含用于链接和重定位的重要数据。整个文件中的任何字节最多只能由一个节拥有,并且可以有不属于任何节的孤儿字节。

但是section和segment有什么区别呢?在一个可执行的 ELF 文件中,一个段是否包含一个或多个部分?

0 投票
4 回答
140448 浏览

i386 和 x86-64 上 UNIX 和 Linux 系统调用(和用户空间函数)的调用约定是什么

以下链接解释了 UNIX(BSD 风格)和 Linux 的 x86-32 系统调用约定:

但是 UNIX 和 Linux 上的 x86-64 系统调用约定是什么?


15 30 50 per page
1
2 3 4 5
1498226