Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Чт ноя 15, 2018 1:04 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 115 сообщений ]  На страницу Пред. 14 5 6 7 8 След.
Автор Сообщение
 Заголовок сообщения: Re: C-- Sphinx Compiler
СообщениеДобавлено: Пн дек 05, 2016 11:03 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1249
revision #6787


Вернуться к началу
 Заголовок сообщения: Re: C-- Sphinx Compiler
СообщениеДобавлено: Вт дек 06, 2016 1:23 am 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4878
Проверил, строка "/sys/lib/../calc" запускает calc.

Вот это viewtopic.php?f=31&t=659&p=67590#p67589 правилось или нет?

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Re: C-- Sphinx Compiler
СообщениеДобавлено: Вт дек 06, 2016 2:48 am 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1249
Должно, теперь это делается до файловых систем.


Вернуться к началу
 Заголовок сообщения: Re: C-- Sphinx Compiler
СообщениеДобавлено: Ср окт 11, 2017 8:23 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1503
При сборке некоторых программ(например, Eolite) падает с General protection fault.
Может быть, попробовать стек побольше сделать?
Или может какая-то функция в libc недоработана?

Забавный факт, для сборки под винду достаточно bat-ника, содержащего только одну строку:
Код:
gcc -fno-exceptions -D_WIN32_ -D__CONSOLE__ -o cmm.exe *.cpp

Сравните с содержимым Makefile
Спойлер: Показать
Код:
Compiler                = gcc

#Compiler_Options       = -c -fno-exceptions -D_UNIX_
Compiler_Options       = -c -fno-exceptions -D_WIN32_ -D__CONSOLE__

#-D: _WIN32_ or _UNIX_
#-D: for _WIN32_ add -D__CONSOLE__

Exe_file                = cmm

All_Libs       = main.o toka.o tokb.o tokc.o toke.o tokr.o errors.o debug.o outobj.o outpe.o disasm.o switch.o outle.o pointer.o new_type.o class.o res.o optreg.o libobj.o port.o

####################
## Makefile rules ##
####################

all        : $(Exe_file)

$(Exe_file) : $(All_Libs)
   $(Compiler)  -o $(Exe_file) $(All_Libs)
clean:
   rm *.o


# next are the exceptions that don't have to be compiled with the /zu option
# since they will never be called from a interrupt. hey.. I _tried_ to find
# a clean solution..

main.o :  main.cpp
   $(Compiler) $(Compiler_Options) $<

toka.o :  toka.cpp
   $(Compiler) $(Compiler_Options) $<

tokb.o :  tokb.cpp
   $(Compiler) $(Compiler_Options) $<

tokc.o :  tokc.cpp
   $(Compiler) $(Compiler_Options) $<

toke.o :  toke.cpp
   $(Compiler) $(Compiler_Options) $<

tokr.o :  tokr.cpp
   $(Compiler) $(Compiler_Options) $<

errors.o :errors.cpp
   $(Compiler) $(Compiler_Options) $<

debug.o : debug.cpp
   $(Compiler) $(Compiler_Options) $<

outobj.o : outobj.cpp
   $(Compiler) $(Compiler_Options) $<

outpe.o : outpe.cpp
   $(Compiler) $(Compiler_Options) $<

disasm.o : disasm.cpp
   $(Compiler) $(Compiler_Options) $<

switch.o : switch.cpp
   $(Compiler) $(Compiler_Options) $<

outle.o : outle.cpp
   $(Compiler) $(Compiler_Options) $<

pointer.o : pointer.cpp
   $(Compiler) $(Compiler_Options) $<

new_type.o : new_type.cpp
   $(Compiler) $(Compiler_Options) $<

class.o : class.cpp
   $(Compiler) $(Compiler_Options) $<

res.o : res.cpp
   $(Compiler) $(Compiler_Options) $<

optreg.o : optreg.cpp
   $(Compiler) $(Compiler_Options) $<

libobj.o : libobj.cpp
   $(Compiler) $(Compiler_Options) $<

