Board.KolibriOS.org

Official KolibriOS board
It is currently Mon May 27, 2019 12:27 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 9 posts ] 
Author Message
PostPosted: Wed Sep 02, 2009 6:08 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
Есть вопрос ответ на который я пока не нашёл.
У меня gcc 4.3.3
При компиляции программ GCC подменяет некоторые функции из libC на свои из libgcc.
Например printf() на __printf_chk . Я пробовал добавлять опцию -fno-builtin .Она частично отключает некоторые подмены, но подмены для printf() так и остаются. Искал в сети как это сделать, но не нашёл ответа. Может кто знает как это обойти?

_________________
KolibriOS-перспективная ос!
Kolibri is best operation system in the world!


Top
   
PostPosted: Wed Sep 02, 2009 7:49 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
-fno-builtin-printf не помогает ?


Top
   
PostPosted: Wed Sep 02, 2009 8:10 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
Quote:
-fno-builtin-printf не помогает ?

К сожалению нет.

_________________
KolibriOS-перспективная ос!

Kolibri is best operation system in the world!


Top
   
PostPosted: Wed Sep 02, 2009 8:24 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Ты из Линукс компилируешь ? У меня mingw gcc 4.4.0 и такой проблемы нет. Попробуй -nostdinc . Заголовочные файлы придётся собирать по частям.


Top
   
PostPosted: Wed Sep 02, 2009 9:12 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
Quote:
Ты из Линукс компилируешь ?


Да. У меня винда XP стала глючить на уровне ядра. Во время работы может неожиданно вылететь в перезагрузку(резко).
Quote:
Попробуй -nostdinc . Заголовочные файлы придётся собирать по частям.

Попробую через свои инклуды. Всёравно придётся переходить от статической библиотеки к динамической.

_________________
KolibriOS-перспективная ос!

Kolibri is best operation system in the world!


Top
   
PostPosted: Fri Sep 04, 2009 3:07 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
Вот решил я собрать DLL для KolibriOS по тому же методу, что и библиотека pixlib.
Собираю из Линукса GCC. Таблицу экспорта объявляю так:

Code:
typedef struct
{
   char *name;
   void *function;
}__attribute__((packed))export_t;

char szSTART[]                                           = "START";
.
.
.
export_t   EXPORTS[]__attribute__((section("EXPORT")))=
   {
      {szSTART,                                 start                                },
.
.
.


Всё компилируется. Ошибок и предупреждений нет. Но таблица экспорта не открывается в CObj и не грузиться KolibriOS. Я посмотрел объектные файлы Hex редактором.
Вот ключевое слово в объектнике библиотеки.
Code:
adFont szFreeFont EXPORTS     *    H    T  

Но почему-то таблица экспорта не грузиться. Как должна размещаться таблица, чтобы она грузилась?

_________________
KolibriOS-перспективная ос!

Kolibri is best operation system in the world!


Top
   
PostPosted: Fri Sep 04, 2009 3:46 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
Даже, если объявлять без __attribute__((section("EXPORT"))) всёравно таблица экспорта не видна KolibriOS. Хотя таблица экспорта в объектнике есть.

_________________
KolibriOS-перспективная ос!

Kolibri is best operation system in the world!


Top
   
PostPosted: Fri Sep 04, 2009 7:33 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
andrew_programmer

У тебя объектник наверное в ELF скомпилировался. Попробуй поставить кросскомпилятор.


Top
   
PostPosted: Thu Apr 08, 2010 11:34 am 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 794
Если вдруг до сих пор интересно - можете посмотреть вот это http://wiki.androidfan.ru/%D0%A1%D0%B1% ... 0%BB%D1%8F

Хоть тут и описана сборка под андроид - но должен понятен быть принцип создания полной кросс-компиляции ( в том числе и без включения libgcc )

Если необходимо - могу написать как то же самое сделать на tiny C compiler + dietlibc

А для формирования нужного формата файла самый лучший вариант использовать описание структуры через ld-script


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 9 posts ] 

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited