Вопросы по теме '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 просмотров
schedule
25.03.2022
В С++ нарушает ли ABI переопределение существующей виртуальной функции?
В моей библиотеке есть два класса: базовый класс и производный класс. В текущей версии библиотеки базовый класс имеет виртуальную функцию foo(), и производный класс ее не переопределяет. В следующей версии я бы хотел, чтобы производный класс...
1521 просмотров
schedule
20.06.2023
Как добавление частной переменной-члена нарушает совместимость 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 просмотров
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 просмотров
schedule
15.02.2024
вызов 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 просмотров
schedule
07.06.2023
Как получить 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 просмотров
schedule
02.06.2023
Требуется ли знак или нулевое расширение при добавлении 32-битного смещения к указателю для x86-64 ABI?
Резюме: я смотрел ассемблерный код, чтобы направлять свои оптимизации, и увидел множество знаковых или нулевых расширений при добавлении int32 к указателю.
void Test(int *out, int offset)
{
out[offset] = 1;
}...
3903 просмотров
schedule
22.02.2023