Вопросы по теме 'abi'

Каково направление роста стека в большинстве современных систем?
Я готовлю некоторые учебные материалы на языке C и хочу, чтобы мои примеры соответствовали типичной модели стека. В каком направлении растет стек C в Linux, Windows, Mac OSX (PPC и x86), Solaris и самых последних версиях Unix?
43192 просмотров
schedule 13.02.2022

Совместимость с GCC ABI
Насколько я понял, невозможно связать библиотеки, использующие разные версии бинарного интерфейса приложений (ABI) GCC. Есть ли изменения ABI для каждой версии GCC? Можно ли связать библиотеку, созданную с 4.3.1, если я использую, скажем, GCC 4.3.2?...
29161 просмотров
schedule 15.04.2023

Есть ли у C стандартный ABI?
Из обсуждения где-то еще : C++ не имеет стандартного ABI (бинарного интерфейса приложения). Но и C тоже, верно? На любой данной платформе это в значительной степени так. Он не был бы полезен в качестве лингва-франка для межъязыкового...
20989 просмотров
c abi
schedule 25.03.2022

В С++ нарушает ли ABI переопределение существующей виртуальной функции?
В моей библиотеке есть два класса: базовый класс и производный класс. В текущей версии библиотеки базовый класс имеет виртуальную функцию foo(), и производный класс ее не переопределяет. В следующей версии я бы хотел, чтобы производный класс...
1521 просмотров

Как добавление частной переменной-члена нарушает совместимость C ++ ABI?
идиома pimpl обычно используется для того, чтобы разрешить изменение кода в динамически подключаемых библиотеках без нарушения совместимости с ABI и необходимости перекомпилировать все код, зависящий от библиотеки. В большинстве объяснений я...
1860 просмотров
schedule 21.05.2022

Архитектуры/ABI, где sizeof(long long)!= 8
В мире x86/amd64 sizeof(long long) равно 8. Позвольте мне процитировать весьма проницательное письмо восьмилетней давности от Зака ​​Вайнберга : Скотт Роберт Лэдд пишет: В 64-битной архитектуре AMD64 GCC определяет long long...
986 просмотров
c abi
schedule 05.04.2023

Linux, скомпилировать кусок кода на одном хосте, чтобы запустить на другом?
Код написан на c / c ++ , может зависеть от некоторых библиотек на компилирующем хосте; и он должен работать на другом хосте без проблем, связанных с библиотеками. Оба хоста - linux, могут иметь разные версии. У вас есть хорошая стратегия?
283 просмотров
schedule 16.06.2023

В какой степени Itanium ABI действительно определяет отступы и выравнивание?
Мне сказали: [ABI] гарантируют точную компоновку структуры, байтовое смещение каждого члена, какие биты используются для битовых полей, где и сколько заполнения и т. д. Но я всегда считал, что заполнение и выравнивание не определены и...
950 просмотров
schedule 04.07.2023

RTTI через границы модулей в Itanium и MSVC ABI
Я читаю Itanium ABI , в котором говорится, что Предполагается, что два указателя type_info указывают на эквивалентные описания типов тогда и только тогда, когда указатели равны. Реализация должна удовлетворять этому ограничению, например. с...
370 просмотров
schedule 04.12.2022

Что происходит с пустыми классами в AMD64 ABI?
Я просматриваю AMD64 ABI , и он похоже, не указано, как передавать пустые типы классов. Для функций-членов пустого класса кажется, что this передается как обычно, но для пустых классов Clang генерирует код, который просто игнорирует этот класс....
254 просмотров
schedule 05.12.2022

Где документирован ABI для x86-64 System V?
X86-64 System V ABI (используется во всем, кроме Windows) раньше размещался по адресу http://x86-64.org/documentation/abi.pdf , но этот сайт теперь отключен от Интернета. Есть ли новый авторитетный источник для документа?
25760 просмотров

вызов memset из сборки x86_64
Я пытаюсь изучить сборку x86, глядя на сгенерированную сборку из clang. Например, я хотел бы узнать, как автоматический массив в C инициализируется всеми нулями. int64_t my_array [3000] = {0}; Похоже, сборка резервирует 24000B в стеке (3000...
2237 просмотров
schedule 16.02.2023

Несоответствие sctp uapi с ядром?
В ядре linux 3.x состояния sctp определяются по-разному между ядром и uapi. Это несоответствие или я что-то упускаю? в include/uapi/linux/sctp.h /* Association states. */ enum sctp_sstat_state { SCTP_EMPTY = 0,...
81 просмотров
schedule 01.08.2023

Какой ABI, если он есть, ограничивает размер [u] intmax_t?
Начиная с издания 1999 года, стандарт ISO C определяет стандартный заголовок <stdint.h> , который, помимо прочего, определяет typedefs intmax_t и uintmax_t . Они обозначают, соответственно, «(знаковый | беззнаковый) целочисленный тип,...
1084 просмотров
schedule 10.05.2022

Как программировать в 16-битном защищенном режиме с более чем 64 КБ данных?
Я хочу написать код для 16-битного защищенного режима, в частности простую операционную систему с некоторыми программами. Я знаю, что это звучит глупо, и, вероятно, так оно и есть, но мне интересно понять, как писать программы с такими ограничениями....
482 просмотров
schedule 16.02.2023

Имена регистров ABI для соглашения о вызовах RISC-V
Я смущен именами регистров RISC-V ABI. Например, таблица 18.2 в «Руководстве по набору команд RISC-V, том I: ISA уровня пользователя, версия 2.0» на стр. 85 указывает, что указатель стека sp является регистром x14 . Однако инструкция addi...
3676 просмотров

Как получить ABI (двоичный интерфейс приложения) в android
Это может быть повторяющийся вопрос, но я не могу его найти. Интересно, как с помощью кода узнать, что такое ABI телефона. Я знаю, что в файле gradle может быть другой интерфейс. Но проблема в том, как я могу получить точный ABI определенного...
20469 просмотров
schedule 19.02.2022

Использование модуля erlang wx приводит к ошибке: Обнаружено несоответствие между версиями сборки программы и библиотеки
Я пытаюсь использовать модуль wx erlang, но он падает на всех функциях со следующей ошибкой: Erlang/OTP 18 [erts-7.2] [source-e6dd627] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] Eshell V7.2 (abort with ^G) 1> wx:demo()....
496 просмотров
schedule 24.05.2022

Обеспечивает ли использование const global vars вместо enum совместимость с ABI?
В моем проекте библиотеки C у меня есть перечисление, в котором перечислены все возможные типы данных, обрабатываемых библиотекой: // lib.h enum types { VOID, INT, FLOAT, CONST_INT, CONST_FLOAT } Код будет скомпилирован в...
108 просмотров
c abi
schedule 02.06.2023

Требуется ли знак или нулевое расширение при добавлении 32-битного смещения к указателю для x86-64 ABI?
Резюме: я смотрел ассемблерный код, чтобы направлять свои оптимизации, и увидел множество знаковых или нулевых расширений при добавлении int32 к указателю. void Test(int *out, int offset) { out[offset] = 1; }...
3903 просмотров