The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"ABI"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"ABI"
Сообщение от alexhack emailИскать по авторуВ закладки on 06-Май-03, 10:08  (MSK)
Что собственно такое ABI? поясните пожалуйста популярным языком, чтобы было понятно.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

  • ABI, Max Zinal, 19:46 , 07-Май-03, (1)
    • ABI, alexhack, 08:05 , 08-Май-03, (2)

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "ABI"
Сообщение от Max Zinal emailИскать по авторуВ закладки on 07-Май-03, 19:46  (MSK)
>Что собственно такое ABI? поясните пожалуйста популярным языком,
>чтобы было понятно.

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

Например, ABI языка C определяет порядок передачи параметров
и вызова субпрограмм, стандартные типы данных (включая их
машинное представление) и прочее.

Очевидно, что полное описание ABI является машинно-зависимым.
Вместе с тем, немалая его часть определяется, по сути,
потребностями языка программирования, и потому является
машинно- (и даже платформенно-) независимой. Так, соглашение
о том, что в начало имен функций C, помещаемых в библиотеку,
добавляется символ '_', действует в самых разнообразных
системах, включая OpenVMS, разновидности UNIX и Win32.

Наиболее "популярен" термин ABI в контексте языка C++.
Причина состоит в том, что долгое время производители
компиляторов не могли договориться об этом самом ABI,
что приводило к полной невозможности использовать
C++ библиотеки, собранные с использованием одного компилятора,
в программах, собираемых другим компилятором. В настоящий
момент ситуация постепенно улучшается, однако всё ещё далека
от идеала, так как, несмотря на появление стандарта,
существует мало компиляторов, ему следующих, и даже
между компиляторами, следующими (вроде бы) стандарту,
сохраняются проблемы с совместимостью. Основная сложность
связана с необходимостью единообразной упаковки (mangling)
типов функций и переменных в имена, используемые при
сравнении типов и разрешении ссылок на символы.
Отдельным геморроем является несовместимость реализаций
STL, используемых различными производителями компиляторов,
так что для создания библиотек, по-настоящему независимых от
компилятора, применяемого пользователем, по-прежнему
лучше использовать чистый C.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "ABI"
Сообщение от alexhack emailИскать по авторуВ закладки on 08-Май-03, 08:05  (MSK)
Вот теперь мне стало понятно.

И новый вопрос.
Для gcc при его сборке передается опция --enable-__cxa_exit
через google
нашел следующее

It's not required for ABI conformance -- but it is required to get a correct C++ compiler, if you're concerned about the exact order of static destructors.

Хотелось бы узнать каким образом это влияет ABI

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру