World: r3wp
[Red] Red language group
older newer | first last |
Andreas 27-May-2011 [1635] | 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? |
Kaj 27-May-2011 [1675] | Will do |
Dockimbel 27-May-2011 [1676x3] | New hello still segfaults. |
Program counter address: EIP = 1234567a | |
EAX = 000000ec (seems that dereferencing EAX is what caused the error) | |
Kaj 27-May-2011 [1679] | I was afraid syscalls would be more problematic. What calling convention do you use for them? |
Dockimbel 27-May-2011 [1680x2] | Let me see that... |
1st argument => EBX 2nd argument => ECX 3rd argument => EDX ... syscall ID => EAX INT 0x80 | |
Kaj 27-May-2011 [1682x3] | What is that called? |
Linux is using SYSENTER/SYSCALL, but Syllable still uses int 0x80: | |
http://development.syllable.org/news/2009-05-24-16-19-Memory-mapped-input-output-implemented.html | |
older newer | first last |