port.o: port.cpp
   $(Compiler) $(Compiler_Options) $<

.cpp.o:
   $(Compiler) $(Compiler_Options) $<

.asm.o:
   fasm $<


Вернуться к началу
 Заголовок сообщения: Re: C-- Sphinx Compiler
СообщениеДобавлено: Ср окт 11, 2017 9:32 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4878
0CodErr
Невероятно, работает (залил на SVN).
Может быть еще есть скрипт для компиляции Колибри бинарника из-под Windows?

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Re: C-- Sphinx Compiler
СообщениеДобавлено: Вс ноя 04, 2018 9:04 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Ср апр 15, 2015 11:13 pm
Сообщения: 250
Пытался собрать для Ubuntu 16.04. В итоге кое-как собрал, компилятор CMM работает не стабильно, легкие примеры компилирует, но бинарник не запускается к колибриос. Может кто нибудь сможет довести его до конца.
Вложение:
cmm.tar.gz [925.99 КБ]
8 скачиваний


Спойлер: Показать
Вложение:
Снимок экрана от 2018-11-04 20-22-37.png
Снимок экрана от 2018-11-04 20-22-37.png [ 315.71 КБ | 1998 просмотров ]


Вернуться к началу
 Заголовок сообщения: Re: C-- Sphinx Compiler
СообщениеДобавлено: Пн ноя 05, 2018 12:00 pm 
Не в сети

Зарегистрирован: Ср мар 26, 2008 12:44 pm
Сообщения: 214
Тоже пытался собрать под Убунтой, и тоже неудачно. 64-битная версия компилирует нечто левое. 32-битная версия вроде работает, простые примеры тоже вроде запускаются в Колибри (в моём случае в эмуляторе kex). Но на более сложных проектах (к примеру Eolite) cmm вылетает в sigsegv. Те же самые исходники компилируются виндовой версией под wine без проблем. Печалька.


Вернуться к началу
 Заголовок сообщения: Re: C-- Sphinx Compiler
СообщениеДобавлено: Вт ноя 06, 2018 12:41 am 
Не в сети
Аватара пользователя

Зарегистрирован: Ср апр 15, 2015 11:13 pm
Сообщения: 250
Довел компилятор для Ubuntu 16.04 x64 до корректной компиляции бинарников для KolibriOS. Но остался один баг, при компиляции тяжелых программ (например Eolite) - крэшиться.
Перед компиляцией исходников прикрепленных в этом сообщении не забудьте установить.
Код:
sudo apt-get install gcc-multilib


Вернуться к началу
 Заголовок сообщения: Re: C-- Sphinx Compiler
СообщениеДобавлено: Вт ноя 06, 2018 1:33 am 
Не в сети
Аватара пользователя

Зарегистрирован: Ср апр 15, 2015 11:13 pm
Сообщения: 250
Для Ubuntu. Более новее версия компилятора взятого с SVN, еще крэшится


Вложения:
cmm.r7531.tar.gz [564.6 КБ]
4 скачивания
Вернуться к началу
 Заголовок сообщения: Re: C-- Sphinx Compiler
СообщениеДобавлено: Ср ноя 07, 2018 2:07 am 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4878
pavelyakov
Можешь собрать нормальный компилятор под Колибри?
Тот что есть, ничерта не компилит из-за проблем с путями.


Вложения:
SCREEN_2.PNG
SCREEN_2.PNG [ 106.81 КБ | 481 просмотр ]

_________________
Через тернии к звездам
Вернуться к началу
 Заголовок сообщения: Re: C-- Sphinx Compiler
СообщениеДобавлено: Чт ноя 08, 2018 3:28 am 
Не в сети

Зарегистрирован: Вт окт 05, 2010 6:05 pm
Сообщения: 211
0CodErr писал(а):
Забавный факт, для сборки под винду достаточно bat-ника, содержащего только одну строку:
Код:
gcc -fno-exceptions -D_WIN32_ -D__CONSOLE__ -o cmm.exe *.cpp

а не надо добавить -D_WС_ ?
Проверьте на компиляции конструкций типа (E)AX, (E)BX и т.п.


