Вопросы по теме '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 просмотров

Несоответствие 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 просмотров

С++ неопределенная ссылка, класс не имеет тега ABI cxx11, который имеет «std::string»
Для личного проекта, гитарной педали Raspberry Pi, я создаю небольшую библиотеку. Эта библиотека содержит кучу классов, определяющих функцию нескольких типов эффектов. Для этого у меня есть базовый класс Effect , от которого наследуется каждый...
48 просмотров
schedule 20.02.2024