Marmalade: Angelscript runs fine on x86, crashes on ARM

Started by
34 comments, last by WitchLord 11 years, 4 months ago
Here is the attached file
Advertisement
Thanks for sharing this loboWu.

I'm very pleased to know it works properly.

I didn't know Marmalade used gcc to build for ARM. Are you building the library from Windows? Do you have to make a separate download of gcc or does it come with the Marmalade SDK?

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

The arm gcc compiler is just come with marmalade SDK.
It use arm-none-eabi with GCC 4.4.1
Hi IoboWu,

Thank you for sharing your project files. Could you explain a little bit about how you use them? I downloaded them and, judging from the file paths inside them, assumed I'm supposed to put them in angelscript/projects/marmalade. When I run the *.mkb I get a slew of errors about unrecognized opcodes, concluding with the error:

error: Executing 'd: ools\game\marmalade\6.0\s3e\bin\scons.bat -Q compiler=gcc' failed. (return code 2)

I tried including the path of the *.mkf from my current Marmalade project; when I do this, the project loads, but upon compiling I get:

Error 4 error MSB6006: "link.exe" exited with code 1.

I also tried copying various parts of your *.mkb into the *.mkf I have been using to include Angelscript. Copying most of the stuff over caused no change (the program still fails when I try to register a CDECL function on ARM), but copying the part about the *.S files makes the project fail to load up. In this scenario the command line seems to be actually compiling the code, which is a bit strange... it fails when trying to use an add-on, RegisterStdString, claiming it "was not declared in this scope."

Sorry I'm having so much difficulty figuring this stuff out... I don't have much experience writing multiplatform code or with Marmalade but I've been trying my best. If somewhere there was a complete downloadable Marmalade project that demonstrates compiling and running the latest Angelscript as well as registering and using CDECL functions without failing on device, that would be a dream come true.
I have to say also that angelscript can work properly with marmalade.. with some finishing touches.
Firstly, .S file can't contain c++ comments (I wrote about this here: http://www.gamedev.net/topic/626036-compiling-for-marmalade-sdk/)
Secondly, it needs to use scons for Android or IOS builds (see http://www.madewithmarmalade.com/devnet/forum/angel-script for more details).
Thanks for reminding me of the comments in the .S file, and for clarifying the need to use scons to build for Android and iOS.

I'll add this information to the manual in the article about compiling the library for Marmalade.

I don't want to remove the comments from the .S file. But perhaps there is another comment syntax that is acceptable when compiling with both Marmalade and gcc? Do you know what can be used instead of the C++ comments?

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

You can use C comments - /* ... */
I'm not sure about Marmelade, but GNU assembler also accepts # as delimiter for comments - the rest of line after # symbol will be viewed as comment
Thanks. I think I'll try the # style then.

It would be good if someone using Marmalade can confirm that it actually works before I check in the changes.

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game


Thanks. I think I'll try the # style then.
It would be good if someone using Marmalade can confirm that it actually works before I check in the changes.


I just checked and can confirm that '//' comments are not allowed; using '#' instead '//' is allowed but only at the beginning of the line... arm assembler uses '#' as a part of operands.

'/*.. */' is allowed everywhere and probably would be the best solution.
Thanks for confirming this. I'll make the necessary changes.

Regards,
Andreas

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

This topic is closed to new replies.

Advertisement