Вернуться к началу
 Заголовок сообщения: Re: C-- Sphinx Compiler
СообщениеДобавлено: Чт ноя 08, 2018 8:57 am 
Не в сети
Аватара пользователя

Зарегистрирован: Ср апр 15, 2015 11:13 pm
Сообщения: 250
Дебагер показывает, где в стеке вызовов произошла ошибка сигментации, но я так её и не нашел.
(gdb) backtrace
#0 0xf7e4ad7b in malloc () from /lib/i386-linux-gnu/libc.so.6
#1 0x5655af74 in MALLOC(int) ()
#2 0x565b6020 in BackString(char*) ()
#3 0x5655f7f6 in CheckMassiv(char*&, int, int, int*, int*, long*) ()
#4 0x5655ef0b in CheckAllMassiv(char*&, int, _SINFO_*, _ITOK_*, int, int) ()
#5 0x5657a98e in getinto_e_ax(int, int, _ITOK_*, char*&, _SINFO_*, int, int)
()
#6 0x5657bd14 in do_e_axmath(int, int, char**) ()
#7 0x565a0173 in constructcompare(int, unsigned int, LVIC*) ()
#8 0x565a0e5f in compare(int, unsigned int*, REGISTERSTAT**, REGISTERSTAT**, LVIC*) ()
#9 0x565a5639 in dofor(unsigned int) ()
#10 0x5659951d in docommand() ()
#11 0x565990d7 in doblock2() ()
#12 0x5659909e in doblock() ()
#13 0x565a58e0 in dofor(unsigned int) ()
#14 0x5659951d in docommand() ()
#15 0x565990d7 in doblock2() ()
#16 0x565a9239 in setproc(int) ()
#17 0x565b2dc1 in insert_dynamic(int) ()
#18 0x56564ad3 in docalls() ()
#19 0x56558ab0 in compile() ()
#20 0x565587ec in main ()


Вернуться к началу
 Заголовок сообщения: Re: C-- Sphinx Compiler
СообщениеДобавлено: Чт ноя 08, 2018 9:29 am 
Не в сети

Зарегистрирован: Вт мар 08, 2016 11:00 pm
Сообщения: 412
посмотри параметр - размер, с которым вызван malloc

и количество выделенной памяти на тот момент процессу


Вернуться к началу
 Заголовок сообщения: Re: C-- Sphinx Compiler
СообщениеДобавлено: Пт ноя 09, 2018 10:43 pm 
Не в сети

Зарегистрирован: Ср мар 26, 2008 12:44 pm
Сообщения: 214
revision #7545

Кажется я нашёл, почему под линуксом cmm вылетал. Автор явно рассчитывал на то, что память, выделяемая malloc, содержит нули. Под виндой это почти так (первые байты всё равно не нулевые), а в убунте нет. К тому-же, под виндой, free обычно весьма толерантно относится к левому указателю, а линукс безжалостно генерирует сигнал, после чего программа завершается.

После внесения правок Eolite компилируется и под убунтой.

Кроме того я внёс исправление обратных слешей на прямые, это должно и для Колибри подойти.


Вернуться к началу
 Заголовок сообщения: Re: C-- Sphinx Compiler
СообщениеДобавлено: Пт ноя 09, 2018 11:02 pm 
Не в сети

Зарегистрирован: Вт мар 08, 2016 11:00 pm
Сообщения: 412
tsdima писал(а):
revision #7545

Кажется я нашёл, почему под линуксом cmm вылетал. Автор явно рассчитывал на то, что память, выделяемая malloc, содержит нули. Под виндой это почти так (первые байты всё равно не нулевые), а в убунте нет. К тому-же, под виндой, free обычно весьма толерантно относится к левому указателю, а линукс безжалостно генерирует сигнал, после чего программа завершается.
...

По обоим вопросам нет. Покажи где такое используется

Какая то заморочка в websvn diff, не могу посмотреть все исправления (


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 115 сообщений ]  На страницу Пред. 14 5 6 7 8 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB