Есть ли в Колибри стандартный формат объектных файлов?

Applications development, KoOS API questions
  • SysFn68.18, 68.19 умеет грузить MS COFF (dll.inc), gcc+newlib и inport.inc умеют грузить PE DLL.

    gnu linker и tcc умеют линковать .a ELF формата.
  • mkostoevr wrote: стандартный формат объектных файлов
    Тут надо ещё уточнить, что подразумевается под словом "стандартный". А нестандартный тогда это какой?

    С точки зрения системы: Родной ассемблер FASM, входящий в дистрибутив KolibriOS, может производить различные форматы elf, coff, ms coff, pe http://flatassembler.net/docs.php?article=manual#2.4
  • 0CodErr wrote:
    mkostoevr wrote: стандартный формат объектных файлов
    Тут надо ещё уточнить, что подразумевается под словом "стандартный". А нестандартный тогда это какой?
    Большинство компиляторов на винде (знаю MS VC/C++, MinGW, masm, PellesC, TCC) генерируют объектные файлы формата MS COFF.
    Компиляторы, имеющиеся на пингвине (знаю GCC, TCC, Clang *) по дефолту генерируют объектные файлы формата ELF.

    Под словом "стандартный" имелось ввиду, формат объектных файлов (именно используемых при компиляции модулей программ), который в КОС наиболее распространён, и который позволяет объединять вместе модули, скомпилированные разными компиляторами разных языков программирования в один исполняемый файл.

    Да, можно линковать и COFF с ELF и в итоге получить MENUET01, но есть ли какой-то (пусть негласный) стандарт, как в вышеупомянутых системах?

    * Clang, в зависимости от установленных при компиляции флагов, может генерировать и файлы своего собственного, удобного для межмодульной link-time оптимизации, формата (но это не точно :) ).
  • задавай конкретный вопрос, что ты хочешь получить в итоге?
  • Siemargl wrote:задавай конкретный вопрос, что ты хочешь получить в итоге?
    Пытаюсь писать компилятор одного ЯВУ. Но нужно, чтобы мой компилятор можно было использовать и в сочетании с другиими, уже испольуемыми в КОС. Поэтому, интересен используемый существуюими компиляторами формат, компиляцию в который стоит реализовывать в первую очередь.
  • Сейчас, наиболее часто связь между разными языками/компиляторами организуется посредством dll. Функцию dll выполняет формат MS COFF. Возможно, будет еще dll-PE.
  • mkostoevr wrote:
    Siemargl wrote:задавай конкретный вопрос, что ты хочешь получить в итоге?
    Пытаюсь писать компилятор одного ЯВУ. Но нужно, чтобы мой компилятор можно было использовать и в сочетании с другиими, уже испольуемыми в КОС. Поэтому, интересен используемый существуюими компиляторами формат, компиляцию в который стоит реализовывать в первую очередь.
    http://board.kolibrios.org/viewtopic.php?f=33&t=3418 - наименьший делитель - MS COFF

    перспектива - PE DLL - но тут есть тонкости, которые лучше пояснят Супермышь и Серг - я в детали еще не полез.

    основные языки сейчас - asm, c--,
    отчасти c, oberon (тоже подтянет COFF) - чуть великоваты исполняемые модули

    про Борланодовские ньансы с delphi7 и bcc - лучше пояснит 0CodErr - там свои проблемы
  • Понял, благодарен всем за оперативные ответы.
  • Who is online

    Users browsing this forum: No registered users and 5 guests