Вопросы по теме 'abi'
Каков формат структуры x86_64 va_list?
У кого-нибудь есть ссылка на представление va_list в ABI x86_64 (тот, который используется в Linux)? Я пытаюсь отладить некоторый код, где стек или аргументы кажутся поврежденными, и это действительно помогло бы понять, что я должен видеть...
16930 просмотров
schedule
07.05.2024
Соглашение о вызовах с ARM на C, NEON регистрирует для сохранения
Существует аналогичное сообщение , посвященное обычным регистрам. Насчет НЕОНОВЫХ регистров. Насколько я помню, при вызове функций необходимо сохранять верхнюю или нижнюю половину регистров. Я нигде не могу найти эту информацию, может кто-нибудь...
5638 просмотров
schedule
22.05.2024
Как указать компилятору генерировать псевдоним для виртуальной функции?
См. этот вопрос для фона.
В принципе, у меня есть следующее определение класса
class MyClass {
virtual int foo4(double, int);
};
Есть ли способ указать компилятору сгенерировать два символа, которые разрешатся в foo4 ? То есть я...
475 просмотров
schedule
27.03.2024
указатель на va_list в amd64 ABI
Меня беспокоят вариативные функции под Linux amd64 (x86_64).
В моем примере сборка и работа на linux i386 (ia32) работает нормально, но при сборке для linux amd64 GCC выдает такие ошибки:
stdarg.c: In function ‘vtest’:
stdarg.c:21:5: attention...
1653 просмотров
schedule
13.12.2023
Как Enum выделяет память на C?
Я пытаюсь работать с языком C и ассемблера (intelx8086).
Я также использую один класс, который был реализован моим другом. Оно имеет
typedef enum data_10 {a=0,b=7,c=10,} data_10_type;
Я хочу работать с этим классом побитно (AKA...
9547 просмотров
schedule
02.03.2024
Как разобрать имя С++ в clang (или gcc)?
Я пытаюсь написать быстрый и грязный деманглер для clang. Я нашел фрагмент кода , в котором используется abi::__cxa_demangle , но я не могу понять, какой заголовок ему нужен. Очевидным выбором является ABI.h , но:
demangle.cpp:2:10: fatal...
5097 просмотров
schedule
12.10.2022
Visual C++ x86 ABI: как VC++ возвращает значение?
Я знаю, что 1/2/4-байтовые целые числа возвращаются в eax , а 8-байтовые целые возвращаются в eax:edx .
Кстати, как 4/8/16-байтовые значения с плавающей запятой (может быть, я помню, что long double может быть 16 байтов..) возвращаются в...
169 просмотров
schedule
18.11.2023
Можно ли использовать встроенные пространства имен для обеспечения обратной совместимости в общей библиотеке?
Основанием для встроенных пространств имен C++ является совместимость как исходного кода, так и бинарной совместимости (см. документ Херба Саттера, ссылка на который приведена в N2535 ), но мне не удалось найти хороших примеров сохранения двоичной...
473 просмотров
schedule
16.11.2022
Можно ли использовать разные библиотеки libstdc++ в одной программе?
У меня есть старая платформа приложений, которую нужно скомпилировать с помощью gcc 4.4.4 и старой libstdc++.so , которые не поддерживают C++14.
Я хочу использовать gcc 6.2 для написания новых функций на C++14 и компилировать их в статическую...
209 просмотров
schedule
27.03.2024
почему перемещение float в xmm0 приводит к выводу 0
Хотите напечатать значение с плавающей запятой через printf в сборке
segment .data
float_fmt db "%f", 0xa, 0
fp dd 1.1
segment .text
global main
extern printf
main:
push rbp
mov rbp, rsp
lea rdi, [float_fmt]...
78 просмотров
schedule
11.02.2024
Использование Scala 2.12 с Spark 2.x
В документации Spark 2.1 упоминается, что
Spark работает на Java 7+, Python 2.6 + / 3.4 + и R 3.1+. Для Scala API Spark 2.1.0 использует Scala 2.11. Вам потребуется совместимая версия Scala (2.11.x).
в выпуске новостей Scala 2.12...
15638 просмотров
schedule
10.04.2024
Несоответствие ABI при сборке проекта go с рецептом yocto
Я пытаюсь написать рецепт Yocto для создания проекта Go lang для целевой платформы x86_64 (ветка rocko). Мой рецепт yocto отлично строит проект Go, разрешая зависимости с помощью инструмента dep . Но созданный двоичный файл не работает на целевой...
568 просмотров
schedule
21.01.2024
Наличие недавно скомпилированного C++ .so для запуска в старых системах, если не отображаются стандартные символы.
Моя цель - использовать последние функции C++, такие как интеллектуальные указатели (по крайней мере, std::shared_ptr ) для библиотеки linux C++, которая должна работать в нескольких дистрибутивах (очевидно, перекомпилируя ее для каждой платформы)....
219 просмотров
schedule
14.12.2023
Как ядро Linux узнает, сколько байтов оно должно прочитать из аргументов пути системного вызова?
Я искал в Google и обнаружил, что ядро Linux использует структуру для переменных.
#define EMBEDDED_LEVELS 2
struct nameidata {
struct path path;
struct qstr last;
struct path root;
struct inode *inode; /* path.dentry.d_inode...
212 просмотров
schedule
27.02.2024
С++ неопределенная ссылка, класс не имеет тега ABI cxx11, который имеет «std::string»
Для личного проекта, гитарной педали Raspberry Pi, я создаю небольшую библиотеку. Эта библиотека содержит кучу классов, определяющих функцию нескольких типов эффектов. Для этого у меня есть базовый класс Effect , от которого наследуется каждый...
48 просмотров
schedule
20.02.2024