r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[Red] Red language group

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?