www.digitalmars.com         C & C++   DMDScript  

D.gnu - How to compile RABCDAsm on the Raspberry Pi !?

reply "Swen" <maildeluxe mail.ru> writes:
Hi ! Can somebody help me to compile RABCDAsm on the Raspberry Pi
!?

RABCDAsm is a Robust ABC (ActionScript Bytecode) [Dis-]Assembler
and written in the D programming language, version 2.
https://github.com/CyberShadow/RABCDAsm

There are D2 compiler such dmd and gdc.
While there is no armhf version of dmd, i chose gdc and compiled
it with this tutorial:
http://gdcproject.org/wiki/Raspberry%20Pi/build/Raspbian%28Hardfloat%29

But when I try to compile RABCDAsm:
gcc build_rabcdasm.d
I get an error: gcc: error trying to exec 'cc1d': execvp: No such
file or directory

Can somebody tell me what I'm doing wrong, and how can I compile
RABCDAsm on the Raspberry Pi ?
http://www.raspberrypi.org/
Nov 14 2012
next sibling parent Johannes Pfau <nospam example.com> writes:
Am Wed, 14 Nov 2012 20:53:06 +0100
schrieb "Swen" <maildeluxe mail.ru>:

 Hi ! Can somebody help me to compile RABCDAsm on the Raspberry Pi
 !?
 
 RABCDAsm is a Robust ABC (ActionScript Bytecode) [Dis-]Assembler
 and written in the D programming language, version 2.
 https://github.com/CyberShadow/RABCDAsm
 
 There are D2 compiler such dmd and gdc.
 While there is no armhf version of dmd, i chose gdc and compiled
 it with this tutorial:
 http://gdcproject.org/wiki/Raspberry%20Pi/build/Raspbian%28Hardfloat%29
 
 But when I try to compile RABCDAsm:
 gcc build_rabcdasm.d
 I get an error: gcc: error trying to exec 'cc1d': execvp: No such
 file or directory
 
 Can somebody tell me what I'm doing wrong, and how can I compile
 RABCDAsm on the Raspberry Pi ?
 http://www.raspberrypi.org/

try to enter this command first: export PATH=$PATH:/opt/gdc/bin Those tutorials don't install gdc into the system directories. This makes it easier to remove or update gdc, but you have to adjust your PATH environment variable as described above. You can also use gdc directly. BTW: You should add "-fno-section-anchors" to your gdc / gcc compile command. This is a workaround for an ARM specific bug. It's fixed in the gdc master branch but it's not merged into the 4.7 branch yet.
Nov 15 2012
prev sibling next sibling parent "Swen" <maildeluxe mail.ru> writes:
Hi! Thx for your answer! I have exported the path with:
export PATH=$PATH:/opt/gdc/bin

There are this files in /opt/gdc/bin
arm-linux-gnueabihf-gcc-4.7         gcc-4.7
arm-linux-gnueabihf-gcc-ar-4.7      gcc-ar-4.7
arm-linux-gnueabihf-gcc-nm-4.7      gcc-nm-4.7
arm-linux-gnueabihf-gcc-ranlib-4.7  gcc-ranlib-4.7
arm-linux-gnueabihf-gdc-4.7         gcov-4.7
arm-linux-gnueabihf-gdmd-4.7        gdc-4.7
cpp-4.7                             gdmd-4.7

so witch of them i have to use to compile this file
https://github.com/CyberShadow/RABCDAsm/blob/master/build_rabcdasm.d
on the website it says just run this command:
dmd -run build_rabcdasm.d
but i have no dmd :(

while my raspbian image is hard fload i tried this one:
arm-linux-gnueabihf-gdc-4.7 -fno-section-anchors build_rabcdasm.d
i get no errors and no binary file

for example when i try: abcexport
i get: -bash: abcexport: command not found

so what i am doing wrong !?
Nov 15 2012
prev sibling next sibling parent Johannes Pfau <nospam example.com> writes:
Am Thu, 15 Nov 2012 23:03:35 +0100
schrieb "Swen" <maildeluxe mail.ru>:

 Hi! Thx for your answer! I have exported the path with:
 export PATH=$PATH:/opt/gdc/bin
 
 There are this files in /opt/gdc/bin
 arm-linux-gnueabihf-gcc-4.7         gcc-4.7
 arm-linux-gnueabihf-gcc-ar-4.7      gcc-ar-4.7
 arm-linux-gnueabihf-gcc-nm-4.7      gcc-nm-4.7
 arm-linux-gnueabihf-gcc-ranlib-4.7  gcc-ranlib-4.7
 arm-linux-gnueabihf-gdc-4.7         gcov-4.7
 arm-linux-gnueabihf-gdmd-4.7        gdc-4.7
 cpp-4.7                             gdmd-4.7
 
 so witch of them i have to use to compile this file
 https://github.com/CyberShadow/RABCDAsm/blob/master/build_rabcdasm.d
 on the website it says just run this command:
 dmd -run build_rabcdasm.d
 but i have no dmd :(
 
 while my raspbian image is hard fload i tried this one:
 arm-linux-gnueabihf-gdc-4.7 -fno-section-anchors build_rabcdasm.d
 i get no errors and no binary file

gdc with no special arguments should compile to a.out (gcc and g++ do the same)
 
 for example when i try: abcexport
 i get: -bash: abcexport: command not found
 
 so what i am doing wrong !?

build_rabcdasm.d is a build script. You could try this command: DC=gdmd-4.7 DCFLAGS="-O -inline -fno-section-anchors" gdmd-4.7 -run build_rabcdasm.d But I think build_rabcdasm.d requires rdmd, so you probably have to build rdmd first. Get rdmd from here: https://github.com/D-Programming-Language/tools/blob/master/rdmd.d Then compile like this: gdc-4.7 -fno-section-anchors rdmd.d -o rdmd Then make sure that this rdmd binary is in your path as well and then try the DC=... build command.
Nov 16 2012
prev sibling next sibling parent "Swen" <maildeluxe mail.ru> writes:
Hi! i compiled rdmd and put it to /opt/gdc/bin. RDMD seems now to 
work. But when i try to compile RABCDAsm with:

DC=gdmd-4.7 DCFLAGS="-O -inline -fno-section-anchors" gdmd-4.7 
-run build_rabcdasm.d

i get:
* Checking for working compiler...
Segmentation fault
Error: Test failed

hmmmm
Nov 18 2012
prev sibling next sibling parent Johannes Pfau <nospam example.com> writes:
Am Sun, 18 Nov 2012 19:15:51 +0100
schrieb "Swen" <maildeluxe mail.ru>:

 Hi! i compiled rdmd and put it to /opt/gdc/bin. RDMD seems now to 
 work. But when i try to compile RABCDAsm with:
 
 DC=gdmd-4.7 DCFLAGS="-O -inline -fno-section-anchors" gdmd-4.7 
 -run build_rabcdasm.d
 
 i get:
 * Checking for working compiler...
 Segmentation fault
 Error: Test failed
 
 hmmmm

Strange. A segmentation fault could have many causes, but I guess it's related to the -fno-section-anchors flag not being passed to gdc in some case. I know you already spent quite some time trying to get this working and this is probably getting annoying, but if you don't mind rebuilding gdc I'd propose this: Recompile gdc with this pull request applied: https://github.com/D-Programming-GDC/GDC/pull/37 To do that you can just use the sources from my GDC repository: https://github.com/jpf91/GDC/tree/gdc-4.7 so instead of git clone https://github.com/D-Programming-GDC/GDC.git use git clone https://github.com/jpf91/GDC.git the rest of the installation instructions still applies. I know it takes way too long to build gdc on the raspberry pi, but building with these changes is worth the effort. The changes include an fix so you don't have to specify "-fno-section-anchors" anymore. Instead it should be possible to just use gdc-4.7 and gdmd-4.7. You should then rebuild rdmd like this: gdc-4.7 rdmd.d -o rdmd building RABCDAsm should then be possible with this command: DC=gdmd-4.7 gdmd-4.7 -run build_rabcdasm.d I'm sorry for the inconveniences but the ARM support is quite new and IIRC you're the first one to actually build a real application on ARM.
Nov 18 2012
prev sibling next sibling parent "Swen" <maildeluxe mail.ru> writes:
Thanks for your patience!
OK i will try to recompile gdc.
So how i understand, i have to build gdc with this tutorial
http://gdcproject.org/wiki/Raspberry%20Pi/build/Raspbian%28Hardfloat%29
but instead of this line:
git clone https://github.com/D-Programming-GDC/GDC.git
i have to use this:
git clone https://github.com/jpf91/GDC.git

everything else is the same !?

p.s Johannes Pfau seems to be a German name ? Can you speak 
German ?
Because i can :)
Nov 18 2012
prev sibling next sibling parent Johannes Pfau <nospam example.com> writes:
Am Sun, 18 Nov 2012 21:13:54 +0100
schrieb "Swen" <maildeluxe mail.ru>:

 Thanks for your patience!
 OK i will try to recompile gdc.
 So how i understand, i have to build gdc with this tutorial
 http://gdcproject.org/wiki/Raspberry%20Pi/build/Raspbian%28Hardfloat%29
 but instead of this line:
 git clone https://github.com/D-Programming-GDC/GDC.git
 i have to use this:
 git clone https://github.com/jpf91/GDC.git
 
 everything else is the same !?

Yes. But thinking about this some more there's another issue which could also cause your problems. I'll try to compile RABCDAsm next weekend to see what's really causing the problem.
 
 p.s Johannes Pfau seems to be a German name ? Can you speak 
 German ?
 Because i can :)

