Board.KolibriOS.org

Official KolibriOS board
It is currently Fri Sep 20, 2019 3:15 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 121 posts ]  Go to page Previous 15 6 7 8 9 Next
Author Message
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Mon Dec 05, 2016 11:03 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1264
revision #6787


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Tue Dec 06, 2016 1:23 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5061
Проверил, строка "/sys/lib/../calc" запускает calc.

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

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


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Tue Dec 06, 2016 2:48 am 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1264
Должно, теперь это делается до файловых систем.


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Wed Oct 11, 2017 8:23 pm 
Offline

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

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

Сравните с содержимым Makefile
Spoiler: Show
Code:
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 $<


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Wed Oct 11, 2017 9:32 pm 
Offline
Designer
User avatar

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

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


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Sun Nov 04, 2018 9:04 pm 
Offline
User avatar

Joined: Wed Apr 15, 2015 11:13 pm
Posts: 253
Пытался собрать для Ubuntu 16.04. В итоге кое-как собрал, компилятор CMM работает не стабильно, легкие примеры компилирует, но бинарник не запускается к колибриос. Может кто нибудь сможет довести его до конца.
Attachment:
cmm.tar.gz [925.99 KiB]
Downloaded 76 times


Spoiler: Show
Attachment:
Снимок экрана от 2018-11-04 20-22-37.png
Снимок экрана от 2018-11-04 20-22-37.png [ 315.71 KiB | Viewed 3747 times ]


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Mon Nov 05, 2018 12:00 pm 
Offline

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


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Tue Nov 06, 2018 12:41 am 
Offline
User avatar

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


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Tue Nov 06, 2018 1:33 am 
Offline
User avatar

Joined: Wed Apr 15, 2015 11:13 pm
Posts: 253
Для Ubuntu. Более новее версия компилятора взятого с SVN, еще крэшится


Attachments:
cmm.r7531.tar.gz [564.6 KiB]
Downloaded 36 times
Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Wed Nov 07, 2018 2:07 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5061
pavelyakov
Можешь собрать нормальный компилятор под Колибри?
Тот что есть, ничерта не компилит из-за проблем с путями.


Attachments:
SCREEN_2.PNG
SCREEN_2.PNG [ 106.81 KiB | Viewed 2230 times ]

_________________
Через тернии к звездам
Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Thu Nov 08, 2018 3:28 am 
Offline

Joined: Tue Oct 05, 2010 6:05 pm
Posts: 215
0CodErr wrote:
Забавный факт, для сборки под винду достаточно bat-ника, содержащего только одну строку:
Code:
gcc -fno-exceptions -D_WIN32_ -D__CONSOLE__ -o cmm.exe *.cpp

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


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Thu Nov 08, 2018 8:57 am 
Offline
User avatar

Joined: Wed Apr 15, 2015 11:13 pm
Posts: 253
Дебагер показывает, где в стеке вызовов произошла ошибка сигментации, но я так её и не нашел.
(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 ()


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Thu Nov 08, 2018 9:29 am 
Offline

Joined: Tue Mar 08, 2016 11:00 pm
Posts: 436
посмотри параметр - размер, с которым вызван malloc

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


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Fri Nov 09, 2018 10:43 pm 
Offline

Joined: Wed Mar 26, 2008 12:44 pm
Posts: 225
revision #7545

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

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

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


Top
   
 Post subject: Re: C-- Sphinx Compiler
PostPosted: Fri Nov 09, 2018 11:02 pm 
Offline

Joined: Tue Mar 08, 2016 11:00 pm
Posts: 436
tsdima wrote:
revision #7545

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

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

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 121 posts ]  Go to page Previous 15 6 7 8 9 Next

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