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

(Application Binary Interface) определяет интерфейс низкого уровня между программами, библиотеками и операционной системой. Например. которые регистры используются для передачи параметров функции.
13
ответов

Что такое двоичный интерфейс приложения (ABI)?

Я никогда не понимал, что такое ABI. Пожалуйста, не указывайте мне статью в Википедии. Если бы я мог это понять, я бы не стал размещать такой длинный пост. Это мое мышление о разных интерфейсах: Пульт телевизора - это интерфейс между пользователем ...
задан 31 янв. '10 в 12:30
10
ответов

Есть ли недостатки для передачи структур по значению в C, а не для передачи указателя?

Есть ли недостатки для передачи структур по значению в C, а не для передачи указателя? Если структура велика, очевидно, что для копирования большого количества данных явно характерен аспект, но для небольшой структуры она должна быть в основном тако...
задан 02 окт. '08 в 14:21
7
ответов

Разница между API и ABI

Я новичок в системном программировании Linux, и я столкнулся с API и ABI во время чтения Системное программирование Linux. Определение API: API определяет интерфейсы, с помощью которых одна часть программного обеспечения связывает с другим на ...
задан 24 сент. '10 в 8:18
4
ответов

Что такое вызывающие соглашения для системных вызовов UNIX и Linux на i386 и x86-64

Следующие ссылки объясняют условные обозначения системных вызовов x86-32 как для UNIX (BSD flavor), так и для Linux: http://www.int80h.org/bsdasm/#system-calls http://www.freebsd.org/doc/en/books/developers-handbook/x86-system-calls.html Но како...
задан 29 марта '10 в 8:48
4
ответов

Как безопасно передавать объекты, особенно объекты STL, в и из DLL?

Как передать объекты класса, особенно объекты STL, в/из библиотеки C++? Мое приложение должно взаимодействовать с сторонними плагинами в виде файлов DLL, и я не могу контролировать, с каким компилятором созданы эти плагины. Я знаю, что нет гарантир...
задан 02 апр. '14 в 0:40
1
ответ

Что именно делает GCC -Wpsabi? Каковы последствия его подавления?

Фон В прошлом году я использовал библиотеку nlohmann json [1] и был кросс-компиляцией на x86_64 с использованием GCC 5.x arm-linux-gnueabi-* без предупреждений. Когда я обновляю GCC до более новой версии, GCC будет генерировать страницы загадочных ...
задан 25 авг. '18 в 21:51
2
ответов

Какая разница между разделом и сегментом в формате файлов ELF

Из wiki Исполняемый и связанный формат: В сегментах содержится информация, необходимая для выполнения файла во время выполнения, а разделы содержат важные данные для компоновки и перемещения. Любой байт во всем файле может принадлежать не более чем...
задан 16 янв. '13 в 17:58
3
ответов

Безопасно ли связывать объекты С++ 17, С++ 14 и С++ 11

Предположим, у меня есть три скомпилированных объекта, все они созданы одним и тем же компилятором/версией: A был скомпилирован со стандартом С++ 11 B был составлен с использованием стандарта С++ 14 C был скомпилирован со стандартом С++ 17 Для пр...
задан 14 окт. '17 в 19:36
1
ответ

Имеет ли libcxxabi смысл под Linux? Каковы преимущества?

Я пытаюсь определить, имеет ли смысл создание и использование libcxxabi проекта llvm под Linux. Моя сборка libcxxabi связана с ldd libc++abi.so.1.0 linux-vdso.so.1 => (0x00007fff2e0db000) libpthread.so.0 => /lib/x86_64-linux-gnu/li...
задан 19 марта '14 в 17:54
10
ответов

Почему Mac ABI требует 16-байтного выравнивания стека для x86-32?

Я могу понять это требование для старых систем PPC RISC и даже для x86-64, но для старого испробованного x86? В этом случае стек должен быть выровнен только на 4 байтовых границах. Да, некоторые инструкции MMX/SSE требуют 16-битных выравниваний, но е...
задан 05 марта '09 в 0:12
1
ответ

Почему адрес 0x400000 выбран как начало текстового сегмента в x86_64 ABI?

В этом документе на стр. 27 говорится, что текстовый сегмент начинается с 0x400000. Почему именно этот адрес был выбран? Есть ли причина для этого? Тот же адрес выбирается в GNU ld на Linux: $ ld -verbose | grep -i text-segment PROVIDE (__executa...
задан 25 сент. '16 в 20:04
1
ответ

Что произойдет, если вы используете 32-битный int 0x80 Linux ABI в 64-битном коде?

int 0x80 в Linux всегда вызывает 32-битный ABI, независимо от того, из какого режима он вызвал: args в ebx, ecx,... и числах syscall из /usr/include/asm/unistd_32.h. (Или сбой на 64-битных ядрах, скомпилированных без CONFIG_IA32_EMULATION). 64-р...
задан 07 сент. '17 в 7:20
8
ответов

Что может C/С++ "потерять", если они определяют стандартный ABI?

В названии говорится все. Я говорю о C/С++ специально, потому что оба считают это "проблемой реализации". Я думаю, что определение стандартного интерфейса может облегчить создание системы модулей поверх нее и многие другие хорошие вещи. Что может C/...
задан 18 янв. '10 в 2:21
4
ответов

Создание библиотеки с обратно совместимым ABI, который использует Boost

Я работаю над определенной библиотекой С++ (или более фреймворком). Я хочу сделать это назад совместимый с предыдущими версиями, сохраняющий не только совместимость API, но также и ABI (например, отличная работа Qt). Я использую много функций Boost,...
задан 07 мая '09 в 23:33
3
ответов

Модули С++ и С++ ABI

Я читал о предложении модулей С++ (последний проект), но я не совсем понимаю, какие проблемы (цели) решить. Является ли его целью предоставить модуль, построенный одним компилятором, для использования любым другим компилятором (например, в той же ОС...
задан 31 янв. '12 в 3:07