Klar doch ;-)
Nov 20 2012
prev sibling next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On 20 November 2012 19:50, Johannes Pfau <nospam example.com> wrote:
 Am Sun, 18 Nov 2012 21:13:54 +0100
 schrieb "Swen" <maildeluxe mail.ru>:

 Thanks for your patience!
 OK i will try to recompile gdc.
 So how i understand, i have to build gdc with this tutorial
 http://gdcproject.org/wiki/Raspberry%20Pi/build/Raspbian%28Hardfloat%29
 but instead of this line:
 git clone https://github.com/D-Programming-GDC/GDC.git
 i have to use this:
 git clone https://github.com/jpf91/GDC.git

 everything else is the same !?

Yes. But thinking about this some more there's another issue which could also cause your problems. I'll try to compile RABCDAsm next weekend to see what's really causing the problem.
 p.s Johannes Pfau seems to be a German name ? Can you speak
 German ?
 Because i can :)

Klar doch ;-)

Looks like french to me! -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Nov 20 2012
prev sibling next sibling parent "Swen" <maildeluxe mail.ru> writes:
On Tuesday, 20 November 2012 at 19:50:46 UTC, Johannes Pfau wrote:
 Am Sun, 18 Nov 2012 21:13:54 +0100
 schrieb "Swen" <maildeluxe mail.ru>:

 Thanks for your patience!
 OK i will try to recompile gdc.
 So how i understand, i have to build gdc with this tutorial
 http://gdcproject.org/wiki/Raspberry%20Pi/build/Raspbian%28Hardfloat%29
 but instead of this line:
 git clone https://github.com/D-Programming-GDC/GDC.git
 i have to use this:
 git clone https://github.com/jpf91/GDC.git
 
 everything else is the same !?

Yes. But thinking about this some more there's another issue which could also cause your problems. I'll try to compile RABCDAsm next weekend to see what's really causing the problem.
 
 p.s Johannes Pfau seems to be a German name ? Can you speak 
 German ?
 Because i can :)

Klar doch ;-)

Ok thank you very mutch! I don't know if we can speak german here (in this forum), because for me it would be much easier :)
Nov 20 2012
prev sibling next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On 20 November 2012 20:07, Swen <maildeluxe mail.ru> wrote:
 On Tuesday, 20 November 2012 at 19:50:46 UTC, Johannes Pfau wrote:
 Am Sun, 18 Nov 2012 21:13:54 +0100
 schrieb "Swen" <maildeluxe mail.ru>:

 Thanks for your patience!
 OK i will try to recompile gdc.
 So how i understand, i have to build gdc with this tutorial
 http://gdcproject.org/wiki/Raspberry%20Pi/build/Raspbian%28Hardfloat%29
 but instead of this line:
 git clone https://github.com/D-Programming-GDC/GDC.git
 i have to use this:
 git clone https://github.com/jpf91/GDC.git

 everything else is the same !?

Yes. But thinking about this some more there's another issue which could also cause your problems. I'll try to compile RABCDAsm next weekend to see what's really causing the problem.
 p.s Johannes Pfau seems to be a German name ? Can you speak German ?
 Because i can :)

Klar doch ;-)

Ok thank you very mutch! I don't know if we can speak german here (in this forum), because for me it would be much easier :)

As a rule of thumb, keep techy things in english. If you are veering off topic, maybe you should just PM. :o) -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Nov 20 2012
prev sibling next sibling parent Johannes Pfau <nospam example.com> writes:
Am Tue, 20 Nov 2012 21:07:34 +0100
schrieb "Swen" <maildeluxe mail.ru>:

 
 Ok thank you very mutch! I don't know if we can speak german here 
 (in this forum), because for me it would be much easier :)

Here are the compiled binaries, I hope they're working as expected: http://www.mediafire.com/?x5oaqtn2dc6k7v7 I had to use the my gdc branch but this patch is also necessary: https://github.com/D-Programming-Language/phobos/pull/819 It will be merged into gdc when dmd 2.061 is released. rdmd didn't work for some reason, so I had to compile the programs manually: gdc-4.7 -o rabcdasm disassembler.d rabcdasm.d abcfile.d asprogram.d murmurhash2a.d common.d -fversion=HAVE_LZMA -llzma gdc-4.7 -o rabcasm rabcasm.d abcfile.d asprogram.d assembler.d murmurhash2a.d common.d -fversion=HAVE_LZMA -llzma gdc-4.7 -o abcexport abcexport.d abcfile.d asprogram.d murmurhash2a.d common.d swffile.d zlibx.d lzma.d deimos/lzma.d deimos/lzma_/*.d -fversion=HAVE_LZMA -llzma gdc-4.7 -o abcreplace abcreplace.d asprogram.d abcfile.d murmurhash2a.d common.d swffile.d zlibx.d lzma.d deimos/lzma.d deimos/lzma_/*.d -fversion=HAVE_LZMA -llzma gdc-4.7 -o swfbinexport swfbinexport.d asprogram.d abcfile.d murmurhash2a.d common.d swffile.d zlibx.d lzma.d deimos/lzma.d deimos/lzma_/*.d -fversion=HAVE_LZMA -llzma gdc-4.7 -o swfbinreplace swfbinreplace.d asprogram.d abcfile.d murmurhash2a.d common.d swffile.d zlibx.d lzma.d deimos/lzma.d deimos/lzma_/*.d -fversion=HAVE_LZMA -llzma gdc-4.7 -o swfdecompress swfdecompress.d asprogram.d abcfile.d murmurhash2a.d common.d swffile.d zlibx.d lzma.d deimos/lzma.d deimos/lzma_/*.d -fversion=HAVE_LZMA -llzma gdc-4.7 -o swf7zcompress swf7zcompress.d asprogram.d abcfile.d murmurhash2a.d common.d swffile.d zlibx.d lzma.d deimos/lzma.d deimos/lzma_/*.d -fversion=HAVE_LZMA -llzma
Nov 25 2012
prev sibling next sibling parent "Swen" <maildeluxe mail.ru> writes:
Hi! i tried it out and it seems to work.
after abcexport file.swf i get an file-0.abc file ! yes :)
but when i run the second command rabcdasm file-0.abc i get 
"core.exception.OutOfMemoryError".
I think Raspberry Pi is to slow for this ?
I tested this on 512 MB RAM Version (64 MB for the GPU)
Nov 25 2012
prev sibling parent Johannes Pfau <nospam example.com> writes:
Am Sun, 25 Nov 2012 22:47:20 +0100
schrieb "Swen" <maildeluxe mail.ru>:

 Hi! i tried it out and it seems to work.
 after abcexport file.swf i get an file-0.abc file ! yes :)
 but when i run the second command rabcdasm file-0.abc i get 
 "core.exception.OutOfMemoryError".
 I think Raspberry Pi is to slow for this ?
 I tested this on 512 MB RAM Version (64 MB for the GPU)
 

I don't know how much memory is usually needed by RABCDAsm. It could be that it just needs more memory or it is a bug in our garbage collector. You could try to enable / increase swap space though.
Nov 26 2012