Page 1 of 1

компиляция GCC под KolibriOS

Posted: Wed Sep 02, 2009 6:08 pm
by andrew_programmer
Есть вопрос ответ на который я пока не нашёл.
У меня gcc 4.3.3
При компиляции программ GCC подменяет некоторые функции из libC на свои из libgcc.
Например printf() на __printf_chk . Я пробовал добавлять опцию -fno-builtin .Она частично отключает некоторые подмены, но подмены для printf() так и остаются. Искал в сети как это сделать, но не нашёл ответа. Может кто знает как это обойти?

Re: компиляция GCC под KolibriOS

Posted: Wed Sep 02, 2009 7:49 pm
by Serge
-fno-builtin-printf не помогает ?

Re: компиляция GCC под KolibriOS

Posted: Wed Sep 02, 2009 8:10 pm
by andrew_programmer
-fno-builtin-printf не помогает ?
К сожалению нет.

Re: компиляция GCC под KolibriOS

Posted: Wed Sep 02, 2009 8:24 pm
by Serge
Ты из Линукс компилируешь ? У меня mingw gcc 4.4.0 и такой проблемы нет. Попробуй -nostdinc . Заголовочные файлы придётся собирать по частям.

Re: компиляция GCC под KolibriOS

Posted: Wed Sep 02, 2009 9:12 pm
by andrew_programmer
Ты из Линукс компилируешь ?
Да. У меня винда XP стала глючить на уровне ядра. Во время работы может неожиданно вылететь в перезагрузку(резко).
Попробуй -nostdinc . Заголовочные файлы придётся собирать по частям.
Попробую через свои инклуды. Всёравно придётся переходить от статической библиотеки к динамической.

Re: компиляция GCC под KolibriOS

Posted: Fri Sep 04, 2009 3:07 pm
by andrew_programmer
Вот решил я собрать DLL для KolibriOS по тому же методу, что и библиотека pixlib.
Собираю из Линукса GCC. Таблицу экспорта объявляю так:

Code: Select all

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: Select all

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

Re: компиляция GCC под KolibriOS

Posted: Fri Sep 04, 2009 3:46 pm
by andrew_programmer
Даже, если объявлять без __attribute__((section("EXPORT"))) всёравно таблица экспорта не видна KolibriOS. Хотя таблица экспорта в объектнике есть.

Re: компиляция GCC под KolibriOS

Posted: Fri Sep 04, 2009 7:33 pm
by Serge
andrew_programmer

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

Re: компиляция GCC под KolibriOS

Posted: Thu Apr 08, 2010 11:34 am
by XVilka
Если вдруг до сих пор интересно - можете посмотреть вот это http://wiki.androidfan.ru/%D0%A1%D0%B1% ... 0%BB%D1%8F

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

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

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