World: r3wp
[Red] Red language group
older newer | first last |
Andreas 27-May-2011 [1625] | i think syllable just ignored the alignment setting in the elf header last time we tried this |
Kaj 27-May-2011 [1626] | http://syllable.cvs.sourceforge.net/viewvc/syllable/syllable/system/sys/kernel/kernel/elf.c?view=markup |
Dockimbel 27-May-2011 [1627] | Thanks. |
Andreas 27-May-2011 [1628] | line 1111 originates the error |
Kaj 27-May-2011 [1629] | I've uploaded a new empty with page-size 1 |
Dockimbel 27-May-2011 [1630] | Same error. |
Andreas 27-May-2011 [1631x2] | hmm, if syllable ignores the alignment i guess we have to properly align things |
:) | |
Kaj 27-May-2011 [1633] | We can load an awful lot of other software, so it seems prudent |
Andreas 27-May-2011 [1634x2] | in line 183 of formats/ELF.r, change data-ptr: code-ptr + code-size to data-ptr: code-ptr + page-size |
and change back page-size to 4096 before that | |
Kaj 27-May-2011 [1636] | Is that all? |
Andreas 27-May-2011 [1637x3] | (could you please) |
should be a quick way to test this particular problem, yes | |
ah, crap, no | |
Kaj 27-May-2011 [1640] | empty compiles, at least |
Andreas 27-May-2011 [1641] | yeah, but it generates crap :) |
Dockimbel 27-May-2011 [1642] | Andreas, shouldn't it be rather: data-ptr: code-ptr + code-size + (page-size // code-size) |
Andreas 27-May-2011 [1643x4] | yeah, if we want to do proper alignment :) |
but it results in the same problem of generating wrong file offsets | |
(because other code parts re-use data-ptr to calculate the file offset) | |
give me a few minutes, i'll try to generate a binary that has that fixed | |
Kaj 27-May-2011 [1647] | I don't think the GCC folks can do debug cycles this fast :-) |
Andreas 27-May-2011 [1648x3] | you can (it's only C, after all), but you need a quite beefy machine. LLVM (C++) on the other hand ... |
soo, here we go | |
http://bolka.at/2011/tmp/hello | |
Dockimbel 27-May-2011 [1651] | trying... |
Andreas 27-May-2011 [1652] | or if you want to compile the binaries on your own: https://gist.github.com/1bf8d5c54cb630c83d8e |
Dockimbel 27-May-2011 [1653x2] | hmm, the browser don't want to save it to disk, it just displays it as text...I guess it misses a content-type: application/octet-stream... |
Kaj: any workaround? | |
Andreas 27-May-2011 [1655] | http://bolka.at/2011/tmp/hello.bin |
Dockimbel 27-May-2011 [1656x2] | Andreas: you rules! |
Hello is working | |
Andreas 27-May-2011 [1658] | nice :) |
Dockimbel 27-May-2011 [1659] | Displays all the banners, but seg fault on exiting. |
Andreas 27-May-2011 [1660] | anything in the kernel log? |
Dockimbel 27-May-2011 [1661x5] | uploading a screenshot... |
http://static.red-lang.org/tmp/syllable-hello.png | |
The error is: Error: sys_open() failed to dup path | |
Invalid pagefault at 000000ec (NOTP:WRITE:USER) | |
Got to go, will be back in an hour. | |
Kaj 27-May-2011 [1666x8] | I think right-clicking in the browser would work |
My NginX configuration probably serves it as default text | |
One of the syscalls has a different number on Syllable, probably exit. I'll check | |
The screenshot is awesome :-) | |
exit is syscall 5 instead of syscall 1 on Linux | |
I've taken over Andreas' changes, corrected the runtime syscall, and uploaded new empty, hello, reply-server and request-client | |
The latter won't find the 0MQ library, but will show how that works on Syllable | |
My nginx.conf has default_type application/octet-stream; by the way | |
Andreas 27-May-2011 [1674] | could you paste a `readelf -a` of some small system binary somewhere? |
older newer | first last |