Тогда придётся забыть про LTCG, link-time code generation - это только Microsoft'овский link умеет. Не, видимо, лучшее решение - как предложил bw, линковать с релоками и перемещать в pe2kos.Serge wrote:Линкуйте wlink c ключами output raw op offset=0 op OBJALIGN=16 и будет вам счастье.
Если нет wlink - пишите.
nasm, vc, gcc и другие
-
Ушёл к умным, знающим и культурным людям.
Пробовал скомпилировать menuetlibc. As ругается на ceil.s:
Причём в ceil.s эти строчки:
Может кто-нибудь знает, что с этим делать?
Code: Select all
....
--- Making in /data/KolibriOS/dev/src/libc/ansi/math ---
cpp -nostdinc -I/data/KolibriOS/dev/include ceil.s -o ceil.sx -DMENUETDEV=/data/KolibriOS/dev -D__DEV_CONFIG_H=\"/data/KolibriOS/dev/config.h\"
as ceil.sx -o ceil.o
ceil.s: Assembler messages:
ceil.s:4: Error: suffix or operands invalid for `push'
ceil.s:22: Error: suffix or operands invalid for `pop'
Code: Select all
pushl %ebp
...
popl %ebp
Это значит, что gcc компилит в 64-битном режиме. Для 64-битных систем нужно ещё указывать ключ -m32.
Ушёл к умным, знающим и культурным людям.
Спасибо. Теперь библиотеку скомпилировал (правда пришлось делать довольно много правок и кроме того поиск библиотек не работает).
Понял, что мне очень сложно перейти на asm, 5-6 лет программирования на c, c++, perl, php и подобных сказывается. захотел по инструкции сделать возможным написание программ через gcc , при компиляции в 1ом месте появляется error и дельше их куча
...//Посыпались ероры
Code: Select all
--- Making in /home/alexus/ZAURUS/kosgcc/src/libc/ansi/stdio ---
/home/alexus/ZAURUS/kosgcc/linuxtools/mgcc allocfil.c allocfil.o -O2 -fomit-frame-pointer
In file included from /home/alexus/ZAURUS/kosgcc/include/stdio.h:11,
from allocfil.c:2:
/home/alexus/ZAURUS/kosgcc/include/menuet/os.h:41: warning: ‘packed’ attribute ignored for field of type ‘char[12]’
/home/alexus/ZAURUS/kosgcc/include/menuet/os.h:159: warning: ‘packed’ attribute ignored for field of type ‘__u8’
/home/alexus/ZAURUS/kosgcc/include/menuet/os.h:160: warning: ‘packed’ attribute ignored for field of type ‘__u8[3]’
In file included from /home/alexus/ZAURUS/kosgcc/include/stdio.h:19,
from allocfil.c:2:
/home/alexus/ZAURUS/kosgcc/include/dos.h:198: warning: ‘packed’ attribute ignored for field of type ‘char[21]’
/home/alexus/ZAURUS/kosgcc/include/dos.h:199: warning: ‘packed’ attribute ignored for field of type ‘unsigned char’
/home/alexus/ZAURUS/kosgcc/include/dos.h:203: warning: ‘packed’ attribute ignored for field of type ‘char[256]’
/home/alexus/ZAURUS/kosgcc/linuxtools/mgcc doprnt.c doprnt.o -O2 -fomit-frame-pointer
In file included from /home/alexus/ZAURUS/kosgcc/include/stdio.h:11,
Code: Select all
In file included from /home/alexus/ZAURUS/kosgcc/include/stdio.h:19,
from ctime.c:6:
/home/alexus/ZAURUS/kosgcc/include/dos.h:198: warning: ‘packed’ attribute ignored for field of type ‘char[21]’
/home/alexus/ZAURUS/kosgcc/include/dos.h:199: warning: ‘packed’ attribute ignored for field of type ‘unsigned char’
/home/alexus/ZAURUS/kosgcc/include/dos.h:203: warning: ‘packed’ attribute ignored for field of type ‘char[256]’
ctime.c:97: error: static declaration of ‘tzsetwall’ follows non-static declaration
/home/alexus/ZAURUS/kosgcc/include/time.h:90: error: previous declaration of ‘tzsetwall’ was here
make[4]: Leaving directory `/home/alexus/ZAURUS/kosgcc/src/libc/ansi/time'
make[3]: Leaving directory `/home/alexus/ZAURUS/kosgcc/src/libc/ansi'
make -C ansif
make[3]: Entering directory `/home/alexus/ZAURUS/kosgcc/src/libc/ansif'
--- Making in /home/alexus/ZAURUS/kosgcc/src/libc/ansif ---
make[3]: Leaving directory `/home/alexus/ZAURUS/kosgcc/src/libc/ansif'
make -C compat
make[3]: Entering directory `/home/alexus/ZAURUS/kosgcc/src/libc/compat'
make -C bsd
make[4]: Entering directory `/home/alexus/ZAURUS/kosgcc/src/libc/compat/bsd'
--- Making in /home/alexus/ZAURUS/kosgcc/src/libc/compat/bsd ---
*.*
Малополезная информация. Абсолютно непонятно в какой системе и какой версией компиляторы ты это всё собирал.
Я раньше собирал эту библиотеку в OpenSuse 10.1 x86-32 gcc 3.x. На x86-64 библиотека не собирается. В gcc 4.х компилятор стал более строгим и код у меня перестал собираться. Исправлением участков кода, которые не нравятся компилятору, я не занимался(не до этого было). Всё оставлял на потом. Alexus, раз ты разбираешься в C/C++ и в Linux, то по идее сможешь найти те участки кода, которые не нравяться gcc.
Я раньше собирал эту библиотеку в OpenSuse 10.1 x86-32 gcc 3.x. На x86-64 библиотека не собирается. В gcc 4.х компилятор стал более строгим и код у меня перестал собираться. Исправлением участков кода, которые не нравятся компилятору, я не занимался(не до этого было). Всё оставлял на потом. Alexus, раз ты разбираешься в C/C++ и в Linux, то по идее сможешь найти те участки кода, которые не нравяться gcc.
KolibriOS-перспективная ос!
Kolibri is best operation system in the world!
Kolibri is best operation system in the world!
Неправда. Собрать конечно сложнее из-за дурацкой системы сборки и т.п., но таки вполне собирается с флагами -m32 и -melf_i386..На x86-64 библиотека не собирается.
Собирал я с этими флагами. Запарился.
KolibriOS-перспективная ос!
Kolibri is best operation system in the world!
Kolibri is best operation system in the world!
Ассемблер может казаться сложным пока не начнешь на нём писать. После того как напишешь первую, пусть и простую программу на асм под Колибри, ты будешь смотреть на ассемблер совсем по-другому. Кстати, один из авторов языка C говорил, что лучший способ выучить язык программирования, это начать писать на нем.Alexus wrote:Понял, что мне очень сложно перейти на asm, 5-6 лет программирования на c, c++, perl, php и подобных сказывается
Лог не полный. На предупреждения не обращай внимания. Смотри причину ошибок. В приведеном куске лога видна только одна ошибка
вобщем-то стандартная, её решение смотри вот в этой теме viewtopic.php?f=23&t=1355.Alexus wrote:Code: Select all
ctime.c:97: error: static declaration of ‘tzsetwall’ follows non-static declaration/home/alexus/ZAURUS/kosgcc/include/time.h:90: error: previous declaration of ‘tzsetwall’ was here
Написал небольшой скрипт на перле, который позволяет генерируемый gcc ассемблерный код(AT&T) преобразовывать в код для колибри и fasm (Intel), всё довольно-таки просто, на данный момент стремился чтобы заработал болие ли менее солидный хеллоу ворлд. Пока что всё не ахти как надёжно и удобно)) но так я делаю его 2ой день, а обдумываю 3й.
Все результаты выложил сюда ftp://kolibrios.org/upload/Alexus/
И опубликовал процесс с комментариями в блоге http://linuxoidalexus.blogspot.com/2010 ... piler.html
Результат hello, world :
Все результаты выложил сюда ftp://kolibrios.org/upload/Alexus/
И опубликовал процесс с комментариями в блоге http://linuxoidalexus.blogspot.com/2010 ... piler.html
Результат hello, world :
*.*
Ушёл к умным, знающим и культурным людям.
Близко но не то), у меня заточено именно под колибри.
А последняя ссылка для нас вообще бесполезна).
А последняя ссылка для нас вообще бесполезна).
*.*
а мне идея нравится (хотя, конечно gcc может производить асм-листинг и в формате Intel). надо бы проверить, установлен ли у меня на нетбуке perl.
1) было бы неплохо написать обёртки для всех системных функций (чтобы просто подключать файлик с ними), могу поделиться своими
2) было бы неплохо обрабатывать командную строку, чтобы вызывать int main(int argc, char *argv[])
3) это не компилер, это транслятор...
1) было бы неплохо написать обёртки для всех системных функций (чтобы просто подключать файлик с ними), могу поделиться своими
2) было бы неплохо обрабатывать командную строку, чтобы вызывать int main(int argc, char *argv[])
3) это не компилер, это транслятор...
Если на нетбуке линукс, то скорее всего стоит. kcc не использует сторонних модулей)
1) Да это именно то чем я собирался заняться когда избавлюсь от некоторых недоработок и ошибок, они периодически всплывают. Самое приятное, что легче всего их находить когда пишешь программы. Был бы благодарен за эту помощь
2) да я думаю, что смогу это прикрутить
3) да я понимаю, что это транслятор)) если где-то написал иначе, то извиняюсь описка)
1) Да это именно то чем я собирался заняться когда избавлюсь от некоторых недоработок и ошибок, они периодически всплывают. Самое приятное, что легче всего их находить когда пишешь программы. Был бы благодарен за эту помощь
2) да я думаю, что смогу это прикрутить
3) да я понимаю, что это транслятор)) если где-то написал иначе, то извиняюсь описка)
*.*
Alexus
вот обёртки сис. вызовов, которые я использую. некоторые ужасны, но по-другому я не знаю как реализовать. надеюсь, тебе будут полезны.
вот обёртки сис. вызовов, которые я использую. некоторые ужасны, но по-другому я не знаю как реализовать. надеюсь, тебе будут полезны.
- Attachments
-
-
kolibri_sys.zip (2.41 KiB)Downloaded 385 times
-
Who is online
Users browsing this forum: No registered users and 2 guests